[SystemZ] TargetTransformInfo cost functions implemented.
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>
Wed, 12 Apr 2017 11:49:08 +0000 (11:49 +0000)
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>
Wed, 12 Apr 2017 11:49:08 +0000 (11:49 +0000)
commitfccc7d66c3baf6e80a80b40bf7af640b500ef112
tree810267aff8342234b15a2f182b899c32f716a997
parent4ed589d8d6c00dd8e2b05ea4405ae948ac86477b
[SystemZ]  TargetTransformInfo cost functions implemented.

getArithmeticInstrCost(), getShuffleCost(), getCastInstrCost(),
getCmpSelInstrCost(), getVectorInstrCost(), getMemoryOpCost(),
getInterleavedMemoryOpCost() implemented.

Interleaved access vectorization enabled.

BasicTTIImpl::getCastInstrCost() improved to check for legal extending loads,
in which case the cost of the z/sext instruction becomes 0.

Review: Ulrich Weigand, Renato Golin.
https://reviews.llvm.org/D29631

llvm-svn: 300052
34 files changed:
llvm/include/llvm/Analysis/TargetTransformInfo.h
llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
llvm/include/llvm/CodeGen/BasicTTIImpl.h
llvm/lib/Analysis/CostModel.cpp
llvm/lib/Analysis/TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
llvm/lib/Target/ARM/ARMTargetTransformInfo.h
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/lib/Target/X86/X86TargetTransformInfo.h
llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
llvm/lib/Transforms/Vectorize/BBVectorize.cpp
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
llvm/test/Analysis/CostModel/SystemZ/cmp-ext.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/cmpsel.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/ext-load.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/fp-arith.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/fp-cast.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/int-arith.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/int-cast.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/load_store.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/logical.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/memop-folding-int-arith.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/scalar-cmp-cmp-log-sel.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/shuffle.ll [new file with mode: 0644]
llvm/test/Analysis/CostModel/SystemZ/vectorinstrs.ll [new file with mode: 0644]
llvm/test/Transforms/LoopVectorize/SystemZ/mem-interleaving-costs.ll [new file with mode: 0644]