From 2c7a7f46d89be753c00b5b7d23d0d943eb0b2d29 Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Wed, 15 Oct 2008 16:24:15 +0000 Subject: [multiple changes] 2008-10-15 Jan Sjodin Harsha Jagasia PR tree-optimization/37485 * graphite.c (gmp_cst_to_tree): Moved. (iv_stack_entry_is_constant): New. (iv_stack_entry_is_iv): New. (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv. (loop_iv_stack_insert_constant): New. (loop_iv_stack_pop): Use new datatpype. (loop_iv_stack_get_iv): Same. (loop_iv_stack_get_iv_from_name): Same. (loop_iv_stack_debug): Renamed to debug_loop_iv_stack. (loop_iv_stack_patch_for_consts): New. (loop_iv_stack_remove_constants): New. (graphite_create_new_loop): Use loop_iv_stack_push_iv. (translate_clast): Call loop_iv_stack_patch_for_consts and loop_iv_stack_remove_constants. (gloog): Use new datatype. Redirect construction edge to end block to avoid accidental deletion. * graphite.h (enum iv_stack_entry_kind): New. Tag for data in iv stack entry. (union iv_stack_entry_data): New. Data in iv stack entry. (struct iv_stack_entry): New. Datatype for iv stack entries. 2008-10-15 Sebastian Pop * tree-data-ref.c (stmt_simple_memref_p): Fix memleak. * graphite.c (free_scop): Same. (build_scops): Same. (free_scattering): New. (build_cloog_prog): Call free_scattering. (patch_phis_for_virtual_defs): Fix memleak. (graphite_trans_bb_strip_mine): Same. (limit_scops): Same. From-SVN: r141143 --- gcc/graphite.h | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'gcc/graphite.h') diff --git a/gcc/graphite.h b/gcc/graphite.h index 1a3cf6c..2e2904a 100644 --- a/gcc/graphite.h +++ b/gcc/graphite.h @@ -260,7 +260,7 @@ typedef struct name_tree { tree t; const char *name; - struct loop* loop; + struct loop *loop; } *name_tree; DEF_VEC_P(name_tree); @@ -340,8 +340,34 @@ extern void debug_clast_stmt (struct clast_stmt *); extern void debug_loop_vec (graphite_bb_p gb); extern void debug_oldivs (scop_p); -typedef VEC(name_tree, heap) **loop_iv_stack; -extern void loop_iv_stack_debug (loop_iv_stack); +/* Describes the type of an iv stack entry. */ +typedef enum { + iv_stack_entry_unknown = 0, + iv_stack_entry_iv, + iv_stack_entry_const +} iv_stack_entry_kind; + +/* Data contained in an iv stack entry. */ +typedef union iv_stack_entry_data_union +{ + name_tree iv; + tree constant; +} iv_stack_entry_data; + +/* Datatype for loop iv stack entry. */ +typedef struct iv_stack_entry_struct +{ + iv_stack_entry_kind kind; + iv_stack_entry_data data; +} iv_stack_entry; + +typedef iv_stack_entry *iv_stack_entry_p; + +DEF_VEC_P(iv_stack_entry_p); +DEF_VEC_ALLOC_P(iv_stack_entry_p,heap); + +typedef VEC(iv_stack_entry_p, heap) **loop_iv_stack; +extern void debug_loop_iv_stack (loop_iv_stack); /* Return the number of gimple loops contained in SCOP. */ -- cgit v1.1