Searched refs:LEA (Results 1 – 25 of 31) sorted by relevance
12
/external/llvm/lib/Target/X86/ |
D | X86OptimizeLEAs.cpp | 64 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()
|
D | X86FixupLEAs.cpp | 244 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()
|
D | X86MCInstLower.cpp | 745 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 …]
|
D | X86ScheduleBtVer2.td | 37 def JSAGU : ProcResource<1>; // Integer Pipe3: SAGU (also handles 3-operand LEA) 129 // FIXME: SAGU 3-operand LEA
|
D | X86.td | 192 "Use LEA for adjusting the stack pointer">; 211 "LEA instruction needs inputs at AG stage">; 213 "LEA instruction with certain arguments is slow">;
|
D | X86Schedule.td | 47 def WriteLEA : SchedWrite; // LEA instructions can't fold loads.
|
D | X86ScheduleAtom.td | 22 def Port1 : FuncUnit; // ALU: ALU1, bit processing, jump, and LEA
|
D | X86InstrArithmetic.td | 16 // 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/ |
D | overlap-shift.ll | 5 ;; allocator turns the shift into an LEA. This also occurs for ADD. 7 ; Check that the shift gets turned into an LEA.
|
D | add-nsw-sext.ll | 22 ; 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.
|
D | atom-fixup-lea2.ll | 9 ; 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
|
D | twoaddr-lea.ll | 5 ;; allocator turns the shift into an LEA. This also occurs for ADD. 7 ; Check that the shift gets turned into an LEA.
|
D | mul-shift-reassoc.ll | 5 ; Push the shl through the mul to allow an LEA to be formed, instead
|
D | or-lea.ll | 6 ; LEA instruction selection should be able to see through that 74 ; The shift is too big for an LEA.
|
D | 2007-02-04-OrAddrMode.ll | 3 ;; This example can't fold the or into an LEA.
|
D | stack-update-frame-opcode.ll | 11 ; Atoms use LEA to update the SP. Opcode bitness depends on data model.
|
D | atom-fixup-lea1.ll | 7 ; Test for the FixupLEAs pre-emit pass. An LEA should be substituted for the ADD
|
D | lea-opt.ll | 89 ; Check that LEA optimization pass takes into account a resultant address 90 ; displacement when choosing a LEA instruction for replacing a redundant
|
D | 3addr-or.ll | 29 ;; Test that OR is only emitted as LEA, not as ADD.
|
D | combine-multiplies.ll | 34 ; CHECK-NEXT: leal ([[MUL]],[[ARG2:%[a-z]+]]), [[LEA:%[a-z]+]] 35 ; CHECK-NEXT: movl $11, {{[0-9]+}}([[LEA]],[[ARG1]],4)
|
D | atom-fixup-lea3.ll | 6 ; An LEA should NOT be substituted for the ADD instruction
|
D | 2010-06-25-CoalescerSubRegDefDead.ll | 21 ; statement. It can be an ADD or LEA instruction, it's not important which one
|
D | late-address-taken.ll | 11 ; to it in the LEA
|
D | x86-shrink-wrapping.ll | 492 ; 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/ |
D | index.rst | 162 isConvertibleToThreeAddress = 1 in // Can transform into LEA.
|
12