e can probably
create a new SSA_NAME but it's not really the spirit of the backprop pass and
I'm not sure it's worth the hassle, hence the minimal attached fixlet.
Tested on x86_64-suse-linux, OK for the mainline?
2016-02-08 Eric Botcazou
* gimple-ssa-backprop.c (op
> It helps vectorization. This was specifically introduced to fix a
> regression on powerpc.
>
> See PR65310.
Indeed, the SRA code was much better before that one liner. ;-)
--
Eric Botcazou
l type 0x76cead20>
/* Now build a phi for the new variable. */
temp = make_temp_ssa_name (type, NULL, "prephitmp");
--
Eric Botcazou
as set -1 canonical type 0x76d333f0>
arg 0
used BLK file pr68273.c line 67 col 10
size
unit size
align 64 context arg-type
>>
arg 1
constant 0>>
--
Eric Botcazou
# lhs access alignment 32+0
MEM[(struct LorentzVector *)res_7(D) + 4B] = SR.23_43;
# .MEM_54 = VDEF <.MEM_53>
# lhs access alignment 64+0
MEM[(struct LorentzVector *)res_7(D) + 8B] = SR.24_42;
# .MEM_55 = VDEF <.MEM_54>
# lhs access alignment 32+0
MEM[(struct LorentzVector *)res_7(D) + 12B] = SR.25_41;
--
Eric Botcazou
Therefore the
attached patch simply gets rid of TV_PHASE_DBGINFO (as well as of the sibling
TV_PHASE_CHECK_DBGINFO which was already unused).
Tested on x86_64-suse-linux, OK for the mainline?
2016-02-10 Eric Botcazou
* timevar.def (TV_PHASE_DBGINFO): Delete.
(TV_PHASE_CHECK_DBGIN
warf.o differs
libcpp/lex.o differs
Makefile:21544: recipe for target 'compare' failed
--
Eric Botcazou
TYPE (t) = var;
SET_SSA_NAME_VAR_OR_IDENTIFIER (t, NULL_TREE);
}
else
--
Eric Botcazou
for 2 decades for some of them and the compiler
worked just fine, so I can easily see how disabling the tree-sra change can
help in the short term. As for calling it an improvement, just look at the
audit trail, it's a quick change papering over a deficiency in the IR...
--
Eric Botcazou
ple, whether the proper fix is not in the middle-end instead, because
adding a dozen of TYPE_MAIN_VARIANT (...) in a dozen of back-ends is IMO not a
good example of robust engineering.
--
Eric Botcazou
The fix for PR debug/16063 slightly disturbed the debug info in Ada by adding
bogus base types to enumeration types; the latter are base types in Ada.
Tested on x86_64-suse-linux, applied on the mainline and 5 branch.
2016-02-16 Eric Botcazou
* gcc-interface/misc.c
This is another regression in the debug info, this time introduced on the
mainline by my patch toggling the signedness of Character in Ada.
Tested on x86_64-suse-linux, applied on the mainline.
2016-02-16 Eric Botcazou
* gcc-interface/gigi.h (maybe_debug_type): New inline function
on x86_64-suse-linux, applied on the mainline.
2016-02-17 Eric Botcazou
* gcc-interface/utils2.c (gnat_protect_expr): Make a SAVE_EXPR only
for fat pointer or scalar types.
2016-02-17 Eric Botcazou
* gnat.dg/discr46.ad[sb]: New test.
--
Eric BotcazouIndex: gcc
ed on x86_64-suse-linux, applied on the mainline and 5 branch.
2016-02-17 Eric Botcazou
* exp_ch4.adb (Expand_N_Indexed_Component): Active synchronization if
the prefix denotes an entity which Has_Atomic_Components.
* gcc-interface/trans.c (node_is_atomic): Return true i
This adds an internal table instead of regenerating naked symbols each time
the libfuncs are used.
Tested on visium-elf, applied on the mainline.
2016-02-17 Eric Botcazou
* config/visium/visium.c (machine_libfunc_index): New enum.
(machine_libfuncs): New structure
Same reason as for ARM.
Tested on visium-elf, applied on the mainline.
2016-02-17 Eric Botcazou
* gcc.dg/ifcvt-4.c: Skip on Visium.
--
Eric BotcazouIndex: gcc.dg/ifcvt-4.c
===
--- gcc.dg/ifcvt-4.c (revision 233448
ler setup to
> investigate.
I'm just using Jeff's reduced testcase for MIPS.
--
Eric Botcazou
Adacore can evaluate this patch code-generation
> wise.
I will, this looks like a valuable simplification to me.
--
Eric Botcazou
add or move these notes during combine, so we can
> + still use the DF info as it was at the start of combine to find all
> + such notes. */
The comment is wrong, or at least confusing, since distribute_notes does deal
with REG_EQUAL and REG_EQUIV notes.
--
Eric Botcazou
> Do you have something smaller in mind that still works? I'm all ears.
Try to adjust the notes instead of dropping them?
> But it never adds or moves these notes. It even says so :-)
Right, but try_combine can do it, see line 4294 and below.
--
Eric Botcazou
Any (global or platform) maintainer willing to approve this for GCC6?
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01458.html
We switched to SSE2 by default on Windows 32-bit at AdaCore and we ran into
really nasty stability issues before applying this patch.
--
Eric Botcazou
. No big deal I agree.
--
Eric Botcazou
e manual.
Note that the issue is present on Solaris 9 and was fixed this way.
--
Eric Botcazou
ugh. It looks like we
> do have a problem if i2 is a parallel with only one SET; but we already
> had a problem anyway? The REG_EQ* is put on the wrong insn?
Possibly indeed, we might need to filter them out during the move.
--
Eric Botcazou
ady don't care about the regular
gnat.dg testsuite, I think that literally nobody will about gnat.dg/guality.
Given that only AdaCore's folks work on Ada debug info issues in practice and
that they run the GDB testsuite, I don't see any real need for it.
--
Eric Botcazou
;s ok for 32-bit
> Windows as well.
>
> So consider the patch approved,
Thanks, now applied. I presume I need to add a blurb to changes.html.
--
Eric Botcazou
mmon.c: opts->x_flag_asynchronous_unwind_tables = 1;
In particular, the 2 means that it's overridden by USE_IX86_FRAME_POINTER,
i.e. the frame pointer is always enabled instead (e.g on Solaris).
What's the problem exactly here? Simple non-DWARF unwinders usually work fine
with the SPARC architecture thanks to the calling conventions.
--
Eric Botcazou
mainline.
2016-02-29 Eric Botcazou
* gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro.
* gcc-interface/gigi.h (gigi): Remove useless attribute.
(gnat_gimplify_expr): Likewise.
(gnat_to_gnu_external): Declare.
* gcc-interface/decl.c
.
Tested on x86_64-suse-linux, applied on the mainline.
2016-02-29 Eric Botcazou
* gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code.
(build_return_expr): Likewise.
(Call_to_gnu): If this is a function call and there is no target,
create a temporary
This one is a very recent regression introduced on the mainline in ASIS mode.
Tested on x86_64-suse-linux, applied on the mainline.
2016-02-29 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : In
ASIS mode, fully lay out the minimal record type.
--
Eric
-linux, applied on the mainline.
2016-02-29 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Retrofit
handling of unconstrained array types as designated types into common
processing. Also handle array types as incomplete designated types.
2016-02-29 Eric
Bootstrapped/regtested on SPARC64/Solaris and also compat-regtested (both bugs
are rare enough as to go unnoticed by the compat testsuite). I also verified
manually that GCC is now compatible with Sun CC in this case too.
I'll document the ABI change in changes.html separately.
2016-02-29 Eric
Hi,
this documents the following changes:
- new scalar_storage_order type attribute in C,
- ABI change for SPARC 64-bit,
- automatic enabling of -mstackrealign with SSE for Windows 32-bit.
OK to apply?
--
Eric BotcazouIndex: htdocs/gcc-6/changes.html
=
> +/* Number of words (partially) occupied for a given size in units. */
> +#define NWORDS_UP(SIZE) (((SIZE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
>
> -#define ROUND_ADVANCE(SIZE) (((SIZE) + UNITS_PER_WORD - 1) /
> UNITS_PER_WORD)
>
> You can use CEIL macro from system.h here.
Good idea, than
> This new test fails for me with -m32.
Thanks for the heads up, fixed thusly, applied.
2016-03-01 Eric Botcazou
* gnat.dg/stack_usage3.adb: Robustify and enable for all targets.
--
Eric BotcazouIndex: gnat.dg/stack_usage3.
er PR ada/70017. Therefore the
attached patch moves it to the end of do_reload and also streamlines it a bit.
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2016-03-01 Eric Botcazou
PR ada/70017
* ira.c (do_reload): Issue warning for generic stac
because it only considers REG_EQUAL notes attached to SET patterns. Here it's
a PARALLEL with a single SET and that's allowed by set_for_reg_notes.
Tested on x86_64-suse-linux, applied on all active branches.
2016-03-01 Eric Botcazou
PR rtl-optimization/70007
* gcse.
> How about saying "It specifies the storage order..."?
>
> And "in structures and unions"?
OK.
> How about "...is passed to a subprogram in slot #15..."?
OK.
> Okay with the changes above.
Thanks!
--
Eric Botcazou
MI2 ISA support
Applied, thanks.
--
Eric Botcazou
FLOAT;
> else
You lost one of the '=' though.
--
Eric Botcazou
the threshold is around 4KB, feel free to add a few more HUNDREDs.
--
Eric Botcazou
> This works though, ok for trunk?
>
> 2016-03-03 Jakub Jelinek
>
> PR ada/70017
> * gcc.dg/pr70017.c (foo): Store 0 to first element of each array.
Sure, thanks.
--
Eric Botcazou
Same reason as for the other architectures.
Tested on ia64-suse-linux, applied on the mainline as obvious.
2016-03-04 Eric Botcazou
* gcc.dg/Wno-frame-address.c: Skip on IA-64.
--
Eric BotcazouIndex: gcc.dg/Wno-frame-address.c
mbination
for which it is exercised. If you cannot do that, then please back it out.
More generally speaking, it's not acceptable to make cleanup changes like that
in the RTL expander without extreme care, which of course starts with proper
testing. The patch should not have been approved either for that reason.
--
Eric Botcazou
any trouble, I can revert that change of course.
You might want to take a look at PR middle-end/17746, it took about 3 months
almost a decade ago to find something plausible to fix this fundamental issue
for Ada on strict-aligmnent platforms so I'd rather not go through this again.
--
Eric Botcazou
PE_ALIGN_OK on
4.1 and 4.9 trees, you get exactly the same 4 occurrences in the middle-end.
--
Eric Botcazou
as quickly as possible.
Improve debug info for small structures (2)
http://gcc.gnu.org/ml/gcc-patches/2013-10/msg02007.html
--
Eric Botcazou
ECL_ALIGN (exp);
known_alignment = true;
}
- else if (TREE_CODE (exp) == VIEW_CONVERT_EXPR)
-{
- align = TYPE_ALIGN (TREE_TYPE (exp));
-}
else if (TREE_CODE (exp) == INDIRECT_REF
|| TREE_CODE (exp) == MEM_REF
|| TREE_CODE (exp) == TARGET_MEM_REF)
--
Eric Botcazou
HOST_BITS_PER_DOUBLE_INT);
+#endif
Can't we be more forgiving here and in the other similar places?
+ /* We support any size mode. */
+ max_bitsize = MAX (GET_MODE_BITSIZE (outermode),
+GET_MODE_BITSIZE (innermode));
max_bitsize
= MAX (GET_MODE_BITSIZE (outermode), GET_MODE_BITSIZE (innermode));
--
Eric Botcazou
> Ok if testing succeeds there but please leave out the checking bits.
Yes, they (perhaps unsurprisingly) trigger in Ada, I'll investigate.
--
Eric Botcazou
> PR59338, I have a fix in testing (restrict checking to non-aggregates).
This will be sufficient for Ada I think, this occurs only when downcasting
because of the infamous VIEW_CONVERT_EXPRs used to implement it (yes, the ones
which carry the TYPE_ALIGN_OK flag).
--
Eric Botcazou
e, tmps[i]);
> the parameter BITREGION_END is wrong.
> it should be:
> ssize * BITS_PER_UNIT - 1
This won't change anything since you cannot access one bit without accessing
its unit but yes, it's more correct. Feel free to change it on both branches.
--
Eric Botcazou
hed testcase, whose failure has also been fixed by your patch.
2013-11-29 Eric Botcazou
* gnat.dg/opt29.ad[sb]: New test.
--
Eric Botcazou-- { dg-do compile }
-- { dg-options "-O" }
package body Opt29 is
procedure Proc (T : Rec) is
begin
if Derived2 (T.F2.
It's a fallout of the changes made for PR ada/54040. Hopefully I didn't miss
one the affected specifications. Applied on the mainline.
2013-11-29 Eric Botcazou
PR ada/54040
PR ada/59346
* s-osinte-hpux.ads (timespec): Change type of tv_nsec field
> 2013-11-29 Paulo Matos
> Eric Botcazou
>
> * combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
> as applied to nonzero_sign_valid fixing bug when last_set_mode has
> less precision than mode.
Applied, thanks.
--
Eric Botcazou
&comparison, &cmode);
[...]
delete_insns_since (last);
return NULL_RTX;
but apparently not, so why not delete the stack adjustment as well and restore
the state afterwards?
--
Eric Botcazou
on x86_64-suse-linux, OK for the mainline?
2013-11-30 Eric Botcazou
* tree-dfa.h (get_addr_base_and_unit_offset_1) : Do the
offset computation using the precision of the index type.
2013-11-30 Eric Botcazou
* gnat.dg/opt30.adb: New test.
--
Eric BotcazouInd
> Ok, committed as obvious, in both branches, after regression-testing.
Thanks for spotting and fixing it.
--
Eric Botcazou
med_section.
This is a (somewhat old) regression, tested on i686-pc-mingw32, applied on all
active branches as obvious.
2013-12-01 Eric Botcazou
* config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
identifier node.
--
Eric BotcazouInd
> Richi has asked the we break the wide-int patch so that the individual port
> and front end maintainers can review their parts without have to go through
> the entire patch.This patch covers the half of the rtl code.
This looks OK to me.
--
Eric Botcazou
> My apologies for taking so long to look at this.
No problem, all the more so that...
> > 2013-09-05 Eric Botcazou
> >
> > * config/arm/arm.c (arm_expand_prologue): In a nested APCS frame with
> > arguments to push onto the stack and no varargs, save ip i
e size is a multiple of
System.Storage_Unit and whose alignment is nonzero, should be implemented by
accessing exactly the bits of the object and no others."
so the answer is (theoritically) yes for volatile fields. But, in practice,
we probably reject the potentially problematic volatile
se Program_error;
> end if;
>end loop;
> end;
>
>
> This Ada test case causes either wrong code generation or an ICE at compile
> time, if the -fstrict-volatile-bitfields option is either given by the
> user, or by the target-specific default as it is on ARM for instance
> (which is completely pointless on Ada, I know!)...
The test indeed raises Program_Error on x86-64.
--
Eric Botcazou
> Yes. I somehow did expect DECL_BIT_FIELD to be something simple,
> without dependency on if -fstrict-volatile-bitfields is given, or what
> Language front-end generated it, or if STRICT_ALIGNMENT is defined.
Yes, it should be that way, and everything else is a bug.
--
Eric Botcazou
> I tried something like this, and it did boot-strap, but failed in some acats
> tests:
Am I supposed to guess which ones? Note that you can have non-byte-aligned
aggregate fields in Ada, i.e. arrays, so ARRAY_REFs can presumably reach here.
--
Eric Botcazou
ddle-end. Moreover there is not a _single_ line of
explanation in it.
If we really want to go for a hack instead of fixing the underlying issue, it
should be restricted to the cases where stor-layout.c goes wrong.
--
Eric Botcazou
LSE.
>
> * gcc.c-torture/execute/pr58726.c: New test.
IMO it's the best fix at this point of the release cycles.
--
Eric Botcazou
issues in the combiner because of the way
it's designed, but they are quite rare in practice.
--
Eric Botcazou
mainline.
2013-12-04 Eric Botcazou
* gcc-interface/trans.c (Case_Statement_to_gnu): Do not push a binding
level for each branch if this is a case expression in Ada 2012.
(gnat_to_gnu) : Adjust comment.
--
Eric BotcazouIndex: gcc-interface/trans.c
-suse-linux, applied on the mainline.
2013-12-04 Eric Botcazou
* gcc-interface/decl.c (components_to_record): Add specific handling
for fields with zero size and no representation clause.
2013-12-04 Eric Botcazou
* gnat.dg/pack19.adb: New test.
--
Eric Botcazou
.
2013-12-04 Eric Botcazou
PR ada/59382
gnattools/
* configure.ac (target parameterization): Rewrite.
* configure: Regenerate.
gcc/ada/
* indepsw-darwin.adb: New file.
--
Eric BotcazouIndex: configure.ac
ch at some point.
Tested on SPARC/Solaris. Joseph, do you have any comments?
2013-12-05 Eric Botcazou
PR target/59316
* config/sparc/sparc.h (SPARC_LOW_FE_EXCEPT_VALUES): Define.
* config/sparc/sol2.h (SPARC_LOW_FE_EXCEPT_VALUES): Redefine.
* config/sparc/sp
cc0 target). Would that be safe?
In the meantime, it occurred to me that I very likely don't need to mask the
value of tmp3_var before calling __atomic_feraiseexcept on it. glibc does it
but this looks unnecessary even there.
--
Eric Botcazou
t exception bits, so no masking is needed.
OK, thanks for confirming.
--
Eric Botcazou
> one test case is this one:
>
> pr57748-3.c:
> /* PR middle-end/57748 */
> /* { dg-do run } */
> /* wrong code in expand_expr_real_1. */
>
> #include
>
> extern void abort (void);
>
> typedef long long V
> __attribute__ ((vector_size (2 * sizeof (long long)), may_alias));
>
> typedef stru
> Here's the Correct Fix(tm). We may or may not decide to go for it because
> of concerns about ABI changes; in the latter case, any kludge that we'll
> put in place instead must be restricted to the cases caught by this patch.
>
>
> * stor-layout.c (compute_record_mode): Return BLKmode fo
; }
>
> has SImode, we accept all trailing arrays as possibly extending beyond the
> struct declaration.
>
> Alternatively all structs with aggregate members should not have a
> mode != BLKmode.
This could work as well, although I'd restrict this to arrays, recursively.
--
Eric Botcazou
estcases using non-portable code.
--
Eric Botcazou
the appropriate
types when support_trailing_arrays is true,
4. modifying expr.c along the lines of Bernd's latest idea to avoid returning
anything but a MEM for objects with a type on which the flag is set?
--
Eric Botcazou
is always 0 independently of the target.
Tested on x86/Linux and PowerPC/Linux, OK for the mainline?
2013-12-09 Eric Botcazou
* expr.c (expand_expr_real_1) : Always return 0 for
the extraction of a bit-field of null size.
--
Eric BotcazouInd
comparison with a comparison on GET_MODE_BITSIZE.
Tested on x86/Linux and PowerPC/Linux, OK for the mainline?
2013-12-09 Eric Botcazou
* optabs.c (gen_int_libfunc): Do not compare modes directly.
--
Eric BotcazouInde
Hi,
the test requires vect_int, but it seems to me that it should require
vect_int_mult instead.
Tested on x86/Linux and SPARC/Solaris, OK for the mainline?
2013-12-09 Eric Botcazou
* gcc.dg/vect/vect-reduc-pattern-3.c: Require vect_int_mult.
--
Eric BotcazouIndex: gcc.dg/vect
Hi,
the test doesn't pass on SPARC because of unaligned objects.
Tested on x86/Linux and SPARC/Solaris, OK for the mainline?
2013-12-09 Eric Botcazou
* gcc.dg/vect/pr58508.c: XFAIL for vect_no_align.
--
Eric BotcazouIndex: gcc.dg/vect/pr58
So this boils down to an implementation choice:
either we specifically detect this case up in the chain or we let it flow down
as usual. But since we handle the stores in an uniform way, I think that it
could make sense to do the same for the loads.
--
Eric Botcazou
clear how we can reach here though, I could add a comment if I find. :-)
--
Eric Botcazou
well.
Tested on x86-64/Linux, PowerPC/Linux and IA-64/Linux. As reported by Kyrill,
this fixes gcc.target/arm/unsigned-extend-1.c on the ARM.
Comments?
2013-12-09 Eric Botcazou
PR rtl-optimization/58295
* simplify-rtx.c (simplify_truncation): Restrict the distribution for
whether we want to risk more
accidental ABI changes if they are not supported throughout the compiler.
--
Eric Botcazou
ve BLKmode, otherwise you need to add very ugly code in the RTL
expander to mask the lie.
--
Eric Botcazou
> :-) From a cleanup standpoint, I think the expansion code is ripe for
> someone to spend (condsiderable) time killing dead code. I suspect
> there's still significant gcc-1.91 (or even older) bits in there that
> have been dead for at least a decade.
The existing test was added for Ada a decad
ne and 4.8 branch, after testing on
PowerPC/Linux for the latter.
--
Eric Botcazou
o the stack and no varargs, save ip into the last
> stack slot if r3 isn't available on entry.
No problems detected for the patch on arm-vxworks or arm-eabi.
--
Eric Botcazou
> I have some more fixes for Ada cross-builds that Eric commented on but need
> a little more work - will try to re-test this evening and re-post tomorrow.
It's also PR ada/55946. Would mind trying the attached patch?
--
Eric BotcazouIndex: gnattools/Makefile.in
> Yes we do, even for struct { struct { int a; char a[1] } }; (note the not
> really "trailing" as there is padding after the trailing array). We do
> take size limitations from a DECL (if we see one) into account to limit the
> effect of this trailing-array-supporting, so it effectively only appl
S)" \
"ADA_CFLAGS=$(ADA_CFLAGS)" \
"INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
"ADA_INCLUDES=-I$(RTS_DIR)../adainclude -I$(RTS_DIR)
Could you post the command line for the compilation of one of the problematic
units for the gnattools?
--
Eric Botcazou
t?
Presumably not, but you could try to run gnat.dg instead.
--
Eric Botcazou
> arm-linux-gnueabihf-gcc -c -I./
> -I/home/ed/gnu/x/arm-linux-gnueabihf-linux64/lib/gcc/arm-linux-gnueabihf/4.
> 9.0/adalib/../adainclude
> -I/home/ed/gnu/x/arm-linux-gnueabihf-linux64/lib/gcc/arm-linux-gnueabihf/4.
> 9.0/adalib/ -I. -I/home/ed/gnu/x/gcc-4.9-20131208/gcc/ada -g -O2 -W -Wall
> -gna
(LDFLAGS). It was actually already passed in the native case...
--
Eric Botcazou
atched compiler.
As well as on ARM/EABI w/ and w/o -mfloat-abi=hard.
--
Eric Botcazou
> adalib ))) -endif
> ADA_TOOLS_FLAGS_TO_PASS=\
> CC="$(CC)" \
> CXX="$(CXX)" \
That's tempting indeed, but we still support the old --disable-libada and
these bits are required to make it work.
--
Eric Botcazou
> .. then does the second block need hoisting to bracket the two cases with
> host!=build?
This code works fine so I don't think that we really need to do anything.
--
Eric Botcazou
501 - 600 of 4591 matches
Mail list logo