diff mbox

[committed] Make jit/notes.txt better reflect current status quo

Message ID 1418065700-12620-1-git-send-email-dmalcolm@redhat.com
State New
Headers show

Commit Message

David Malcolm Dec. 8, 2014, 7:08 p.m. UTC
The high-level overview diagram in jit/notes.txt showed the
release of the JIT mutex in where I'd like it to be, rather
than where it currently is.

Fix the diagram to reflect reality, and clarify various other things.

Committed to trunk as r218488.

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.
---
 gcc/jit/notes.txt | 38 ++++++++++++++++++++++++++++++++++----
 1 file changed, 34 insertions(+), 4 deletions(-)
diff mbox

Patch

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