]> granicus.if.org Git - clang/commit
Frontend: Add CodeGenAction support for handling LLVM IR.\r - This magically enables...
authorDaniel Dunbar <daniel@zuster.org>
Mon, 7 Jun 2010 23:27:59 +0000 (23:27 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 7 Jun 2010 23:27:59 +0000 (23:27 +0000)
commit4cbbd94d0abeec2d7e7438d098527aa340d82389
tree4f1d5230c0e7fb4930d785897e79bb30bd0b5ea3
parentfaddc3e53a95c68f2c3a966e0f1e6eba110dafd6
Frontend: Add CodeGenAction support for handling LLVM IR.\r - This magically enables using 'clang -cc1' as a replacement for most of 'llvm-as', 'llvm-dis', 'llc' and 'opt' functionality.\r\rFor example, 'llvm-as' is:\r  $ clang -cc1 -emit-llvm-bc FOO.ll -o FOO.bc
and 'llvm-dis' is:\r  $ clang -cc1 -emit-llvm    FOO.bc -o -
and 'opt' is, e.g.:
  $ clang -cc1 -emit-llvm -O3 -o FOO.opt.ll FOO.ll
and 'llc' is, e.g.:
  $ clang -cc1 -S -o - FOO.ll

The nice thing about using the backend tools this way is that they are guaranteed to exactly match how the compiler generates code (for example, setting the same backend options).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105583 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Frontend/CodeGenAction.h
include/clang/Frontend/FrontendAction.h
lib/Frontend/CodeGenAction.cpp
test/Frontend/ir-support-codegen.ll [new file with mode: 0644]
test/Frontend/ir-support-errors.ll [new file with mode: 0644]
tools/driver/CMakeLists.txt
tools/driver/Makefile