aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus.com>1999-02-01 12:50:53 +0000
committerKen Raeburn <raeburn@gcc.gnu.org>1999-02-01 12:50:53 +0000
commitc68da89c455fce41d03acecff5883099b1c97424 (patch)
tree6e36a17f813c9f393e14690ca6a6478095b3fcb0 /gcc/recog.c
parent9594b1b2a1bad01f95ac82d6bf44cb98a34a14d9 (diff)
downloadgcc-c68da89c455fce41d03acecff5883099b1c97424.zip
gcc-c68da89c455fce41d03acecff5883099b1c97424.tar.gz
gcc-c68da89c455fce41d03acecff5883099b1c97424.tar.bz2
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
Diffstat (limited to 'gcc/recog.c')
0 files changed, 0 insertions, 0 deletions