]> gcc.gnu.org Git - gcc.git/commit - gcc/varray.h
Use varrays for constant-equivalence data:
authorKen Raeburn <raeburn@cygnus.com>
Mon, 1 Feb 1999 12:50:53 +0000 (12:50 +0000)
committerKen Raeburn <raeburn@gcc.gnu.org>
Mon, 1 Feb 1999 12:50:53 +0000 (12:50 +0000)
commitc68da89c455fce41d03acecff5883099b1c97424
tree6e36a17f813c9f393e14690ca6a6478095b3fcb0
parent9594b1b2a1bad01f95ac82d6bf44cb98a34a14d9
Use varrays for constant-equivalence data:

* varray.h (struct const_equiv_data): New type.
(union varray_data_tag): New element const_equiv.
(VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
(VARRAY_SIZE): New macro, returns number of elements.
* integrate.h: Include varray.h.
(struct inline_remap): Replace const_equiv_map, const_age_map and
const_equiv_map_size with a const_equiv_varray element.
(MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if needed.
(SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields simultaneously,
growing the varray if needed.
* integrate.c (global_const_equiv_map, global_const_equiv_map_size): Deleted,
replaced by....
(global_const_equiv_varray): New variable.
(expand_inline_function): References changed.
* integrate.h: Update declarations.
* integrate.c (process_reg_parm, expand_inline_function,
copy_rtx_and_substitute, try_constants, subst_constants, mark_stores): Use
varray allocation and accessor macros, new integrate.h macros, and
global_const_equiv_varray.  Don't conditionalize non-NULL stores on array size;
instead, expand the array as needed.
* unroll.c (unroll_loop): Likewise.
* unroll.c (unroll_loop): Initialize const_equiv_varray element to zero.  After
allocating varray, always exit through bottom of function, where it can be
deallocated if needed.  Don't explicitly reallocate const_equiv_map storage;
instead, just ensure the varray has been initialized, and update the global
reference.

From-SVN: r24956
gcc/ChangeLog
gcc/integrate.c
gcc/integrate.h
gcc/unroll.c
gcc/varray.h
This page took 0.059892 seconds and 5 git commands to generate.