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]

Re: arm-elf bad code generation



pb@labs.futuretv.com said:
> In message <200008221508.QAA11498@cam-mail2.cambridge.arm.com>, Richard Earnshaw writes:
> >Hmm, arm_expand_prologue inserts the following CLOBBER which is supposed 
> >to prevent moves across this point.  The question is, why doesn't it?  
> >Maybe it's an alias set problem, but I don't know the details of how that 
> >works.
> 
> Well, the CLOBBER certainly does get generated.  In the .21.ce2 dump I see:

Ok, and both that and the subsequent stack write appear to be in alias set 
0, so why is the scheduler re-ordering them?


> (insn 441 440 442 (clobber (mem:BLK (reg:SI 13 sp) 0)) -1 (nil)
>     (nil))
> 
...

> (insn 382 25 6 (set (mem:SI (plus:SI (reg:SI 11 fp)
>                 (const_int -56 [0xffffffc8])) 0)
>         (reg:SI 12 ip)) 172 {*arm_movsi_insn} (insn_list 25 (nil))
>     (nil))
> 
> (insn 6 382 50 (set (mem:SI (plus:SI (reg:SI 11 fp)
>                 (const_int -44 [0xffffffd4])) 0)
>         (reg:SI 1 r1)) 172 {*arm_movsi_insn} (nil)
>     (expr_list:REG_DEAD (reg:SI 1 r1)
>         (nil)))
> 




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