Refactor the VectorTargetTransformInfo interface.
authorNadav Rotem <nrotem@apple.com>
Fri, 26 Oct 2012 23:49:28 +0000 (23:49 +0000)
committerNadav Rotem <nrotem@apple.com>
Fri, 26 Oct 2012 23:49:28 +0000 (23:49 +0000)
commitafae78edabfdbe187c5f4d6d41bfe17003196b87
tree85d9c182fd1cd93b7d88c213a82fc223b173da33
parent1f06e7f00e9b3f9e769f0e4b2c0020920af33ed3
Refactor the VectorTargetTransformInfo interface.

Add getCostXXX calls for different families of opcodes, such as casts, arithmetic, cmp, etc.

Port the LoopVectorizer to the new API.

The LoopVectorizer now finds instructions which will remain uniform after vectorization. It uses this information when calculating the cost of these instructions.

llvm-svn: 166836
llvm/include/llvm/Target/TargetLowering.h
llvm/include/llvm/Target/TargetTransformImpl.h
llvm/include/llvm/TargetTransformInfo.h
llvm/lib/Target/TargetTransformImpl.cpp
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/X86/cost-model.ll