From patchwork Tue Sep 23 18:29:22 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Malcolm X-Patchwork-Id: 392623 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 054941400B6 for ; Wed, 24 Sep 2014 04:33:11 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; q=dns; s=default; b=fqOpmp8DiRWW EjuIZUGmKJfRKRngeI6sMTci0WQjlF4/1m+CQ/6b1OLKJudHf2qpMvEaHTucl5qm Vo+Le293DyrsuEU2H9FBDuNLn2LmhiVBRhCeIwvtW0DcDvr9Z1v8qbIgjN2KPm9p hVkGzOGVYjwS91mymxd4FCxWdjk6pz0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; s=default; bh=ZNZPnAziWFqOwzjTu2 OTJqTd81U=; b=Ql6lrULpoG+LIhkx5OBnpPjSroZbRKo/KvONBobfPUBDmG+U17 aTu01GpnUAEKpGiEt0ESK9MpdmAv1HiiJ+gEzCTInMr+Y0xaYb2pCPre/NRdwbQ+ K0woLxvl2hnKzH3jzWZrJH5UJF1bBbfvIvudLaVgS+Dcxx82c4X+qS3sM= Received: (qmail 2032 invoked by alias); 23 Sep 2014 18:33:04 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 2013 invoked by uid 89); 23 Sep 2014 18:33:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 23 Sep 2014 18:33:02 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s8NIX1Gs010859 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 23 Sep 2014 14:33:01 -0400 Received: from surprise.redhat.com (vpn-230-182.phx2.redhat.com [10.3.230.182]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s8NIX0gF030119; Tue, 23 Sep 2014 14:33:00 -0400 From: David Malcolm To: jit@gcc.gnu.org, gcc-patches@gcc.gnu.org Cc: David Malcolm Subject: [jit] Update TODO.rst Date: Tue, 23 Sep 2014 14:29:22 -0400 Message-Id: <1411496962-6354-1-git-send-email-dmalcolm@redhat.com> X-IsSubscribed: yes 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 + * 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 + * docs/examples/tut03-toyvm/toyvm.c: Include . 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