Committed to branch dmalcolm/jit: gcc/jit/ChangeLog.jit: * TODO.rst: Rename "Initial Release" section to "API", and remove completed items: builtins, docs, pkgconfig file, fuzz testing. Move ability to name contexts and stmt_list per block ideas to a new "Nice to have" section and note that it might be better to go straight to gimple. Move code coverage to "Test suite" section. Add a "Probably not needed" section, moving some items to it. Note that we're still missing shift operators. Add idea that we could warn about unused objects in a context. --- gcc/jit/ChangeLog.jit | 12 ++++++++++++ gcc/jit/TODO.rst | 46 ++++++++++++++++++++++++---------------------- 2 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/gcc/jit/ChangeLog.jit b/gcc/jit/ChangeLog.jit index 279050b..1f408b3 100644 --- a/gcc/jit/ChangeLog.jit +++ b/gcc/jit/ChangeLog.jit @@ -1,5 +1,17 @@ 2014-09-23 David Malcolm <dmalc...@redhat.com> + * TODO.rst: Rename "Initial Release" section to "API", and + remove completed items: builtins, docs, pkgconfig file, fuzz + testing. Move ability to name contexts and stmt_list per block + ideas to a new "Nice to have" section and note that it might be + better to go straight to gimple. + Move code coverage to "Test suite" section. + Add a "Probably not needed" section, moving some items to it. + Note that we're still missing shift operators. + Add idea that we could warn about unused objects in a context. + +2014-09-23 David Malcolm <dmalc...@redhat.com> + * docs/examples/tut03-toyvm/toyvm.c: Include <dejagnu.h>. Add missing typedef of compilation_state. (toyvm_function_parse): Add "name param. diff --git a/gcc/jit/TODO.rst b/gcc/jit/TODO.rst index 4aea38c..086d084 100644 --- a/gcc/jit/TODO.rst +++ b/gcc/jit/TODO.rst @@ -1,8 +1,8 @@ TODOs ----- -Initial Release -=============== +API +=== * error-handling: * have a client-provided error-handling callback for the context, and call it, rather than asserting/crashing etc, to make the API resilient and helpful @@ -49,18 +49,14 @@ Initial Release be better? (for expressing how hot the current location is) -* ability to give contexts names, for ease of debugging? - -* can we call into GCC builtins? What might people need? - -* docs - * add a SONAME to the library (and potentially version the symbols?) * do we need alternative forms of division (floor vs rounding)? * are we missing any ops? + * shift operators + * error-checking: * gcc_jit_context_new_unary_op: various checks needed @@ -77,11 +73,6 @@ Initial Release * gcc_jit_block_add_assignment_op: check the types -* Currently each function has a single stmt_list, which is built in - postprocessing by walking the list of blocks. Presumably we could - have each block have its own stmt_list, avoiding the need for this - traversal, and having the block structure show up within tree dumps. - * Implement more kinds of casts e.g. pointers Bugs @@ -91,8 +82,6 @@ Bugs * make the dirty dirty hacks less egregious... -* pkgconfig .pc file - * test under valgrind; fix memory leaks * re-architect gcc so we don't have to reinitialize everything every time @@ -102,23 +91,36 @@ Test suite ========== * get DejaGnu to build and run C++ testcases +* measure code coverage in testing of libgccjit.so + Future milestones ================= * try porting llvmpipe to gcc -* fuzz testing - * inline assembler? -* measure code coverage in testing of libgccjit.so +* Detect and issue warnings/errors about uses of uninitialized variables -* "switch" and "case" ? +* Warn about unused objects in a context (e.g. rvalues/lvalues)? -* Detect and issue warnings/errors about uses of uninitialized variables +Nice to have +============ +* Currently each function has a single stmt_list, which is built in + postprocessing by walking the list of blocks. Presumably we could + have each block have its own stmt_list, avoiding the need for this + traversal, and having the block structure show up within tree dumps. + Alternatively, could we skip tree and go straight to gimple? + +* ability to give contexts names, for ease of debugging? + + +Probably not needed +=================== +* "switch" and "case" ? -* do we need unary plus? -* shift operators? * sizeof (should this be an API hook?) do we even need it? presumably client code can just do the sizeof() in its own code. +* do we need unary plus? + etc etc -- 1.7.11.7