HomePhabricator

Resubmit r237708 (MIR Serialization: print and parse LLVM IR using MIR format).

Description

Resubmit r237708 (MIR Serialization: print and parse LLVM IR using MIR format).

This commit is a 2nd attempt at committing the initial MIR serialization patch.
The first commit (r237708) made the incremental buildbots unstable and was
reverted in r237730. The original commit didn't add a terminating null
character to the LLVM IR source which was passed to LLParser, and this
sometimes caused the test 'llvmIR.mir' to fail with a parsing error because
the LLVM IR source didn't have a null character immediately after the end
and thus LLLexer encountered some garbage characters that ultimately caused
the error.

This commit also includes the other test fixes I committed in
r237712 (llc path fix) and r237723 (remove target triple) which
also got reverted in r237730.

--Original Commit Message--

MIR Serialization: print and parse LLVM IR using MIR format.

This commit is the initial commit for the MIR serialization project.
It creates a new library under CodeGen called 'MIR'. This new
library adds a new machine function pass that prints out the LLVM IR
using the MIR format. This pass is then added as a last pass when a
'stop-after' option is used in llc. The new library adds the initial
functionality for parsing of MIR files as well. This commit also
extends the llc tool so that it can recognize and parse MIR input files.

Reviewers: Duncan P. N. Exon Smith, Matthias Braun, Philip Reames

Differential Revision: http://reviews.llvm.org/D9616

Event Timeline

chapuni added subscribers: Unknown Object (MLST), chapuni.May 22 2015, 7:48 AM

Reverted in r238007. Could you reorganize MIR to dissolve dependencies between LLVMCodeGen and LLVMMIR?

/llvm/trunk/include/llvm/CodeGen/Passes.h
379

I suggest it might be logically in include/llvm/CodeGen/MIR.

/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
153

This depends on LLVMMIR.

/llvm/trunk/lib/CodeGen/MIR/MIRPrintingPass.cpp
18

This depends on LLVMCodeGen.