summaryrefslogtreecommitdiff
path: root/lib/CodeGen/PrologEpilogInserter.h
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2009-09-24 23:52:18 +0000
committerJim Grosbach <grosbach@apple.com>2009-09-24 23:52:18 +0000
commit3d6cb88a64fe67064de206405951eb326d86fc0c (patch)
treea5981a4064d04f8b16464ca64c9781e21bb383be /lib/CodeGen/PrologEpilogInserter.h
parent2bbcd33febc8b9d40ff62ff2f7fff9d025660ad4 (diff)
downloadllvm-3d6cb88a64fe67064de206405951eb326d86fc0c.tar.gz
llvm-3d6cb88a64fe67064de206405951eb326d86fc0c.tar.bz2
llvm-3d6cb88a64fe67064de206405951eb326d86fc0c.tar.xz
Start of revamping the register scavenging in PEI. ARM Thumb1 is the driving
interest for this, as it currently reserves a register rather than using the scavenger for matierializing constants as needed. Instead of scavenging registers on the fly while eliminating frame indices, new virtual registers are created, and then a scavenged collectively in a post-pass over the function. This isolates the bits that need to interact with the scavenger, and sets the stage for more intelligent use, and reuse, of scavenged registers. For the time being, this is disabled by default. Once the bugs are worked out, the current scavenging calls in replaceFrameIndices() will be removed and the post-pass scavenging will be the default. Until then, -enable-frame-index-scavenging enables the new code. Currently, only the Thumb1 back end is set up to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82734 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/PrologEpilogInserter.h')
-rw-r--r--lib/CodeGen/PrologEpilogInserter.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/CodeGen/PrologEpilogInserter.h b/lib/CodeGen/PrologEpilogInserter.h
index b143554e80..d0a68e19a2 100644
--- a/lib/CodeGen/PrologEpilogInserter.h
+++ b/lib/CodeGen/PrologEpilogInserter.h
@@ -123,6 +123,7 @@ namespace llvm {
void insertCSRSpillsAndRestores(MachineFunction &Fn);
void calculateFrameObjectOffsets(MachineFunction &Fn);
void replaceFrameIndices(MachineFunction &Fn);
+ void scavengeFrameVirtualRegs(MachineFunction &Fn);
void insertPrologEpilogCode(MachineFunction &Fn);
// Initialize DFA sets, called before iterations.