summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2014-07-21 16:55:33 +0000
committerTom Stellard <thomas.stellard@amd.com>2014-07-21 16:55:33 +0000
commit1aaad6970cee96c214cc663bc7ae2cecb6fd1e7c (patch)
treefa24d65509767cb9ac91843d7c3d5c4e4644bc37 /llvm/lib/Target/R600/AMDGPUTargetMachine.cpp
parentced7b43a064c696a98fd6f2a0a8e972a07e4cdeb (diff)
downloadbcm5719-llvm-1aaad6970cee96c214cc663bc7ae2cecb6fd1e7c.tar.gz
bcm5719-llvm-1aaad6970cee96c214cc663bc7ae2cecb6fd1e7c.zip
R600/SI: Add instruction shrinking pass
This pass converts 64-bit instructions to 32-bit when possible. llvm-svn: 213561
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/R600/AMDGPUTargetMachine.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp b/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp
index 23beb2576ac..56ba719e686 100644
--- a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp
@@ -176,6 +176,7 @@ bool AMDGPUPassConfig::addPreRegAlloc() {
// SIFixSGPRCopies can generate a lot of duplicate instructions,
// so we need to run MachineCSE afterwards.
addPass(&MachineCSEID);
+ addPass(createSIShrinkInstructionsPass());
initializeSIFixSGPRLiveRangesPass(*PassRegistry::getPassRegistry());
insertPass(&RegisterCoalescerID, &SIFixSGPRLiveRangesID);
}
@@ -185,6 +186,7 @@ bool AMDGPUPassConfig::addPreRegAlloc() {
bool AMDGPUPassConfig::addPostRegAlloc() {
const AMDGPUSubtarget &ST = TM->getSubtarget<AMDGPUSubtarget>();
+ addPass(createSIShrinkInstructionsPass());
if (ST.getGeneration() > AMDGPUSubtarget::NORTHERN_ISLANDS) {
addPass(createSIInsertWaits(*TM));
}
OpenPOWER on IntegriCloud