Commit Graph

51 Commits

Author SHA1 Message Date
Benjamin Kramer ead810e42b clang-interpreter: libFrontend depends on libSerialization. Fix linux build by changing the link order.
llvm-svn: 112187
2010-08-26 15:21:38 +00:00
Benjamin Kramer 1921fac97e Update clang-interpreter for recent DiagnosticClient ownership changes.
llvm-svn: 112181
2010-08-26 13:48:56 +00:00
Zhongxing Xu 9f077cbc13 Add back clang-wpa. It is useful for experimenting with inter-file analysis.
llvm-svn: 112014
2010-08-25 01:15:20 +00:00
Peter Collingbourne 8e65aeea5e Add Serialization dependency to clang-interpreter
llvm-svn: 111874
2010-08-24 00:31:31 +00:00
Daniel Dunbar 468f5cb8ea Remove wpa 'example', it isn't being maintained.
llvm-svn: 110809
2010-08-11 15:21:41 +00:00
Daniel Dunbar 2be96746b4 Frontend: Change PluginASTAction::ParseArgs to take a CompilerInstance object
for use in reporting diagnostics.
 - We don't want to use the Action's own CompilerInstance, because that is only
   initialized during file processing and I like that invariant.

Also, if ParseArgs returns false then abandon execution.

Also, remove unused PluginASTAction::PrintHelp virtual method.

llvm-svn: 110039
2010-08-02 15:31:28 +00:00
Dan Gohman a8b949883e Make a variable static.
llvm-svn: 109438
2010-07-26 21:12:29 +00:00
Dan Gohman c0539d2eb6 Use an export file. Plugins must export llvm::Registry symbols.
Also, don't link in all the clang libraries statically.

llvm-svn: 109436
2010-07-26 21:12:10 +00:00
Peter Collingbourne 5a75e1ae07 Fix clang-interpreter build
llvm-svn: 109347
2010-07-24 17:59:51 +00:00
Zhongxing Xu adf644d05e Make a bunch of new data structures for the new analysis
engine of the new translation unit. State marshal is there but no real
work is done. End nodes are passed back.

llvm-svn: 109105
2010-07-22 13:52:13 +00:00
Zhongxing Xu 84f65e0692 Reapply r108617.
llvm-svn: 108668
2010-07-19 01:31:21 +00:00
Benjamin Kramer e2e031ed6f Revert r108617, it broke the build.
llvm-svn: 108621
2010-07-17 13:51:58 +00:00
Zhongxing Xu 4ca4a999b1 Prepare the analyzer for the callee in another translation unit:
Let AnalysisContext contain a TranslationUnit.
  Let CallEnter refer to an AnalysisContext instead of a FunctionDecl.

llvm-svn: 108617
2010-07-17 11:12:42 +00:00
Nick Lewycky d54e2aba6c PrintFunctionNames is a plugin, it should pull in symbols from the clang binary
that loads it, not by linking against them directly.

llvm-svn: 108055
2010-07-10 20:24:23 +00:00
Peter Collingbourne 9701743b1a Fix CMake build
llvm-svn: 108031
2010-07-09 23:06:34 +00:00
Zhongxing Xu 2231a920d0 Add skeleton code to make wpa call the analysis engine.
llvm-svn: 107646
2010-07-06 09:18:02 +00:00
Zhongxing Xu b525bce698 Collect function definitions in the Indexer when indexing through the ASTs.
Add an API to get an Entity associated with a name in the global namespace.

llvm-svn: 107642
2010-07-06 05:55:13 +00:00
Zhongxing Xu d6c221c3ee Create a ASTUnitTU class to interface ASTUnit to the Indexer.
llvm-svn: 107467
2010-07-02 11:52:15 +00:00
Zhongxing Xu a94ec74c6f add -analyze-function option.
llvm-svn: 107463
2010-07-02 07:03:03 +00:00
Zhongxing Xu 7842c0836d add -view-call-graph option to wpa.
llvm-svn: 107462
2010-07-02 06:58:30 +00:00
Zhongxing Xu a74c22daec Change CallGraph::Prog to be a reference. idx::Program means to be a global object to the Index library.
llvm-svn: 107461
2010-07-02 06:39:46 +00:00
Daniel Dunbar 7c995e8fac Frontend: Allow passing -cc1 level arguments to plugins. Patch by Troy Straszheim!
llvm-svn: 106113
2010-06-16 16:59:23 +00:00
Daniel Dunbar c1b1729b66 Break Frontend's dependency on Rewrite, Checker and CodeGen in shared 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
2010-06-15 17:48:49 +00:00
Daniel Dunbar d04e1a7ef1 Makefiles: Remove unnecessary early include of Makefile.config.
llvm-svn: 105640
2010-06-08 20:57:22 +00:00
Daniel Dunbar ee6b692551 Makefiles: Set Clang CPP compiler flags in a single location, instead of scattered throughout the project Makefiles.
llvm-svn: 105638
2010-06-08 20:44:43 +00:00
Daniel Dunbar e6c1daa8fd Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
- This eliminates most dependencies on how Clang is installed relative to LLVM.

