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 rtl-optimization/37408] [4.3/4.4 regression] Invalid insn scheduling



------- Comment #5 from jakub at gcc dot gnu dot org  2008-09-09 09:08 -------
Indeed, MEM_SIZE is the cause.

--- gcc/function.c.jj   2008-09-08 09:33:51.000000000 +0200
+++ gcc/function.c      2008-09-09 10:59:15.000000000 +0200
@@ -2332,6 +2332,11 @@ assign_parm_find_stack_rtl (tree parm, s
   stack_parm = gen_rtx_MEM (data->promoted_mode, stack_parm);

   set_mem_attributes (stack_parm, parm, 1);
+  /* set_mem_attributes could set MEM_SIZE to the passed mode's size,
+     while promoted mode's size is needed.  */
+  if (data->promoted_mode != BLKmode
+      && data->promoted_mode != DECL_MODE (parm))
+    set_mem_size (stack_parm, GEN_INT (GET_MODE_SIZE (data->promoted_mode)));

   boundary = data->locate.boundary;
   align = BITS_PER_UNIT;

gives:

@@ -159,13 +159,13 @@ Fcall_process:
        ld 9,0(9)        # specpdl,
        ld 11,0(11)      # specpdl_ptr,
        addis 5,31,0x1   #,,
-       lwz 6,1492(5)    # nargs,
-       std 9,1272(5)    # specpdl.19,
-       li 9,16  # iftmp.21,
        std 3,1488(5)    # nargs, nargs
        std 4,1496(5)    # args, args
-       cmpwi 7,6,3      #, tmp309,
+       std 9,1272(5)    # specpdl.19,
        std 11,1280(5)   # specpdl_ptr.17,
+       li 9,16  # iftmp.21,
+       lwz 6,1492(5)    # nargs,
+       cmpwi 7,6,3      #, tmp309,
        ble 7,.L3        #
        addi 9,6,-2      # tmp310, tmp5,
        extsw 9,9        # tmp311, tmp310


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-09-09 09:08:23
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37408


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