Page MenuHomePhabricator

[mips] Check that emitted instructions meet their predicates on Mips
AbandonedPublic

Authored by dsanders on Oct 14 2016, 7:43 AM.

Details

Reviewers
sdardis
Summary

The following tests fail when this patch is applied.
Failing Tests (26):

LLVM :: CodeGen/Mips/cconv/callee-saved-float.ll
LLVM :: CodeGen/Mips/micromips-atomic1.ll
LLVM :: CodeGen/Mips/tailcall/tailcall-wrong-isa.ll
LLVM :: MC/Mips/cprestore-noreorder.s
LLVM :: MC/Mips/cprestore-reorder.s
LLVM :: MC/Mips/elf_eflags_mips16.s
LLVM :: MC/Mips/expansion-jal-sym-pic.s
LLVM :: MC/Mips/expr1.s
LLVM :: MC/Mips/micromips-16-bit-instructions.s
LLVM :: MC/Mips/micromips-alu-instructions.s
LLVM :: MC/Mips/micromips-branch-fixup.s
LLVM :: MC/Mips/micromips-branch-instructions.s
LLVM :: MC/Mips/micromips-control-instructions.s
LLVM :: MC/Mips/micromips-dsp/valid-micromips32r3.s
LLVM :: MC/Mips/micromips-el-fixup-data.s
LLVM :: MC/Mips/micromips-expansions.s
LLVM :: MC/Mips/micromips-fpu-instructions.s
LLVM :: MC/Mips/micromips-jump-instructions.s
LLVM :: MC/Mips/micromips-jump26.s
LLVM :: MC/Mips/micromips-tailr.s
LLVM :: MC/Mips/micromips/valid.s
LLVM :: MC/Mips/micromips32r6/valid.s
LLVM :: MC/Mips/mips2/valid.s
LLVM :: MC/Mips/mips3/valid.s
LLVM :: MC/Mips/mips4/valid.s
LLVM :: MC/Mips/mips5/valid.s

Some look like bugs but others look like they are deliberate (e.g.
SYNC is using a loophole to implement the MIPS-II version as an
alias of the MIPS32 version).

Depends on D25618

Event Timeline

dsanders updated this revision to Diff 74688.Oct 14 2016, 7:43 AM
dsanders retitled this revision from to [mips] Check that emitted instructions meet their predicates on Mips.
dsanders updated this object.
dsanders added a subscriber: sdardis.

llvm-commits has been deliberately left off of this since it's not intended for commit. I'm going to reference it from a bug report

Thanks, started looking at this on Friday.

Thanks. I'm currently waiting for a bugzilla account for this email address.

Looking at this again and with trunk, I'm seeing two failing tests with a small change inlined:

Failing Tests (2):

LLVM :: MC/Mips/expansion-jal-sym-pic.s
LLVM :: MC/Mips/micromips32r6/valid.s
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
189–190

This is in the wrong place. It should be:

259

Here. Moving this here means that we translate the instructions to the correct form, then verify it.

dsanders abandoned this revision.Jul 18 2019, 7:10 PM