- Nov 14, 2022
-
-
Martin Liska authored
This reverts commit 6373b1fd.
-
Martin Liska authored
This reverts commit 1f9c7936.
-
Martin Liska authored
This reverts commit 79f13136.
-
Martin Liska authored
This reverts commit 8d7a55b7.
-
Martin Liska authored
This reverts commit d05a423c.
-
Martin Liska authored
This reverts commit 9c3bc557.
-
Martin Liska authored
This reverts commit a305ac87.
-
Martin Liska authored
This reverts commit 3ed1b4ce.
-
Martin Liska authored
This reverts commit 0b3d926d.
-
Martin Liska authored
This reverts commit 52eedc1f.
-
Martin Liska authored
This reverts commit 8f5aa130.
-
Martin Liska authored
This reverts commit d8c10581.
-
Martin Liska authored
This reverts commit 70f1c410.
-
Martin Liska authored
This reverts commit dd31c692.
-
Martin Liska authored
This reverts commit 9072763f.
-
Martin Liska authored
This reverts commit bd044dae.
-
Martin Liska authored
This reverts commit 740cf7d6.
-
Martin Liska authored
gcc/ChangeLog: * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Revert.
-
Martin Liska authored
gcc/ChangeLog: * doc/cpp/pragmas.rst: Revert.
-
Martin Liska authored
This reverts commit 08fd14f9.
-
Martin Liska authored
This reverts commit 02698e21.
-
Martin Liska authored
This reverts commit 3b54cc9d.
-
Martin Liska authored
gcc/ChangeLog: * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert.
-
Martin Liska authored
gcc/ChangeLog: * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert.
-
Martin Liska authored
gcc/ChangeLog: * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Revert. * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: Revert.
-
Martin Liska authored
gcc/fortran/ChangeLog: * doc/gfortran/naming-and-argument-passing-conventions.rst: Revert.
-
Martin Liska authored
This reverts commit 05432288.
-
Martin Liska authored
This reverts commit 5e749ee3.
-
Martin Liska authored
This reverts commit c64fd694.
-
Martin Liska authored
This reverts commit 3bf46ea7.
-
Martin Liska authored
gcc/ChangeLog: * doc/gcc/gcc-command-options/option-summary.rst: Revert. * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Revert.
-
Haochen Jiang authored
gcc/ChangeLog: * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_INT8_SET): Add AMX-TILE dependency. (OPTION_MASK_ISA2_AMX_BF16_SET): Ditto. (OPTION_MASK_ISA2_AMX_FP16_SET): Ditto. (OPTION_MASK_ISA2_AMX_TILE_UNSET): Disable AMX_{INT8, BF16, FP16} when disable AMX_TILE. gcc/testsuite/ChangeLog: * gcc.target/i386/amxbf16-dpbf16ps-2.c: Remove -amx-tile. * gcc.target/i386/amxfp16-dpfp16ps-2.c: Ditto. * gcc.target/i386/amxint8-dpbssd-2.c: Ditto. * gcc.target/i386/amxint8-dpbsud-2.c: Ditto. * gcc.target/i386/amxint8-dpbusd-2.c: Ditto. * gcc.target/i386/amxint8-dpbuud-2.c: Ditto.
-
Martin Liska authored
gcc/ChangeLog: * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: Revert. * doc/gcc/gcc-command-options/option-summary.rst: Revert.
-
Richard Biener authored
The following avoids exceeding the maximum object size on 32bit platforms. * gcc.dg/pr107554.c: Restrict to lp64.
-
Hongyu Wang authored
Modern processors has multiple way instruction decoders For x86, icelake/zen3 has 5 uops, so for small loop with <= 4 instructions (usually has 3 uops with a cmp/jmp pair that can be macro-fused), the decoder would have 2 uops bubble for each iteration and the pipeline could not be fully utilized. Therefore, this patch enables loop unrolling for small size loop at O2 to fullfill the decoder as much as possible. It turns on rtl loop unrolling when targetm.loop_unroll_adjust exists and O2 plus speed only. In x86 backend the default behavior is to unroll small loops with less than 4 insns by 1 time. This improves 548.exchange2 by 9% on icelake and 7.4% on zen3 with 0.9% codesize increment. For other benchmarks the variants are minor and overall codesize increased by 0.2%. The kernel image size increased by 0.06%, and no impact on eembc. gcc/ChangeLog: * common/config/i386/i386-common.cc (ix86_optimization_table): Enable small loop unroll at O2 by default. * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll factor if -munroll-only-small-loops enabled and -funroll-loops/ -funroll-all-loops are disabled. * config/i386/i386.h (struct processor_costs): Add 2 field small_unroll_ninsns and small_unroll_factor. * config/i386/i386.opt: Add -munroll-only-small-loops. * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: Document -munroll-only-small-loops. * doc/gcc/gcc-command-options/option-summary.rst: Likewise. * loop-init.cc (pass_rtl_unroll_loops::gate): Enable rtl loop unrolling for -O2-speed and above if target hook loop_unroll_adjust exists. (pass_rtl_unroll_loops::execute): Set UAP_UNROLL flag when target hook loop_unroll_adjust exists. * config/i386/x86-tune-costs.h: Update all processor costs with small_unroll_ninsns = 4 and small_unroll_factor = 2. gcc/testsuite/ChangeLog: * gcc.dg/guality/loop-1.c: Add additional option -mno-unroll-only-small-loops. * gcc.target/i386/pr86270.c: Add -mno-unroll-only-small-loops. * gcc.target/i386/pr93002.c: Likewise.
-
Martin Liska authored
contrib/ChangeLog: * gcc-changelog/git_commit.py: Temporarily disable check_line.start.
-
GCC Administrator authored
-
- Nov 13, 2022
-
-
David Malcolm authored
This patch adds a new -Wanalyzer-tainted-assertion warning to -fanalyzer's "taint" mode (which also requires -fanalyzer-checker=taint). It complains about attacker-controlled values being used in assertions, or in any expression affecting control flow that guards a "noreturn" function. As noted in the docs part of the patch, in such cases: - when assertion-checking is enabled: an attacker could trigger a denial of service by injecting an assertion failure - when assertion-checking is disabled, such as by defining NDEBUG, an attacker could inject data that subverts the process, since it presumably violates a precondition that is being assumed by the code. For example, given: #include <assert.h> int __attribute__((tainted_args)) test_tainted_assert (int n) { assert (n > 0); return n * n; } compiling with -fanalyzer -fanalyzer-checker=taint gives: t.c: In function 'test_tainted_assert': t.c:6:3: warning: use of attacked-controlled value in condition for assertion [CWE-617] [-Wanalyzer-tainted-assertion] 6 | assert (n > 0); | ^~~~~~ 'test_tainted_assert': event 1 | | 4 | test_tainted_assert (int n) | | ^~~~~~~~~~~~~~~~~~~ | | | | | (1) function 'test_tainted_assert' marked with '__attribute__((tainted_args))' | +--> 'test_tainted_assert': event 2 | | 4 | test_tainted_assert (int n) | | ^~~~~~~~~~~~~~~~~~~ | | | | | (2) entry to 'test_tainted_assert' | 'test_tainted_assert': events 3-6 | |/usr/include/assert.h:106:10: | 106 | if (expr) \ | | ^ | | | | | (3) use of attacker-controlled value for control flow | | (4) following 'false' branch (when 'n <= 0')... |...... | 109 | __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ | | ~~~~~~~~~~~~~ | | | | | (5) ...to here | | (6) treating '__assert_fail' as an assertion failure handler due to '__attribute__((__noreturn__))' | The testcases have various examples for BUG and BUG_ON from the Linux kernel; there, the diagnostic treats "panic" as an assertion failure handler, due to '__attribute__((__noreturn__))'. gcc/analyzer/ChangeLog: PR analyzer/106235 * analyzer.opt (Wanalyzer-tainted-assertion): New. * checker-path.cc (checker_path::fixup_locations): Pass false to pending_diagnostic::fixup_location. * diagnostic-manager.cc (get_emission_location): Pass true to pending_diagnostic::fixup_location. * pending-diagnostic.cc (pending_diagnostic::fixup_location): Add bool param. * pending-diagnostic.h (pending_diagnostic::fixup_location): Add bool param to decl. * sm-taint.cc (taint_state_machine::m_tainted_control_flow): New. (taint_diagnostic::describe_state_change): Drop "final". (class tainted_assertion): New. (taint_state_machine::taint_state_machine): Initialize m_tainted_control_flow. (taint_state_machine::alt_get_inherited_state): Support comparisons being tainted, based on their arguments. (is_assertion_failure_handler_p): New. (taint_state_machine::on_stmt): Complain about calls to assertion failure handlers guarded by an attacker-controller conditional. Detect attacker-controlled gcond conditionals and gswitch index values. (taint_state_machine::check_control_flow_arg_for_taint): New. gcc/ChangeLog: PR analyzer/106235 * doc/gcc/gcc-command-options/option-summary.rst: Add -Wno-analyzer-tainted-assertion. * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Add -Wno-analyzer-tainted-assertion. gcc/testsuite/ChangeLog: PR analyzer/106235 * gcc.dg/analyzer/taint-assert-BUG_ON.c: New test. * gcc.dg/analyzer/taint-assert-macro-expansion.c: New test. * gcc.dg/analyzer/taint-assert.c: New test. * gcc.dg/analyzer/taint-assert-system-header.c: New test. * gcc.dg/analyzer/test-assert.h: New header. * gcc.dg/plugin/analyzer_gil_plugin.c (gil_diagnostic::fixup_location): Add bool param. Signed-off-by:
David Malcolm <dmalcolm@redhat.com>
-
José Rui Faustino de Sousa authored
Error message improvement. In Fortran 2008 actual procedure arguments associated with a pointer, intent(in) attribute, dummy argument can also have the target attribute, not just pointer. gcc/fortran/ChangeLog: PR fortran/94104 * interface.cc (gfc_compare_actual_formal): Improve error message dependent on Fortran standard level. gcc/testsuite/ChangeLog: PR fortran/94104 * gfortran.dg/parens_2.f90: Adjust to improved error message. * gfortran.dg/PR94104a.f90: New test. * gfortran.dg/PR94104b.f90: New test.
-
John David Anglin authored
The guality check command hangs. This causes TCL errors in other tests and slows testsuite execution. 2022-11-13 John David Anglin <danglin@gcc.gnu.org> gcc/testsuite/ChangeLog: * g++.dg/guality/guality.exp: Skip on hppa*-*-hpux*. * gcc.dg/guality/guality.exp: Likewise. * gfortran.dg/guality/guality.exp: Likewise.
-