> Hmm, I think instead of special-casing UNKNOWN_LOCATION
> what gimple_set_location should probably do is either not copy
> warnings at all or union them. Btw, gimple_set_location also
> removes a previously set BLOCK (but gimple_set_block preserves
> the location locus and diagnostic override).
new optimization doesn't trigger rather than a
> condition that will always require memory?
It may indeed be too big a hammer.
Roger, would it be sufficient to use EXPAND_MEMORY only when must_force_mem
computed a few lines below if true?
--
Eric Botcazou
> So that also applies to
>
> "... and the second profiling function is called before the exit
> +corresponding to this first entry"
>
> specifically "corresponding to this first entry"? As if the second
> entry exits first will that call the second profiling function or will
> it really be
> Hope this is helpful; please let me know if you see any mistakes, or if
> there's room for improvement
Nice work! In the "inside cc1" chapter, I think that IR is usually meant for
"Intermediate Representation" rather than "Internal Representation" in this
context.
--
Eric Botcazou
Hi,
gimple_set_location is mostly invoked on newly built GIMPLE statements, so
their location is UNKNOWN_LOCATION and setting it will clobber the warning
data of the passed location, if any.
Tested on x86-64/Linux, OK for mainline and 12 branch?
2022-06-10 Eric Botcazou
ormation available.
If you try to debug at an optimization level higher than -Og, your mileage may
vary and depend on various factors; that's apparently an example where the
debug info is slightly less damaged at -O3 on x86 than on PowerPC, but there
are probably cases where this will be the
74
> * gcc/expr.cc (expand_expr_real_1) : New local
> variable tem_modifier for calculating the expand_modifier enum to
> use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
gcc/ prefix to be stripped
--
Eric Botcazou
check with no new failures. I've also confirmed that on a
> cross-compiler to arm-linux-gnueabihf --with-arch=armv6 this fixes the
> target specific ICE in PR105856. The make check is currently running
> with --target_board=unix{-m32}, OK for mainline if that also passes?
Yes, it looks quite uncontroversial if you ask me and will unblock people.
--
Eric Botcazou
coverage, so the
overhead must be minimum and, in particular, there is no protection against
data races so the "once" moniker is imprecise.
Tested on x86-64/Linux, OK for the mainline?
2022-05-24 Eric Botcazou
* common.opt (finstrument-functions): Set expl
> I think side-effect captures it quite well even if it overlaps with a term
> used in language standards.
IMO it's very confusing, see the subject: "Add divide by zero side effect".
The only side effect of dividing by zero is (possibly) raising a trap.
--
Eric Botcazou
.
> Please don't overload 'side effect' if possible.
Agreed, "side effect" is something precisely defined in the compiler context.
--
Eric Botcazou
.
Tested on x86-64/Linux, applied on mainline and 12 branch.
2022-05-18 Eric Botcazou
* c-ada-spec.cc (dump_ada_node) : Deal with usual
floating-point complex types.
: Do not use limited_with clause if the designated
type is a scalar type.
--
Eric Botcazoudiff
t
> (the RTL case does).
> So I think at least for now it is ok.
Thanks. Any objection to me installing it on the 12 branch as well?
--
Eric Botcazou
.value 0x1
.byte 0x34# DW_OP_lit4
.byte 0x16# DW_OP_swap
.byte 0x13# DW_OP_drop
* dwarf2out.c (loc_list_from_tree_1) : Do a logical
instead of a bitwise negation.
: Swap the operands if the condition is TRUTH_NOT_EXPR.
--
Eric B
> OK. Possibly also qualifies for the branch(es) as wrong-code fix.
Thanks. It's not a regression, but I can indeed put in on recent branches.
--
Eric Botcazou
global tree?
Yes, it's in the TYPE_SIZE of a global type:
package P is
type Rec (Defined : Boolean) is record
case Defined is
when false => null;
when others => I : Integer;
end case;
end record;
A : access Rec;
end P;
--
Eric Botcazou
Hi,
DW_OP_not is a bitwise, not a logical NOT, so it computes the wrong result in
a DWARF conditional expression.
Tested (GCC + GDB° on x86-64/Linux, OK for the mainline?
2022-05-13 Eric Botcazou
* dwarf2out.c (loc_list_from_tree_1) : Swap the operands
if the condition
, so the patch makes sure that it does only when the SSO
is the same on both side.
Bootstrapped/regtested on x86-64/Linux, OK for the mainline?
2022-05-13 Eric Botcazou
* tree-sra.c (sra_modify_assign): Check that the scalar storage order
is the same on the LHS and RHS before
on SPARC/Solaris, applied to all active branches.
2022-05-10 Eric Botcazou
PR target/105292
* config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
true only for 8-byte vector modes.
2022-05-10 Eric Botcazou
* gcc.target/sparc/20220510-1.c: New test
> 2022-04-22 Jakub Jelinek
>
> PR rtl-optimization/105333
> * rtlanal.cc (replace_rtx): Use simplify_subreg or
> simplify_unary_operation if CONST_SCALAR_INT_P rather than just
> CONST_INT_P.
>
> * gcc.dg/pr105333.c: New test.
OK, thanks.
--
Eric Botcazou
* gcc.c-torture/compile/pr105247.c: New test.
OK, thanks.
--
Eric Botcazou
; If it does fix the failure, can I apply the patch to the master branch and
> backport it to GCC 11 and GCC 10? Sorry about the breakage.
That would be perfect, thanks in advance.
--
Eric Botcazou
eed added.
The support was already present in GCC 11, the criterion being the use of the
'Max_Integer_Size attribute in system.ads.
--
Eric Botcazou
This used to work long ago but broke at some point, so I'm applying the fix
only on the mainline, all the more so that it deals the "section" attribute.
Tested on x86-64/Linux, applied on the mainline.
2022-03-25 Eric Botcazou
c-family/
* c-ada-spec.cc (dump_ada_imp
This is a regression present on mainline, 11 and 10 branches. When the serial
port is closed, we need to ensure that the port handle is properly reset for
it to be detected as closed.
Tested on x86-64/Linux, applied on mainline, 11 and 10 branches.
2022-03-24 Pascal Obry
PR
L.
>
> * gcc.c-torture/execute/pr104814.c: New test.
OK, thanks.
--
Eric Botcazou
B_END (test_bb) || !onlyjump_p (BB_END (test_bb)))
> +return FALSE;
> +
>/* ELSE has one successor. */
>if (!single_succ_p (else_bb))
> return FALSE;
Are the !BB_END tests really necessary? cond_exec_process_if_block has the
same test on onlyjump_p without it. Likewise for noce_find_if_block.
--
Eric Botcazou
> Disabling sse/sse2 might be a problem especially on mingw where we need to
> restore SSE registers in the EH return, no?
Not in 32-bit mode I think, all XMM registers are call used.
--
Eric Botcazou
> PR target/104781
> * config.host (tmake_file): Add i386/32/t-eh-return-no-sse for
> 32-bit x86 Cygwin and Solaris.
> * config/i386/32/t-eh-return-no-sse: New file.
What about MinGW here?
--
Eric Botcazou
is a hard
> register, copy it to a pseudo before calling simplify_gen_subreg.
Looks good to me, but why not using copy_to_reg here?
--
Eric Botcazou
in an object (SUBSTITUTE_PLACEHOLDER_IN_EXPR). You can presumably do
it through the gimplification hook.
--
Eric Botcazou
--
Gcc-rust mailing list
Gcc-rust@gcc.gnu.org
https://gcc.gnu.org/mailman/listinfo/gcc-rust
in an object (SUBSTITUTE_PLACEHOLDER_IN_EXPR). You can presumably do
it through the gimplification hook.
--
Eric Botcazou
discriminant since it is assigned in the CONSTRUCTOR, so
the gimplifier is indeed presumably not wired to eliminate them on its own.
--
Eric Botcazou
discriminant since it is assigned in the CONSTRUCTOR, so
the gimplifier is indeed presumably not wired to eliminate them on its own.
--
Eric Botcazou
--
Gcc-rust mailing list
Gcc-rust@gcc.gnu.org
https://gcc.gnu.org/mailman/listinfo/gcc-rust
} } */
instead of just:
/* { dg-do compile } *
--
Eric Botcazou
> I've committed this patch to fix these problems. Bootstrapped and ran
> Go testsuite on x86_64-pc-linux-gnu and x86_64-solaris.
Fine by me, thanks for the quick turnaround!
--
Eric Botcazou
31 | return write1(fd, p, n)
|^
gmake[3]: *** [runtime.lo] Error 1
--
Eric Botcazou
> I don't think an option to go to pre-12 behavior is useful. I'll
> postpone the series to stage1.
FWIW fine with me.
--
Eric Botcazou
e-end/90348 now is (it's
labeled a 9/10/11/12 regression). At a minimum, I think that a switch to
revert to the pre-12 behavior would be in order if the patch goes in now.
--
Eric Botcazou
Hi,
this completes my fix for PR debug/101947 by emptying the base_types vector
before (re)populating it.
Tested on x86_64-suse-linux, OK for the mainline?
2022-02-04 Eric Botcazou
PR debug/104366
* dwarf2out.cc (dwarf2out_finish): Empty base_types
call_exceptions check, can you swap those two?
But !flag_non_call_exceptions is (almost) always true for the C family of
languages, so you're going to penalize them by doing this.
> And similarly, TYPE_PRECISION (type) > 1 check is very cheap, can
> it be done before the && !integer_zerop (@1) line?
Yes, it clearly belongs there.
--
Eric Botcazou
X / -X is -1): Likewise.
(1 / X -> X == 1): Likewise.
--
Eric Botcazou
diff --git a/gcc/match.pd b/gcc/match.pd
index b942cb2930a..4b695db7a25 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -401,27 +401,35 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* X / bool_range_Y is X. */
t): $(srcdir)/libgcc2.c
$(gcc_s_compile) -DL$* -c $< \
$(LIB2_DIVMOD_EXCEPTION_FLAGS)
libgcc-s-objects += $(lib2-divmod-s-o)
endif
so it seems like we were about to reinvent the wheel here. ;-)
--
Eric Botcazou
rter because of the
> optimization, if it is not, then it will be cheaper.
The hundreds of people having worked on GCC for the past 30 years must have
been stupid then, how come have they missed such a great optimization? ;-)
--
Eric Botcazou
> Well, yes, we have to fix it. I will share my thoughts when coming
> along the bugreport.
IMO we should simply scrap it, as it does not serve any useful purpose, breaks
a very ancient and useful idiom and also introduces an artificial discrepancy
between 1/X and 2/X for example.
--
> Since I didn't see anyone responding to this problem, I filed PR
> 104356 to record the regression.
> And yes this should be handled correctly.
Thanks. Note that we have an example of this in libgcc/libgcc2.c too.
--
Eric Botcazou
This is what has been done for ages on SPARC/Solaris and makes it possible to
use 64-bit atomic instructions even in 32-bit mode.
Tested on SPARC64/Linux, applied on the mainline.
2022-01-31 Eric Botcazou
PR target/104189
* config/sparc/linux64.h (TARGET_DEFAULT): Add
ave installed the attached testcase, which now fails because of the change.
* gnat.dg/div_zero.adb: New test.
--
Eric Botcazou-- { dg-do run }
-- This test requires architecture- and OS-specific support code for unwinding
-- through signal frames (typically located in *-unwind.h) to p
This is a regression present on mainline and 11 branch: the new transformation
applied during expansion by Narrow_Large_Operation would incorrectly perform
name resolution for the operator again.
Tested on x86_64-suse-linux, applied on mainline and 11 branch.
2022-01-28 Eric Botcazou
> Does anyone know the reasoning behind this?
Solaris preserves the full 64-bit registers in 32-bit mode.
--
Eric Botcazou
NC_COMPARE_AND_SWAP_1 1
> #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
> #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
> glaubitz@gcc202:~$
>
> Is this intentional? If yes, what is the exact difference between V8+ and
> 32-bit V9?
V8+ requires the full 64-bit registers to be preserved by the kernel, whereas
32-bit V9 does not.
--
Eric Botcazou
> Release managers.
They certainly have authority on the timing, but not on the contents.
> Working on that right now, sorry..
OK, thanks in advance.
--
Eric Botcazou
> Release managers.
They certainly have authority on the timing, but not on the contents.
> Working on that right now, sorry..
OK, thanks in advance.
--
Eric Botcazou
nd should be reverted ASAP.
--
Eric Botcazou
nd should be reverted ASAP.
--
Eric Botcazou
> Yes, it must still be copied.
OK, revised patch attached, with testcases but they fail only on the 10 and 11
branches because of a change in the heuristics apparently.
* ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
reverse flag as "reverse" for the sake of
need to check
> that the flags are the same too.
That's the change I don't know how to cover and I agree that the check looks
in order, but I presume that the flag still needs to be copied onto "copy"?
--
Eric Botcazou
branches?
2022-01-11 Eric Botcazou
* ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
reverse flag as "reverse" for the sake of consistency.
* ipa-sra.c: Fix copyright year.
(ipa_sra_function_summaries::duplicate): Copy the re
implementation for SEH.
Tested on x86-64/Windows, OK for all active branches?
2022-01-10 Eric Botcazou
PR target/103465
* coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
--
Eric Botcazoudiff --git a/gcc/coretypes.h b/gcc/coretypes.h
index 5d0fc1d915d..506cd334401 100644
losing these hours is to debug the code at -O0.
--
Eric Botcazou
> Yes, although I think potentially trapping ops
> are not moved before calls (as this would be
> incorrect). So do you think it would be feasable
> to prevent this for volatile too?
Feasible probably, but why would this be desirable in C? It's not Java!
--
Eric Botcazou
t; That way we don't lose the existing tests.
Frankly I'm not quite sure of what we can lose by adding a LHS here, can you
elaborate a bit? We would need a solution that works out of the box with our
compiler in the future, i.e. without having to tweak 50 testcases again.
--
Eric Botcazou
> The transposition nolto -> notlo is confusing and it makes the long
> name even harder to read than it already is - I kept reading it as
> "not lo" until I realized it was a simply typo.
Thanks for catching this!
--
Eric Botcazou
on mainline, 11 and 10 branches as obvious.
2021-11-30 Eric Botcazou
PR target/103274
* config/i386/i386.c (ix86_output_call_insn): Beef up comment about
nops emitted with SEH.
* config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
the cold section
ce is again a blatant overstatement but I agree
that the alignment caveat ought to be documented. Please suggest a wording to
that effect and post a patch onto the gcc-patches@ ML. Thanks in advance.
--
Eric Botcazou
change none, any intermediate stage is
worse than the current situation, which is probably OK for 99.99% of people.
--
Eric Botcazou
gt; *lshr3_insn, *trunchiqi2_insn, *truncsihi2_insn,
> *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn,
> *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn,
>*zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition.
OK for mainline, thanks.
--
Eric Botcazou
;= TYPE_SIZE (TREE_TYPE (bf)).
--
Eric Botcazou
OPERATOR (decl) ? "replaceable_" : "");
>
> + function *fn = DECL_STRUCT_FUNCTION (decl);
> + if (fn != NULL && fn->static_chain_decl)
> +fprintf (f, " static_chain_decl");
> +
> fprintf (f, "\n");
>
> if (thunk)
static_chain_decl is not a flag though, it's a tree.
--
Eric Botcazou
> LGTM for the generic part, no idea for VxWorks.
Thanks. The VxWorks-specific hunk is needed to make GCC compatible with the
system compiler on this architecture (LLVM) and I have CCed Olivier.
--
Eric Botcazou
For the Aarch64 back-end:
https://gcc.gnu.org/pipermail/gcc-patches/2021-October/580952.html
For the i386 back-end:
https://gcc.gnu.org/pipermail/gcc-patches/2021-October/580992.html
Thanks in advance.
--
Eric Botcazou
Handle -Wl, and -Xlinker similar to -l,
i.e., preserve their order with respect to linker input files.
Technically speaking, the arguments of -l, -Wl and -Xlinker are input files.
Tested on x86-64/Linux, applied on all active branches as obvious.
2021-10-28 Eric Botcazou
* doc/invok
> 2021-10-20 Eric Botcazou
>
> PR middle-end/102764
> * cfgexpand.c (expand_gimple_basic_block): Disregard a final debug
> statement to reset the current location for the outgoing edges.
This apparently breaks -fcompare-debug with -m32 so I have made it more r
This addresses PR ada/100486, which is the bootstrap failure of GCC 11 for 32-
bit Windows in the MSYS setup. The PR shows that we cannot rely on exception
propagation being operational during the bootstrap, at least on the 11 branch,
so fix this by removing the problematic raise statement.
/Linux, applied on the mainline as obvious.
2021-10-20 Eric Botcazou
PR middle-end/102764
* cfgexpand.c (expand_gimple_basic_block): Disregard a final debug
statement to reset the current location for the outgoing edges.
2021-10-20 Eric Botcazou
* gcc.dg
) of the conditions.
Bootstrapped/regtested on x86-64/Linux, OK for the mainline?
2021-10-15 Eric Botcazou
* tree-ssa-ifcombine.c: Include cfgloop.h.
(operand_loop_depth): New function.
(ifcombine_ifandif): When loop unswitching is enabled, do not merge
conditions whose
We need a 32-byte wide integer mode (OImode) in order to handle structure
returns in the 64-bit ABI.
Bootstrapped/regtested on SPARC/Solaris and SPARC64/Linux, applied on the
mainline, 11 and 10 branches.
2021-10-12 Eric Botcazou
PR target/102588
* config/sparc/sparc
@GOTOFF in large
model even for RTP, so we do the same.
Tested on x86-64/Linux and VxWorks, OK for the mainline?
2021-10-05 Eric Botcazou
* config/i386/i386.c (legitimize_pic_address): Adjust comment and
use the REG argument on the CM_LARGE_PIC code path as well
Hi,
we have been using an Ada compiler for the Aarch64 architecture configured
with SJLJ exceptions as for the other architectures for some time, and have
not run into any problems up to now so the setting looks obsolete.
OK for the mainline?
2021-10-05 Eric Botcazou
* config
.
Applied on mainline and 11 branch as obvious.
2021-10-04 Eric Botcazou
* config/rs6000/vxworks.h (TARGET_INIT_LIBFUNCS): Delete.
--
Eric Botcazoudiff --git a/gcc/config/rs6000/vxworks.h b/gcc/config/rs6000/vxworks.h
index 5facbbb392f..d8ecc0296c8 100644
--- a/gcc/config/rs6000/vxworks.h
> OK though I wonder if you could get away with using
> built_function_type (void_type_node, NULL_TREE); aka
> a non-prototype void f().
See below.
> Did you track down what changed the requirement?
The new function-abi.cc module, so I'd rather have a correct prototype.
--
Eric Botcazou
as libcalls but
they now require a proper function type at -O2 or above.
Tested on powerpc-elf, OK for mainline, 11 and 10 branches?
2021-10-01 Eric Botcazou
* explow.c: Include langhooks.h.
(set_stack_check_libfunc): Build a proper function type.
--
Eric Botcazoudiff --git
ted it, as well as the subsequent adjustments, onto the 11
branch since PIE is the default for recent binutils.
--
Eric Botcazou
since DWARF-5 is the default there.
--
Eric Botcazou
d failures 1011
-# of unsupported tests 2631
+# of unsupported tests 2628
and properly disabling them on SPARC64/Linux.
Applied on the mainline, 11 and 10 branches as obvious.
2021-09-21 Eric Botcazou
* lib/target-supports.exp (no_fsanitize_address): Add mi
This fixes a regression for MinGW with recent binutils:
https://gcc.gnu.org/pipermail/gcc-patches/2021-September/578756.html
Thanks in advance.
--
Eric Botcazou
ons, which is of course
not the case here. So the fix teaches try_combine to abort the combination
when it is about to make a copy of volatile references to preserve them.
Bootstrapped/regtested on x86-64/Linux, OK for mainline and release branches?
2021-09-16 Eric Botcazou
PR
on mainline and stack_protect_setsi before.
--
Eric Botcazou
> gcc/ChangeLog:
>
> * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin
> functions with atomic instruction in the UT700 errata workaround.
OK everywhere.
--
Eric Botcazou
Likewise.
> + || (USEFUL_INSN_P (insn)
> + && (asm_noperands (PATTERN (insn))>=0)
Missing spaces around >=
> +{
> + insn = next_active_insn (insn);
> +}
Superfluous curly braces, even for readability.
--
Eric Botcazou
avoid the multiple calls to
get_attr_type? See div_sqrt_insn_p and fpop_insn_p for a model.
--
Eric Botcazou
> gcc/ChangeLog:
>
> * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for
> LEON and LEON3.
OK everywhere.
--
Eric Botcazou
sparc/leon5.md: New file.
OK for whatever branches you deem relevant, modulo a couple of nits:
> +;; Avoid scheduling load/store, FPU, and multiplication instructions back
and multiply instructions
> +;; Schedule three instructions between load and dependant instruction.
dependent
--
Eric Botcazou
This is a regression present on the mainline and 11 branch in the form of an
ICE for an enumeration type with a full signed representation for its size.
Tested on x86-64/Linux, applied on the mainline and 11 branch.
2021-09-14 Eric Botcazou
PR ada/101970
* exp_attr.adb
They should not be 0-based, unless the array type itself is.
Tested on x86-64/Linux, applied on the mainline, 11 and 10 branches.
2021-09-14 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make
the representative array the debug type.
--
Eric
This is necessary for vector builtins, which are picky about the signedness of
the element type.
Tested on x86-64/Linux, applied on the mainline.
2021-09-14 Eric Botcazou
* libgnat/s-atopri.ads (bool): Delete.
(Atomic_Test_And_Set): Replace bool with Boolean
For the sake of consistency with -Wall & -w, this makes -Werror imply -gnatwe.
Tested on x86-64/Linux, applied on the mainline.
2021-09-14 Eric Botcazou
PR ada/101385
* doc/gnat_ugn/building_executable_programs_with_gnat.rst
(-Wall): Minor fixes.
Recent compilers enforce more strictly the RM C.6(18) clause, which says that
volatile record types are by-reference types. This changes the typical error
message now given in these cases.
Tested on x86-64/Linux, applied on the mainline, 11 and 10 branches.
2021-09-14 Eric Botcazou
ay though and it's the same idiom as in
prune_unused_types and dwarf2out_finish so I'm leaving it as-is.
--
Eric Botcazou
for the mainline?
2021-09-07 Eric Botcazou
PR debug/101947
* dwarf2out.c (mark_base_types): New overloaded function.
(dwarf2out_early_finish): Invoke it on the COMDAT type list as well
as the compilation unit, and call move_marked_base_types afterward.
--
Eric Botcazoudiff
201 - 300 of 5463 matches
Mail list logo