Extend TargetPassConfig to allow running only a subset of the normal passes.
authorBob Wilson <bob.wilson@apple.com>
Mon, 2 Jul 2012 19:48:45 +0000 (19:48 +0000)
committerBob Wilson <bob.wilson@apple.com>
Mon, 2 Jul 2012 19:48:45 +0000 (19:48 +0000)
commit30a507a1f5d6a5646dd3481eba6958424415c886
tree49214966bff88a4ed2e13af11a825c5cc218f3f5
parent6b2bb15bf7c77918adc433646846f6847d421257
Extend TargetPassConfig to allow running only a subset of the normal passes.

This is still a work in progress but I believe it is currently good enough
to fix PR13122 "Need unit test driver for codegen IR passes".  For example,
you can run llc with -stop-after=loop-reduce to have it dump out the IR after
running LSR.  Serializing machine-level IR is not yet supported but we have
some patches in progress for that.

The plan is to serialize the IR to a YAML file, containing separate sections
for the LLVM IR, machine-level IR, and whatever other info is needed.  Chad
suggested that we stash the stop-after pass in the YAML file and use that
instead of the start-after option to figure out where to restart the
compilation.  I think that's a great idea, but since it's not implemented yet
I put the -start-after option into this patch for testing purposes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159570 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/Passes.h
include/llvm/Target/TargetMachine.h
lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/Passes.cpp
lib/Target/CppBackend/CPPBackend.cpp
lib/Target/CppBackend/CPPTargetMachine.h
lib/Target/NVPTX/NVPTXTargetMachine.h
test/CodeGen/Generic/stop-after.ll [new file with mode: 0644]
tools/llc/llc.cpp