Lines Matching full:combine
1 //===------- HexagonCopyToCombine.cpp - Hexagon Copy-To-Combine Pass ------===//
8 // This pass replaces transfer instructions by combine instructions.
11 // replace them with a combine instruction.
34 #define DEBUG_TYPE "hexagon-copy-combine"
78 return "Hexagon Copy-To-Combine Pass";
94 void combine(MachineInstr &I1, MachineInstr &I2,
122 INITIALIZE_PASS(HexagonCopyToCombine, "hexagon-copy-combine",
123 "Hexagon Copy-To-Combine Pass", false, false)
149 // workaround for an ABI bug that prevents GOT relocations on combine
154 // Only combine constant extended A2_tfrsi if we are in aggressive mode.
180 /// into a combine (ignoring register constraints).
204 // There is no combine of two constant extended values.
210 // There is a combine of two constant extended values into CONST64,
217 // There is no combine of two constant extended values, unless handled above
218 // Make both 8-bit size checks to allow both combine (#,##) and combine(##,#)
257 /// that the two instructions can be paired in a combine.
265 // It is not safe to move I1 and I2 into one combine if I2 has a true
377 // the new COMBINE instruction.
469 // Combine aggressively (for code size)
490 // Don't combine a TFR whose user could be newified (instructions that
500 // Find a second instruction that can be merged into a combine
508 combine(I1, *I2, MI, DoInsertAtI1, OptForSize);
517 /// COMBINE instruction or 0 if no such instruction can be found. Returns true
518 /// in \p DoInsertAtI1 if the combine must be inserted at instruction \p I1
519 /// false if the combine must be inserted at the returned instruction.
539 // Don't combine a TFR whose user could be newified.
569 void HexagonCopyToCombine::combine(MachineInstr &I1, MachineInstr &I2,
607 // There is a combine of two constant extended values into CONST64.
612 // Emit combine.
746 // Insert new combine instruction.
747 // DoubleRegDest = combine #HiImm, #LoImm
794 // Insert new combine instruction.
795 // DoubleRegDest = combine #HiImm, LoReg
843 // Insert new combine instruction.
844 // DoubleRegDest = combine HiReg, #LoImm
862 // Insert new combine instruction.
863 // DoubleRegDest = combine HiReg, LoReg