On Sun, Jun 6, 2021 at 11:43 AM Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx> wrote: > > You truly should have written a branch in tthe asm if you truly wanted > a branch instruction. That's exactly what I don't want to do, and what the original patch by PeterZ did. Why? Because then we need to write that stupid pointless branch for every single architecture. And to work well, it needs "asm goto", which is so recent that a lot of compilers don't support it (thank God for clang dragging gcc kicking and screaming to implement it at all - I'd asked for it over a decade ago). So you get bad code generation in a lot of cases, which entirely obviates the _point_ of this all - which is that we can avoid an expensive operation (a memory barrier) by just doing clever code generation. So if we can't get the clever code generation, it's all pretty much moot, imnsho. A working barrier "just fixes it". I suspect the best we can do is to just work around the gcc badness with that __COUNTER__ trick of mine. The lack of a reliable comment character is the biggest issue with that trick. Linus