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

--- Comment #1 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
(In reply to Jiu Fu Guo from comment #0)
> For below code:
> ```
> typedef struct teststruct
> {
>   double d;
>   int arr[15]; /* for ppc64le example foo1, 14: foo is just blr. 15: foo has
> 8 'std's */
> } teststruct;

Here, if the code is "int arr[14];", the struct is just passed via registers
(in foo function); and in the expander pass, they are stored to frame area. 
If the code is "int arr[15];",  the struct is passed through registers
partially, and the other partial is through memory; and in the expander pass,
they are stored to the area which is pointed via arg pointer.

In DSE pass, the 'dead' stores to 'frame' can be eliminated.

Reply via email to