diff options
author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-12-21 16:52:13 +0000 |
---|---|---|
committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-12-21 16:52:13 +0000 |
commit | a4fcc300e2553e1d71e8de6705a9e88c07818151 (patch) | |
tree | be1a84611d88b154d11e212d84f4f3ee47d83295 /gcc/recog.c | |
parent | 5f9acd886b17be8693b8c0b4591b274763915d33 (diff) | |
download | gcc-a4fcc300e2553e1d71e8de6705a9e88c07818151.tar.gz |
2005-12-21 Andrew Haley <aph@redhat.com>
PR middle-end/25121
* recog.c (peephole2_optimize): Don't peephole any
RTX_FRAME_RELATED_P insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108914 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index 1df4b7fd1de..8a3fe3506d2 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -3104,8 +3104,18 @@ peephole2_optimize (FILE *dump_file ATTRIBUTE_UNUSED) propagate_one_insn (pbi, insn); COPY_REG_SET (peep2_insn_data[peep2_current].live_before, live); - /* Match the peephole. */ - try = peephole2_insns (PATTERN (insn), insn, &match_len); + if (RTX_FRAME_RELATED_P (insn)) + { + /* If an insn has RTX_FRAME_RELATED_P set, peephole + substitution would lose the + REG_FRAME_RELATED_EXPR that is attached. */ + peep2_current_count = 0; + try = NULL; + } + else + /* Match the peephole. */ + try = peephole2_insns (PATTERN (insn), insn, &match_len); + if (try != NULL) { /* If we are splitting a CALL_INSN, look for the CALL_INSN |