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"; in getPassName()
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 in isCombinableInstType()
154 // Only combine constant extended A2_tfrsi if we are in aggressive mode. in isCombinableInstType()
180 /// into a combine (ignoring register constraints).
204 // There is no combine of two constant extended values. in areCombinableOperations()
210 // There is a combine of two constant extended values into CONST64, in areCombinableOperations()
217 // There is no combine of two constant extended values, unless handled above in areCombinableOperations()
218 // Make both 8-bit size checks to allow both combine (#,##) and combine(##,#) in areCombinableOperations()
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 in isSafeToMoveTogether()
377 // the new COMBINE instruction. in isSafeToMoveTogether()
469 // Combine aggressively (for code size) in runOnMachineFunction()
490 // Don't combine a TFR whose user could be newified (instructions that in runOnMachineFunction()
500 // Find a second instruction that can be merged into a combine in runOnMachineFunction()
508 combine(I1, *I2, MI, DoInsertAtI1, OptForSize); in runOnMachineFunction()
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. in findPairable()
569 void HexagonCopyToCombine::combine(MachineInstr &I1, MachineInstr &I2, in combine() function in HexagonCopyToCombine
607 // There is a combine of two constant extended values into CONST64. in combine()
612 // Emit combine. in combine()
746 // Insert new combine instruction. in emitCombineII()
747 // DoubleRegDest = combine #HiImm, #LoImm in emitCombineII()
794 // Insert new combine instruction. in emitCombineIR()
795 // DoubleRegDest = combine #HiImm, LoReg in emitCombineIR()
843 // Insert new combine instruction. in emitCombineRI()
844 // DoubleRegDest = combine HiReg, #LoImm in emitCombineRI()
862 // Insert new combine instruction. in emitCombineRR()
863 // DoubleRegDest = combine HiReg, LoReg in emitCombineRR()