llvm-svn: 105637
2010-06-08 20:34:18 +00:00
Douglas Gregor 61b5ff5ab4 Teach the PrintFunctionNames example to be a proper module, so that
Clang can load it as a plugin. Original fix by Troy D. Straszheim,
which I extended with Darwin support. Fixes PR6801.

llvm-svn: 105630
2010-06-08 19:23:49 +00:00
Daniel Dunbar 6311731341 Update LINK_COMPONENTS for examples.
llvm-svn: 105607
2010-06-08 15:38:01 +00:00
Benjamin Kramer 6a2542b629 Tip of the day: save before commit.
llvm-svn: 101896
2010-04-20 11:55:38 +00:00
Benjamin Kramer 25d3d782d2 Fix -Wcast-qual warnings.
llvm-svn: 101895
2010-04-20 11:50:39 +00:00
Douglas Gregor 6314641822 clang-wpa fixes for Diagnostic
llvm-svn: 100518
2010-04-06 04:03:12 +00:00
Douglas Gregor ff8f4f6262 Unbreak build
llvm-svn: 100514
2010-04-06 01:25:58 +00:00
Douglas Gregor 01fa5c3734 Grrrr
llvm-svn: 100476
2010-04-05 21:47:48 +00:00
Douglas Gregor 0228a9c76b Try to de-bork build of WPA
llvm-svn: 100475
2010-04-05 21:47:24 +00:00
Daniel Dunbar e43887bd2b Driver: Add support for a CLANGXX_IS_PRODUCTION build variable, which enable
Clang++ support, even in "Production" mode (for testing purposes).

llvm-svn: 100119
2010-04-01 18:21:41 +00:00
Kovarththanan Rajaratnam 9a3f55c2a4 Wire up Daniel's new spiffy C interpreter into the CMake build system
llvm-svn: 97311
2010-02-27 07:46:49 +00:00
Kovarththanan Rajaratnam 7cfffceec7 Add comment
llvm-svn: 97309
2010-02-27 07:06:44 +00:00
Kovarththanan Rajaratnam fa0a4bcb55 Add header + comments
llvm-svn: 97308
2010-02-27 07:05:56 +00:00
Daniel Dunbar 0076d94466 Add a minimal C interpreter example.
- Demonstrates how to build a standalone tool which loads source code using the
   Driver and Frontend libraries, and then uses CodeGen and the JIT to actually
   execute the code.

 - Still more complicated than it should be, but hey its only 153 lines. :)

--
ddunbar@ozzy:tmp$ cat hello.c
#include <stdio.h>
int main() { printf("hello world\n"); return 0; }
ddunbar@ozzy:tmp$ clang-interpreter hello.c
hello world
--

llvm-svn: 97133
2010-02-25 08:49:05 +00:00
Chris Lattner 0bcc858a2b -fno-rtti is now the default.
llvm-svn: 94379
2010-01-24 20:43:31 +00:00
Daniel Dunbar d79f40ac7a Fix -plugin command line argument syntax for clang -cc1 change.
llvm-svn: 92780
2010-01-05 21:42:23 +00:00
Douglas Gregor b752f1e25c Fix CMake build on windows, from Cedric Venet
llvm-svn: 91794
2009-12-20 20:56:30 +00:00
Daniel Dunbar 520d1e6c6b Update docs/comments/utils/examples to refer to clang -cc1 instead of clang-cc.
llvm-svn: 91176
2009-12-11 23:04:35 +00:00
Daniel Dunbar 1597da4c05 Document that CompilerInvocation::createDiagnostics keeps a reference to the DiagnosticOptions, and update callers to make sure they don't pass in a temporary.
llvm-svn: 90704
2009-12-06 09:56:30 +00:00
Daniel Dunbar 19a30ca8c0 Fix layering violation by moving Analysis/CallGraph to Index
llvm-svn: 90424
2009-12-03 07:20:04 +00:00
Daniel Dunbar 59203007ac Fix ASTUnit to allows require a (persistent) Diagnostic object be provided; propogate and simplify.
llvm-svn: 90379
2009-12-03 01:45:44 +00:00
Daniel Dunbar 5732ce39bc Update example link lines.
llvm-svn: 90359
2009-12-03 00:00:22 +00:00
Daniel Dunbar 9110165da9 Add a very minimal README.txt for examples/PrintFunctionNames.
llvm-svn: 90197
2009-12-01 03:15:49 +00:00
Daniel Dunbar 53f6f61c95 Add missed CMake file for adding clang examples to CMake build.
llvm-svn: 89080
2009-11-17 09:40:40 +00:00
Daniel Dunbar 6499e9c625 Add a trivial example plugin, which prints the names of the top-level decls.
- The build scriptage is about twice as long as the code, which is nice. :)

llvm-svn: 88826
2009-11-15 00:27:43 +00:00