http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53381
--- Comment #5 from dave.anglin at bell dot net 2012-05-17 00:18:46 UTC --- On 16-May-12, at 7:14 PM, bernds at gcc dot gnu.org wrote: > Ok, seriously weird call insns. If you can fix that in the port, > it'll benefit > from the optimization. Otherwise, try the following which disables > it for > targets with strange call insns. Agreed. In PIC, the runtime architecture mandates that the PIC register is saved and restored across function calls. It's been quite a few years since the current scheme was worked out. There were previous implementations where the save wasn't part of the call but there were always occasional cases where the restore was lost resulting in wrong code. Part of the problem is not all uses of the PIC register are exposed prior to reload. There are splitters to optimize things a bit after reload. I'm reluctant to change the current implementation because the situation is quite tricky. Dave -- John David Anglin dave.ang...@bell.net