This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] enable fdpic targets/emulations for sh*-*-linux*


On Sun, 2015-10-04 at 22:02 -0400, Rich Felker wrote:
> On Sun, Oct 04, 2015 at 03:42:20AM -0500, Segher Boessenkool wrote:
> > On Sun, Oct 04, 2015 at 12:32:54PM +0900, Oleg Endo wrote:
> > > > I think we should focus on the big performance problem that would make
> > > > a much much bigger difference: very bad codegen by gcc. Aside from
> > > > lack of shrink-wrapping, poor hanling of the PIC register (like the
> > > > way x86 used to handle %ebx, as permanently-reserved and unusable)
> > > > stands out at something that needs to be fixed.
> > > 
> > > Shrink wrapping is being done for all backends.  In fact, it has been
> > > improved recently.  Of course there could be some SH specific cases
> > > which aren't optimized well.  Please open PRs in GCC's bugzilla for
> > > issues with the compiler.
> > 
> > If the prologue sets up a register that is used pretty much everywhere
> > (like a PIC register) we cannot shrink-wrap much.  After shrink-wrapping
> > you always still have a single prologue (and epilogue).
> > 
> > Your problem might be different; I can't tell without examples.
> 
> Indeed, this is my concern. Shrink-wrapping cannot be effective until
> all hard-coded prologue/epilogue logic (and fixed register use for GOT
> registers, frame pointers, etc.) is eliminated and replaced by
> representing it as proper patterns/constraints that the compiler can
> manipulate. Right now we have prologue logic like "if anything in the
> function uses the GOT, emit GOT register setup in the prologue".

Please open a GCC bugzilla PR for this.

Cheers,
Oleg


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