[llvm-commits] [llvm] r43191 - in /llvm/trunk: lib/CodeGen/BranchFolding.cpp test/CFrontend/2007-10-15-VoidPtr.c test/Transforms/BranchFolding/ test/Transforms/BranchFolding/2007-10-19-InlineAsmDirectives.ll

Chris Lattner clattner at apple.com
Sat Oct 20 10:29:22 PDT 2007


On Oct 20, 2007, at 2:02 AM, Bill Wendling wrote:

> On Oct 20, 2007, at 1:53 AM, Duncan Sands wrote:
>
>>> Don't branch fold inline asm statements.
>>
>> I'm curious to know why not...  I didn't understand the
>> problem with the testcase.
>>
> There are a few projects that depend upon a specific ordering of asm
> directives. Chris and I believe that they're going about it wrongly
> -- i.e., they shouldn't be relying upon asm blocks not being moved   
> around. However, in the meantime, this will work for them.

This is just a really ugly compatibility hack.  Apparently GCC  
doesn't do cross jumping of inline asm statements as much as we do,  
and we've hit a significant body of code that depends on this not  
happening.

The code in question is clearly broken, but at this point, I think  
it's important for LLVM to be "bug compatible" with GCC if it doesn't  
cost much.  In this case, we only lose tail merging of inline asm  
statements, which impacts code size but not performance.

Bill, can you please put a big fixme above that, describing the issue  
in a sentence or two?

Thanks,

-Chris





More information about the llvm-commits mailing list