OLD | NEW |
1 //===- subzero/src/IceTargetLoweringX86Base.h - x86 lowering ----*- C++ -*-===// | 1 //===- subzero/src/IceTargetLoweringX86Base.h - x86 lowering ----*- 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 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 /// Legalizes Addr w.r.t. SandboxingType. The exact type of legalization | 282 /// Legalizes Addr w.r.t. SandboxingType. The exact type of legalization |
283 /// varies for different <Target, SandboxingType> tuples. | 283 /// varies for different <Target, SandboxingType> tuples. |
284 bool legalizeOptAddrForSandbox(OptAddr *Addr) { | 284 bool legalizeOptAddrForSandbox(OptAddr *Addr) { |
285 return dispatchToConcrete( | 285 return dispatchToConcrete( |
286 &Traits::ConcreteTarget::legalizeOptAddrForSandbox, std::move(Addr)); | 286 &Traits::ConcreteTarget::legalizeOptAddrForSandbox, std::move(Addr)); |
287 } | 287 } |
288 // Builds information for a canonical address expresion: | 288 // Builds information for a canonical address expresion: |
289 // <Relocatable + Offset>(Base, Index, Shift) | 289 // <Relocatable + Offset>(Base, Index, Shift) |
290 X86OperandMem *computeAddressOpt(const Inst *Instr, Type MemType, | 290 X86OperandMem *computeAddressOpt(const Inst *Instr, Type MemType, |
291 Operand *Addr); | 291 Operand *Addr); |
| 292 void doAddressOptOther() override; |
292 void doAddressOptLoad() override; | 293 void doAddressOptLoad() override; |
293 void doAddressOptStore() override; | 294 void doAddressOptStore() override; |
294 void doMockBoundsCheck(Operand *Opnd) override; | 295 void doMockBoundsCheck(Operand *Opnd) override; |
295 void randomlyInsertNop(float Probability, | 296 void randomlyInsertNop(float Probability, |
296 RandomNumberGenerator &RNG) override; | 297 RandomNumberGenerator &RNG) override; |
297 | 298 |
298 /// Naive lowering of cmpxchg. | 299 /// Naive lowering of cmpxchg. |
299 void lowerAtomicCmpxchg(Variable *DestPrev, Operand *Ptr, Operand *Expected, | 300 void lowerAtomicCmpxchg(Variable *DestPrev, Operand *Ptr, Operand *Expected, |
300 Operand *Desired); | 301 Operand *Desired); |
301 /// Attempt a more optimized lowering of cmpxchg. Returns true if optimized. | 302 /// Attempt a more optimized lowering of cmpxchg. Returns true if optimized. |
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1168 | 1169 |
1169 explicit TargetHeaderX86(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {} | 1170 explicit TargetHeaderX86(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {} |
1170 }; | 1171 }; |
1171 | 1172 |
1172 } // end of namespace X86NAMESPACE | 1173 } // end of namespace X86NAMESPACE |
1173 } // end of namespace Ice | 1174 } // end of namespace Ice |
1174 | 1175 |
1175 #include "IceTargetLoweringX86BaseImpl.h" | 1176 #include "IceTargetLoweringX86BaseImpl.h" |
1176 | 1177 |
1177 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H | 1178 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H |
OLD | NEW |