Commit 27ea9e06 by Uros Bizjak

re PR target/57106 (-fcompare-debug failure with -O2 -fschedule-insns -funroll-all-loops)

	PR target/57106
	* config/i386/i386.c (add_parameter_dependencies): Add dependence
	between "first_arg" and "insn", not "last" and "insn".

testsuite/ChangeLog:

	PR target/57106
	* gcc.target/i386/pr57106.c: New test.

From-SVN: r198629
parent 28708525
...@@ -24662,7 +24662,7 @@ add_parameter_dependencies (rtx call, rtx head) ...@@ -24662,7 +24662,7 @@ add_parameter_dependencies (rtx call, rtx head)
/* Add output depdendence between two function arguments if chain /* Add output depdendence between two function arguments if chain
of output arguments contains likely spilled HW registers. */ of output arguments contains likely spilled HW registers. */
if (is_spilled) if (is_spilled)
add_dependence (last, insn, REG_DEP_OUTPUT); add_dependence (first_arg, insn, REG_DEP_OUTPUT);
first_arg = last = insn; first_arg = last = insn;
} }
else else
...@@ -41355,7 +41355,8 @@ ix86_enum_va_list (int idx, const char **pname, tree *ptree) ...@@ -41355,7 +41355,8 @@ ix86_enum_va_list (int idx, const char **pname, tree *ptree)
#undef TARGET_SCHED_ADJUST_PRIORITY #undef TARGET_SCHED_ADJUST_PRIORITY
#define TARGET_SCHED_ADJUST_PRIORITY ix86_adjust_priority #define TARGET_SCHED_ADJUST_PRIORITY ix86_adjust_priority
#undef TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK #undef TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK
#define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK ix86_dependencies_evaluation_hook #define TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK \
ix86_dependencies_evaluation_hook
/* The size of the dispatch window is the total number of bytes of /* The size of the dispatch window is the total number of bytes of
object code allowed in a window. */ object code allowed in a window. */
/* { dg-do compile } */
/* { dg-options "-O2 -fschedule-insns -funroll-all-loops -fcompare-debug" } */
typedef void block128_f (int *, int);
void
foo (int *out, int *iv, block128_f block)
{
while (1)
{
*out = *out ^ *iv;
block (out, *out);
iv = out;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment