All files and parts of files related to microMips64r6 are removed.
When target is micromips64r6, errors are printed.
This is LLVM part of patch. Clang part of patch can be found here: https://reviews.llvm.org/D35624
Paths
| Differential D35625
Removal of microMIPS64R6 ClosedPublic Authored by abeserminji on Jul 19 2017, 8:42 AM.
Details Summary All files and parts of files related to microMips64r6 are removed. This is LLVM part of patch. Clang part of patch can be found here: https://reviews.llvm.org/D35624
Diff Detail Event TimelineComment Actions There's also a mention of micromips64r6 in lib/Target/Mips/Relocations.txt, so that file needs to be kept up to date.
This revision now requires changes to proceed.Sep 6 2017, 2:05 AM abeserminji edited edge metadata. abeserminji marked an inline comment as done. Comment ActionsRelocation.txt updated. Added dependencies. Comment Actions Last revision also included some changes on test/MC/Mips/mips64r6/invalid.s, which should not be in this patch. Comment Actions The GPRMM16_64 register class needs to be removed as well. It's used in the MipsMachineFunction.cpp and MipsRegisterInfo.cpp.
This revision now requires changes to proceed.Sep 20 2017, 5:59 AM abeserminji edited edge metadata. abeserminji marked 3 inline comments as done. Comment ActionsComments resolved. Comment Actions Can you also remove the instruction mappings for the R6 variants of dbitswap, dclo, dclz, dlsa, lld, lwupc and ldpc ?
This revision now requires changes to proceed.Sep 26 2017, 3:51 AM abeserminji edited edge metadata. abeserminji marked 6 inline comments as done. Comment ActionsRemoved unnecessary annotations. btw. out of curiosity haven't these StdMMR6Rel's been in contradiction with NotInMicroMips additional predicate? Comment Actions For SelectionDAGISel purposes, these instruction mappings were spurious as SelectionDAGISel would pick the corresponding microMIPS instruction due to the various predicates. If however, these instructions were introduced by the likes of MipsSEISelLowering or MipsSEISelDAGToDAG, etc, we'd end up with a mixture of MIPS and microMIPS code. This isn't a problem when producing assembly, as the textual representation is the same, but for object emission we need to produce the correct opcodes. The instruction mapping tables quietly "fixup" the usage of MIPS opcodes in microMIPS code which simplifies injecting instructions by hand in cpp as we don't have to constantly do things like: BuildMI(MBB, I, DL, TII.get(STI.inMicroMips ? Mips::DADDU_MMR6 : Mips::DADDu), V1).addReg(V0) throughout the codebase. Comment Actions Can you remove the StdMMR6Rel from the R6 instructions dbitswap, dclo, dclz, dlsa, lld, lwupc and ldpc ? Comment Actions Probably my last round of comments on this, also can you add a trivial test case showing that microMIPS64R6 is not supported?
This revision now requires changes to proceed.Oct 13 2017, 6:05 AM abeserminji edited edge metadata. abeserminji marked 14 inline comments as done. Comment ActionsAdded test that tests that microMIPS64R6 is not supported anymore.
Comment Actions I missed the AsmParser in my last reviews, can you add checks there, in the initialisation, in parseSetArchDirective and parseDirectiveSet?
Comment Actions You've missed my comment:
Comment Actions Hi Simon,
I couldn't find any other cases, so I added checks to the constructor and parseDirectiveSet(). Is there some case that I missed that could call parseSetArchDirective() without triggering current checks?
Comment Actions LTGM with the inlined nits addressed, along with any other changes that have to be made during rebasing before commit provided they're obvious/minor.
This revision is now accepted and ready to land.Dec 6 2017, 7:34 AM Closed by commit rL320350: [mips] Removal of microMIPS64R6 (authored by abeserminji). · Explain WhyDec 11 2017, 3:22 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 126313 lib/Target/Mips/AsmParser/MipsAsmParser.cpp
lib/Target/Mips/Disassembler/MipsDisassembler.cpp
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
lib/Target/Mips/MicroMips32r6InstrFormats.td
lib/Target/Mips/MicroMipsInstrInfo.td
lib/Target/Mips/MicroMipsSizeReduction.cpp
lib/Target/Mips/Mips64InstrInfo.td
lib/Target/Mips/Mips64r6InstrInfo.td
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsInstrInfo.cpp
lib/Target/Mips/MipsInstrInfo.td
lib/Target/Mips/MipsMachineFunction.cpp
lib/Target/Mips/MipsRegisterInfo.cpp
lib/Target/Mips/MipsRegisterInfo.td
lib/Target/Mips/MipsScheduleP5600.td
lib/Target/Mips/MipsSubtarget.h
lib/Target/Mips/MipsSubtarget.cpp
lib/Target/Mips/Relocation.txt
test/CodeGen/Mips/countleading.ll
test/CodeGen/Mips/fcmp.ll
test/CodeGen/Mips/llvm-ir/add.ll
test/CodeGen/Mips/llvm-ir/and.ll
test/CodeGen/Mips/llvm-ir/lh_lhu.ll
test/CodeGen/Mips/llvm-ir/mul.ll
test/CodeGen/Mips/llvm-ir/not.ll
test/CodeGen/Mips/llvm-ir/or.ll
test/CodeGen/Mips/llvm-ir/sdiv.ll
test/CodeGen/Mips/llvm-ir/srem.ll
test/CodeGen/Mips/llvm-ir/sub.ll
test/CodeGen/Mips/llvm-ir/udiv.ll
test/CodeGen/Mips/llvm-ir/urem.ll
test/CodeGen/Mips/llvm-ir/xor.ll
test/CodeGen/Mips/lw16-base-reg.ll
test/CodeGen/Mips/micromips-lwc1-swc1.ll
test/CodeGen/Mips/mips64fpldst.ll
test/CodeGen/Mips/mips64shift.ll
test/CodeGen/Mips/tailcall/tailcall.ll
test/MC/Mips/mips64extins.s
|
Don't use STI directly here, use getSTI() instead.