aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2014-12-08 18:56:21 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2014-12-08 18:56:21 +0000
commit0f37944592a2c9ea701d82da142c0d4931a2f6f5 (patch)
tree0bb308ca66d1df145842feb5be0033e052b2c2bb /gcc
parentb09e592eeefde7c1e9159d69358314308b3cb350 (diff)
downloadgcc-0f37944592a2c9ea701d82da142c0d4931a2f6f5.zip
gcc-0f37944592a2c9ea701d82da142c0d4931a2f6f5.tar.gz
gcc-0f37944592a2c9ea701d82da142c0d4931a2f6f5.tar.bz2
Make jit/notes.txt better reflect current status quo
gcc/jit/ChangeLog: * notes.txt: Show the beginning and ending of recording::context::compile vs playback::context::compile. Show the creation and unlinking of the tempdir. Show toplev::finalize. Move "RELEASE MUTEX" to the correct location. Show gcc_jit_result_release, and indicate where the dlopen/dlsym/dlclose occur. From-SVN: r218488
Diffstat (limited to 'gcc')
-rw-r--r--gcc/jit/ChangeLog9
-rw-r--r--gcc/jit/notes.txt38
2 files changed, 43 insertions, 4 deletions
diff --git a/gcc/jit/ChangeLog b/gcc/jit/ChangeLog
index 8a23735..a809566 100644
--- a/gcc/jit/ChangeLog
+++ b/gcc/jit/ChangeLog
@@ -1,3 +1,12 @@
+2014-12-08 David Malcolm <dmalcolm@redhat.com>
+
+ * notes.txt: Show the beginning and ending of
+ recording::context::compile vs playback::context::compile. Show
+ the creation and unlinking of the tempdir. Show toplev::finalize.
+ Move "RELEASE MUTEX" to the correct location. Show
+ gcc_jit_result_release, and indicate where the
+ dlopen/dlsym/dlclose occur.
+
2014-12-01 David Malcolm <dmalcolm@redhat.com>
* docs/examples/tut02-square.c (main): Release the context
diff --git a/gcc/jit/notes.txt b/gcc/jit/notes.txt
index d337cb4..12bb6d6 100644
--- a/gcc/jit/notes.txt
+++ b/gcc/jit/notes.txt
@@ -18,9 +18,13 @@ Client Code . Generated . libgccjit.so
│ . . . .
V . . gcc_jit_context_compile .
──────────────────────────> . .
+ . . │ start of recording::context::compile ()
. . │ . .
. . │ ACQUIRE MUTEX .
. . │ . .
+ . . │ start of playback::context::compile ()
+ . . │ (create tempdir) .
+ . . │ . .
. . V───────────────────────> toplev::main (for now)
. . . . │
. . . . (various code)
@@ -65,13 +69,33 @@ Client Code . Generated . libgccjit.so
. . . . (the middle─end and backend)
. . . . ↓
. . <───────────────────────────── end of toplev::main
- . . │ RELEASE MUTEX .
. . │ . .
- . . │ Convert assembler to DSO
+ . . V───────────────────────> toplev::finalize
+ . . . . │ (purge internal state)
+ . . <──────────────────────── end of toplev::finalize
+ . . │ . .
+ . . │ Convert assembler to DSO ("fake.so")
+ . . │ . .
+ . . │ Load DSO (dlopen "fake.so")
. . │ . .
- . . │ Load DSO .
+ . . │ end of playback::context::compile ()
+ . . │ . .
+ . . │ playback::context dtor
+ . . ──> . .
+ . . │ Cleanup tempdir .
+ . . │ ("fake.so" is unlinked from the
+ . . │ filesystem at this point)
+ . . <── . .
+ . . │ . .
+ . . │ RELEASE MUTEX .
+ . . │ . .
+ . . │ end of recording::context::compile ()
<─────────────────────────── . .
│ . . . .
+ V . . gcc_jit_result_get_code .
+ ──────────────────────────> . .
+ . . │ dlsym () within loaded DSO
+ <─────────────────────────── . .
Get (void*). . . .
│ . . . .
│ Call it . . . .
@@ -80,5 +104,11 @@ Client Code . Generated . libgccjit.so
. │ . . .
<─────────────── . . .
│ . . . .
+etc│ . . . .
+ │ . . . .
+ V . . gcc_jit_result_release .
+ ──────────────────────────> . .
+ . . │ dlclose () the loaded DSO
+ . . │ (code becomes uncallable)
+ <─────────────────────────── . .
│ . . . .
-etc