summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
diff options
context:
space:
mode:
authorJingyue Wu <jingyue@google.com>2015-06-24 20:20:16 +0000
committerJingyue Wu <jingyue@google.com>2015-06-24 20:20:16 +0000
commit9c71150bfbe4cf452c54b9d42436fa90905d0a87 (patch)
treed88d645d7f90ed0e7650a7d8d27e1c98c0499713 /llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
parenta9e77abc6830bba7aa5a4974e09372caca3be32c (diff)
downloadbcm5719-llvm-9c71150bfbe4cf452c54b9d42436fa90905d0a87.tar.gz
bcm5719-llvm-9c71150bfbe4cf452c54b9d42436fa90905d0a87.zip
Add NVPTXPeephole pass to reduce unnecessary address cast
Summary: This patch first change the register that holds local address for stack frame to %SPL. Then the new NVPTXPeephole pass will try to scan the following pattern %vreg0<def> = LEA_ADDRi64 <fi#0>, 4 %vreg1<def> = cvta_to_local %vreg0 and transform it into %vreg1<def> = LEA_ADDRi64 %VRFrameLocal, 4 Patched by Xuetian Weng Test Plan: test/CodeGen/NVPTX/local-stack-frame.ll Reviewers: jholewinski, jingyue Reviewed By: jingyue Subscribers: eliben, jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D10549 llvm-svn: 240587
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
index c071ee82abc..dc3e34f9647 100644
--- a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
@@ -205,6 +205,8 @@ bool NVPTXPassConfig::addInstSelector() {
if (!ST.hasImageHandles())
addPass(createNVPTXReplaceImageHandlesPass());
+ addPass(createNVPTXPeephole());
+
return false;
}
OpenPOWER on IntegriCloud