Messages in this thread | | | From | Andy Lutomirski <> | Date | Wed, 14 Feb 2018 17:21:55 +0000 | Subject | Re: clang asm-goto support (Was Re: [PATCH v2] x86/retpoline: Add clang support) |
| |
On Wed, Feb 14, 2018 at 3:31 PM, James Y Knight <jyknight@google.com> wrote: > I'd be definitely in favor having clang support asm goto. I wouldn't > want to exclude having other conversations about how to more directly > provide compiler features that the linux kernel could use, ALSO, but I > do not think that conversation should block implementing asm-goto. > > IMO, inline asm is, generally, a valuable feature to provide in the > compiler as an escape hatch, and asm goto is a relatively sane > extension of it. Supporting outgoing edges from an inline asm block is > a reasonable thing for users to desire, and as far as anyone's said so > far, seems like it ought to be fairly easily implementable, without > causing bad side-effects in the compiler. > > Of course, we generally do want to minimize the need for users to use > inline asm, by providing appropriate compiler support for the features > people would otherwise be forced to implement using asm. But I don't > see that as really any more important for asm-goto than any other > inline asm. There will always be a desire for escape hatches, to do > weird and unique things which aren't supported directly in the > compiler. (Also, the kernel is a pretty special case in terms of its > requirements, it seems exceedingly unlikely that we could ever provide > enough compiler support to let it eliminate inline asm.). >
If clang implements asm goto, could you also pretty please make it better than GCC and support output constraints in the same asm statements? This would give us a very clean, short, and fast implementation for __get_user() and __put_user(), and it would also help put pressure on GCC to implement the same feature.
| |