diff options
author | Jingyue Wu <jingyue@google.com> | 2015-06-24 20:20:16 +0000 |
---|---|---|
committer | Jingyue Wu <jingyue@google.com> | 2015-06-24 20:20:16 +0000 |
commit | 9c71150bfbe4cf452c54b9d42436fa90905d0a87 (patch) | |
tree | d88d645d7f90ed0e7650a7d8d27e1c98c0499713 /llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp | |
parent | a9e77abc6830bba7aa5a4974e09372caca3be32c (diff) | |
download | bcm5719-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.cpp | 2 |
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; } |