summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86InstrInfo.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-03-29 23:24:21 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-03-29 23:24:21 +0000
commitb551aa4da514f71dc8c0e1e07a44b754d3a68d94 (patch)
treef6b75ff72986c4a0e2c2f0da1a630cf39852891d /llvm/lib/Target/X86/X86InstrInfo.h
parentdecbb74d68919f51af76da8788ec983003331e1e (diff)
downloadbcm5719-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.h11
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,
OpenPOWER on IntegriCloud