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.
37 #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)
139 // workaround for an ABI bug that prevents GOT relocations on combine
144 // Only combine constant extended A2_tfrsi if we are in aggressive mode.
168 /// into a combine (ignoring register constraints).
180 // There is no combine of two constant extended values.
220 /// that the two instructions can be paired in a combine.
228 // It is not safe to move I1 and I2 into one combine if I2 has a true
329 // the new COMBINE instruction.
408 // Combine aggressively (for code size)
422 // Don't combine a TFR whose user could be newified (instructions that
432 // Find a second instruction that can be merged into a combine
438 combine(I1, I2, MI, DoInsertAtI1);
447 /// COMBINE instruction or 0 if no such instruction can be found. Returns true
448 /// in \p DoInsertAtI1 if the combine must be inserted at instruction \p I1
449 /// false if the combine must be inserted at the returned instruction.
465 // Don't combine a TFR whose user could be newified.
480 // instructions to be merged into a combine.
497 void HexagonCopyToCombine::combine(MachineInstr *I1, MachineInstr *I2,
528 // Emit combine.
629 // Insert new combine instruction.
630 // DoubleRegDest = combine #HiImm, #LoImm
677 // Insert new combine instruction.
678 // DoubleRegDest = combine #HiImm, LoReg
726 // Insert new combine instruction.
727 // DoubleRegDest = combine HiReg, #LoImm
745 // Insert new combine instruction.
746 // DoubleRegDest = combine HiReg, LoReg