Re: [PATCH 20/22] x86,word-at-a-time: Remove .fixup usage

From: Segher Boessenkool
Date: Wed Nov 10 2021 - 07:18:12 EST


Hi!

On Tue, Nov 09, 2021 at 10:07:36PM +0100, Peter Zijlstra wrote:
> On Tue, Nov 09, 2021 at 11:22:44AM -0800, Nick Desaulniers wrote:
> > I think the use of this feature (label-attributes) here isn't
> > necessary though; because of the use of outputs, the "fallthrough"
> > basic block needs to be placed immediately after the basic block
> > terminated by the asm goto, at least in LLVM. Was different ordering
> > of basic blocks observed with GCC without this label attribute?
>
> GCC does the same, but I wanted to have the exception stuff be in
> .text.cold, but alas it doesn't do that. I left the attribute because of
> it's descriptive value.
>
> > Unless the cold attribute is helping move
> > ("shrink-wrap"?)

Shrink-wrapping is something else entirely.

>> the basic block to a whole other section
> > (.text.cold.)?
>
> I was hoping it would do that, but it doesn't on gcc-11.

A cold basic block can never dominate a non-cold basic block. GCC will
fix things up when it notices this property is violated, so marking
random blocks as "cold" will not be very effective.


Segher