Messages in this thread | | | Date | Mon, 05 Aug 2013 10:35:02 -1000 | From | Richard Henderson <> | Subject | Re: [RFC] gcc feature request: Moving blocks into sections |
| |
On 08/05/2013 09:57 AM, Jason Baron wrote: > On 08/05/2013 03:40 PM, Marek Polacek wrote: >> On Mon, Aug 05, 2013 at 11:34:55AM -0700, Linus Torvalds wrote: >>> On Mon, Aug 5, 2013 at 11:24 AM, Linus Torvalds >>> <torvalds@linux-foundation.org> wrote: >>>> Ugh. I can see the attraction of your section thing for that case, I >>>> just get the feeling that we should be able to do better somehow. >>> Hmm.. Quite frankly, Steven, for your use case I think you actually >>> want the C goto *labels* associated with a section. Which sounds like >>> it might be a cleaner syntax than making it about the basic block >>> anyway. >> FWIW, we also support hot/cold attributes for labels, thus e.g. >> >> if (bar ()) >> goto A; >> /* ... */ >> A: __attribute__((cold)) >> /* ... */ >> >> I don't know whether that might be useful for what you want or not though... >> >> Marek >> > > It certainly would be. > > That was how I wanted to the 'static_key' stuff to work, but unfortunately the > last time I tried it, it didn't move the text out-of-line any further than it > was already doing. Would that be expected? The change for us, if it worked > would be quite simple. Something like:
It is expected. One must use -freorder-blocks-and-partition, and use real profile feedback to get blocks moved completely out-of-line.
Whether that's a sensible default or not is debatable.
r~
| |