[llvm-commits] [llvm] r171469 - in /llvm/trunk: include/llvm/Target/TargetTransformImpl.h include/llvm/TargetTransformInfo.h lib/Target/TargetTransformImpl.cpp lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86ISelLowering.h lib/Transforms/Vectorize/LoopVectorize.cpp lib/Transforms/Vectorize/LoopVectorize.h test/Transforms/LoopVectorize/X86/gcc-examples.ll test/Transforms/LoopVectorize/gcc-examples.ll

Nadav Rotem nrotem at apple.com
Fri Jan 4 10:24:32 PST 2013

>> +}
> Can't we get this from the generic TLI code? As I recall, you tried to get register information into VTTI at one point, but had to back it out because of shared-library linking problems. We should really investigate that again.

I looked at this together with Jakob and it looks difficult to do. Here is an example of why it is difficult. On x86 32bit systems we still have 16 registers, but we mark them as reserved. This means that VTTI would have to go through all of the registers (and sub registers) and figure out which registers are available.    

> This is great, but please move it elsewhere. I'd like to use this in the regular unroller (among other places). Also, we'll need to differentiate different register types (at least vector registers from scalar registers) -- I've taken only a quick look, but this does not seem to do that.

Yes, we should do it. Maybe it should be in the cost model analysis ?  At the moment it does not distinguish between vector and scalar registers. 

> Thanks again,
> Hal

More information about the llvm-commits mailing list