Resubmit r237954 (MIR Serialization: print and parse LLVM IR using MIR format).
authorAlex Lorenz <arphaman@gmail.com>
Wed, 27 May 2015 18:02:19 +0000 (18:02 +0000)
committerAlex Lorenz <arphaman@gmail.com>
Wed, 27 May 2015 18:02:19 +0000 (18:02 +0000)
commit2bdb4e1063f5cbc8bb1262d90cca056e9fb31fbb
tree93e92eb2dee569b19437732c10936f9704bf3a9b
parent4669541d15ec4b3bf177843758f12bd309890a6a
Resubmit r237954 (MIR Serialization: print and parse LLVM IR using MIR format).

This commit a 3rd attempt at comitting the initial MIR serialization patch.
The first commit (r237708) was reverted in 237730. Then the second commit
(r237954) was reverted in r238007, as the MIR library under CodeGen caused
a circular dependency where the CodeGen library depended on MIR and MIR
library depended on CodeGen.

This commit has fixed the dependencies between CodeGen and MIR by
reorganizing the MIR serialization code - the code that prints out
MIR has been moved to CodeGen, and the MIR library has been renamed
to MIRParser. Now the CodeGen library doesn't depend on the
MIRParser library, thus the circular dependency no longer exists.

--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

llvm-svn: 238341
22 files changed:
llvm/include/llvm/CodeGen/MIRParser/MIRParser.h [new file with mode: 0644]
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/Support/YAMLTraits.h
llvm/lib/CodeGen/CMakeLists.txt
llvm/lib/CodeGen/LLVMBuild.txt
llvm/lib/CodeGen/LLVMTargetMachine.cpp
llvm/lib/CodeGen/MIRParser/CMakeLists.txt [new file with mode: 0644]
llvm/lib/CodeGen/MIRParser/LLVMBuild.txt [new file with mode: 0644]
llvm/lib/CodeGen/MIRParser/MIRParser.cpp [new file with mode: 0644]
llvm/lib/CodeGen/MIRParser/Makefile [new file with mode: 0644]
llvm/lib/CodeGen/MIRPrintingPass.cpp [new file with mode: 0644]
llvm/lib/CodeGen/Makefile
llvm/lib/Support/YAMLTraits.cpp
llvm/test/CodeGen/Generic/stop-after.ll
llvm/test/CodeGen/MIR/lit.local.cfg [new file with mode: 0644]
llvm/test/CodeGen/MIR/llvmIR.mir [new file with mode: 0644]
llvm/test/CodeGen/MIR/llvmIRMissing.mir [new file with mode: 0644]
llvm/tools/llc/CMakeLists.txt
llvm/tools/llc/LLVMBuild.txt
llvm/tools/llc/Makefile
llvm/tools/llc/llc.cpp