re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)
2019-03-22 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/89676 * lra-constraints.c (curr_insn_transform): Do match reload for early clobbers even if the match was successful. 2019-03-22 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/89676 * gcc.target/i386/pr89676.c: New. From-SVN: r269878
This commit is contained in:
parent
eca5f9254b
commit
c07a0a226b
4 changed files with 35 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR rtl-optimization/89676
|
||||
* lra-constraints.c (curr_insn_transform): Do match reload for
|
||||
early clobbers even if the match was successful.
|
||||
|
||||
2019-03-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/87481
|
||||
|
|
|
@ -4256,6 +4256,20 @@ curr_insn_transform (bool check_only_p)
|
|||
|| MEM_P (SET_DEST (curr_insn_set))
|
||||
|| GET_CODE (SET_DEST (curr_insn_set)) == SUBREG))))
|
||||
optional_p = true;
|
||||
else if (goal_alt_matched[i][0] != -1
|
||||
&& curr_static_id->operand[i].type == OP_OUT
|
||||
&& (curr_static_id->operand_alternative
|
||||
[goal_alt_number * n_operands + i].earlyclobber))
|
||||
{
|
||||
/* Generate reloads for output and matched inputs. This
|
||||
is the easiest way to avoid creation of non-existing
|
||||
conflicts in lra-lives.c. */
|
||||
match_reload (i, goal_alt_matched[i], outputs, goal_alt[i], &before,
|
||||
&after, TRUE);
|
||||
outputs[n_outputs++] = i;
|
||||
outputs[n_outputs] = -1;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR rtl-optimization/89676
|
||||
* gcc.target/i386/pr89676.c: New.
|
||||
|
||||
2019-03-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/60702
|
||||
|
|
10
gcc/testsuite/gcc.target/i386/pr89676.c
Normal file
10
gcc/testsuite/gcc.target/i386/pr89676.c
Normal file
|
@ -0,0 +1,10 @@
|
|||
/* PR rtl-optimization/89676 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -m32 -march=i686" } */
|
||||
unsigned long long
|
||||
foo (unsigned long long i)
|
||||
{
|
||||
return i << 3;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "movl" 2 } } */
|
Loading…
Add table
Reference in a new issue