diff options
author | Jiong Wang <jiong.wang@arm.com> | 2014-11-18 09:30:08 +0000 |
---|---|---|
committer | Jiong Wang <jiong.wang@arm.com> | 2014-11-18 09:30:08 +0000 |
commit | 3e75c949ee3847aada0466261af87e39e19816fe (patch) | |
tree | 71fe9726531e6d174ddccdeaafcf1a180d36e7e9 | |
parent | d4de9ae771db6086ba2ca45dd4f66a81c70ae46b (diff) |
[LRA] Relax one gcc_assert in lra-eliminate for fixed register
gcc/
* lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
registers.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@217691 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lra-eliminations.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4877dc97747..b303164e248 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-11-18 Jiong Wang <jiong.wang@arm.com> + + * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed + registers. + 2014-11-18 Marat Zakirov <m.zakirov@samsung.com> * opts.c (finish_options): Disable aggressive opts for sanitizer. diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c index 8ab0222ae50..aeae27c3710 100644 --- a/gcc/lra-eliminations.c +++ b/gcc/lra-eliminations.c @@ -1199,7 +1199,9 @@ update_reg_eliminate (bitmap insns_with_changed_offsets) ep->from, ep->to); /* If after processing RTL we decides that SP can be used as a result of elimination, it can not be changed. */ - gcc_assert (ep->to_rtx != stack_pointer_rtx); + gcc_assert ((ep->to_rtx != stack_pointer_rtx) + || (ep->from < FIRST_PSEUDO_REGISTER + && fixed_regs [ep->from])); /* Mark that is not eliminable anymore. */ elimination_map[ep->from] = NULL; for (ep1 = ep + 1; ep1 < ®_eliminate[NUM_ELIMINABLE_REGS]; ep1++) |