On Mon, Sep 09, 2019 at 04:32:39PM -0400, Michael Meissner wrote: > On Fri, Sep 06, 2019 at 07:09:45AM -0500, Segher Boessenkool wrote: > > On Wed, Sep 04, 2019 at 01:26:27PM -0400, Michael Meissner wrote: > > > > [snip] > > > > > So to keep other passes from 'improving' things, I opted to do the pass > > > as the > > > last pass before final. > > > > If the problem is that you do not properly analyse dependencies between > > insns, well, fix that? > > > > If this really needs to be done after everything else GCC does, that is > > problematic. What when you have two or more passes with that property? > > > > If this really needs to be done after everything else GCC does, does it > > belong in the compiler at all? Should the assembler do it instead, or > > the linker? > > No, with the definition of the PCREL_OPT there can be only one reference.
I don't see why you think that argues for having to do it last? > Yeah, there might be other ways to do it, but fundamentally you need to do > this > as late as possible and prevent any other optimizations from messing things > up. That is true for *everything*. You haven't addressed the "if it should be after everything the compiler does, does this belong in the compiler at all" question. Segher