re PR rtl-optimization/80491 (Compiler regression for long-add case.)
PR rtl-optimization/80491 * ifcvt.c (noce_process_if_block): When looking for x setter with missing else_bb, don't check only the insn right before cond_earliest, but look for the last insn that x is modified in within the same bb. From-SVN: r247410
This commit is contained in:
parent
bc36c711da
commit
cc3a5b33ba
2 changed files with 14 additions and 1 deletions
|
@ -1,5 +1,11 @@
|
|||
2017-04-29 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/80491
|
||||
* ifcvt.c (noce_process_if_block): When looking for x setter
|
||||
with missing else_bb, don't check only the insn right before
|
||||
cond_earliest, but look for the last insn that x is modified in
|
||||
within the same bb.
|
||||
|
||||
PR rtl-optimization/80491
|
||||
* alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
|
||||
|
||||
|
|
|
@ -3440,7 +3440,14 @@ noce_process_if_block (struct noce_if_info *if_info)
|
|||
}
|
||||
else
|
||||
{
|
||||
insn_b = prev_nonnote_nondebug_insn (if_info->cond_earliest);
|
||||
insn_b = if_info->cond_earliest;
|
||||
do
|
||||
insn_b = prev_nonnote_nondebug_insn (insn_b);
|
||||
while (insn_b
|
||||
&& (BLOCK_FOR_INSN (insn_b)
|
||||
== BLOCK_FOR_INSN (if_info->cond_earliest))
|
||||
&& !modified_in_p (x, insn_b));
|
||||
|
||||
/* We're going to be moving the evaluation of B down from above
|
||||
COND_EARLIEST to JUMP. Make sure the relevant data is still
|
||||
intact. */
|
||||
|
|
Loading…
Add table
Reference in a new issue