timed out.
FAIL: gnat.dg/outer_agg_bitfield_constructor.adb (test for excess errors)
WARNING: gnat.dg/outer_agg_bitfield_constructor.adb compilation failed to
produce executable
on big-endian platforms.
Tested on x86_64-suse-linux and SPARC/Solaris, applied on the mainline.
2014-05-23 Eric
/pr61222-2.c: Likewise.
OK, thanks (although the ChangeLog could be a little more descriptive).
--
Eric Botcazou
the original Ada testcase, the C equivalent, a
testcase for the folding and another one for the -Wstrict-overflow warning.
Tested on x86_64-suse-linux with no regressions.
2014-05-26 Eric Botcazou
* fold-const.c (fold_comparison): Clean up and simplify X +- C1 CMP C2
to X CMP
the ranges, which is far easier
and sufficient here. If you think that the way to go is to handle symbolic
ranges for PLUS_EXPR and MINUS_EXPR instead, fine with me, I can try.
--
Eric Botcazou
, INF] for y and you want to evaluate the
range of y - x, so you really don't want to use the range of x...
--
Eric Botcazou
> I'm asking to merge them (move them to fold_comparison).
Done (in the end the patch removes more lines than it adds :-).
Tested on x86_64-suse-linux with no regressions.
2014-05-27 Eric Botcazou
* fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
_64-suse-linux (of course this probably doesn't mean anything on
the mainline, but it was also test with 4.7 and 4.9 compilers) and applied on
the mainline as obvious.
2014-05-27 Eric Botcazou
* double-int.c (div_and_round_double) : Use the proper
predicate to detect a
Almost 4 years ago I installed the following patch:
2010-11-28 Eric Botcazou
* gnat.dg/aliasing2.adb (dg-final): Robustify pattern matching.
* gnat.dg/pack9.adb (dg-final): Likewise.
and somehow missed gnat.dg/aliasing1.adb which needs the same treatment.
Tested on x86_64
> I suppose you also install on branches?
No plan to do so since this isn't a regression, unless you insist. :-)
--
Eric Botcazou
> Well, a wrong-code bug plus a very obvious fix certainly qualifies.
Fine with me, onto which branch(es) do you want me to put it?
--
Eric Botcazou
> Yes. We already know that this is better than the current docs.
> Let's check it in.
As far as I can see you did it, but didn't add a ChangeLog entry (so David
isn't properly credited with the rewrite)?
--
Eric Botcazou
> Fixed.
Thanks!
--
Eric Botcazou
to check it does so with yours.
Tested on x86_64-suse-linux with no regressions.
2014-05-30 Eric Botcazou
* tree-vrp.c (get_single_symbol): New function.
(build_symbolic_expr): Likewise.
(symbolic_range_based_on_p): New predicate.
(extract_range_from_binary_expr
> p.adb.024t.esra
> > p.adb.025t.fre1
> > p.adb.026t.copyprop1
> > p.adb.027t.mergephi1
> > p.adb.028t.cddce1
> > p.adb.029t.eipa_sra
> > p.adb.030t.tailr1
> > p.adb.031t.switchconv
> > p.adb.032t.ehcleanup1
> > p.adb.033t.profile_estimate
> > p.adb.034t.local-pure-const1
> > p.adb.035t.fnsplit
> > p.adb.036t.release_ssa
> > p.adb.037t.inline_param2
> > p.adb.054t.copyrename2
--
Eric Botcazou
E (t)
> + && integer_zerop (TYPE_SIZE (t)));
> +}
That's AGGREGATE_TYPE_P (and the comment seems to be out-of-sync).
--
Eric Botcazou
/svn/gcc/gcc/ree.c:1064
0x146d149 execute
/home/eric/svn/gcc/gcc/ree.c:1103
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[5]: *** [_negdi2.o] Error 1
--
Eric Botcazou
> Bootstrapped & regression tested on x86_64-unknown-linux. Also
> bootstrapped with --enable-checking=rtl.
Note that you can do only one bootstrap with --enable-checking=yes,rtl.
> Installed on the trunk.
As far as I can see, no, it was not installed.
--
Eric Botcazou
> 2014-01-18 Jakub Jelinek
>
> PR rtl-optimization/57763
> * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
> on the new indirect jump_insn and increment LABEL_NUSES (label).
OK, thanks.
--
Eric Botcazou
r it makes sense I think. That being said, while
Joern's machinery was IMO acceptable because relatively simple and localized,
Jakub's looks more complicated and far-reaching (that's why I suggested to try
to extend the existing machinery if possible) so I think that we ought to try
something simpler first.
--
Eric Botcazou
> I have made the adjustment and test it. Please check the new attachment.
Thanks, applied on the mainline as obvious.
--
Eric Botcazou
> 2013-10-31 Eric Botcazou
>
> c-family/
> * c-ada-spec.h (cpp_operation): Add IS_TRIVIAL.
> (dump_ada_specs): Adjust prototype of second callback.
It turns out that adjusting (constifying) the prototype of the second callback
was a gratuitous change and future en
This revamps the E_Component case of gnat_to_gnu_entity and improves comments.
No functional changes, tested on x86_64-suse-linux, applied on the mainline.
2014-01-20 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Remove
obsolete code for type_annotate_only mode
This fixes a long-standing issue in the Ada compiler, whereby the alignment of
aggregates whose type is an over-aligned array is lost in translation.
Tested on x86_64-suse-linux, applied on the mainline.
2014-01-20 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity
This fixes latent issues with thin pointers, which get exposed with -gnatd6.
Tested on x86_64-suse-linux, applied on the mainline.
2014-01-20 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Robustify tests
for aliased objects with an unconstrained nominal subtype
4.8.x development.
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2014-01-20 Eric Botcazou
* output.h (output_constant): Delete.
* varasm.c (output_constant): Make private.
--
Eric BotcazouIndex: va
Other architectures aren't as sensitive as
x86 in this area, and the existing counter-measures in combine.c are usually
sufficient for them.
--
Eric Botcazou
t didn't fail with the space on x86 (hence false negative)
because of the TI marker added by some RTL pass. Feel free to adjust back.
--
Eric Botcazou
> Ah, OK. In that case, how about this? Tested on mips64-linux-gnu.
Fine with me, thanks!
--
Eric Botcazou
Very confusing...
--
Eric Botcazou
Jelinek
>
> * print-rtl.c (in_call_function_usage): New var.
> (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
> EXPR_LIST mode as mode and not as reg note name.
OK, thanks for fixing this.
--
Eric Botcazou
In most cases, out parameters are not passed in, but there have always
been exceptions, notably access types. Ada 2012 adds a new exception
for parameters of a type with a Default_Value. This patch ensures that
such parameters are copied in.
The following program, compiled with -gnata
1. pro
The compiler may refuse to apply pragma Linker_Section with the same section
name to two different variables, if one is considered constant by the compiler
but not declared as such. Fixed thusly.
Tested on x86_64-suse-linux, applied on the mainline.
2014-01-25 Tristan Gingold
* gc
Fat and thin pointers are the 2 representations used in GNAT for access-to-
unconstrained-array types, i.e. pointers to arrays with bounds, and using the
latter instead of the former results in slightly obfuscated code.
Tested on x86_64-suse-linux, applied on the mainline.
2014-01-25 Eric
> That sounds reasonable, yeah.
But that will badly regress the stack usage, won't it? If so, that's a
blocker for Ada where we have big temporaries.
--
Eric Botcazou
> But that will badly regress the stack usage, won't it? If so, that's a
> blocker for Ada where we have big temporaries.
For example this will presumably cause gnat.dg/stack_usage1.adb to fail.
--
Eric Botcazou
et neither for __builtin_setjmp/__buitin_longjmp nor for SJLJ EH schemes.
--
Eric Botcazou
needs to ensure that I2 and I3 are both INSNs.
That seems to be an unnecessary pessimization given that the combination looks
perfectly valid if you swap the insns. Can't we enhance the code just below
which chooses the order of the insns after splitting?
--
Eric Botcazou
x86-64/Linux and SPARC/Solaris, applied on the mainline as obvious.
2014-02-10 Eric Botcazou
* g++.dg/vect/pr33426-ivdep-3.cc: Require vect_int_mult as well.
* g++.dg/vect/pr33426-ivdep-4.cc: Likewise.
--
Eric BotcazouIndex: g++.dg/vect/pr3342
Eric Botcazou
* ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
proper constants and fix formatting.
(possible_polymorphic_call_targets): Fix formatting.
--
Eric BotcazouIndex: ipa-devirt.c
o
> contain the simple sets that we have to ensure that they're INSNs, not
> CALL_INSNs or JUMP_INSNs.
I disagree, nullifying JUMP_INSNs by changing them to (set (pc) (pc)) is a
standard method in the combiner.
--
Eric Botcazou
ll 32-bit
read, which thus reads 1 additional byte and doesn't mask it afterwards, thus
resulting in a wrong value for the scalarized bit-field.
Proposed fix attached, tested on x86-64/Linux, OK for the mainline?
2014-02-11 Eric Botcazou
* expr.c (REDUCE_BIT_FIELD): Extend th
t's debatable IMO if the 4-byte type has 3-byte precision, but I don't have
a strong opinion so I can try to fix it in SRA, although it will be weird to
do low-level fiddling because of precision and size at the Tree level.
--
Eric Botcazou
d 4.8 branch.
2014-02-12 Eric Botcazou
PR rtl-optimization/60116
* combine.c (try_combine): Also remove dangling REG_DEAD notes on the
other_insn once the combination has been validated.
2014-02-12 Eric Botcazou
* gcc.c-torture/execute/20140212-1.c: New
> Thanks, just wonder if reg_set_p is the right predicate for the REG_DEAD
> notes, don't we want to check if the register in REG_DEAD note isn't used
> in undobuf.other_insn rather than set?
You're right, the correct predicate is reg_referenced_p, I'll adjust.
--
Eric Botcazou
24-bit precision integer type.
> So there may be a testcase where that happens and we'd even ICE?
Probably not in Ada, we only generate a VCE when there is an aggregate type.
--
Eric Botcazou
that we went that way before (building a COMPONENT_REF for
bit-fields instead of fully lowering the access) so doing it again would be a
step backwards. Likewise if we refuses to scalarize. So IMO it's either low-
level fiddling in SRA or in the expander (my preference too).
--
Eric Botcazou
> 2014-02-12 Jakub Jelinek
>
> PR target/43546
> * expr.c (compress_float_constant): If x is a hard register,
> extend into a pseudo and then move to x.
>
> * gcc.target/i386/pr43546.c: New test.
OK, thanks.
--
Eric Botcazou
eptually
> wrong to me.
I agree that we need not clear, but we need to prevent the expansion from
reading more bits than what is contained in the source type. And this is
sufficient to fix the regression.
> Not scalarizing a field to a DECL_BIT_FIELD FIELD_DECLs type looks like
> the best fix to me.
That seems like a big hammer though.
--
Eric Botcazou
This adds proper variadic support to the SPARC port of libffi, thus fixing a
regression in the testsuite in 64-bit mode, and fixes a small inaccuracy in
the documentation.
Tested on SPARC/Solaris and SPARC64/Solaris, applied on the mainline.
2014-02-13 Eric Botcazou
PR libffi
This adds proper variadic support to the SPARC port of libffi, thus fixing a
regression in the testsuite in 64-bit mode, and fixes a small inaccuracy in
the documentation.
Tested on SPARC/Solaris and SPARC64/Solaris, applied on the mainline.
2014-02-13 Eric Botcazou
PR libffi
> I worked around this problem on powerpc by defining new enum ffi_abi
> values so that you can recognize an old app.
I see, thanks for the heads up and the hint!
--
Eric Botcazou
de defeat in this particular case, I don't
think we should use the NONJUMP_INSN_P big hammer because we want to eliminate
branches if possible. So I'd just add the minimal test to the two existing
conditions so as to prevent the invalid RTL from being created, e.g.
&& (!JUMP_P (i3) || SET_DEST (set[01]) == pc_rtx)
--
Eric Botcazou
is -1.
It seems to me that this assertion is overzealous: in many other places, the
code explicitly tests for the non-negativity of index and returns otherwise.
Hence the proposed fix, tested on x86_64-suse-linux, OK for all branches?
2014-02-17 Eric Botcazou
* ipa-pro
> There is nothing obvious I think, i.e. that's debatable. I agree that a VCE
> from a 32-bit object to a 32-bit integer with 24-bit precision should not
> clear the upper 8 bits (so the REDUCE_BIT_FIELD part of my patch is wrong).
> But here we have a VCE from a 24-bit object to a 32-bit integer
mainline.
2014-02-17 Eric Botcazou
PR libffi/60073
* src/sparc/v8.S: Assemble only if !SPARC64.
* src/sparc/v9.S: Remove obsolete comment.
* src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
(V8_ABI_P): New macro.
(V9_ABI_P):
linux, pre-approved by Jakub and applied on the mainline.
2014-02-18 Eric Botcazou
PR tree-optimization/60174
* tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
statement of an SSA_NAME that occurs in an abnormal PHI node.
--
Eric Botcazou
> Woudln't it be better to do this in the series of "conversions", that is
> inside the preceeding if-statement? (the integral type case using
> convert_modes looks weird enough, so adding this kind-of "less"
> weird one there looks sensible)
Yes, the integral type case is very strange: it was in
This is not really a regression but, in the light of the recent discussion
about VIEW_CONVERT_EXPRs, I think this is worth having in 4.9: we can fold
more VIEW_CONVERT_EXPRs internally generated in gigi.
Tested on x86_64-suse-linux, applied on the mainline.
2014-02-23 Eric Botcazou
tensa) don't define it and therefore need to be adjusted.
Tested on x86_64-suse-linux and by building cc1 and compiling a relevant
testcase for the 21 aforementioned architectures.
2014-03-01 Eric Botcazou
* doc/md.texi (blockage): Do not allow volatile asms.
* rtl.def (
ration from being considered equivalent to any other
> operation (even if it's structurally identical and has the same inputs)
>
> but nothing beyond that.
Maybe UNSPEC_VOLATILE is a misnomer then and we should allow volatile UNSPECs
along the above lines.
--
Eric Botcazou
ay be valid is because we cannot explicitely
> enumerate those. But we should fix that instead (for example with
> the special register idea or by adding a middle-end wide "special"
> "blockage" that you can use/def/clobber).
For the time being this special blockage is UNSPEC_VOLATILE for RTL.
--
Eric Botcazou
27;t spend much time on the code generated in a loop
containing an UNSPEC_VOLATILE. If an instruction or a builtin is supposed to
be performance-sensitive, then don't use an UNSPEC_VOLATILE by all means and
properly model it instead!
--
Eric Botcazou
s again a bit vague in terms of
> saying what's right and what's wrong.
"not spending too much time" is a polite way to say I don't really care. :-)
If you do, feel free to post a formal definition, a implementation plan and
maybe a patch at some point.
--
Eric Botcazou
e choose PSImode instead of SImode, if the type and the
mode have the same precision (20) and size (24)?
--
Eric Botcazou
ain?
> The provided patch changes the previously mentioned memory barriers for
> TARGET_LEON3.
I think that only the membar_storeload_leon3 pattern is necessary. Couple of
more nits: the new pattern is not "multi", it's "store" and you need to add:
&& !TARGET_LEON3
to the original membar_storeload since TARGET_LEON3 is also TARGET_V8.
--
Eric Botcazou
).
2014-07-10 Eric Botcazou
PR middle-end/53590
* function.c (allocate_struct_function): Revert r188667 change.
2014-07-10 Eric Botcazou
* gnat.dg/opt39.adb: New test.
--
Eric BotcazouIndex: function.c
es?
2014-07-10 Eric Botcazou
* toplev.c (output_stack_usage): Temporarily hide the caret.
--
Eric BotcazouIndex: toplev.c
===
--- toplev.c (revision 212420)
+++ toplev.c (working copy)
@@ -1052,6 +1052,10 @@ output_s
precision? That's the crux of the matter.
--
Eric Botcazou
which means that membar_storeload will match so
the full barrier never will.
--
Eric Botcazou
folks
have already changed them in a few places but that's probably not sufficient.
--
Eric Botcazou
ry model of the LEON3
is Strong Consistency and not TSO? In which case, the only thing to change is
the default setting for LEON3 in sparc_option_override.
--
Eric Botcazou
point to the declaration of the
> function? After all, this is what -fstack-usage seems to do.
Good idea, let's use a consistent location, revised patch attached, thanks.
2014-07-12 Eric Botcazou
* toplev.c (output_stack_usage): Adjust the location and temporarily
hi
iated :)
OK, that's not Strong Consistency so I'm going to apply your latest patch.
--
Eric Botcazou
3): New insn.
(*membar_storeload): Disable for LEON3.
--
Eric Botcazou
; is not supported"
sentence. As discussed privately, it's indeed not 100% compatible with the C
compiler, but the syntax is essentially supported, which is good enough.
--
Eric Botcazou
> I changed more than I should have. A slightly smaller patch.
Applied, thanks.
--
Eric Botcazou
> I personally don't like much this pattern of saving a variable, doing
> something and then restoring it.
Right, it's kludgy, so I have only changed the location in the end.
Tested on x86_64-suse-linux, applied on all active branches as obvious.
2014-07-19 Eric Botcazou
and 4.9 branch
as obvious.
2014-07-20 Eric Botcazou
* expr.c (store_field): Handle VOIDmode for calls that return values
in multiple locations.
2014-07-20 Eric Botcazou
* gnat.dg/pack20.ad[sb]: New test.
* gnat.dg/pack20_pkg.ads: New helper.
--
Eric
code.
Tested on x86-64/Linux, applied on the mainline.
2014-07-20 Eric Botcazou
* cse.c (exp_equiv_p) : For GCSE, return 0 for expressions with
different trapping status if -fnon-call-exceptions is enabled.
--
Eric BotcazouIndex:
synthetize ABS_EXPR.
The transformation had been added as a preliminary work for a specific purpose
but was made obsolete in the meantime, so the patch simply disables it with a
??? comment.
Tested on x86_64-suse-linux, applied on the mainline.
2014-07-28 Eric Botcazou
PR middle-end
Tested on x86_64-suse-linux, applied on the mainline.
2014-03-10 Eric Botcazou
* gcc-interface/Make-lang.in (ADA_DEPFILES): Fix typo.
--
Eric BotcazouIndex: gcc-interface/Make-lang.in
===
--- gcc-interface/Make
> Thanks, and to Bernd for the review. I went ahead and applied it to trunk.
Thanks. We need something for the 4.8 branch as well, probably the builtins.c
hunk and the reversion of the cse.c/cselib.c/dse.c changes to the 4.7 state.
--
Eric Botcazou
sn is not documented as being restricted to
addresses:
/* Emit insn x = y + z. Return NULL if we failed to do it.
Otherwise, return the insn. We don't use gen_add3_insn as it might
clobber CC. */
static rtx
emit_add3_insn (rtx x, rtx y, rtx z)
--
Eric Botcazou
previously passed as the front-end size
and the back-end size was second-guessed by the front-end).
No functional changes on already working platforms.
Tested on x86_64-suse-linux, applied on the mainline and, for a simplified
version, on the 4.8 and 4.7 branches.
2014-03-13 Eric Botcazo
s. (I hope LRA is actually
> behaving that way).
Hoping isn't sufficient IMO here, you need to rename/rework emit_add3_insn and
possibly stop the compiler if the value it is invoked on is not an address.
--
Eric Botcazou
much work, just copy (part of) the head comment of lra_emit_add
to that of emit_add3_insn and cross your fingers (yes, the latter action adds
something over just hoping :-)
--
Eric Botcazou
lay so the attached patch
prevents integer loads from being put in delay slots with -mfix-ut699.
Tested on SPARC/Solaris, applied on the mainline and 4.8 branch.
2014-03-15 Eric Botcazou
* config/sparc/sparc-protos.h (tls_call_delay): Delete.
(eligible_for_call_delay): New
e global register 1 the global registers 2 through4
> +are used as volatile registers (may be destroyed across a function
> call).
I personally don't like the "volatile" wording much, please reuse the wording
of the -fcall-used-REG option.
--
Eric Botcazou
ink that the comment is fine as-is.
--
Eric Botcazou
> This is a follow-up to
> http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00959.html
> which implemented the workaround for the data cache nullify issues on LEON3.
Another fixlet.
Tested on SPARC/Solaris, applied on the mainline and 4.8 branch.
2014-03-18 Eric Botcazou
ples are all dead code since TYPE_READONLY isn't used anymore, verified
on the compiler proper at -O2 that there is not a single byte changed in the
generated code).
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2014-03-20 Eric Botcazou
* calls.c (store
This implements a workaround for the recently-disclosed FPU erratum on LEON3.
Tested on SPARC/Solaris, applied on the mainline and 4.8 branch.
2014-03-20 Eric Botcazou
* config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
around for store forwarding issue in
> 2014-03-20 Eric Botcazou
>
> * calls.c (store_one_arg): Remove incorrect const qualification on the
> type of the temporary.
> * cfgexpand.c (expand_return): Likewise.
> * expr.c (expand_constructor): Likewise.
> (expand_expr_real_1): Likew
> 2014-03-20 Eric Botcazou
>
> * calls.c (store_one_arg): Remove incorrect const qualification on the
> type of the temporary.
> * cfgexpand.c (expand_return): Likewise.
> * expr.c (expand_constructor): Likewise.
> (expand_expr_real_1): Likew
BIT HOST_WIDE_INTs too these days.
Right, pure 32-bit hosted compilers are an endangered species and GNAT is
probably not fully functional for these architectures.
How did you run into the problem? Can't you conduct some minimal testing on
64-bit platforms by using 128-bit integers (not in Ada unfortunately)?
--
Eric Botcazou
this latter
flag is never set during the bbpart pass but only during bbro.
The gcc.c hunk silences a fatal -Wmaybe-uninitialized warning on the mainline.
Profiledbootstrapped/regtested on x86_64-suse-linux, applied on all active
branches, as obvious for the gcc.c hunk.
2014-03-23 Eric
never triggers during a bootstrap) so
it won't pessimize anything. This might be different if the ??? comment is
addressed later but, again, I don't think that we should care at this point.
Tested on x86_64-suse-linux, any objections?
2014-03-23 Eric Botcazou
PR rtl-opt
so we would like to have it for 4.9.x.
2014-04-25 Douglas B Rupp
PR target/60504
* config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
ARM_TARGET2_DWARF_FORMAT.
2014-04-25 Eric Botcazou
* gnat.dg/test_raise_from_pure.adb: UnXFAIL for ARM.
--
itely too much in my opinion.
--
Eric Botcazou
s emitted before the insns that
need it but, with the change, if an insn right after a NOTE_BASIC_BLOCK note
needs it, if will be emitted either before it (if insn_ptr is the insn) or
after it (if insn_ptr is the NOTE_BASIC_BLOCK note).
--
Eric Botcazou
3101 - 3200 of 4611 matches
Mail list logo