[PATCH] D34239: [mips][microMIPS] Extending size reduction pass with XOR16
Simon Dardis via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 16 02:35:36 PDT 2017
sdardis accepted this revision.
sdardis added a comment.
This revision is now accepted and ready to land.
LGTM with inline comments addressed.
================
Comment at: lib/Target/Mips/MicroMipsSizeReduction.cpp:460-475
if (OpTransfer == OT_Operand2)
MIB.add(MI->getOperand(2));
else if (OpTransfer == OT_Operands02) {
MIB.add(MI->getOperand(0));
MIB.add(MI->getOperand(2));
+ } else if (OpTransfer == OT_OperandsXOR) {
+ if (MI->getOperand(0).getReg() == MI->getOperand(2).getReg()) {
----------------
Change this if..else chain to switch on OpTransfer, with a default case of llvm_unreachable.
================
Comment at: lib/Target/Mips/MicroMipsSizeReduction.cpp:496
+ if (!Subtarget->inMicroMipsMode() || !Subtarget->hasMips32r2()
+ || Subtarget->hasMips32r6() || Subtarget->hasMips64r6())
return false;
----------------
There's a small 'gotcha' here, if Subtarget->hasMips64r6() is true, Subtarget->hasMips32r6() is also true. So "|| Subtarget->hasMips64r6()" can be removed.
hasMips64(rX)() implies hasMips32(rX)() is also true, due to the way the architecture is defined, so generally you only need to check for the availability of the 32bit revision of the ISA to determine what revision is being targeted.
https://reviews.llvm.org/D34239
More information about the llvm-commits
mailing list