diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-11-05 01:19:35 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-11-05 01:19:35 +0000 |
commit | 54097836f31660bd5e84c34ee8c92d237844315f (patch) | |
tree | 3cade5142826b0a99e1ffd48b60cfcffdf1b5747 /lib/CodeGen/AggressiveAntiDepBreaker.h | |
parent | 090780be1c94163ad7cb9368fdb1b23714b2518e (diff) | |
download | external_llvm-54097836f31660bd5e84c34ee8c92d237844315f.zip external_llvm-54097836f31660bd5e84c34ee8c92d237844315f.tar.gz external_llvm-54097836f31660bd5e84c34ee8c92d237844315f.tar.bz2 |
Break anti-dependencies using free registers in a round-robin manner to avoid introducing new anti-dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86098 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AggressiveAntiDepBreaker.h')
-rw-r--r-- | lib/CodeGen/AggressiveAntiDepBreaker.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/AggressiveAntiDepBreaker.h b/lib/CodeGen/AggressiveAntiDepBreaker.h index 5d9b40b..c512168 100644 --- a/lib/CodeGen/AggressiveAntiDepBreaker.h +++ b/lib/CodeGen/AggressiveAntiDepBreaker.h @@ -155,6 +155,9 @@ namespace llvm { void FinishBlock(); private: + typedef std::map<const TargetRegisterClass *, + TargetRegisterClass::const_iterator> RenameOrderType; + /// IsImplicitDefUse - Return true if MO represents a register /// that is both implicitly used and defined in MI bool IsImplicitDefUse(MachineInstr *MI, MachineOperand& MO); @@ -169,6 +172,7 @@ namespace llvm { void ScanInstruction(MachineInstr *MI, unsigned Count); BitVector GetRenameRegisters(unsigned Reg); bool FindSuitableFreeRegisters(unsigned AntiDepGroupIndex, + RenameOrderType& RenameOrder, std::map<unsigned, unsigned> &RenameMap); }; } |