[llvm] r254616 - [Hexagon] NFC Using canonicalizePacket to compound/duplex/pad packets rather than doing it separately. This also ensures the integrated assembler path matches the assembly parser path.
Colin LeMahieu via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 3 08:37:21 PST 2015
Author: colinl
Date: Thu Dec 3 10:37:21 2015
New Revision: 254616
URL: http://llvm.org/viewvc/llvm-project?rev=254616&view=rev
Log:
[Hexagon] NFC Using canonicalizePacket to compound/duplex/pad packets rather than doing it separately. This also ensures the integrated assembler path matches the assembly parser path.
Modified:
llvm/trunk/lib/Target/Hexagon/HexagonAsmPrinter.cpp
Modified: llvm/trunk/lib/Target/Hexagon/HexagonAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonAsmPrinter.cpp?rev=254616&r1=254615&r2=254616&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Hexagon/HexagonAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/Hexagon/HexagonAsmPrinter.cpp Thu Dec 3 10:37:21 2015
@@ -191,29 +191,23 @@ void HexagonAsmPrinter::EmitInstruction(
MachineBasicBlock::const_instr_iterator MII = MI->getIterator();
unsigned IgnoreCount = 0;
- for (++MII; MII != MBB->instr_end() && MII->isInsideBundle(); ++MII) {
+ for (++MII; MII != MBB->instr_end() && MII->isInsideBundle(); ++MII)
if (MII->getOpcode() == TargetOpcode::DBG_VALUE ||
MII->getOpcode() == TargetOpcode::IMPLICIT_DEF)
++IgnoreCount;
- else {
+ else
HexagonLowerToMC(MCII, &*MII, MCB, *this);
- }
- }
}
- else {
+ else
HexagonLowerToMC(MCII, MI, MCB, *this);
- HexagonMCInstrInfo::padEndloop(OutStreamer->getContext(), MCB);
- }
- // Examine the packet and try to find instructions that can be converted
- // to compounds.
- HexagonMCInstrInfo::tryCompound(MCII, OutStreamer->getContext(), MCB);
- // Examine the packet and convert pairs of instructions to duplex
- // instructions when possible.
- SmallVector<DuplexCandidate, 8> possibleDuplexes;
- possibleDuplexes = HexagonMCInstrInfo::getDuplexPossibilties(MCII, MCB);
- HexagonMCShuffle(MCII, *Subtarget, OutStreamer->getContext(), MCB,
- possibleDuplexes);
- EmitToStreamer(*OutStreamer, MCB);
+
+ bool Ok = HexagonMCInstrInfo::canonicalizePacket(
+ MCII, *Subtarget, OutStreamer->getContext(), MCB, nullptr);
+ assert(Ok);
+ (void)Ok;
+ if(HexagonMCInstrInfo::bundleSize(MCB) == 0)
+ return;
+ OutStreamer->EmitInstruction(MCB, getSubtargetInfo());
}
extern "C" void LLVMInitializeHexagonAsmPrinter() {
More information about the llvm-commits
mailing list