diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/emit-rtl.c | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3fb581d..1600e4f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-04-01 Mark Mitchell <mark@codesourcery.com> + + * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the + permanent obstack. + 2000-04-01 Zack Weinberg <zack@wolery.cumb.org> * cpplib.c: Include symcat.h. Add 'origin' field to struct diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 246805c..b67e9f1 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -253,7 +253,16 @@ gen_rtx_CONST_INT (mode, arg) (hashval_t) arg, /*insert=*/1); if (!*slot) - *slot = gen_rtx_raw_CONST_INT (VOIDmode, arg); + { + if (!ggc_p) + { + push_obstacks_nochange (); + end_temporary_allocation (); + } + *slot = gen_rtx_raw_CONST_INT (VOIDmode, arg); + if (!ggc_p) + pop_obstacks (); + } return (rtx) *slot; } |
