diff options
author | Christopher Lamb <christopher.lamb@gmail.com> | 2007-07-26 08:18:32 +0000 |
---|---|---|
committer | Christopher Lamb <christopher.lamb@gmail.com> | 2007-07-26 08:18:32 +0000 |
commit | bab2474b64e81be0ed4fc35d16cdfac65f283361 (patch) | |
tree | 1d40ee8087365cadd4070d9bd6c73984c3bd8a0a /include | |
parent | e24f8f1ec9277dc80ebf38f0d914053f8c31caf1 (diff) | |
download | llvm-bab2474b64e81be0ed4fc35d16cdfac65f283361.tar.gz llvm-bab2474b64e81be0ed4fc35d16cdfac65f283361.tar.bz2 llvm-bab2474b64e81be0ed4fc35d16cdfac65f283361.tar.xz |
Add a MachineFunction pass, which runs post register allocation, that turns subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40521 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/Passes.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/Passes.h b/include/llvm/CodeGen/Passes.h index eda6a5dc8b..290e86f37e 100644 --- a/include/llvm/CodeGen/Passes.h +++ b/include/llvm/CodeGen/Passes.h @@ -88,6 +88,12 @@ namespace llvm { /// and eliminates abstract frame references. /// FunctionPass *createPrologEpilogCodeInserter(); + + /// LowerSubregs Pass - This pass lowers subregs to register-register copies + /// which yields suboptimial, but correct code if the register allocator + /// cannot coalesce all subreg operations during allocation. + /// + FunctionPass *createLowerSubregsPass(); /// createPostRAScheduler - under development. FunctionPass *createPostRAScheduler(); |