OLD | NEW |
1 //===- subzero/src/IceInstX86BaseImpl.h - Generic X86 instructions -*- C++ -*=// | 1 //===- subzero/src/IceInstX86BaseImpl.h - Generic X86 instructions -*- C++ -*=// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 if (BuildDefs::dump()) { | 98 if (BuildDefs::dump()) { |
99 Name = GlobalString::createWithString( | 99 Name = GlobalString::createWithString( |
100 Func->getContext(), ".L" + Func->getFunctionName() + "$local$__" + | 100 Func->getContext(), ".L" + Func->getFunctionName() + "$local$__" + |
101 std::to_string(LabelNumber)); | 101 std::to_string(LabelNumber)); |
102 } else { | 102 } else { |
103 Name = GlobalString::createWithoutString(Func->getContext()); | 103 Name = GlobalString::createWithoutString(Func->getContext()); |
104 } | 104 } |
105 } | 105 } |
106 | 106 |
107 template <typename TraitsType> | 107 template <typename TraitsType> |
108 InstImpl<TraitsType>::InstX86Br::InstX86Br( | 108 InstImpl<TraitsType>::InstX86Br::InstX86Br(Cfg *Func, const CfgNode *TargetTrue, |
109 Cfg *Func, const CfgNode *TargetTrue, const CfgNode *TargetFalse, | 109 const CfgNode *TargetFalse, |
110 const InstX86Label *Label, BrCond Condition, | 110 const InstX86Label *Label, |
111 Mode Kind) | 111 BrCond Condition, Mode Kind) |
112 : InstX86Base(Func, InstX86Base::Br, 0, nullptr), Condition(Condition), | 112 : InstX86Base(Func, InstX86Base::Br, 0, nullptr), Condition(Condition), |
113 TargetTrue(TargetTrue), TargetFalse(TargetFalse), Label(Label), | 113 TargetTrue(TargetTrue), TargetFalse(TargetFalse), Label(Label), |
114 Kind(Kind) {} | 114 Kind(Kind) {} |
115 | 115 |
116 template <typename TraitsType> | 116 template <typename TraitsType> |
117 bool InstImpl<TraitsType>::InstX86Br::optimizeBranch(const CfgNode *NextNode) { | 117 bool InstImpl<TraitsType>::InstX86Br::optimizeBranch(const CfgNode *NextNode) { |
118 // If there is no next block, then there can be no fallthrough to optimize. | 118 // If there is no next block, then there can be no fallthrough to optimize. |
119 if (NextNode == nullptr) | 119 if (NextNode == nullptr) |
120 return false; | 120 return false; |
121 // Intra-block conditional branches can't be optimized. | 121 // Intra-block conditional branches can't be optimized. |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 | 298 |
299 template <typename TraitsType> | 299 template <typename TraitsType> |
300 InstImpl<TraitsType>::InstX86StoreQ::InstX86StoreQ(Cfg *Func, Variable *Value, | 300 InstImpl<TraitsType>::InstX86StoreQ::InstX86StoreQ(Cfg *Func, Variable *Value, |
301 X86OperandMem *Mem) | 301 X86OperandMem *Mem) |
302 : InstX86Base(Func, InstX86Base::StoreQ, 2, nullptr) { | 302 : InstX86Base(Func, InstX86Base::StoreQ, 2, nullptr) { |
303 this->addSource(Value); | 303 this->addSource(Value); |
304 this->addSource(Mem); | 304 this->addSource(Mem); |
305 } | 305 } |
306 | 306 |
307 template <typename TraitsType> | 307 template <typename TraitsType> |
308 InstImpl<TraitsType>::InstX86Nop::InstX86Nop(Cfg *Func, | 308 InstImpl<TraitsType>::InstX86Nop::InstX86Nop(Cfg *Func, NopVariant Variant) |
309 NopVariant Variant) | |
310 : InstX86Base(Func, InstX86Base::Nop, 0, nullptr), Variant(Variant) {} | 309 : InstX86Base(Func, InstX86Base::Nop, 0, nullptr), Variant(Variant) {} |
311 | 310 |
312 template <typename TraitsType> | 311 template <typename TraitsType> |
313 InstImpl<TraitsType>::InstX86Fld::InstX86Fld(Cfg *Func, Operand *Src) | 312 InstImpl<TraitsType>::InstX86Fld::InstX86Fld(Cfg *Func, Operand *Src) |
314 : InstX86Base(Func, InstX86Base::Fld, 1, nullptr) { | 313 : InstX86Base(Func, InstX86Base::Fld, 1, nullptr) { |
315 this->addSource(Src); | 314 this->addSource(Src); |
316 } | 315 } |
317 | 316 |
318 template <typename TraitsType> | 317 template <typename TraitsType> |
319 InstImpl<TraitsType>::InstX86Fstp::InstX86Fstp(Cfg *Func, Variable *Dest) | 318 InstImpl<TraitsType>::InstX86Fstp::InstX86Fstp(Cfg *Func, Variable *Dest) |
(...skipping 2623 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2943 return; | 2942 return; |
2944 Ostream &Str = Func->getContext()->getStrDump(); | 2943 Ostream &Str = Func->getContext()->getStrDump(); |
2945 Str << "IACA_END"; | 2944 Str << "IACA_END"; |
2946 } | 2945 } |
2947 | 2946 |
2948 } // end of namespace X86NAMESPACE | 2947 } // end of namespace X86NAMESPACE |
2949 | 2948 |
2950 } // end of namespace Ice | 2949 } // end of namespace Ice |
2951 | 2950 |
2952 #endif // SUBZERO_SRC_ICEINSTX86BASEIMPL_H | 2951 #endif // SUBZERO_SRC_ICEINSTX86BASEIMPL_H |
OLD | NEW |