]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR debug/54693
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Oct 2012 19:26:16 +0000 (19:26 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Oct 2012 19:26:16 +0000 (19:26 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192957 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c

index 4127b00b7b7cd55f1f5b186cbca81e5f2c5e73ed..94dc1035bbfcdd5b0b1bd688220e093a23c8bb69 100644 (file)
@@ -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.
index e0994e72ff66d237246aa416e6ee64a190df3ec4..6542161b8b77a36d8bcc53b8286a392f607d7885 100644 (file)
@@ -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)