diff options
| author | Laurynas Biveinis <laurynas.biveinis@gmail.com> | 2007-09-07 01:33:41 +0000 | 
|---|---|---|
| committer | Laurynas Biveinis <lauras@gcc.gnu.org> | 2007-09-07 01:33:41 +0000 | 
| commit | b9dd78fa1e85a6c0b2bc1256a529f5960e503d79 (patch) | |
| tree | 90465e7e91a5775e8c20ea92e5e97726c297376d /gcc/lambda.h | |
| parent | 0f996086cbf16283b2494ca36c7573abb5f06df7 (diff) | |
| download | gcc-b9dd78fa1e85a6c0b2bc1256a529f5960e503d79.zip gcc-b9dd78fa1e85a6c0b2bc1256a529f5960e503d79.tar.gz gcc-b9dd78fa1e85a6c0b2bc1256a529f5960e503d79.tar.bz2  | |
tree-loop-linear.c: Include obstack.h.
2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
	* tree-loop-linear.c: Include obstack.h.
	(linear_transform_loops): New obstack lambda_obstack.
	Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
	lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
	and free afterwards.
	* lambda.h (struct obstack): New forward declaration.
	(lambda_linear_expression_new): New parameter of type struct
	obstack *.
	(lambda_loopnest_new): Likewise.
	(lambda_loopnest_transform): Likewise.
	(lambda_body_vector_new): Likewise.
	(lambda_body_vector_compute_new): Likewise.
	(gcc_loopnest_to_lambda_loopnest): Likewise.
	(lambda_loopnest_to_gcc_loopnest): Likewise.
	* lambda-code.c: Include obstack.h.
	(lambda_lattice_new): New parameter lambda_obstack.  Use it for
	allocation of ret.
	(lambda_body_vector_new): Likewise.
	(lambda_linear_expression_new): Likewise.
	(lambda_lattice_new): Likewise.
	(lambda_loopnest_new): Likewise.  Additionally use obstack to
	allocate LN_LOOPS(ret).
	(lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
	it to lambda_lattice_new.
	(lambda_body_vector_compute_new): New parameter lambda_obstack.
	Pass it to lambda_body_vector_new.
	(lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
	it to lambda_lattice_new.
	(compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
	Pass it to lambda_loopnest_new, lambda_linear_expression_new.
	(lambda_compute_target_space): Likewise.
	(lambda_compute_auxillary_space): New parameter lambda_obstack.
	Pass it to lambda_lattice_compute_base and
	compute_nest_using_fourieer_motzkin.
	(lambda_loopnest_transform): New parameter lambda_obstack.  Pass
	it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
	and lambda_lattice_compute_target_space.
	(gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
	Pass it to lambda_linear_expression_new.
	(gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
	to gcc_tree_to_linear_expression.
	(gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
	Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
	(lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
	Pass it to lambda_body_vector_new and
	lambda_body_vector_compute_new.
	* Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
	(lambda-code.o): Likewise.
From-SVN: r128219
Diffstat (limited to 'gcc/lambda.h')
| -rw-r--r-- | gcc/lambda.h | 25 | 
1 files changed, 16 insertions, 9 deletions
diff --git a/gcc/lambda.h b/gcc/lambda.h index f2ac6f1..e7a75fd 100644 --- a/gcc/lambda.h +++ b/gcc/lambda.h @@ -97,7 +97,10 @@ typedef struct lambda_linear_expression_s  #define LLE_DENOMINATOR(T) ((T)->denominator)  #define LLE_NEXT(T) ((T)->next) -lambda_linear_expression lambda_linear_expression_new (int, int); +struct obstack; + +lambda_linear_expression lambda_linear_expression_new (int, int, +                                                       struct obstack *);  void print_lambda_linear_expression (FILE *, lambda_linear_expression, int,  				     int, char); @@ -137,8 +140,10 @@ typedef struct lambda_loopnest_s  #define LN_DEPTH(T) ((T)->depth)  #define LN_INVARIANTS(T) ((T)->invariants) -lambda_loopnest lambda_loopnest_new (int, int); -lambda_loopnest lambda_loopnest_transform (lambda_loopnest, lambda_trans_matrix); +lambda_loopnest lambda_loopnest_new (int, int, struct obstack *); +lambda_loopnest lambda_loopnest_transform (lambda_loopnest, +                                           lambda_trans_matrix, +                                           struct obstack *);  struct loop;  bool perfect_nest_p (struct loop *);  void print_lambda_loopnest (FILE *, lambda_loopnest, char); @@ -190,17 +195,19 @@ void lambda_matrix_vector_mult (lambda_matrix, int, int, lambda_vector,  				lambda_vector);  bool lambda_trans_matrix_id_p (lambda_trans_matrix); -lambda_body_vector lambda_body_vector_new (int); -lambda_body_vector lambda_body_vector_compute_new (lambda_trans_matrix,  -						   lambda_body_vector); +lambda_body_vector lambda_body_vector_new (int, struct obstack *); +lambda_body_vector lambda_body_vector_compute_new (lambda_trans_matrix, +                                                   lambda_body_vector, +                                                   struct obstack *);  void print_lambda_body_vector (FILE *, lambda_body_vector);  lambda_loopnest gcc_loopnest_to_lambda_loopnest (struct loop *,  						 VEC(tree,heap) **, -						 VEC(tree,heap) **); +                                                 VEC(tree,heap) **, +                                                 struct obstack *);  void lambda_loopnest_to_gcc_loopnest (struct loop *,  				      VEC(tree,heap) *, VEC(tree,heap) *, -				      lambda_loopnest, lambda_trans_matrix); - +                                      lambda_loopnest, lambda_trans_matrix, +                                      struct obstack *);  static inline void lambda_vector_negate (lambda_vector, lambda_vector, int);  static inline void lambda_vector_mult_const (lambda_vector, lambda_vector, int, int);  | 
