re PR rtl-optimization/93088 (Compile time hog on gcc/testsuite/gcc.target/i386/pr56348.c w/ -O3 -funroll-loops -fno-tree-dominator-opts -fno-tree-vrp)
PR rtl-optimization/93088 * loop-iv.c (find_single_def_src): Punt after looking through 128 reg copies for regs with single definitions. Move definitions to first uses. * gcc.target/i386/pr93088.c: New test. From-SVN: r279854
This commit is contained in:
parent
4d12437884
commit
5a6e28b5ba
@ -1,3 +1,10 @@
|
||||
2020-01-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/93088
|
||||
* loop-iv.c (find_single_def_src): Punt after looking through
|
||||
128 reg copies for regs with single definitions. Move definitions
|
||||
to first uses.
|
||||
|
||||
2020-01-02 Dennis Zhang <dennis.zhang@arm.com>
|
||||
|
||||
* config/arm/arm-c.c (arm_cpu_builtins): Define
|
||||
|
@ -1384,24 +1384,23 @@ simple_rhs_p (rtx rhs)
|
||||
static rtx
|
||||
find_single_def_src (unsigned int regno)
|
||||
{
|
||||
df_ref adef;
|
||||
rtx set, src;
|
||||
rtx src = NULL_RTX;
|
||||
|
||||
for (;;)
|
||||
/* Don't look through unbounded number of single definition REG copies,
|
||||
there might be loops for sources with uninitialized variables. */
|
||||
for (int cnt = 0; cnt < 128; cnt++)
|
||||
{
|
||||
rtx note;
|
||||
adef = DF_REG_DEF_CHAIN (regno);
|
||||
df_ref adef = DF_REG_DEF_CHAIN (regno);
|
||||
if (adef == NULL || DF_REF_NEXT_REG (adef) != NULL
|
||||
|| DF_REF_IS_ARTIFICIAL (adef))
|
||||
return NULL_RTX;
|
||||
|
||||
set = single_set (DF_REF_INSN (adef));
|
||||
rtx set = single_set (DF_REF_INSN (adef));
|
||||
if (set == NULL || !REG_P (SET_DEST (set))
|
||||
|| REGNO (SET_DEST (set)) != regno)
|
||||
return NULL_RTX;
|
||||
|
||||
note = find_reg_equal_equiv_note (DF_REF_INSN (adef));
|
||||
|
||||
rtx note = find_reg_equal_equiv_note (DF_REF_INSN (adef));
|
||||
if (note && function_invariant_p (XEXP (note, 0)))
|
||||
{
|
||||
src = XEXP (note, 0);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2020-01-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/93088
|
||||
* gcc.target/i386/pr93088.c: New test.
|
||||
|
||||
2020-01-03 Tobias Burnus <tobias@codesourcery.com>
|
||||
|
||||
PR fortran/92994
|
||||
|
5
gcc/testsuite/gcc.target/i386/pr93088.c
Normal file
5
gcc/testsuite/gcc.target/i386/pr93088.c
Normal file
@ -0,0 +1,5 @@
|
||||
/* PR rtl-optimization/93088 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3 -funroll-loops -fno-tree-dominator-opts -fno-tree-vrp -w" } */
|
||||
|
||||
#include "pr56348.c"
|
Loading…
Reference in New Issue
Block a user