On Tue, Feb 07, 2023 at 09:37:37AM -0700, Nathan Chancellor wrote:
Clang does its semantic analysis before optimization, so it cannot dead code eliminate that chunk before it checks the validity of the asm constraints, that is just how the pipeline is structured as far as I understand it. That is one of the biggest and longest standing differences between clang and GCC that we know about, the upstream link in the issue below has some more info.
https://github.com/ClangBuiltLinux/linux/issues/3
I am not super familiar with the internal details of LLVM and clang as other folks are though so I could be wrong or missing something :)
Thanks and wow, that's issue #3. Like wow that's old. And reading Nick's text, it sure does sound like that's the one.
Fun.