summaryrefslogtreecommitdiff
path: root/gcc/cselib.c
diff options
context:
space:
mode:
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-13 14:18:04 +0000
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-13 14:18:04 +0000
commit5bbaf5ca6c70119a37f10b64ca37cc16496120ec (patch)
treea572ebf2a3de1b04d3af878e1ae572f9db1c8d50 /gcc/cselib.c
parente31b950c5003b7e13758f6cd54e26b858eeb5f96 (diff)
downloadgcc-5bbaf5ca6c70119a37f10b64ca37cc16496120ec.tar.gz
* cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and
HARD_REGISTER_NUM_P. * cselib.c (new_cselib_val): Make comment correct and more detailed. * flow.c (mark_set_1): Likewise. * except.c (duplicate_eh_region_1, duplicate_eh_region_2, duplicate_eh_regions): Remove. * except.h (duplicate_eh_regions): Remove prototype. * integrate.c (get_label_from_map, copy_rtx_and_substitute, global_const_equiv_varray): Remove. * integrate.h (get_label_from_map, copy_rtx_and_substitute, global_const_equiv_varray, set_label_in_map): Remove prototypes, extern declaration, and #define. (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove. (struct inline_remap): Remove. * varray.c (struct element): Remove entry for const_equiv_data. * varray.h (struct const_equiv_data): Remove. (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove. (union varray_data_tag) <const_equiv>: Remove. (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV, VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove. * regstack.c (record_label_references): Remove unused function. * rtl.def (VALUE): Update comment. (LABEL_REF): Remove unused operand 2. * rtl.h (struct rtx_def): Update for removed accessor macros. (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN, REG_LOOP_TEST_P): Remove. (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments. * web.c (entry_register): Don't copy REG_LOOP_TEST_P. * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90580 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cselib.c')
-rw-r--r--gcc/cselib.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cselib.c b/gcc/cselib.c
index eb0b52a2edc..df22800114d 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -704,8 +704,11 @@ new_cselib_val (unsigned int value, enum machine_mode mode)
gcc_assert (value);
e->value = value;
- /* We use custom method to allocate this RTL construct because it accounts
- about 8% of overall memory usage. */
+ /* We use an alloc pool to allocate this RTL construct because it
+ accounts for about 8% of the overall memory usage. We know
+ precisely when we can have VALUE RTXen (when cselib is active)
+ so we don't need to put them in garbave collected memory.
+ ??? Why should a VALUE be an RTX in the first place? */
e->u.val_rtx = pool_alloc (value_pool);
memset (e->u.val_rtx, 0, RTX_HDR_SIZE);
PUT_CODE (e->u.val_rtx, VALUE);