diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-03-29 23:24:21 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-03-29 23:24:21 +0000 |
| commit | b551aa4da514f71dc8c0e1e07a44b754d3a68d94 (patch) | |
| tree | f6b75ff72986c4a0e2c2f0da1a630cf39852891d /llvm/lib/Target/X86/X86InstrInfo.h | |
| parent | decbb74d68919f51af76da8788ec983003331e1e (diff) | |
| download | bcm5719-llvm-b551aa4da514f71dc8c0e1e07a44b754d3a68d94.tar.gz bcm5719-llvm-b551aa4da514f71dc8c0e1e07a44b754d3a68d94.zip | |
Basic implementation of SSEDomainFix pass.
Cross-block inference is primitive and wrong, but the pass is working otherwise.
llvm-svn: 99848
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.h')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.h b/llvm/lib/Target/X86/X86InstrInfo.h index 965740dcaf0..2486d1be66b 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.h +++ b/llvm/lib/Target/X86/X86InstrInfo.h @@ -722,11 +722,12 @@ public: /// Some SSE instructions come in variants for three domains. enum SSEDomain { NotSSEDomain, PackedInt, PackedSingle, PackedDouble }; - /// GetSSEDomain - Return the SSE execution domain of MI, or NotSSEDomain for - /// unknown instructions. If the instruction has equivalents for other - /// domains, equiv points to a list of opcodes for [PackedInt, PackedSingle, - /// PackedDouble]. - SSEDomain GetSSEDomain(const MachineInstr *MI, const unsigned *&equiv) const; + /// GetSSEDomain - Return the SSE execution domain of MI as the first element, + /// and a bitmask of possible arguments to SetSSEDomain ase the second. + std::pair<uint16_t, uint16_t> GetSSEDomain(const MachineInstr *MI) const; + + /// SetSSEDomain - Set the SSEDomain of MI. + void SetSSEDomain(MachineInstr *MI, unsigned Domain) const; private: MachineInstr * convertToThreeAddressWithLEA(unsigned MIOpc, |

