[NVPTX] declare no vector registers
authorJingyue Wu <jingyue@google.com>
Fri, 10 Jul 2015 04:31:56 +0000 (04:31 +0000)
committerJingyue Wu <jingyue@google.com>
Fri, 10 Jul 2015 04:31:56 +0000 (04:31 +0000)
commitdde12814c74139bac8dfee3e75abc63c00ebe859
treeff4eb4e8d025f42b38bbc36e835bcdd01f1444e7
parentb4eeb6bca5f9037af0c319036e558ba08f18ee3d
[NVPTX] declare no vector registers

Summary:
Without this patch, LoopVectorizer in certain cases (see loop-vectorize.ll)
produces code with complex control flow which hurts later optimizations. Since
NVPTX doesn't have vector registers in LLVM's sense
(NVPTXTTI::getRegisterBitWidth(true) == 32), we for now declare no vector
registers to effectively disable loop vectorization.

Reviewers: jholewinski

Subscribers: jingyue, llvm-commits, jholewinski

Differential Revision: http://reviews.llvm.org/D11089

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241884 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
lib/Target/NVPTX/NVPTXTargetTransformInfo.h
test/CodeGen/NVPTX/loop-vectorize.ll [new file with mode: 0644]