aboutsummaryrefslogtreecommitdiff
path: root/gcc/jit
AgeCommit message (Collapse)AuthorFilesLines
2023-08-30Daily bump.GCC Administrator1-0/+16
2023-08-29libgccjit: add support for `restrict` attribute on function parametersGuillaume Gomez10-2/+136
gcc/jit/Changelog: * jit-playback.cc: Remove trailing whitespace characters. * jit-playback.h: Add get_restrict method. * jit-recording.cc: Add get_restrict methods. * jit-recording.h: Add get_restrict methods. * libgccjit++.h: Add get_restrict methods. * libgccjit.cc: Add gcc_jit_type_get_restrict. * libgccjit.h: Declare gcc_jit_type_get_restrict. * libgccjit.map: Declare gcc_jit_type_get_restrict. gcc/testsuite/ChangeLog: * jit.dg/test-restrict.c: Add test for __restrict__ attribute. * jit.dg/all-non-failing-tests.h: Add test-restrict.c to the list. gcc/jit/ChangeLog: * docs/topics/compatibility.rst: Add documentation for LIBGCCJIT_ABI_25. * docs/topics/types.rst: Add documentation for gcc_jit_type_get_restrict. Signed-off-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2023-02-17Daily bump.GCC Administrator1-0/+6
2023-02-16don't declare header-defined functions both static and inlinePatrick Palka2-9/+9
Many functions defined in our headers are declared 'static inline' which is a C idiom whose use predates our move to C++ as the implementation language. But in C++ the inline keyword is more than just a compiler hint, and is sufficient to give the function the intended semantics. In fact declaring a function both static and inline is a pessimization since static effectively disables the desired definition merging behavior enabled by inline, and is also a source of (harmless) ODR violations when a static inline function gets called from a non-static inline one (such as tree_operand_check calling tree_operand_length). This patch mechanically fixes the vast majority of occurrences of this anti-pattern throughout the compiler's headers via the command line sed -i 's/^static inline/inline/g' gcc/*.h gcc/*/*.h There's also a manual change to remove the redundant declarations of is_ivar and lookup_category in gcc/objc/objc-act.cc which would otherwise conflict with their modified definitions in objc-act.h (due to the difference in staticness). Besides fixing some ODR violations, this speeds up stage1 cc1plus by about 2% and reduces the size of its text segment by 1.5MB. gcc/ChangeLog: * addresses.h: Mechanically drop 'static' from 'static inline' functions via s/^static inline/inline/g. * asan.h: Likewise. * attribs.h: Likewise. * basic-block.h: Likewise. * bitmap.h: Likewise. * cfghooks.h: Likewise. * cfgloop.h: Likewise. * cgraph.h: Likewise. * cselib.h: Likewise. * data-streamer.h: Likewise. * debug.h: Likewise. * df.h: Likewise. * diagnostic.h: Likewise. * dominance.h: Likewise. * dumpfile.h: Likewise. * emit-rtl.h: Likewise. * except.h: Likewise. * expmed.h: Likewise. * expr.h: Likewise. * fixed-value.h: Likewise. * gengtype.h: Likewise. * gimple-expr.h: Likewise. * gimple-iterator.h: Likewise. * gimple-predict.h: Likewise. * gimple-range-fold.h: Likewise. * gimple-ssa.h: Likewise. * gimple.h: Likewise. * graphite.h: Likewise. * hard-reg-set.h: Likewise. * hash-map.h: Likewise. * hash-set.h: Likewise. * hash-table.h: Likewise. * hwint.h: Likewise. * input.h: Likewise. * insn-addr.h: Likewise. * internal-fn.h: Likewise. * ipa-fnsummary.h: Likewise. * ipa-icf-gimple.h: Likewise. * ipa-inline.h: Likewise. * ipa-modref.h: Likewise. * ipa-prop.h: Likewise. * ira-int.h: Likewise. * ira.h: Likewise. * lra-int.h: Likewise. * lra.h: Likewise. * lto-streamer.h: Likewise. * memmodel.h: Likewise. * omp-general.h: Likewise. * optabs-query.h: Likewise. * optabs.h: Likewise. * plugin.h: Likewise. * pretty-print.h: Likewise. * range.h: Likewise. * read-md.h: Likewise. * recog.h: Likewise. * regs.h: Likewise. * rtl-iter.h: Likewise. * rtl.h: Likewise. * sbitmap.h: Likewise. * sched-int.h: Likewise. * sel-sched-ir.h: Likewise. * sese.h: Likewise. * sparseset.h: Likewise. * ssa-iterators.h: Likewise. * system.h: Likewise. * target-globals.h: Likewise. * target.h: Likewise. * timevar.h: Likewise. * tree-chrec.h: Likewise. * tree-data-ref.h: Likewise. * tree-iterator.h: Likewise. * tree-outof-ssa.h: Likewise. * tree-phinodes.h: Likewise. * tree-scalar-evolution.h: Likewise. * tree-sra.h: Likewise. * tree-ssa-alias.h: Likewise. * tree-ssa-live.h: Likewise. * tree-ssa-loop-manip.h: Likewise. * tree-ssa-loop.h: Likewise. * tree-ssa-operands.h: Likewise. * tree-ssa-propagate.h: Likewise. * tree-ssa-sccvn.h: Likewise. * tree-ssa.h: Likewise. * tree-ssanames.h: Likewise. * tree-streamer.h: Likewise. * tree-switch-conversion.h: Likewise. * tree-vectorizer.h: Likewise. * tree.h: Likewise. * wide-int.h: Likewise. gcc/c-family/ChangeLog: * c-common.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/c/ChangeLog: * c-parser.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/cp/ChangeLog: * cp-tree.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/fortran/ChangeLog: * gfortran.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. gcc/jit/ChangeLog: * jit-dejagnu.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. * jit-recording.h: Likewise. gcc/objc/ChangeLog: * objc-act.h: Mechanically drop static from static inline functions via s/^static inline/inline/g. * objc-map.h: Likewise. * objc-act.cc: Remove the redundant redeclarations of is_ivar and lookup_category.
2023-01-16Update copyright years.Jakub Jelinek69-110/+110
2023-01-08Daily bump.GCC Administrator1-0/+5
2023-01-07Always define `WIN32_LEAN_AND_MEAN` before <windows.h>LIU Hao1-0/+1
Recently, mingw-w64 has got updated <msxml.h> from Wine which is included indirectly by <windows.h> if `WIN32_LEAN_AND_MEAN` is not defined. The `IXMLDOMDocument` class has a member function named `abort()`, which gets affected by our `abort()` macro in "system.h". `WIN32_LEAN_AND_MEAN` should, nevertheless, always be defined. This can exclude 'APIs such as Cryptography, DDE, RPC, Shell, and Windows Sockets' [1], and speed up compilation of these files a bit. [1] https://learn.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers gcc/ PR middle-end/108300 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. * diagnostic-color.cc: Likewise. * plugin.cc: Likewise. * prefix.cc: Likewise. gcc/ada/ PR middle-end/108300 * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include <windows.h>`. * cio.c: Likewise. * ctrl_c.c: Likewise. * expect.c: Likewise. * gsocket.h: Likewise. * mingw32.h: Likewise. * mkdir.c: Likewise. * rtfinal.c: Likewise. * rtinit.c: Likewise. * seh_init.c: Likewise. * sysdep.c: Likewise. * terminals.c: Likewise. * tracebak.c: Likewise. gcc/jit/ PR middle-end/108300 * jit-w32.h: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. libatomic/ PR middle-end/108300 * config/mingw/lock.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. libffi/ PR middle-end/108300 * src/aarch64/ffi.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. libgcc/ PR middle-end/108300 * config/i386/enable-execute-stack-mingw32.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. * libgcc2.c: Likewise. * unwind-generic.h: Likewise. libgfortran/ PR middle-end/108300 * intrinsics/sleep.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. libgomp/ PR middle-end/108300 * config/mingw32/proc.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. libiberty/ PR middle-end/108300 * make-temp-file.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. * pex-win32.c: Likewise. libssp/ PR middle-end/108300 * ssp.c: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. libstdc++-v3/ PR middle-end/108300 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. * src/c++11/thread.cc: Likewise. * src/c++17/fs_ops.cc: Likewise. * src/filesystem/ops.cc: Likewise. libvtv/ PR middle-end/108300 * vtv_malloc.cc: Define `WIN32_LEAN_AND_MEAN` before <windows.h>. * vtv_rts.cc: Likewise. * vtv_utils.cc: Likewise.
2023-01-02Update Copyright year in ChangeLog filesJakub Jelinek1-1/+1
2022 -> 2023
2022-12-22Daily bump.GCC Administrator1-0/+4
2022-12-21libgccjit: silent 2 Clang warningsMartin Liska1-2/+2
The make silent the following 2 warnings: jit/jit-playback.h:785:16: warning: private field 'm_source_file' is not used [-Wunused-private-field] jit/jit-playback.h:804:16: warning: private field 'm_line' is not used [-Wunused-private-field] gcc/jit/ChangeLog: * jit-playback.h: Use unused attribute.
2022-12-15Daily bump.GCC Administrator1-0/+6
2022-12-13libgccjit: Allow comparing vector typesAntoni Boucher1-0/+9
gcc/jit/ChangeLog: PR jit/108078 * jit-recording.h: Add vector_type::is_same_type_as method gcc/testsuite/ChangeLog: PR jit/108078 * jit.dg/test-vector-types.cc: Add tests for vector type comparison Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com> Signed-off-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2022-12-08Daily bump.GCC Administrator1-0/+9
2022-12-06libgccjit: Fix float vector comparisonAntoni Boucher4-8/+42
Fix float vector comparison and add comparison tests to include float and vectors. gcc/testsuite: PR jit/107770 * jit.dg/harness.h: Add new macro to to perform vector comparisons * jit.dg/test-expressions.c: Extend comparison tests to add float types and vectors gcc/jit: PR jit/107770 * jit-playback.cc: Fix vector float comparison * jit-playback.h: Update comparison function signature * jit-recording.cc: Update call for "new_comparison" function * jit-recording.h: Fix vector float comparison Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com> Signed-off-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2022-11-21changelog: Fix extra space after tab.Martin Liska1-4/+4
2022-11-21Daily bump.GCC Administrator1-0/+25
2022-11-19[PR other/104044] Remove extraneous semicolonsJeff Law1-1/+1
gcc/ PR other/104044 * config/mn10300/mn10300.cc (mn10300_print_operand): Remove extraneous semicolon. * config/nvptx/nvptx.cc (nvptx_goacc_reduction_fini): Likewise. gcc/jit/ PR other/104044 * jit-playback.cc (playback::lvale::mark_addressable): Remove extraeous semicolon
2022-11-19jit: Use std::mutex instead of pthread_mutex_tJonathan Wakely4-24/+29
This allows JIT to be built with a different thread model from posix where pthread isn't available By renaming the acquire_mutex () and release_mutex () member functions to lock() and unlock() we make the playback::context type meet the C++ Lockable requirements. This allows it to be used with a scoped lock (i.e. RAII) type as std::lock_guard. This automatically releases the mutex when leaving the scope. Co-authored-by: LIU Hao <lh_mouse@126.com> gcc/jit/ChangeLog: * jit-playback.cc (playback::context::scoped_lock): Define RAII lock type. (playback::context::compile): Use scoped_lock to acquire mutex for the active playback context. (jit_mutex): Change to std::mutex. (playback::context::acquire_mutex): Rename to ... (playback::context::lock): ... this. (playback::context::release_mutex): Rename to ... (playback::context::unlock): ... this. * jit-playback.h (playback::context): Rename members and declare scoped_lock. * jit-recording.cc (INCLUDE_PTHREAD_H): Remove unused define. * libgccjit.cc (version_mutex): Change to std::mutex. (struct jit_version_info): Use std::lock_guard to acquire and release mutex. gcc/ChangeLog: * system.h [INCLUDE_MUTEX]: Include header for std::mutex.
2022-11-15Daily bump.GCC Administrator1-0/+154
2022-11-14Revert "sphinx: jit: port libgccjit to shared Sphinx"Martin Liska61-57/+17067
This reverts commit 94246daa3efba88d4ae6619f24d737c01ba3dc89.
2022-11-14Revert "sphinx: add --with-sphinx-build"Martin Liska1-7/+7
This reverts commit 1f5a932e89b0c2c4a7af7f849ca2e2e3dbf329e0.
2022-11-14Revert "sphinx: fix cross manual references"Martin Liska2-3/+3
This reverts commit 72318642439703bba8c83423d4706e06444254d6.
2022-11-14Revert "sphinx: support installation if sphinx-build is missing"Martin Liska1-3/+7
This reverts commit e5821d3f62b5bf532db1be661459b7553a956fa2.
2022-11-14Revert "jit: doc: Use shared Indices and tables"Martin Liska7-36/+40
This reverts commit 3b54cc9d04c2efb2c8f9a0b515e638917636630c.
2022-11-12Daily bump.GCC Administrator1-0/+10
2022-11-11jit: doc: Use shared Indices and tablesMartin Liska7-40/+36
Apart from that, do not use leading .rst names in toctree. ChangeLog: * doc/indices-and-tables.rst: Rename Indexes to Indices. gcc/jit/ChangeLog: * doc/cp/index.rst: Remove trailing .rst in toctree. * doc/cp/intro/index.rst: Likewise. * doc/cp/topics/index.rst: Likewise. * doc/index.rst: Likewise. * doc/intro/index.rst: Likewise. * doc/topics/index.rst: Likewise. * doc/indices-and-tables.rst: New file.
2022-11-10Daily bump.GCC Administrator1-0/+129
2022-11-09sphinx: support installation if sphinx-build is missingMartin Liska1-7/+3
gcc/ChangeLog: * Makefile.in: Support installation if sphinx-build is missing. gcc/ada/ChangeLog: * gcc-interface/Make-lang.in: Support installation if sphinx-build is missing. gcc/cp/ChangeLog: * Make-lang.in: Support installation if sphinx-build is missing. gcc/d/ChangeLog: * Make-lang.in: Support installation if sphinx-build is missing. gcc/fortran/ChangeLog: * Make-lang.in: Support installation if sphinx-build is missing. gcc/go/ChangeLog: * Make-lang.in: Support installation if sphinx-build is missing. Support installation if sphinx-build is missing. gcc/jit/ChangeLog: * Make-lang.in: Support installation if sphinx-build is missing.
2022-11-09sphinx: fix cross manual referencesMartin Liska2-3/+3
gcc/ada/ChangeLog: * doc/gnat_rm/index.rst: Fix cross manual refs. gcc/ChangeLog: * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: Fix cross manual refs. * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: Likewise. gcc/jit/ChangeLog: * doc/internals/index.rst: Fix cross manual refs. * doc/topics/contexts.rst: Likewise.
2022-11-09sphinx: add --with-sphinx-buildMartin Liska1-7/+7
gcc/ChangeLog: * Makefile.in: Support --with-sphinx-build. * configure.ac: * configure: Regenerate. gcc/ada/ChangeLog: * gcc-interface/Make-lang.in: Support --with-sphinx-build. gcc/d/ChangeLog: * Make-lang.in: Support --with-sphinx-build. gcc/fortran/ChangeLog: * Make-lang.in: Support --with-sphinx-build. gcc/go/ChangeLog: * Make-lang.in: Support --with-sphinx-build. gcc/jit/ChangeLog: * Make-lang.in: Support --with-sphinx-build. libgomp/ChangeLog: * Makefile.in: Support --with-sphinx-build. * configure.ac: Likewise.. * configure: Regenerate. libiberty/ChangeLog: * Makefile.in: Support --with-sphinx-build. * configure.ac: Likewise. * configure: Regenerate. libitm/ChangeLog: * Makefile.in: Support --with-sphinx-build. * configure.ac: Likewise. * configure: Regenerate. libquadmath/ChangeLog: * Makefile.in: Support --with-sphinx-build. * configure.ac: Likewise. * configure: Regenerate.
2022-11-09sphinx: jit: port libgccjit to shared SphinxMartin Liska61-17067/+57
gcc/jit/ChangeLog: * Make-lang.in: * docs/cp/index.rst: Moved to... * doc/cp/index.rst: ...here. * docs/cp/intro/index.rst: Moved to... * doc/cp/intro/index.rst: ...here. * docs/cp/intro/tutorial01.rst: Moved to... * doc/cp/intro/tutorial01.rst: ...here. * docs/cp/intro/tutorial02.rst: Moved to... * doc/cp/intro/tutorial02.rst: ...here. * docs/cp/intro/tutorial03.rst: Moved to... * doc/cp/intro/tutorial03.rst: ...here. * docs/cp/intro/tutorial04.rst: Moved to... * doc/cp/intro/tutorial04.rst: ...here. * docs/cp/topics/asm.rst: Moved to... * doc/cp/topics/asm.rst: ...here. * docs/cp/topics/compilation.rst: Moved to... * doc/cp/topics/compilation.rst: ...here. * docs/cp/topics/contexts.rst: Moved to... * doc/cp/topics/contexts.rst: ...here. * docs/cp/topics/expressions.rst: Moved to... * doc/cp/topics/expressions.rst: ...here. * docs/cp/topics/functions.rst: Moved to... * doc/cp/topics/functions.rst: ...here. * docs/cp/topics/index.rst: Moved to... * doc/cp/topics/index.rst: ...here. * docs/cp/topics/locations.rst: Moved to... * doc/cp/topics/locations.rst: ...here. * docs/cp/topics/objects.rst: Moved to... * doc/cp/topics/objects.rst: ...here. * docs/cp/topics/types.rst: Moved to... * doc/cp/topics/types.rst: ...here. * docs/examples/emit-alphabet.bf: Moved to... * doc/examples/emit-alphabet.bf: ...here. * docs/examples/tut01-hello-world.c: Moved to... * doc/examples/tut01-hello-world.c: ...here. * docs/examples/tut01-hello-world.cc: Moved to... * doc/examples/tut01-hello-world.cc: ...here. * docs/examples/tut02-square.c: Moved to... * doc/examples/tut02-square.c: ...here. * docs/examples/tut02-square.cc: Moved to... * doc/examples/tut02-square.cc: ...here. * docs/examples/tut03-sum-of-squares.c: Moved to... * doc/examples/tut03-sum-of-squares.c: ...here. * docs/examples/tut03-sum-of-squares.cc: Moved to... * doc/examples/tut03-sum-of-squares.cc: ...here. * docs/examples/tut04-toyvm/Makefile: Moved to... * doc/examples/tut04-toyvm/Makefile: ...here. * docs/examples/tut04-toyvm/factorial.toy: Moved to... * doc/examples/tut04-toyvm/factorial.toy: ...here. * docs/examples/tut04-toyvm/fibonacci.toy: Moved to... * doc/examples/tut04-toyvm/fibonacci.toy: ...here. * docs/examples/tut04-toyvm/toyvm.c: Moved to... * doc/examples/tut04-toyvm/toyvm.c: ...here. * docs/examples/tut04-toyvm/toyvm.cc: Moved to... * doc/examples/tut04-toyvm/toyvm.cc: ...here. * docs/examples/tut05-bf.c: Moved to... * doc/examples/tut05-bf.c: ...here. * docs/index.rst: Moved to... * doc/index.rst: ...here. * docs/internals/index.rst: Moved to... * doc/internals/index.rst: ...here. * docs/internals/test-hello-world.exe.log.txt: Moved to... * doc/internals/test-hello-world.exe.log.txt: ...here. * docs/_build/texinfo/libgccjit-figures/factorial.png: Moved to... * doc/intro/factorial.png: ...here. * docs/intro/index.rst: Moved to... * doc/intro/index.rst: ...here. * docs/_build/texinfo/libgccjit-figures/sum-of-squares.png: Moved to... * doc/intro/sum-of-squares.png: ...here. * docs/intro/tutorial01.rst: Moved to... * doc/intro/tutorial01.rst: ...here. * docs/intro/tutorial02.rst: Moved to... * doc/intro/tutorial02.rst: ...here. * docs/intro/tutorial03.rst: Moved to... * doc/intro/tutorial03.rst: ...here. * docs/intro/tutorial04.rst: Moved to... * doc/intro/tutorial04.rst: ...here. * docs/intro/tutorial05.rst: Moved to... * doc/intro/tutorial05.rst: ...here. * docs/topics/asm.rst: Moved to... * doc/topics/asm.rst: ...here. * docs/topics/compatibility.rst: Moved to... * doc/topics/compatibility.rst: ...here. * docs/topics/compilation.rst: Moved to... * doc/topics/compilation.rst: ...here. * docs/topics/contexts.rst: Moved to... * doc/topics/contexts.rst: ...here. * docs/topics/expressions.rst: Moved to... * doc/topics/expressions.rst: ...here. * docs/topics/function-pointers.rst: Moved to... * doc/topics/function-pointers.rst: ...here. * docs/topics/functions.rst: Moved to... * doc/topics/functions.rst: ...here. * docs/topics/index.rst: Moved to... * doc/topics/index.rst: ...here. * docs/topics/locations.rst: Moved to... * doc/topics/locations.rst: ...here. * docs/topics/objects.rst: Moved to... * doc/topics/objects.rst: ...here. * docs/topics/performance.rst: Moved to... * doc/topics/performance.rst: ...here. * docs/topics/types.rst: Moved to... * doc/topics/types.rst: ...here. * docs/Makefile: Removed. * docs/_build/texinfo/Makefile: Removed. * docs/_build/texinfo/libgccjit-figures/factorial1.png: Removed. * docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png: Removed. * docs/_build/texinfo/libgccjit.texi: Removed. * docs/conf.py: Removed. * docs/intro/factorial.png: Removed. * docs/intro/sum-of-squares.png: Removed. * doc/conf.py: New file.
2022-09-16Daily bump.GCC Administrator1-0/+5
2022-09-15Move void_list_node init to common codeRichard Biener1-3/+0
All frontends replicate this, so move it. gcc/ * tree.cc (build_common_tree_nodes): Initialize void_list_node here. gcc/ada/ * gcc-interface/trans.cc (gigi): Do not initialize void_list_node. gcc/c-family/ * c-common.h (build_void_list_node): Remove. * c-common.cc (c_common_nodes_and_builtins): Do not initialize void_list_node. gcc/c/ * c-decl.cc (build_void_list_node): Remove. gcc/cp/ * decl.cc (cxx_init_decl_processing): Inline last build_void_list_node call. (build_void_list_node): Remove. gcc/d/ * d-builtins.cc (d_build_c_type_nodes): Do not initialize void_list_node. gcc/fortran/ * f95-lang.cc (gfc_init_decl_processing): Do not initialize void_list_node. gcc/go/ * go-lang.cc (go_langhook_init): Do not initialize void_list_node. gcc/jit/ * dummy-frontend.cc (jit_langhook_init): Do not initialize void_list_node. gcc/lto/ * lto-lang.cc (lto_build_c_type_nodes): Do not initialize void_list_node.
2022-08-10Daily bump.GCC Administrator1-0/+5
2022-08-09libgccjit.h: Uncomment macro definition for testing ↵Vibhav Pant1-2/+2
gcc_jit_context_new_bitcast support The macro definition for LIBGCCJIT_HAVE_gcc_jit_context_new_bitcast was earlier located in the documentation comment for gcc_jit_context_new_bitcast, making it unavailable to code that consumed libgccjit.h. This commit moves the definition out of the comment, making it effective. gcc/jit/ChangeLog: * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_context_new_bitcast): Move definition out of comment. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2022-07-29Daily bump.GCC Administrator1-0/+76
2022-07-28jit: update docs to reflect .c to .cc renamingDavid Malcolm1-2/+1
gcc/jit/ChangeLog: * docs/internals/index.rst: Remove reference to ".c" extensions of source files. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2022-07-28jit,docs: shorten assembly outputMartin Liška5-7/+7
Shorten the assembly example so that there is not slider. Ready for master? Thanks, Martin gcc/jit/ChangeLog: * docs/cp/intro/tutorial02.rst: Shorten the assembly example so that there is not slider. * docs/cp/intro/tutorial04.rst: Likewise. * docs/intro/tutorial02.rst: Likewise. * docs/intro/tutorial04.rst: Likewise. * docs/topics/contexts.rst: Likewise.
2022-07-28jit,docs: remove :ref:`modindex`marxin1-1/+0
gcc/jit/ChangeLog: * docs/index.rst: Remove reference to module index as we don't emit any.
2022-07-28jit,docs: use :expr:`type *` for pointers to a typemarxin13-45/+45
gcc/jit/ChangeLog: * docs/cp/intro/tutorial02.rst: Use :expr:`type *` for pointers to a type * docs/cp/topics/asm.rst: Likewise. * docs/cp/topics/contexts.rst: Likewise. * docs/cp/topics/expressions.rst: Likewise. * docs/cp/topics/functions.rst: Likewise. * docs/cp/topics/objects.rst: Likewise. * docs/intro/tutorial02.rst: Likewise. * docs/intro/tutorial03.rst: Likewise. * docs/intro/tutorial04.rst: Likewise. * docs/intro/tutorial05.rst: Likewise. * docs/topics/compilation.rst: Likewise. * docs/topics/contexts.rst: Likewise. * docs/topics/objects.rst: Likewise.
2022-07-28jit,docs: use list-table instead of fixed tablemarxin6-143/+270
Use rather list-table that is easible to maintainer and one does not have to wrap lines. Moreover, it provides great attribute :widths: that correctly works (tested for HTML and PDF). gcc/jit/ChangeLog: * docs/cp/intro/tutorial04.rst: Use list-table. * docs/intro/tutorial04.rst: Likewise. * docs/intro/tutorial05.rst: Likewise. * docs/topics/compilation.rst: Likewise. * docs/topics/expressions.rst: Likewise. * docs/topics/types.rst: Likewise.
2022-07-28jit,docs: compact function declarationsmarxin1-28/+14
gcc/jit/ChangeLog: * docs/cp/topics/expressions.rst: Compact so that the generated output is also more compact.
2022-07-28jit,docs: various fixesmarxin6-27/+28
gcc/jit/ChangeLog: * docs/cp/intro/tutorial02.rst: Use proper reference. * docs/cp/topics/contexts.rst: Likewise. * docs/cp/topics/functions.rst: Put `class` directive before a function as it is not allowed declaring a class in a fn. * docs/cp/topics/types.rst: Add template keyword. * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile): Add removed comment used for code snippet ending detection. * docs/intro/tutorial04.rst: Fix to match the real comment.
2022-07-28jit,docs: replace c:type:`int_type` with :expr:`int_type`marxin4-9/+9
Use expression that work fine for basic type. gcc/jit/ChangeLog: * docs/cp/topics/expressions.rst: Use :expr: for basic types. * docs/topics/compilation.rst: Likewise. * docs/topics/expressions.rst: Likewise. * docs/topics/function-pointers.rst: Likewise.
2022-07-28jit,docs: use enum directive for enumeral typesmarxin6-18/+14
gcc/jit/ChangeLog: * docs/conf.py: Add needs_sphinx = '3.0' where c:type was added. * docs/index.rst: Remove note about it. * docs/topics/compilation.rst: Use enum directive and reference. * docs/topics/contexts.rst: Likewise. * docs/topics/expressions.rst: Likewise. * docs/topics/functions.rst: Likewise.
2022-07-15Daily bump.GCC Administrator1-0/+7
2022-07-14jit: Make recording::memento non-copyableJonathan Wakely1-1/+7
gcc/jit/ChangeLog: * jit-recording.h (recording::memento): Define copy constructor and copy assignment operator as deleted. (recording::string): Likewise. (recording::string::c_str): Add const qualifier.
2022-06-30Daily bump.GCC Administrator1-0/+14
2022-06-29libgccjit: Fix bug where unary_op will return an integer type instead of the ↵Antoni Boucher1-1/+2
correct type 2022-06-29 Antoni Boucher <bouanto@zoho.com> gcc/jit/ PR jit/105812 * jit-playback.cc: Use the correct return type when folding in as_truth_value. gcc/testsuite/ PR jit/105812 * jit.dg/test-asm.cc: Add include missing to make the test pass. * jit.dg/test-pr105812-bool-operations.c: New test.
2022-06-29jit: avoid calloc() poisoning on musl [PR106102]Sergei Trofimovich3-4/+3
On musl <pthread.h> uses calloc() (via <sched.h>). jit/ includes it directly and exposes use of poisoned calloc(): /build/build/./prev-gcc/xg++ ... ../../gcc-13-20220626/gcc/jit/jit-playback.cc make[3]: *** [Makefile:1143: jit/libgccjit.o] Error 1 make[3]: *** Waiting for unfinished jobs.... In file included from /<<NIX>>/musl-1.2.3-dev/include/pthread.h:30, from ../../gcc-13-20220626/gcc/jit/jit-playback.cc:44: /<<NIX>>/musl-1.2.3-dev/include/sched.h:84:7: error: attempt to use poisoned "calloc" 84 | void *calloc(size_t, size_t); | ^ /<<NIX>>/musl-1.2.3-dev/include/sched.h:124:36: error: attempt to use poisoned "calloc" 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) | ^ The change moves <pthread.h> inclusion to "system.h" under new INCLUDE_PTHREAD_H guard and uses this mechanism in libgccjit. gcc/ PR c++/106102 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>. gcc/jit/ PR c++/106102 * jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc() poisoning. * jit-recording.cc: Ditto. * libgccjit.cc: Ditto.