diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2015-07-24 17:44:49 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2015-07-24 17:44:49 +0000 |
| commit | c7bf20403bee51789f3691f0bf9bc7d7216f3f28 (patch) | |
| tree | 9c367bc238b35d81a371975594326e905d0633e1 | |
| parent | a8183e5c401cd44b8b0f494030e9b8699f423ea8 (diff) | |
| download | bcm5719-llvm-c7bf20403bee51789f3691f0bf9bc7d7216f3f28.tar.gz bcm5719-llvm-c7bf20403bee51789f3691f0bf9bc7d7216f3f28.zip | |
MIR Parser: Run the machine verifier after initializing machine functions.
llvm-svn: 243128
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIRParser.cpp | 4 | ||||
| -rw-r--r-- | llvm/test/CodeGen/MIR/X86/machine-instructions.mir | 8 | ||||
| -rw-r--r-- | llvm/test/CodeGen/MIR/X86/machine-verifier.mir | 23 |
3 files changed, 31 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp index a7c81ab390a..383fde1101a 100644 --- a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp @@ -325,6 +325,10 @@ bool MIRParserImpl::initializeMachineFunction(MachineFunction &MF) { PFS)) return true; } + // FIXME: This is a temporary workaround until the reserved registers can be + // serialized. + MF.getRegInfo().freezeReservedRegs(MF); + MF.verify(); return false; } diff --git a/llvm/test/CodeGen/MIR/X86/machine-instructions.mir b/llvm/test/CodeGen/MIR/X86/machine-instructions.mir index 08f3d76486b..c319db0892b 100644 --- a/llvm/test/CodeGen/MIR/X86/machine-instructions.mir +++ b/llvm/test/CodeGen/MIR/X86/machine-instructions.mir @@ -18,8 +18,8 @@ body: - id: 0 name: entry instructions: - # CHECK: - MOV32rr - # CHECK-NEXT: - RETQ - - MOV32rr - - ' RETQ ' + # CHECK: MOV32rr + # CHECK-NEXT: RETQ + - '%eax = MOV32rr %eax' + - ' RETQ %eax' ... diff --git a/llvm/test/CodeGen/MIR/X86/machine-verifier.mir b/llvm/test/CodeGen/MIR/X86/machine-verifier.mir new file mode 100644 index 00000000000..608a90ea4de --- /dev/null +++ b/llvm/test/CodeGen/MIR/X86/machine-verifier.mir @@ -0,0 +1,23 @@ +# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s +# This test ensures that the MIR parser runs the machine verifier after parsing. + +--- | + + define i32 @inc(i32 %a) { + entry: + ret i32 %a + } + +... +--- +name: inc +body: + - id: 0 + name: entry + liveins: [ '%edi' ] + instructions: + # CHECK: *** Bad machine code: Too few operands *** + # CHECK: instruction: COPY2 operands expected, but 0 given. + - 'COPY' + - 'RETQ' +... |

