OSDN Git Service

[NVPTX] Disable vector registers
authorJustin Holewinski <jholewinski@nvidia.com>
Tue, 12 Feb 2013 14:18:49 +0000 (14:18 +0000)
committerJustin Holewinski <jholewinski@nvidia.com>
Tue, 12 Feb 2013 14:18:49 +0000 (14:18 +0000)
commit7eacad03efda36e09ebd96e95d7891cadaaa9087
treec66658286eca956701f8334550a8edefe236b468
parentc8a196ae8fad3cba7a777e2e7916fd36ebf70fe6
[NVPTX] Disable vector registers

Vectors were being manually scalarized by the backend.  Instead,
let the target-independent code do all of the work.  The manual
scalarization was from a time before good target-independent support
for scalarization in LLVM. However, this forces us to specially-handle
vector loads and stores, which we can turn into PTX instructions that
produce/consume multiple operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174968 91177308-0d34-0410-b5e6-96231b3b80d8
19 files changed:
include/llvm/IR/IntrinsicsNVVM.td
lib/Target/NVPTX/CMakeLists.txt
lib/Target/NVPTX/NVPTX.h
lib/Target/NVPTX/NVPTXAsmPrinter.cpp
lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
lib/Target/NVPTX/NVPTXISelDAGToDAG.h
lib/Target/NVPTX/NVPTXISelLowering.cpp
lib/Target/NVPTX/NVPTXISelLowering.h
lib/Target/NVPTX/NVPTXInstrInfo.cpp
lib/Target/NVPTX/NVPTXInstrInfo.td
lib/Target/NVPTX/NVPTXIntrinsics.td
lib/Target/NVPTX/NVPTXRegisterInfo.cpp
lib/Target/NVPTX/NVPTXRegisterInfo.h
lib/Target/NVPTX/NVPTXRegisterInfo.td
lib/Target/NVPTX/NVPTXSubtarget.h
lib/Target/NVPTX/NVPTXTargetMachine.cpp
lib/Target/NVPTX/VectorElementize.cpp [deleted file]
lib/Target/NVPTX/gen-register-defs.py [deleted file]
test/CodeGen/NVPTX/vector-loads.ll [new file with mode: 0644]