This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/63573] [5 Regression] libgo: ICE building libgo on powerpc-linux-gnu


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63573

--- Comment #8 from Jan Hubicka <hubicka at ucw dot cz> ---
There is a pasto in the previous patch.  This is what I am testing.

Index: calls.c
===================================================================
--- calls.c    (revision 216942)
+++ calls.c    (working copy)
@@ -1210,6 +1211,15 @@ initialize_argument_information (int num
           && TREE_CODE (base) != SSA_NAME
           && (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
         {
+          /* Argument setup code may have copied the value to register.  We
+         that optimization now because the tail call code must use
+         the original location.  */
+          if (TREE_CODE (args[i].tree_value) == PARM_DECL
+          && !MEM_P (DECL_RTL (args[i].tree_value))
+          && DECL_INCOMING_RTL (args[i].tree_value)
+          && MEM_P (DECL_INCOMING_RTL (args[i].tree_value)))
+        set_decl_rtl (args[i].tree_value, DECL_INCOMING_RTL
(args[i].tree_value));
+
           mark_addressable (args[i].tree_value);

           /* We can't use sibcalls if a callee-copied argument is


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]