Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
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>
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
2022 -> 2023
|
|
|
|
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.
|
|
|
|
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>
|
|
|
|
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>
|
|
|
|
|
|
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
|
|
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.
|
|
|
|
This reverts commit 94246daa3efba88d4ae6619f24d737c01ba3dc89.
|
|
This reverts commit 1f5a932e89b0c2c4a7af7f849ca2e2e3dbf329e0.
|
|
This reverts commit 72318642439703bba8c83423d4706e06444254d6.
|
|
This reverts commit e5821d3f62b5bf532db1be661459b7553a956fa2.
|
|
This reverts commit 3b54cc9d04c2efb2c8f9a0b515e638917636630c.
|
|
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
|
|
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>
|
|
|
|
gcc/jit/ChangeLog:
* docs/internals/index.rst: Remove reference to ".c" extensions
of source files.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
|
|
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.
|
|
gcc/jit/ChangeLog:
* docs/index.rst: Remove reference to module index
as we don't emit any.
|
|
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.
|
|
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.
|
|
gcc/jit/ChangeLog:
* docs/cp/topics/expressions.rst: Compact so that the generated
output is also more compact.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
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.
|