aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-11-14 01:57:53 +0000
committerChris Lattner <sabre@nondot.org>2006-11-14 01:57:53 +0000
commit9b62b458c5eaf83b9dd1e5d79d3c0e0ca6d755c6 (patch)
tree5b5d19d5a92da757c28c56b13bd813430699db16
parent2fe4bf453b433cfe7113e282a59bf0f1e7fb0195 (diff)
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31719 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/README.txt16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt
index 18cd4f66f2..23874b7be8 100644
--- a/lib/Target/README.txt
+++ b/lib/Target/README.txt
@@ -16,6 +16,22 @@ We should make the following changes to clean up MachineInstr:
//===---------------------------------------------------------------------===//
+With the recent changes to make the implicit def/use set explicit in
+machineinstrs, we should change the target descriptions for 'call' instructions
+so that the .td files don't list all the call-clobbered registers as implicit
+defs. Instead, these should be added by the code generator (e.g. on the dag).
+
+This has a number of uses:
+
+1. PPC32/64 and X86 32/64 can avoid having multiple copies of call instructions
+ for their different impdef sets.
+2. Targets with multiple calling convs (e.g. x86) which have different clobber
+ sets don't need copies of call instructions.
+3. 'Interprocedural register allocation' can be done to reduce the clobber sets
+ of calls.
+
+//===---------------------------------------------------------------------===//
+
FreeBench/mason contains code like this:
static p_type m0u(p_type p) {