(assign_parms): Set MEM_IN_STRUCT_P right in stack slots.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Sep 1992 04:46:22 +0000 (04:46 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 19 Sep 1992 04:46:22 +0000 (04:46 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2157 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/function.c

index 753931d..dbc9004 100644 (file)
@@ -2859,8 +2859,14 @@ assign_parms (fndecl, second_time)
                 if it becomes a problem.  */
 
              if (stack_parm == 0)
-               stack_parm
-                 = assign_stack_local (GET_MODE (entry_parm), size_stored, 0);
+               {
+                 stack_parm
+                   = assign_stack_local (GET_MODE (entry_parm), size_stored, 0);
+                 /* If this is a memory ref that contains aggregate components,
+                    mark it as such for cse and loop optimize.  */
+                 MEM_IN_STRUCT_P (stack_parm) = aggregate;
+               }
+
              else if (PARM_BOUNDARY % BITS_PER_WORD != 0)
                abort ();
 
@@ -2989,8 +2995,15 @@ assign_parms (fndecl, second_time)
          if (entry_parm != stack_parm)
            {
              if (stack_parm == 0)
-               stack_parm = assign_stack_local (GET_MODE (entry_parm),
-                                                GET_MODE_SIZE (GET_MODE (entry_parm)), 0);
+               {
+                 stack_parm
+                   = assign_stack_local (GET_MODE (entry_parm),
+                                         GET_MODE_SIZE (GET_MODE (entry_parm)), 0);
+                 /* If this is a memory ref that contains aggregate components,
+                    mark it as such for cse and loop optimize.  */
+                 MEM_IN_STRUCT_P (stack_parm) = aggregate;
+               }
+
              emit_move_insn (validize_mem (stack_parm),
                              validize_mem (entry_parm));
            }