[llvm-commits] [llvm] r80184 - in /llvm/trunk: lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrInfo.td test/CodeGen/X86/select-i8.ll test/CodeGen/X86/subclass-coalesce.ll

Chris Lattner clattner at apple.com
Wed Aug 26 20:09:06 PDT 2009


On Aug 26, 2009, at 5:14 PM, Dan Gohman wrote:

> Author: djg
> Date: Wed Aug 26 19:14:12 2009
> New Revision: 80184
>
> URL: http://llvm.org/viewvc/llvm-project?rev=80184&view=rev
> Log:
> Expand i8 selects into control flow instead of 16-bit conditional
> moves. This avoids the need to promote the operands (or implicitly
> extend them, a partial register update condition), and can reduce
> i8 register pressure. This substantially speeds up code such as
> write_hex in lib/Support/raw_ostream.cpp.

Ah, great solution!  One random architecture question: do you have any  
thoughts on how we could someday generalize and share the "diamond  
insertion" code for select across targets?  Right now, every target  
that does this has its own copy of the code.

-Chris




More information about the llvm-commits mailing list