[PATCH] D35625: Removal of microMIPS64R6
Simon Dardis via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 13 06:05:55 PDT 2017
sdardis requested changes to this revision.
sdardis added a comment.
This revision now requires changes to proceed.
Probably my last round of comments on this, also can you add a trivial test case showing that microMIPS64R6 is not supported?
================
Comment at: lib/Target/Mips/MicroMipsInstrInfo.td:590-602
+ ARITH_FM_MM16<0>, ISA_MICROMIPS_NOT_32R6;
def AND16_MM : LogicRMM16<"and16", GPRMM16Opnd, II_AND, and>,
- LOGIC_FM_MM16<0x2>, ISA_MICROMIPS_NOT_32R6_64R6;
+ LOGIC_FM_MM16<0x2>, ISA_MICROMIPS_NOT_32R6;
def ANDI16_MM : AndImmMM16<"andi16", GPRMM16Opnd, II_AND>, ANDI_FM_MM16<0x0b>,
- ISA_MICROMIPS_NOT_32R6_64R6;
+ ISA_MICROMIPS_NOT_32R6;
def NOT16_MM : NotMM16<"not16", GPRMM16Opnd>, LOGIC_FM_MM16<0x0>,
+ ISA_MICROMIPS_NOT_32R6;
----------------
Align the format class instantiations / ISA predicates under instruction codegen description instantiations.
================
Comment at: lib/Target/Mips/MicroMipsInstrInfo.td:649-651
+ ISA_MICROMIPS_NOT_32R6;
def SDBBP16_MM : BrkSdbbp16MM<"sdbbp16", II_SDBBP>, BRKSDBBP16_FM_MM<0x2C>,
+ ISA_MICROMIPS_NOT_32R6;
----------------
The ISA_MICROMIPS_NOT_32R6 needs to be aligned under the BrkSdbbp16MM.
================
Comment at: lib/Target/Mips/MicroMipsSizeReduction.cpp:498
- // TODO: Add support for other subtargets:
- // microMIPS32r6 and microMIPS64r6
+ // TODO: Add support for subtarget microMIPS32r6
if (!Subtarget->inMicroMipsMode() || !Subtarget->hasMips32r2() ||
----------------
for the subtarget microMIPS32R6.
================
Comment at: lib/Target/Mips/MipsTargetMachine.cpp:188-192
+ if (CPU == "mips64r6" && HasMicroMipsAttr) {
+ errs() << "LLVM currently does not support microMIPS for '" << CPU << "'.\n";
+ HasMicroMipsAttr = false;
+ HasNoMicroMipsAttr = true;
+ }
----------------
Take the context from the current Function and use emitError giving the function name + error message.
See include/llvm/IR/LLVMContext.h:300~ for emitError.
================
Comment at: test/CodeGen/Mips/llvm-ir/and.ll:43
; MM64: and $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/and.ll:60
; MM64: and $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/and.ll:77
; MM64: and $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/mul.ll:249-254
; MM64R6-DAG: dmul $[[T1:[0-9]+]], $5, $6
; MM64R6: dmuhu $[[T2:[0-9]+]], $5, $7
; MM64R6: daddu $[[T3:[0-9]+]], $[[T2]], $[[T1]]
; MM64R6-DAG: dmul $[[T0:[0-9]+]], $4, $7
; MM64R6: daddu $2, $[[T1]], $[[T0]]
; MM64R6-DAG: dmul $3, $5, $7
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/not.ll:132
; MM32: nor $2, $5, $4
; MM64: or $1, $5, $4
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/not.ll:146
; MM32: nor $2, $5, $4
; MM64: or $1, $5, $4
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/not.ll:160
; MM32: nor $2, $5, $4
; MM64: or $1, $5, $4
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/or.ll:32
; MM64: or $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/or.ll:47
; MM64: or $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/or.ll:64
; MM64: or $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/xor.ll:43
; MM64: xor $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/xor.ll:58
; MM64: xor $1, $4, $5
----------------
Remove this.
================
Comment at: test/CodeGen/Mips/llvm-ir/xor.ll:75
; MM64: xor $1, $4, $5
----------------
Remove this.
https://reviews.llvm.org/D35625
More information about the llvm-commits
mailing list