public inbox for jit@gcc.gnu.org
 help / color / mirror / Atom feed
From: David Malcolm <dmalcolm@redhat.com>
To: jit@gcc.gnu.org, gcc-patches@gcc.gnu.org
Cc: David Malcolm <dmalcolm@redhat.com>
Subject: [jit] Update TODO.rst
Date: Wed, 01 Jan 2014 00:00:00 -0000	[thread overview]
Message-ID: <1392044027-9948-1-git-send-email-dmalcolm@redhat.com> (raw)

Committed to branch dmalcolm/jit:

gcc/jit/
	* TODO.rst: Update.
---
 gcc/jit/ChangeLog.jit |  4 +++
 gcc/jit/TODO.rst      | 69 +++++++++++++++++++++++++++++++++++++--------------
 2 files changed, 55 insertions(+), 18 deletions(-)

diff --git a/gcc/jit/ChangeLog.jit b/gcc/jit/ChangeLog.jit
index 6950b13..253f239 100644
--- a/gcc/jit/ChangeLog.jit
+++ b/gcc/jit/ChangeLog.jit
@@ -1,3 +1,7 @@
+2014-02-10  David Malcolm  <dmalcolm@redhat.com>
+
+	* TODO.rst: Update.
+
 2014-02-06  David Malcolm  <dmalcolm@redhat.com>
 
 	* libgccjit++.h: Include <ostream> rather than <iostream>, since
diff --git a/gcc/jit/TODO.rst b/gcc/jit/TODO.rst
index 0572b78..c149dde 100644
--- a/gcc/jit/TODO.rst
+++ b/gcc/jit/TODO.rst
@@ -18,9 +18,27 @@ Initial Release
   * more types:
     * unions
     * function ptrs
+    * explicitly opaque structs, perhaps:
 
-* how do you encode "x[5]=y;"?  should gcc_jit_context_new_array_lookup()
-  return an lvalue rather than an rvalue?
+        extern gcc_jit_type *
+        gcc_jit_context_new_opaque_struct (gcc_jit_context *ctxt,
+                                           const char *name);
+
+    * ability to create self-referential structs, or cycles in the graph:
+
+         struct foo { struct bar *m_bar; }
+         struct bar { struct foo *m_foo; }
+
+    * get int type with given number of either bits or bytes:
+
+        extern gcc_jit_type *
+        gcc_jit_context_get_int_type (gcc_jit_context *ctxt,
+                                      int num_bytes,
+                                      int is_signed);
+
+  * ability to bind a pre-existing global variable
+
+* expose the statements in the API? (mostly so they can be stringified?)
 
 * explicit casts::
 
@@ -53,13 +71,6 @@ Initial Release
 
   and, indeed, clarify all of the other operations.
 
-* array types, in case they're needed for structs::
-
-    extern gcc_jit_type *
-    gcc_jit_context_new_array_type (gcc_jit_context *ctxt,
-                                    gcc_jit_type *type,
-                                    int num_elements);
-
 * expressing branch probabilies (like __builtin_expect)::
 
     extern gcc_jit_rvalue *
@@ -74,22 +85,16 @@ 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
 
-* fixing all the state issues
-
-* make the dirty dirty hacks less egregious...
-
-* pkgconfig .pc file
-
 * add a SONAME to the library (and potentially version the symbols?)
 
 * add myself as maintainer
 
-* valgrind; fix memory leaks
-
 * do we need alternative forms of division (floor vs rounding)?
 
 * are we missing any ops?
@@ -104,7 +109,10 @@ Initial Release
 
     * gcc_jit_context_new_rvalue_from_int: must be a numeric type
 
-    * gcc_jit_context_zero: must be a numeric type
+    * gcc_jit_context_zero: must be a numeric type.  If we do this should
+      we introduce a gcc_jit_context_null for pointer types?  (you can do
+      this via gcc_jit_context_new_rvalue_from_ptr, but having an explicit
+      hook is friendlier).
 
     * gcc_jit_context_one: must be a numeric type
 
@@ -133,10 +141,35 @@ Initial Release
 
     * gcc_jit_loop_end: verify that loops are validly nested?
 
+Bugs
+====
+* INTERNAL functions don't seem to work (see e.g. test-quadratic, on trying
+  to make calc_disc be internal leads to:
+        /tmp/libgccjit-4FZm6B/fake.so: undefined symbol: calc_discriminant
+  works at -O3 (because it inlines away the call); fails at -O0
+
+* fixing all the state issues: make it work repeatedly with optimization
+  turned up to full.
+
+* 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
+  a context is compiled
+
 Test suite
 ==========
 * get DejaGnu to build and run C++ testcases
 
+* add a multi-threaded test (perhaps based on test-combination.c, with a
+  thread pool working through multiple instances of the various underlying
+  tests, each thread having a separate gcc_jit_context)
+
+* verify that nested loops work OK
+
 Future milestones
 =================
 * try porting llvmpipe to gcc
-- 
1.7.11.7

             reply	other threads:[~2014-02-10 14:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-01  0:00 David Malcolm [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-01-01  0:00 David Malcolm
2013-01-01  0:00 David Malcolm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1392044027-9948-1-git-send-email-dmalcolm@redhat.com \
    --to=dmalcolm@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jit@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).