summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-06-09 19:26:01 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-06-09 19:26:01 +0000
commita0746bd50aa960e100eb6a94ecded3ac15242da6 (patch)
treef783b6b0a10a1a6018417d199e43e2c090f4f2e4 /llvm/lib/CodeGen
parentaea0620b893059a0a3d7b9d8ff6a3ff0ae9eb022 (diff)
downloadbcm5719-llvm-a0746bd50aa960e100eb6a94ecded3ac15242da6.tar.gz
bcm5719-llvm-a0746bd50aa960e100eb6a94ecded3ac15242da6.zip
Allow target to place 2-address pass inserted copies in better spots. Thumb2 will use this to try to avoid breaking up IT blocks.
llvm-svn: 105745
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/TwoAddressInstructionPass.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
index 16588bf3a7a..5b7ae19e901 100644
--- a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+++ b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
@@ -1104,7 +1104,12 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
}
}
}
-
+
+ // Schedule the source copy / remat inserted to form two-address
+ // instruction. FIXME: Does it matter the distance map may not be
+ // accurate after it's scheduled?
+ TII->scheduleTwoAddrSource(prior(mi), mi, *TRI);
+
MadeChange = true;
DEBUG(dbgs() << "\t\trewrite to:\t" << *mi);
OpenPOWER on IntegriCloud