Committed to branch dmalcolm/jit:
gcc/jit/ChangeLog.jit:
* docs/index.rst: Add internals/index.rst.
* docs/internals/index.rst: New.
* notes.txt: Update to reflect renaming of toplev_main to
toplev::main.
---
gcc/jit/ChangeLog.jit | 7 ++++
gcc/jit/docs/index.rst | 1 +
gcc/jit/docs/internals/index.rst | 78 ++++++++++++++++++++++++++++++++++++++++
gcc/jit/notes.txt | 4 +--
4 files changed, 88 insertions(+), 2 deletions(-)
create mode 100644 gcc/jit/docs/internals/index.rst
diff --git a/gcc/jit/ChangeLog.jit b/gcc/jit/ChangeLog.jit
index 14576f2..7bc0d20 100644
--- a/gcc/jit/ChangeLog.jit
+++ b/gcc/jit/ChangeLog.jit
@@ -1,5 +1,12 @@
2014-09-22 David Malcolm <[email protected]>
+ * docs/index.rst: Add internals/index.rst.
+ * docs/internals/index.rst: New.
+ * notes.txt: Update to reflect renaming of toplev_main to
+ toplev::main.
+
+2014-09-22 David Malcolm <[email protected]>
+
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* docs/intro/install.rst: Reduce width of listing.
* docs/intro/tutorial01.rst: Use <libgccjit.h> rather than
diff --git a/gcc/jit/docs/index.rst b/gcc/jit/docs/index.rst
index 52993a1..ed75e36 100644
--- a/gcc/jit/docs/index.rst
+++ b/gcc/jit/docs/index.rst
@@ -25,6 +25,7 @@ Contents:
intro/index.rst
topics/index.rst
+ internals/index.rst
This document describes `libgccjit <http://gcc.gnu.org/wiki/JIT>`_, an API
for embedding GCC inside programs and libraries.
diff --git a/gcc/jit/docs/internals/index.rst b/gcc/jit/docs/internals/index.rst
new file mode 100644
index 0000000..3702cad
--- /dev/null
+++ b/gcc/jit/docs/internals/index.rst
@@ -0,0 +1,78 @@
+.. Copyright (C) 2014 Free Software Foundation, Inc.
+ Originally contributed by David Malcolm <[email protected]>
+
+ This is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+
+Internals
+=========
+
+Using a working copy without installing
+---------------------------------------
+When directly working on the library you can avoid needing to install to
+test changes.
+
+When building code using the API you need to ensure that ``-I`` points to
+the directory containing ``libgccjit.h`` and ``-L`` points to the
+directory containing the built library.
+
+You'll need to manually set ``LD_LIBRARY_PATH`` to the directory containing
+``libgccjit.so`` when running binaries (or debugging them).
+
+Running the test suite
+----------------------
+
+.. code-block:: console
+
+ [build] $ cd gcc
+ [gcc] $ make check-parallel-jit RUNTESTFLAGS="-v -v -v"
+
+A summary of the tests can then be seen in:
+
+.. code-block:: console
+
+ jit/build/gcc/testsuite/jit/jit.sum
+
+and detailed logs in:
+
+.. code-block:: console
+
+ jit/build/gcc/testsuite/jit/jit.log
+
+The test executables can be seen as:
+
+.. code-block:: console
+
+ jit/build/gcc/testsuite/jit/*.exe
+
+which can be run independently.
+
+You can compile and run individual tests by passing "jit.exp=TESTNAME" to
RUNTESTFLAGS e.g.:
+
+.. code-block:: console
+
+ [gcc] $ make check-parallel-jit RUNTESTFLAGS="-v -v -v
jit.exp=test-factorial.c"
+
+and once a test has been compiled, you can debug it directly:
+
+.. code-block:: console
+
+ [gcc] $ LD_LIBRARY_PATH=. gdb testsuite/jit/test-factorial.exe
+
+
+Overview of code structure
+--------------------------
+
+ .. literalinclude:: ../../notes.txt
+ :lines: 1-
diff --git a/gcc/jit/notes.txt b/gcc/jit/notes.txt
index 5f8a21e..54dca8f 100644
--- a/gcc/jit/notes.txt
+++ b/gcc/jit/notes.txt
@@ -16,7 +16,7 @@ Client Code . Generated . libgccjit.so
. . │ . .
. . │ ACQUIRE MUTEX .
. . │ . .
- . . V───────────────────────> toplev_main (for now)
+ . . V───────────────────────> toplev::main (for now)
. . . . │
. . . . (various code)
. . . . │
@@ -59,7 +59,7 @@ Client Code . Generated . libgccjit.so
. . . . │
. . . . (the middle─end and
backend)
. . . . ↓
- . . <───────────────────────────── end of
toplev_main
+ . . <───────────────────────────── end of
toplev::main
. . │ RELEASE MUTEX .
. . │ . .
. . │ Convert assembler to DSO
--
1.7.11.7