aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2012-10-29 19:26:16 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2012-10-29 19:26:16 +0000
commit2718e70e99f2114bd67bf456459f463a1709bb62 (patch)
tree9a98e3a4f5b2429c6e2b8e2c59128d0944ba0ef9
parent8fe91dea4fcf4b12f6d8bb6b0ea8510c2b9b53ce (diff)
downloadgcc-2718e70e99f2114bd67bf456459f463a1709bb62.zip
gcc-2718e70e99f2114bd67bf456459f463a1709bb62.tar.gz
gcc-2718e70e99f2114bd67bf456459f463a1709bb62.tar.bz2
re PR debug/54693 (VTA guality issues with loops)
PR debug/54693 * config/i386/i386.c (add_parameter_dependencies): Stop backward scan at the insn before the incoming head. (ix86_dependencies_evaluation_hook): Skip debug insns. Stop if first_arg is head. From-SVN: r192957
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/i386.c6
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4127b00..94dc103 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2012-10-29 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/54693
+ * config/i386/i386.c (add_parameter_dependencies): Stop
+ backward scan at the insn before the incoming head.
+ (ix86_dependencies_evaluation_hook): Skip debug insns. Stop
+ if first_arg is head.
+
2012-10-29 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64-protos.h (aarch64_load_tp): New proto.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index e0994e7..6542161 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -24478,6 +24478,8 @@ add_parameter_dependencies (rtx call, rtx head)
rtx first_arg = NULL;
bool is_spilled = false;
+ head = PREV_INSN (head);
+
/* Find nearest to call argument passing instruction. */
while (true)
{
@@ -24575,6 +24577,8 @@ ix86_dependencies_evaluation_hook (rtx head, rtx tail)
rtx first_arg = NULL;
if (reload_completed)
return;
+ while (head != tail && DEBUG_INSN_P (head))
+ head = NEXT_INSN (head);
for (insn = tail; insn != head; insn = PREV_INSN (insn))
if (INSN_P (insn) && CALL_P (insn))
{
@@ -24603,6 +24607,8 @@ ix86_dependencies_evaluation_hook (rtx head, rtx tail)
}
}
insn = first_arg;
+ if (insn == head)
+ break;
}
}
else if (first_arg)