(assign_parms): Set MEM_IN_STRUCT_P right in stack slots.
authorRichard Stallman <rms@gnu.org>
Sat, 19 Sep 1992 04:46:22 +0000 (04:46 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 19 Sep 1992 04:46:22 +0000 (04:46 +0000)
From-SVN: r2157

gcc/function.c

index 753931d67d91f9c446ad0d1d999ef5b9ee2f96bc..dbc90043d7ff1e6089c2e27a351e3858e67f2c10 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));
            }