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, 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".

Rich


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