diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-02-06 16:47:12 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-02-06 16:47:12 +0100 |
commit | af116cae675e31b999844b7243c01bed9517c51c (patch) | |
tree | 8de46f81cd70d54fc09484c5fbcc0e6550226bb6 /gcc/var-tracking.c | |
parent | 0f5e5e02b74643e16969a2a6e4bbee77185efaf0 (diff) | |
download | gcc-af116cae675e31b999844b7243c01bed9517c51c.zip gcc-af116cae675e31b999844b7243c01bed9517c51c.tar.gz gcc-af116cae675e31b999844b7243c01bed9517c51c.tar.bz2 |
re PR debug/59992 (Compilation of insn-recog.c too slow due to var-tracking)
PR debug/59992
* var-tracking.c (adjust_mems): Before adding a SET
to amd->side_effects, adjust it's SET_SRC using
simplify_replace_fn_rtx.
* gcc.dg/pr59992.c: New test.
From-SVN: r207562
Diffstat (limited to 'gcc/var-tracking.c')
-rw-r--r-- | gcc/var-tracking.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index cfa7850..a13cac7 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -1067,10 +1067,13 @@ adjust_mems (rtx loc, const_rtx old_rtx, void *data) ? GET_MODE_SIZE (amd->mem_mode) : -GET_MODE_SIZE (amd->mem_mode), GET_MODE (loc))); + store_save = amd->store; + amd->store = false; + tem = simplify_replace_fn_rtx (tem, old_rtx, adjust_mems, data); + amd->store = store_save; amd->side_effects = alloc_EXPR_LIST (0, gen_rtx_SET (VOIDmode, - XEXP (loc, 0), - tem), + XEXP (loc, 0), tem), amd->side_effects); return addr; case PRE_MODIFY: @@ -1080,10 +1083,14 @@ adjust_mems (rtx loc, const_rtx old_rtx, void *data) addr = XEXP (loc, 0); gcc_assert (amd->mem_mode != VOIDmode); addr = simplify_replace_fn_rtx (addr, old_rtx, adjust_mems, data); + store_save = amd->store; + amd->store = false; + tem = simplify_replace_fn_rtx (XEXP (loc, 1), old_rtx, + adjust_mems, data); + amd->store = store_save; amd->side_effects = alloc_EXPR_LIST (0, gen_rtx_SET (VOIDmode, - XEXP (loc, 0), - XEXP (loc, 1)), + XEXP (loc, 0), tem), amd->side_effects); return addr; case SUBREG: |