Home | History | Annotate | Download | only in Hexagon

Lines Matching full:combine

1 //===------- HexagonCopyToCombine.cpp - Hexagon Copy-To-Combine Pass ------===//
9 // This pass replaces transfer instructions by combine instructions.
12 // replace them with a combine instruction.
14 #define DEBUG_TYPE "hexagon-copy-combine"
77 return "Hexagon Copy-To-Combine Pass";
87 void combine(MachineInstr *I1, MachineInstr *I2,
111 INITIALIZE_PASS(HexagonCopyToCombine, "hexagon-copy-combine",
112 "Hexagon Copy-To-Combine Pass", false, false)
134 // Only combine constant extended TFRI if we are in aggressive mode.
145 // workaround for an ABI bug that prevents GOT relocations on combine
171 /// into a combine (ignoring register constraints).
186 // V4 added some combine variations (mixed immediate and register source
187 // operands), if we are on < V4 we can only combine 2 register-to-register
195 // There is no combine of two constant extended values.
233 /// that the two instructions can be paired in a combine.
243 // It is not safe to move I1 and I2 into one combine if I2 has a true
345 // the new COMBINE instruction.
424 // Combine aggressively (for code size)
438 // Don't combine a TFR whose user could be newified (instructions that
448 // Find a second instruction that can be merged into a combine
454 combine(I1, I2, MI, DoInsertAtI1);
463 /// COMBINE instruction or 0 if no such instruction can be found. Returns true
464 /// in \p DoInsertAtI1 if the combine must be inserted at instruction \p I1
465 /// false if the combine must be inserted at the returned instruction.
481 // Don't combine a TFR whose user could be newified.
496 // instructions to be merged into a combine.
513 void HexagonCopyToCombine::combine(MachineInstr *I1, MachineInstr *I2,
544 // Emit combine.
598 // Insert new combine instruction.
599 // DoubleRegDest = combine #HiImm, #LoImm
623 // Insert new combine instruction.
624 // DoubleRegDest = combine #HiImm, LoReg
649 // Insert new combine instruction.
650 // DoubleRegDest = combine HiReg, #LoImm
668 // Insert new combine instruction.
669 // DoubleRegDest = combine HiReg, LoReg