llvm-project/clang
Ted Kremenek a40f8ebc83 static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3 by 7-10% by recylcing "uninteresting" ExplodedNodes.
The optimization involves eagerly pruning ExplodedNodes from the ExplodedGraph that contain
practically no difference between the predecessor and successor nodes.  For example, if
the state is different between a predecessor and a node, the node is left in.  Only for
the 'environment' component of the state do we not care if the ExplodedNodes are different.
This paves the way for future optimizations where we can reclaim the environment objects.

llvm-svn: 125154
2011-02-09 01:27:33 +00:00
..
INPUTS
bindings/python python bindings: Add support for different kind of completion chunks 2011-02-05 17:54:10 +00:00
clang.xcodeproj Save getObjCGCAttrKind and use it in two places 2011-01-13 21:35:27 +00:00
docs Add a __has_feature check for default template arguments in function 2011-02-05 20:35:30 +00:00
examples make `make` work in examples/PrintFucntionNames on Mac. I checked that it still works on Linux. 2011-01-26 21:28:52 +00:00
include static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3 by 7-10% by recylcing "uninteresting" ExplodedNodes. 2011-02-09 01:27:33 +00:00
lib static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3 by 7-10% by recylcing "uninteresting" ExplodedNodes. 2011-02-09 01:27:33 +00:00
runtime build: Use CLANG_NO_RUNTIME=1 specifically, not just any definition. 2010-12-22 22:23:39 +00:00
test analyzer, retain/release checker: Remove hack where objects passed in message to 'self' are no longer tracked. 2011-02-08 22:54:26 +00:00
tools No longer pass deprecated '-nodistribute' flag to xcodebuild. 2011-02-08 22:54:30 +00:00
unittests build: Prevent duplicate inclusion of Makefile.rules, which causes make to warn 2011-02-04 17:12:27 +00:00
utils Minor fix for clang-completion-mode, from Dve Abrahams 2010-12-14 16:52:29 +00:00
www More tweaks to the compatibility page. 2011-02-03 11:29:18 +00:00
CMakeLists.txt Moved here from LLVM Clang's configuration options and related macros. 2011-02-03 22:48:20 +00:00
INSTALL.txt
LICENSE.TXT
Makefile Add gTest unittests to clang, and write the first one. 2011-02-03 04:51:52 +00:00
ModuleInfo.txt
NOTES.txt A Release-Asserts build is now called a Release build. 2010-07-07 07:49:17 +00:00
README.txt Fix typo (test commit) 2010-06-17 12:39:05 +00:00
TODO.txt Test commit; added blank line to TODO.txt 2011-01-04 19:19:20 +00:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/