Resubmit r237708 (MIR Serialization: print and parse LLVM IR using MIR format).
authorAlex Lorenz <arphaman@gmail.com>
Thu, 21 May 2015 20:54:45 +0000 (20:54 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Thu, 21 May 2015 20:54:45 +0000 (20:54 +0000)
commit3e5034d130468fdec15de052f57216050a039f38
tree8ec3e2e8a6e3ce98a9b9281f545a2880c41f0d4d
parent63292d1bbabaebcfe3cc7d7fe5c0314b1d275a7d
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237954 91177308-0d34-0410-b5e6-96231b3b80d8
21 files changed:
include/llvm/CodeGen/MIR/MIRParser.h [new file with mode: 0644]
include/llvm/CodeGen/Passes.h
include/llvm/InitializePasses.h
include/llvm/Support/YAMLTraits.h
lib/CodeGen/CMakeLists.txt
lib/CodeGen/LLVMBuild.txt
lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/MIR/CMakeLists.txt [new file with mode: 0644]
lib/CodeGen/MIR/LLVMBuild.txt [new file with mode: 0644]
lib/CodeGen/MIR/MIRParser.cpp [new file with mode: 0644]
lib/CodeGen/MIR/MIRPrinter.cpp [new file with mode: 0644]
lib/CodeGen/MIR/MIRPrinter.h [new file with mode: 0644]
lib/CodeGen/MIR/MIRPrintingPass.cpp [new file with mode: 0644]
lib/CodeGen/MIR/Makefile [new file with mode: 0644]
lib/CodeGen/Makefile
lib/Support/YAMLTraits.cpp
test/CodeGen/Generic/stop-after.ll
test/CodeGen/MIR/lit.local.cfg [new file with mode: 0644]
test/CodeGen/MIR/llvmIR.mir [new file with mode: 0644]
test/CodeGen/MIR/llvmIRMissing.mir [new file with mode: 0644]
tools/llc/llc.cpp