1 /* This file is part of GCC.
3 GCC is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3, or (at your option)
8 GCC is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with GCC; see the file COPYING3. If not see
15 <http://www.gnu.org/licenses/>. */
20 typedef struct gpy_vector_t
{
22 signed long size
, length
;
25 typedef unsigned long gpy_hashval_t
;
26 typedef struct gpy_hash_entry
{
31 typedef struct GTY(()) gpy_hash_table_t
{
32 unsigned int size
, length
;
33 gpy_hash_entry_t
* array
;
35 typedef gpy_dot_tree_t
* gpydot
;
36 typedef gpy_hash_tab_t
* gpy_ctx_t
;
39 DEF_VEC_ALLOC_P (gpydot
,gc
);
41 DEF_VEC_P (gpy_ctx_t
);
42 DEF_VEC_ALLOC_P (gpy_ctx_t
, gc
);
44 extern VEC(gpy_ctx_t
,gc
) * gpy_ctx_table
;
46 extern gpy_hashval_t
gpy_dd_hash_string (const char *);
47 extern gpy_hash_entry_t
* gpy_dd_hash_lookup_table (gpy_hash_tab_t
*, gpy_hashval_t
);
49 extern void ** gpy_dd_hash_insert (gpy_hashval_t
, void *, gpy_hash_tab_t
*);
50 extern void gpy_dd_hash_grow_table (gpy_hash_tab_t
*);
51 extern void gpy_dd_hash_init_table (gpy_hash_tab_t
*);
53 #endif /*__PY_VEC_H__*/