| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 108621
|
|
|
|
| |
llvm-svn: 108619
|
|
|
|
|
|
|
| |
Let AnalysisContext contain a TranslationUnit.
Let CallEnter refer to an AnalysisContext instead of a FunctionDecl.
llvm-svn: 108617
|
|
|
|
| |
llvm-svn: 108605
|
|
|
|
| |
llvm-svn: 108457
|
|
|
|
| |
llvm-svn: 108445
|
|
|
|
| |
llvm-svn: 108054
|
|
|
|
| |
llvm-svn: 107427
|
|
|
|
|
|
| |
Straszheim!
llvm-svn: 106113
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
library configuration
Currently, all AST consumers are located in the Frontend library,
meaning that in a shared library configuration, Frontend has a
dependency on Rewrite, Checker and CodeGen. This is suboptimal for
clients which only wish to make use of the frontend. CodeGen in
particular introduces a large number of unwanted dependencies.
This patch breaks the dependency by moving all AST consumers with
dependencies on Rewrite, Checker and/or CodeGen to their respective
libraries. The patch therefore introduces dependencies in the other
direction (i.e. from Rewrite, Checker and CodeGen to Frontend).
After applying this patch, Clang builds correctly using CMake and
shared libraries ("cmake -DBUILD_SHARED_LIBS=ON").
N.B. This patch includes file renames which are indicated in the
patch body.
Changes in this revision of the patch:
- Fixed some copy-paste mistakes in the header files
- Modified certain aspects of the coding to comply with the LLVM
Coding Standards
llvm-svn: 106010
|
|
|
|
|
|
| |
over Arg*s.
llvm-svn: 105838
|
|
|
|
|
|
| |
scattered throughout the project Makefiles.
llvm-svn: 105638
|
|
|
|
|
|
| |
- This eliminates most dependencies on how Clang is installed relative to LLVM.
llvm-svn: 105637
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This magically enables using 'clang -cc1' as a replacement for most of 'llvm-as', 'llvm-dis', 'llc' and 'opt' functionality.
For example, 'llvm-as' is:
$ clang -cc1 -emit-llvm-bc FOO.ll -o FOO.bc
and 'llvm-dis' is:
$ 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).
llvm-svn: 105583
|
|
|
|
|
|
| |
.s printer or .o writer.
llvm-svn: 104623
|
|
|
|
|
|
| |
Also, fix output defaulting to match llvm-mc.
llvm-svn: 104246
|
|
|
|
|
|
| |
approximately the same interface as 'llvm-mc'.
llvm-svn: 104239
|
|
|
|
| |
llvm-svn: 103258
|
|
|
|
|
|
| |
mysterious Elrood on IRC.
llvm-svn: 102435
|
|
|
|
| |
llvm-svn: 101786
|
|
|
|
|
|
|
|
| |
option parser.
- Note that this is a behavior change, previously -mllvm at the driver level forwarded to clang -cc1. The driver does a little magic to make sure that '-mllvm -disable-llvm-optzns' works correctly, but other users will need to be updated to use -Xclang.
llvm-svn: 101354
|
|
|
|
|
|
| |
-dump-record-layouts a bit that Sema honors.
llvm-svn: 100747
|
|
|
|
| |
llvm-svn: 100718
|
|
|
|
| |
llvm-svn: 100537
|
|
|
|
|
|
| |
works with inline asm!
llvm-svn: 100493
|
|
|
|
|
|
| |
Clang++ support, even in "Production" mode (for testing purposes).
llvm-svn: 100119
|
|
|
|
| |
llvm-svn: 99894
|
|
|
|
|
|
| |
rdar://7781603
llvm-svn: 99878
|
|
|
|
|
|
|
|
| |
-disable-free. Among other things, this fixes freeing of the LLVM module on
exit.
- Note that this means we are disable-free'ing of a lot more stuff than we used to -- this should flush out bugs in anything left that is trying to do real work in its destructor. I did a mini-audit but '::~' is not totally uncommon.
llvm-svn: 99258
|
|
|
|
|
|
| |
-v style) to a file.
llvm-svn: 99054
|
|
|
|
|
|
|
|
| |
actual action.
- This is easier to use, and more reliable for timing the thing this was
actually meant to be useful for.
llvm-svn: 98978
|
|
|
|
|
| |
Tested: make CPPFLAGS=-m64 CXXFLAGS=-m64 -j8 && (cd tools/clang;make test)
llvm-svn: 98399
|
|
|
|
| |
llvm-svn: 97951
|
|
|
|
|
|
|
|
|
|
| |
This is the way I would like to move the frontend function towards -- distinct
pieces of functionality should be exposed only via FrontendAction
implementations which have clean and relatively-stable APIs.
This also isolates the surface area in clang which depends on LLVM CodeGen.
llvm-svn: 97110
|
|
|
|
| |
llvm-svn: 97102
|
|
|
|
| |
llvm-svn: 96760
|
|
|
|
|
|
| |
- Used to do regex patsubst on arguments.
llvm-svn: 96512
|
|
|
|
| |
llvm-svn: 96314
|
|
|
|
| |
llvm-svn: 96313
|
|
|
|
|
|
|
| |
context with the AST importer. WIP, still useless but at least it has
a test.
llvm-svn: 95683
|
|
|
|
| |
llvm-svn: 95182
|
|
|
|
|
|
|
| |
This includes the fix in r94797 to reflect the new dependency of Sema on
Analysis.
llvm-svn: 94806
|
|
|
|
| |
llvm-svn: 94797
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(1) libAnalysis is a generic analysis library that can be used by
Sema. It defines the CFG, basic dataflow analysis primitives, and
inexpensive flow-sensitive analyses (e.g. LiveVariables).
(2) libChecker contains the guts of the static analyzer, incuding the
path-sensitive analysis engine and domain-specific checks.
Now any clients that want to use the frontend to build their own tools
don't need to link in the entire static analyzer.
This change exposes various obvious cleanups that can be made to the
layout of files and headers in libChecker. More changes pending. :)
This change also exposed a layering violation between AnalysisContext
and MemRegion. BlockInvocationContext shouldn't explicitly know about
BlockDataRegions. For now I've removed the BlockDataRegion* from
BlockInvocationContext (removing context-sensitivity; although this
wasn't used yet). We need to have a better way to extend
BlockInvocationContext (and any LocationContext) to add
context-sensitivty.
llvm-svn: 94406
|
|
|
|
| |
llvm-svn: 94379
|
|
|
|
|
|
| |
Ingmar Vanhassel. Fixes PR6046.
llvm-svn: 93741
|
|
|
|
| |
llvm-svn: 93732
|
|
|
|
|
|
|
|
| |
clang -cc1 logic for running an action against a set of options.
- This should make it easier to build tools that have a clang -cc1 like
interface, but aren't actually part of clang -cc1.
llvm-svn: 93282
|
|
|
|
| |
llvm-svn: 93281
|
|
|
|
|
|
| |
that lack real tool definitions.
llvm-svn: 92164
|