Adding project ideas to improve sparse. Signed-off-by: Christopher Li <sparse@xxxxxxxxxxx> --- Documentation/project-ideas.md | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Documentation/project-ideas.md diff --git a/Documentation/project-ideas.md b/Documentation/project-ideas.md new file mode 100644 index 0000000..380f850 --- /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 + -- 2.13.3 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html