fe? These are not rhetorical
questions, but genuine ones; it's a little disturbing to discover such a flaw
in this kind of code after all these years (I can reproduce the problem with
all the compilers of the 4.x series, so this didn't work with flow.c either).
Thanks for debugging this in any case.
--
Eric Botcazou
ver the insn
> sequence?". The answer: "Yes, if it was not set or clobbered by any
> insn in the sequence".
Are you sure that you don't need to do this in addition to the existing test,
instead of in lieu of the existing test?
--
Eric Botcazou
E_MODE (outer_type)
&& !AGGREGATE_TYPE_P (inner_type))
return false;
This will return false for any couple of pointers with different modes.
--
Eric Botcazou
andful of minutes.
Would you mind having a quick look? I don't have access to Solaris 11 myself.
--
Eric Botcazou
less aligned than
their modes, but I guess that I can look elsewhere when there is one. :-)
--
Eric Botcazou
ee-inline.c (tree_function_versioning): Call remap_decl
> on DECL_RESULT whenever it has VOID_TYPE_P type.
>
> * gcc.dg/pr51865.c: New test.
Thanks for fixing this!
--
Eric Botcazou
d to change the generated code or...? Because it has introduced
regressions in stack usage. Compile the attached testcase (stack_test.adb)
with -fstack-usage on x86-64 and you'll get 496 bytes in the .su file. If the
patch is reverted, this goes back to the expected 64 bytes.
--
Eric Botcazo
Long overdue, and regression from when ENTRY_BLOCK and EXIT_BLOCK were handled
differently so applied on mainline/4.6/4.5 branches after testing on x86-linux.
2012-01-20 Eric Botcazou
* cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
--
Eric Botcazou
Index
e but in general create too few
> conflicts, i.e. generate wrong code. I need some time to think about this
> again.
OK, thanks in advance.
--
Eric Botcazou
This is a regression present since the 4.5.x series at least. We generate
wrong code (infinite loop for the testcase) for the renaming of a volatile
packed array with an address clause.
Tested on i586-suse-linux, applied on the trunk, 4.6 and 4.5 branches.
2012-01-21 Eric Botcazou
and I wouldn't
be surprised if there were other fallouts. But your change is clearly correct
and looks relatively safe, so OK for trunk and 4.6 branch after full testing.
--
Eric Botcazou
might be possible for combine_instructions to
try to combine i2 again if the previous combination fails (if it succeeds, i1
is deleted so this is OK) so the stall LOG_LINKS could be problematic. That's
why LOG_LINKS (i2) needs to SUBST-ituted like the two lines just above.
--
Eric Botcazou
extensions, but is
now exposed in REE.
The attached patch implements a minimal fix with the associated FIXME. Tested
on x86_64-suse-linux, applied on the mainline.
2012-01-22 Eric Botcazou
PR rtl-optimization/51924
* ree.c (combine_set_extension): Improve debugging message
e the PLACEHOLDER_EXPRs. IIUC
this is only a slight pessimization.
Bootstrapped/regtested on x86_64-suse-linux, OK for mainline?
2012-01-22 Eric Botcazou
* tree-ssa-structalias.c (intra_create_variable_infos): Do not create
fake variables for restrict-qualified pointers whose point
> Do you mean something like this instead ? I'm testing this - Ok if no
> regressions ?
OK with an appropriate ChangeLog.
--
Eric Botcazou
33.c: New test.
OK, modulo:
> + are successful. The function returns 0 upon failure, 1 upon success. */
The function returns a boolean now.
--
Eric Botcazou
e don't use TYPE_NEEDS_CONSTRUCTING in Ada.
--
Eric Botcazou
and define.
> (SUBST_LINK): New.
> (try_combine): Handle LOG_LINKS for dummy i1 case.
You also need to document the changes made to enum undo_kind, struct undo,
do_SUBST and undo_all. OK with these changes.
--
Eric Botcazou
.
(is_too_expensive): New function.
(fwprop): Call it and return early if it returns true.
(fwprop_addr): Likewise.
--
Eric Botcazou
Index: Makefile.in
===
--- Makefile.in (revision 183423)
+++ Makefile.in (working
EM_REF of
> non-addressable non-BLKmode base correctly.
>
> * g++.dg/opt/pr51895.C: New test.
I think that it should be applied.
--
Eric Botcazou
in the function) so it stops.
--
Eric Botcazou
the best design decision). So maybe
> if the passed type isn't used in any other way we can
> get around and discover the view-convert and use the alias-type
> of the MEM_REF ...
But I presume that the regular MEM_REF expander can cope with this case?
--
Eric Botcazou
ult if non-NULL.
> (find_and_remove_re): Pass curr_cand->expr instead of
> PATTERN (curr_cand->insn) as set_pat argument to
> combine_reaching_defs.
OK, thanks.
--
Eric Botcazou
I have installed the Ada stack usage testcase since it passes again (thanks!).
But it is only enabled on x86 and x86-64 so, please, consider switching your
development platform to these exotic architectures. ;-)
--
Eric Botcazou
This isn't a regression, but the patch doesn't change the generated code, just
creates a VAR_DECL for debugging purposes.
Tested on i586-suse-linux, applied on the mainline.
2012-01-27 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : For an aliased
obje
In the same basket as the previous one.
Tested on i586-suse-linux, applied on the mainline.
2012-01-27 Eric Botcazou
* gcc-interface/gigi.h (create_label_decl): Adjust.
* gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter
and invoke gnat_pushdecl on
with dispatch tables specially.
Tested on i586-suse-linux, applied on the mainline.
2012-01-27 Eric Botcazou
* gcc-interface/gigi.h (get_minimal_subprog_decl): Declare.
* gcc-interface/decl.c (get_minimal_subprog_decl): New function.
* gcc-interface/trans.c (Attribute
little special: the
AARM (Annotated Ada Reference Manual) specifically mentions it, so deviating
from it is bit annoying. Moreover the fix is straightforward now.
Tested on i586-suse-linux, applied on the mainline.
2012-01-27 Eric Botcazou
* gcc-interface/ada-tree.h (DECL_ALIASED_P
This is a regression present on the mainline. The compiler aborts when trying
to generate code to initialize an object with a variant part whose size cannot
be computed statically.
Tested on i586-suse-linux, applied on the mainline.
2012-01-27 Eric Botcazou
* gcc-interface
> 2011-04-08 Eric Botcazou
>
> * gcc-interface/decl.c (gnat_to_gnu_entity) : Set minimum
> alignment on fields of the RETURN type built for the Copy-In Copy-Out
> mechanism.
This can be counter-productive, as the RETURN type is bigger and might not fit
in re
hat your
patchlet is sufficient, fine with me.
--
Eric Botcazou
on the SPARC this week-end.
> Otherwise I'd rather delay trying to properly expand misaligned MEM_REFs on
> non-movmisalign STRICT_ALIGNMENT targets to 4.8.
That sounds sensible to me.
--
Eric Botcazou
There are existing examples in the directory.
Tested on i586-suse-linux, applied on the mainline as obvious.
2012-01-28 Eric Botcazou
* gcc.dg/torture/pr50444.c: Fix dg directives.
--
Eric Botcazou
Index: gcc.dg/torture/pr50444.c
te/960513-1.c execution, -Os
--
Eric Botcazou
darg-2.c execution, -O3 -g
FAIL: gcc.c-torture/execute/stdarg-2.c execution, -Os
FAIL: gcc.c-torture/execute/stdarg-2.c
execution, -O2 -flto -flto-partition=none
FAIL: gcc.c-torture/execute/stdarg-2.c execution, -O2 -flto
for the exact same reason.
--
Eric Botcazou
nction.h?
It talks about pseudo-registers while we are talking about hard registers.
--
Eric Botcazou
t;that pseudo. For hard registers, it is an rtx of the mode specified
>by reg_raw_mode.
>
>FIXME: We could put it into emit_status struct, but gengtype is not
>able to deal with length attribute nested in top level structures. */
Perfect, thanks.
--
Eric Botcazou
> Does this help?
Yep, this eliminates all the regressions, thanks!
--
Eric Botcazou
stream,
here between reg_equiv_* fields and REG_EQUIV notes. It simply isn't prepared
to deal with the case where this mapping is broken behind its back.
--
Eric Botcazou
eudos with long live ranges, to
lower the pressure on the register allocator.
Tested on SPARC/Solaris, applied on the mainline.
2012-01-30 Eric Botcazou
PR target/51920
* config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
parameter and use shor
> * function.h (regno_reg_rtx): Adjust comment.
> * reginfo.c (init_reg_modes_target): Only use the previous mode
> if it fits within one register. Remove MIPS comment.
OK, thanks.
--
Eric Botcazou
pointers into the vector.
> (find_removable_extensions): Adjust caller.
OK, thanks.
--
Eric Botcazou
> 2012-02-01 Jakub Jelinek
>
> PR middle-end/52074
> * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
> if modifier < EXPAND_SUM call force_operand on the result.
>
> * gcc.c-torture/compile/pr52074.c: New test.
This loo
Eric Botcazou
PR middle-end/51994
* expr.c (get_inner_reference): If there is an offset, add a negative
bit position to it (if any).
2012-02-07 Eric Botcazou
* gcc.c-torture/execute/20120207-1.c: New test.
--
Eric Botcazou
Index: expr.c
tion in newpat, copy i0src to i0src_copy
> and/or i0src_copy2 when needed.
>
> * gcc.dg/torture/pr52060.c: New test.
OK, thanks.
--
Eric Botcazou
This breaks LTO bootstrap because of warnings for apparently incompatible types
at the interface between C and Ada. Given that it's very likely not possible
to fix them all, let's keep accepting them.
Tested on i586-suse-linux, applied on the mainline.
2012-02-07 Eri
lse
link_itm="-litm $LIBS"
fi
AC_SUBST(link_itm)
but AFAICS nobody uses libitm.spec (and so you need to force -litm for the
testsuite)?
--
Eric Botcazou
(integers) on the Ada side.
--
Eric Botcazou
It was introduced in the course of the -mflat rewrite, but can be replaced by a
single line.
Tested on SPARC/Solaris w/ and w/o -mflat, applied on the mainline.
2012-02-10 Eric Botcazou
* config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
* config/sparc
use an access type instead
of System.Address. It's a compiler unit so the impact should be limited, and
at least this would solve the m68k problem.
--
Eric Botcazou
The minimum stack frame size is 176 in 64-bit mode, not 128.
Tested on SPARC/Solaris, applied on the mainline.
2012-02-11 Eric Botcazou
* src/sparc/v9.S (STACKFRAME): Bump to 176.
--
Eric Botcazou
Index: src/sparc/v9.S
Hi,
this completes the half-implemented linking scheme of libitm and makes it mimic
that of libgomp entirely. We need the -pthread thing on Solaris 8.
Tested on SPARC/Solaris 8 & 9 and i586/Linux, OK for the mainline?
2012-02-11 Eric Botcazou
* gcc.c (LINK_COMMAND_SPEC):
e m68k case.
I'll give it a try. Thanks for the tip!
--
Eric Botcazou
> This change causes massive failures at -m32/-m64 on x86_64-apple-darwin11
> in the libitm testsuite...
How did you test it?
--
Eric Botcazou
-fgnu-tm.
(GTM_SELF_SPECS): Define.
--
Eric Botcazou
Index: gcc/gcc.c
===
--- gcc/gcc.c (revision 183864)
+++ gcc/gcc.c (working copy)
@@ -675,6 +675,7 @@ proper position among the other output f
%{s} %{t} %{u*} %{
>FYI, if I restore -litm to the linkage of the failing tests, they
> compile and run fine. I don't understand why we think -litm can be dropped
> from linking the tests in the libitm testsuite.
Because -fgnu-tm will automatically add it on the link line, like for -fopenmp.
--
Eric Botcazou
>I missed the regeneration of libitm/configure the first time. The
> p2.diff with the regenerated libitm/configure passes make check in libitm
> now on x86_64-apple-darwin11...
Great, thanks for the testing.
--
Eric Botcazou
left it as-is.
Tested on SPARC/Solaris 8 & 9 (with the other patch) and on SPARC64/Linux, both
in 32-bit and 64-bit mode. OK for the mainline?
2012-02-12 Eric Botcazou
* configure.tgt (target_cpu): Handle sparc and sparc64 & sparcv9.
* config/sparc/cac
this, so this patch
extends it to fix them.
Tested on SPARC64/Solaris, applied on the mainline.
2012-02-12 Eric Botcazou
* config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
disallow changes from SFmode to mode with different size in FP regs.
--
Eric Botcazou
L,g,NULL);])],
[],
[AC_MSG_ERROR([Pthreads are required to build libitm])])])
> Can't you just limit adding -pthread to Solaris 8 or something?
I didn't invent anything here, this is exactly how -fopenmp/libgomp works.
Just define GTM_SELF_SPECS to "" like Darwin and Windows.
--
Eric Botcazou
> I think you really need to put the proper value into the %fp register
> atomically here.
>
> If an interrupt comes in before you STACK_BIAS adjust the %fp, a
> debugger or similar could see a corrupt frame pointer.
OK, I'm going to make the change.
--
Eric Botcazou
> We probably want to do some nop'ish thing here which will yield the
> cpu thread on Niagara cpus, I'd recommend something along the lines of
> "rd %ccr, %g0" or "rd %y, %g0"
I'm going for the former, thanks.
--
Eric Botcazou
> Like this, tested cris-elf, fixes the regressions, does the same
> as -fopenmp.
Thanks for fixing this.
--
Eric Botcazou
> I see several new fails on s390x with that patch (r184174):
People should realize that -fgnu-tm doesn't really work if libitm hasn't been
ported to the architecture, for example s390/s390x. My understanding is that
Hans-Peter's patch should have taken care of this now.
--
Eric Botcazou
have both EH and AB edges in gnat1 (thanks to TREE_CLOBBER_P).
Bootstrapped/regtested on x86_64-suse-linux, applied on the mainline as obvious
(together with the no-op patchlet to gimple.c we discussed in the PR).
2012-02-14 Eric Botcazou
PR lto/52178
* gimple.c (ite
target/52205).
Last time I checked, there was a couple of C++ failures on the branch.
--
Eric Botcazou
This fixes the regression in the frame unwinding support on SPARC/Solaris 11
present on the mainline and 4.6 branch. Tested (by me) on 6 differents OS
versions of Solaris 8, 9 and 10 and on Solaris 11 by Ian and Rainer.
Applied on the mainline and 4.6 branch.
2012-02-15 Eric Botcazou
This is a regression present on the mainline: the compiler aborts on the access
to a component of the value returned by a function call, if the return type is
a volatile record type that isn't controlled or tagged.
Tested on i586-suse-linux, applied on the mainline.
2012-02-15 Eric Bot
on the mainline.
2012-02-15 Eric Botcazou
* gcc-interface/trans.c (gnat_to_gnu) : If the
type is tagged, mark it as used for debugging purposes.
: Likewise for a qualified expression.
--
Eric Botcazou
Index: gcc-interface/trans.c
, applied on the mainline.
2012-02-15 Eric Botcazou
* gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the
type of the result to the end and execute it for a deferred constant of
a discriminated type whose full view can be elaborated statically.
2012-02-15
Eric Botcazou
PR bootstrap/52287
* haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
--
Eric Botcazou
--
Eric Botcazou
Index: haifa-sched.c
===
--- haifa-sched.c (revision 184352)
+++ haifa
doesn't work on Solaris so we should drop the
condition altogether in libgomp.
--
Eric Botcazou
> 2012-01-27 Eric Botcazou
>
> * gcc-interface/decl.c (gnat_to_gnu_entity) : For an aliased
> object with an unconstrained nominal subtype and if optimization isn't
> enabled, create a special VAR_DECL for debugging purposes.
Unfortunately this isn'
type with default
discriminant and a component with controlled or tagged type.
Tested on i586-suse-linux, applied on the mainline.
2012-02-27 Eric Botcazou
* gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking.
(TYPE_BY_REFERENCE_P): New
]: New test.
--
Eric Botcazou
Index: gcc-interface/decl.c
===
--- gcc-interface/decl.c (revision 184594)
+++ gcc-interface/decl.c (working copy)
@@ -2003,8 +2003,8 @@ gnat_to_gnu_entity (Entity_Id gnat_entit
const bool
consistency.
Tested on i586-suse-linux, OK for the mainline?
2012-02-27 Eric Botcazou
* dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
DW_AT_artificial attributes at the end of the processing.
(gen_array_type_die): Likewise
void)
{
__asm volatile ("membar #LoadLoad" : : : "memory");
}
be good enough?
--
Eric Botcazou
d in both places if possible,
> as we know that forces a cpu thread yield.
Fine with me. I'll do some testing and then change libgomp, thanks.
--
Eric Botcazou
rans-mem-4_0.c: Likewise.
> * gcc.dg/lto/trans-mem-4_1.c: Likewise.
You forgot to remove gcc.dg/lto/trans-mem.h itself.
--
Eric Botcazou
ns-mem.h kludge?
--
Eric Botcazou
piler since only GNAT uses DW_AT_GNAT_descriptive_type
and sets TYPE_ARTIFICIAL on its types. OK?
2012-02-29 Eric Botcazou
* gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
dummy global built for global types is preserved.
--
Eric Botcazou
Index
As discussed with DaveM, this duplicates libitm's cpu_relax into libgomp.
Tested on SPARC64/Linux, applied on the mainline.
2012-02-29 Eric Botcazou
* config/linux/sparc/futex.h (cpu_relax): Read from CC register.
--
Eric Botcazou
Index: config/linux/sparc/fu
exactly the same debug info for the testcase as the original patch.
Tested on x86_64-suse-linux, OK for the mainline?
2012-03-02 Eric Botcazou
* dwarf2out.c (gen_subprogram_die): Emit a definition of nested
functions within an abstract instance of their parent
at_separate_run_path_options = 0;
> #if defined (__x86_64)
> +# if defined __LP64__
> const char *__gnat_default_libgcc_subdir = "lib64";
> +# else
> +const char *__gnat_default_libgcc_subdir = "libx32";
> +# endif
> #else
> const char *__gnat_default_libgcc_subdir = "lib";
> #endif
Please follow the existing idiom and write defined (__LP64__) instead.
OK with these changes.
--
Eric Botcazou
This is a regression present on the 4.6 branch only. Applied on the branch.
2012-03-03 Eric Botcazou
PR target/52425
Backport from mainline
2011-05-22 Eric Botcazou
* config/sparc/sparc.c (sparc_delegitimize_address): Handle
UNSPEC_MOVE_PIC
> Rebuilding gcc was failing for me because the rule for gnat_ugn.texi was
> trying to use xgnatugn before it had been built. Fixed by making it
> directly, like the rule for projects.texi.
>
> OK for trunk?
Yes, thanks.
--
Eric Botcazou
nt. That's why the attached
patch is a simple workaround that just avoid ICEing.
Bootstrapped/regtested on IA-64/Linux, OK for the mainline? Do we also want it
for 4.7.1 (I assume that some RA change makes the issue visible in 4.7.x)?
2012-03-06 Eric Botcazou
* config/ia64/ia6
MS),
OK for the mainline?
2012-03-06 Eric Botcazou
Tristan Gingold
* doc/md.texi (Standard Names): Document probe_stack_address.
* explow.c (emit_stack_probe): Handle probe_stack_address.
* config/ia64/ia64.md (UNSPECV_PROBE_STA
cause the predicate makes a wrong assumption about the
canonicalization of address expressions. Hence the attached patch.
Bootstrapped/regtested on IA-64/Linux, OK for the mainline? Do we also want it
for 4.7.1 or is it too specific?
2012-03-06 Eric Botcazou
* alias.c (memrefs_confl
> Well. I suppose fixing that negative DECL_FIELD_OFFSET thing should
> be #1 priority.
OK, let me try over the next few days.
--
Eric Botcazou
> Or that we have non-legitimate address expressions in them?
My understanding is that this is by design.
--
Eric Botcazou
is if we can express
> those expressions in DWARF or not.
> How can this be reproduced with a cross?
Run -fcompare-debug on sem_ch2.o with -O2 -gnatpgn -g (on the 4.7 branch).
--
Eric Botcazou
There is a single call to unshare_expr in gigi and it is actually superfluous
if you do things properly.
Tested on i586-suse-linux, applied on the mainline.
2012-03-07 Eric Botcazou
* gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer.
(add_decl
It was needed for STABS, but is totally obsolete for DWARF.
Tested on i586-suse-linux, applied on the mainline.
2012-03-07 Eric Botcazou
* gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete.
* gcc-interface/decl.c (defer_finalize_level): Likewise
The previous patch has exposed a latent issue: we sometimes set some flags on a
DECL node using information that come from another entity.
Tested on i586-suse-linux, applied on the mainline.
2012-03-07 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on
detected around a-calend.adb:1254:7
To reproduce, do:
gcc/gnat1 gcc/ada/rts/a-calend.adb -gnatg -O -Igcc/ada/rts
in the build dir.
--
Eric Botcazou
PR tree-opt/48988.
--
Eric Botcazou
right answer alone.
Bootstrapped/regtested on SPARC/Solaris and SPARC64/Solaris, applied on the
mainline and 4.6/4.5/4.4 branches.
2011-05-21 Eric Botcazou
* config/sparc/sparc.c (eligible_for_return_delay): Do not return
false if there are call-saved registers here...
(sp
s.
SPARC maintainers, any objection to me eliminating this SETJMP_VIA_SAVE_AREA
kludge? This would make it possible to have a shared implementation with the
flat mode and remove specific support in a few locations. Even IA-64 does
things the canonical way here.
2011-05-21 Eric Botcazou
be used
> only after deciding which mode to use.
>
> * gcc.c-torture/compile/pr49029.c: New test.
Not something I can formally approve but, given the current scarcity of
reviewers and the extent of the change, I'd say go ahead for both.
--
Eric Botcazou
3901 - 4000 of 4612 matches
Mail list logo