aboutsummaryrefslogtreecommitdiff
path: root/README.txt
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-07-11 18:58:19 +0000
committerChris Lattner <sabre@nondot.org>2007-07-11 18:58:19 +0000
commit3321f9f1a9d4807bdac2c5871ea3ac14603b1713 (patch)
tree3bb9c0c8b2b192e0dd399ce1f2b596ca82eb402b /README.txt
parent268623477fee68b3d03f4e976dd97a5e3fde504c (diff)
update this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@39746 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'README.txt')
-rw-r--r--README.txt48
1 files changed, 24 insertions, 24 deletions
diff --git a/README.txt b/README.txt
index 9ec1cc4a3d..cbba8425bd 100644
--- a/README.txt
+++ b/README.txt
@@ -50,14 +50,14 @@ I. Introduction:
clang - An example driver, client of the libraries at various levels.
This depends on all these libraries, and on LLVM VMCore.
- This front-end has been intentionally built as a DAG, making it easy to
- reuse individual parts or replace pieces if desired. For example, to build a
- preprocessor, you take the Basic and Lexer libraries. If you want an indexer,
- you take those plus the Parser library and provide some actions for indexing.
- If you want a refactoring, static analysis, or source-to-source compiler tool,
- it makes sense to take those plus the AST building and semantic analyzer
- library. Finally, if you want to use this with the LLVM backend, you'd take
- these components plus the AST to LLVM lowering code.
+ This front-end has been intentionally built as a DAG of libraries, making it
+ easy to reuse individual parts or replace pieces if desired. For example, to
+ build a preprocessor, you take the Basic and Lexer libraries. If you want an
+ indexer, you take those plus the Parser library and provide some actions for
+ indexing. If you want a refactoring, static analysis, or source-to-source
+ compiler tool, it makes sense to take those plus the AST building and semantic
+ analyzer library. Finally, if you want to use this with the LLVM backend,
+ you'd take these components plus the AST to LLVM lowering code.
In the future I hope this toolkit will grow to include new and interesting
components, including a C++ front-end, ObjC support, and a whole lot of other
@@ -77,29 +77,28 @@ II. Usage of clang driver:
- To make diagnostics more gcc-like: -fno-caret-diagnostics -fno-show-column
- Enable metric printing: -stats
- * -fsyntax-only is the default mode.
+ * -fsyntax-only is currently the default mode.
- * -E mode gives output nearly identical to GCC, though not all bugs in
- whitespace calculation have been emulated (e.g. the number of blank lines
- emitted).
-
- * -fsyntax-only is currently partially implemented, lacking some semantic
- analysis.
+ * -E mode works the same way as GCC.
* -Eonly mode does all preprocessing, but does not print the output, useful for
timing the preprocessor.
- * -parse-print-callbacks prints almost no callbacks so far.
+ * -fsyntax-only is currently partially implemented, lacking some semantic
+ analysis (some errors and warnings are not produced).
+
+ * -parse-noop parses code without building an AST. This is useful for timing
+ the cost of the parser without including AST building time.
* -parse-ast builds ASTs, but doesn't print them. This is most useful for
timing AST building vs -parse-noop.
- * -parse-ast-print prints most expression and statements nodes, but some
- minor things are missing.
+ * -parse-ast-print pretty prints most expression and statements nodes.
* -parse-ast-check checks that diagnostic messages that are expected are
reported and that those which are reported are expected.
+
III. Current advantages over GCC:
* Column numbers are fully tracked (no 256 col limit, no GCC-style pruning).
@@ -128,15 +127,16 @@ Potential Future Features:
* Fast #import with a module system.
* Dependency tracking: change to header file doesn't recompile every function
that texually depends on it: recompile only those functions that need it.
+ This is aka 'incremental parsing'.
IV. Missing Functionality / Improvements
clang driver:
- * Include search paths are hard-coded into the driver.
+ * Include search paths are hard-coded into the driver. Doh.
File Manager:
- * Reduce syscalls, see NOTES.txt.
+ * Reduce syscalls for reduced compile time, see NOTES.txt.
Lexer:
* Source character mapping. GCC supports ASCII and UTF-8.
@@ -156,16 +156,16 @@ Preprocessor:
* Add support for -M*
Traditional Preprocessor:
- * All.
+ * Currently, we have none. :)
Parser:
* C90/K&R modes are only partially implemented.
- * __extension__, __attribute__ [currently just skipped and ignored].
+ * __extension__ is currently just skipped and ignored.
* "initializers", GCC inline asm.
Semantic Analysis:
* Perhaps 75% done.
-Code Gen:
- * Mostly missing.
+LLVM Code Gen:
+ * Still very early.