diff options
| author | Christopher Li <sparse@chrisli.org> | 2017-08-09 23:24:21 -0400 |
|---|---|---|
| committer | Christopher Li <sparse@chrisli.org> | 2017-08-10 22:46:47 -0400 |
| commit | 817082c250a112ed906871c74940a3fe3ecb7c7c (patch) | |
| tree | 5b7238734be7c5392713cf1260b74d6d3d4f380c /Documentation | |
| parent | daff8f8f61ea72e04fc99045aea489e7391a0109 (diff) | |
| download | sparse-dev-817082c250a112ed906871c74940a3fe3ecb7c7c.tar.gz | |
Documents: project ideas
Adding project ideas to improve sparse.
Signed-off-by: Christopher Li <sparse@chrisli.org>
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/project-ideas.md | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Documentation/project-ideas.md b/Documentation/project-ideas.md new file mode 100644 index 00000000..380f850b --- /dev/null +++ b/Documentation/project-ideas.md @@ -0,0 +1,52 @@ +Why hacking on sparse +===================== + +1. sparse is small. + The full project compiles in less than 10 seconds on old and not performing laptop. +2. sparse is fast. + Typically, sparse can check a C file 1/10 of time it takes for gcc to generate object files. +3. sparse can digest the full kernel source files. + With sparse-llvm, sparse uses llvm as back end to emit real machine code. + +New developer hacking on sparse +============================== + + +* All sparse warning messages should include the option how + to disable it. + e.g. "pre-process.c:20*:28: warning: Variable length array is used." + should be something like + "pre-process.c:20*:28: warning: Variable length array is +used. (-Wno-vla)" +* extend test-inspect to inspect more AST fields. +* extend test-inspect to inspect instructions. +* adding architecture handling in sparse similar to cgcc +* parallel processing of test-suite +* Howto: fix the kernel rcu related checker warnings +* option to disable AST level inline. +* debug: debug version of sparse do all the verification double check +* test suite: verify and compare IR (suggested by Dibyendu Majumdar) +* checker error output database + +For experienced developers +========================== + +* merge C type on incremental declare of C type and function prototype. +* move attribute out of ctype to allow easier to add new attribute. +* serialize, general object walking driven by data structures. +* serialize, write sparse byte code into file +* serialize, load sparse byte code from file. +* symbol index/linker, know which symbol in which byte code file. +* inline function in instruction level +* cross function checking +* debug: optimization step by step log +* debug: fancy animation of CFG +* phi node location (Luc has patch) +* revisit crazy programmer warning, invalid SSA form. +* ptrlist, looping while modify inside the loop. +* dead code elimination using ssa +* constant propagation using ssa. +* x86/arm back end instruction set define +* register allocation. +* emit x86/arm machine level code + |
