Home
last modified time | relevance | path

Searched refs:LEA (Results 1 – 25 of 31) sorted by relevance

12

/external/llvm/lib/Target/X86/
DX86OptimizeLEAs.cpp64 const MachineInstr &MI, MachineInstr *&LEA,
122 const MachineInstr &MI, MachineInstr *&LEA, in chooseBestLEA() argument
129 LEA = nullptr; in chooseBestLEA()
159 if (DistTemp > 0 || LEA == nullptr) { in chooseBestLEA()
162 if (LEA != nullptr && !isInt<8>(AddrDispShiftTemp) && in chooseBestLEA()
166 LEA = DefMI; in chooseBestLEA()
176 return LEA != nullptr; in chooseBestLEA()
DX86FixupLEAs.cpp244 static inline bool isLEASimpleIncOrDec(MachineInstr *LEA) { in isLEASimpleIncOrDec() argument
245 unsigned SrcReg = LEA->getOperand(1 + X86::AddrBaseReg).getReg(); in isLEASimpleIncOrDec()
246 unsigned DstReg = LEA->getOperand(0).getReg(); in isLEASimpleIncOrDec()
249 LEA->getOperand(1 + X86::AddrIndexReg).getReg() == 0 && in isLEASimpleIncOrDec()
250 LEA->getOperand(1 + X86::AddrSegmentReg).getReg() == 0 && in isLEASimpleIncOrDec()
251 LEA->getOperand(AddrDispOp).isImm() && in isLEASimpleIncOrDec()
252 (LEA->getOperand(AddrDispOp).getImm() == 1 || in isLEASimpleIncOrDec()
253 LEA->getOperand(AddrDispOp).getImm() == -1); in isLEASimpleIncOrDec()
DX86MCInstLower.cpp745 MCInst LEA; in LowerTlsAddr() local
747 LEA.setOpcode(X86::LEA64r); in LowerTlsAddr()
748 LEA.addOperand(MCOperand::createReg(X86::RDI)); // dest in LowerTlsAddr()
749 LEA.addOperand(MCOperand::createReg(X86::RIP)); // base in LowerTlsAddr()
750 LEA.addOperand(MCOperand::createImm(1)); // scale in LowerTlsAddr()
751 LEA.addOperand(MCOperand::createReg(0)); // index in LowerTlsAddr()
752 LEA.addOperand(MCOperand::createExpr(symRef)); // disp in LowerTlsAddr()
753 LEA.addOperand(MCOperand::createReg(0)); // seg in LowerTlsAddr()
755 LEA.setOpcode(X86::LEA32r); in LowerTlsAddr()
756 LEA.addOperand(MCOperand::createReg(X86::EAX)); // dest in LowerTlsAddr()
[all …]
DX86ScheduleBtVer2.td37 def JSAGU : ProcResource<1>; // Integer Pipe3: SAGU (also handles 3-operand LEA)
129 // FIXME: SAGU 3-operand LEA
DX86.td192 "Use LEA for adjusting the stack pointer">;
211 "LEA instruction needs inputs at AG stage">;
213 "LEA instruction with certain arguments is slow">;
DX86Schedule.td47 def WriteLEA : SchedWrite; // LEA instructions can't fold loads.
DX86ScheduleAtom.td22 def Port1 : FuncUnit; // ALU: ALU1, bit processing, jump, and LEA
DX86InstrArithmetic.td16 // LEA - Load Effective Address
459 let isConvertibleToThreeAddress = 1, CodeSize = 2 in { // Can xform into LEA.
505 let isConvertibleToThreeAddress = 1, CodeSize = 2 in { // Can xform into LEA.
/external/llvm/test/CodeGen/X86/
Doverlap-shift.ll5 ;; allocator turns the shift into an LEA. This also occurs for ADD.
7 ; Check that the shift gets turned into an LEA.
Dadd-nsw-sext.ll22 ; we allow LEA formation and eliminate an add instruction.
37 ; Throw in a scale (left shift) because an LEA can do that too.
38 ; Use a negative constant (LEA displacement) to verify that's handled correctly.
123 ; LEA can't scale by 16, but the adds can still be combined into an LEA.
Datom-fixup-lea2.ll9 ; Test for fixup lea pre-emit pass. LEA instructions should be substituted for
11 ; precede the load within 5 instructions. An LEA should also be substituted for
12 ; an ADD which computes part of the index because it precedes the index LEA
Dtwoaddr-lea.ll5 ;; allocator turns the shift into an LEA. This also occurs for ADD.
7 ; Check that the shift gets turned into an LEA.
Dmul-shift-reassoc.ll5 ; Push the shl through the mul to allow an LEA to be formed, instead
Dor-lea.ll6 ; LEA instruction selection should be able to see through that
74 ; The shift is too big for an LEA.
D2007-02-04-OrAddrMode.ll3 ;; This example can't fold the or into an LEA.
Dstack-update-frame-opcode.ll11 ; Atoms use LEA to update the SP. Opcode bitness depends on data model.
Datom-fixup-lea1.ll7 ; Test for the FixupLEAs pre-emit pass. An LEA should be substituted for the ADD
Dlea-opt.ll89 ; Check that LEA optimization pass takes into account a resultant address
90 ; displacement when choosing a LEA instruction for replacing a redundant
D3addr-or.ll29 ;; Test that OR is only emitted as LEA, not as ADD.
Dcombine-multiplies.ll34 ; CHECK-NEXT: leal ([[MUL]],[[ARG2:%[a-z]+]]), [[LEA:%[a-z]+]]
35 ; CHECK-NEXT: movl $11, {{[0-9]+}}([[LEA]],[[ARG1]],4)
Datom-fixup-lea3.ll6 ; An LEA should NOT be substituted for the ADD instruction
D2010-06-25-CoalescerSubRegDefDead.ll21 ; statement. It can be an ADD or LEA instruction, it's not important which one
Dlate-address-taken.ll11 ; to it in the LEA
Dx86-shrink-wrapping.ll492 ; Check that we use LEA not to clobber EFLAGS.
552 ; The adjustment must use LEA here (or be moved above the test).
/external/llvm/docs/TableGen/
Dindex.rst162 isConvertibleToThreeAddress = 1 in // Can transform into LEA.

12