t; - }
>
> Do we still get a proper diagnostic for &x[y] where x isn't something we
> can mark addressable?
Yes, c_mark_addressable is invoked on 'arg' later and the function looks into
the prefix of an ARRAY_REF
> No real objections, assuming that &x[y] diagnostics is still handled
> correctly somewhere.
OK, thanks.
--
Eric Botcazou
* expmed.c (store_bit_field_1): Revert prevoius change.
> * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
> to match for complete types.
Please add the PR middle-end/67966 reference to the ChangeLog.
--
Eric Botcazou
the C++ FE part. As I already explained, this part is very likely incomplete
(based on the changes that were made in the Ada FE proper) and only makes sure
that C code compiled by the C++ compiler works as intended, but nothing more.
So I can propose to install only the generic, C and Ada changes for now and to
explicitly disable the feature for C++ until a more complete implementation of
the C++ FE part is written. I'm OK to work on it but I'll probably need help.
--
Eric Botcazou
, OK for all active branches?
2015-10-20 Eric Botcazou
* fold-const.c (tree_binary_nonnegative_warnv_p) :
Recurse on operand #1 instead of operand #0.
: Do not recurse.
: Likewise.
--
Eric BotcazouIndex: fold-const.c
given the definition of CEIL_DIV_EXPR,
you can prove that the sign of CEIL_MOD_EXPR is the opposite of that of the
divisor (but you cannot use the latter result in this context).
--
Eric Botcazou
n of the remainder is the opposite of that of the divisor,
+ but this cannot be used in this context. */
+case ROUND_MOD_EXPR:
+ /* The sign of the remainder is not predictable. */
default:
return tree_simple_nonnegative_warnv_p (code, type);
}
--
Eric Botcazou
_conversion_p): Require TYPE_MODE
> to match for all types.
Please add the PR middle-end/67966 reference to the ChangeLog.
--
Eric Botcazou
> Maybe add the comments to tree.def instead.
Good idea, revised patch attached.
* tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
comments.
(TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
Add comments on sign of the result.
ntence that describes
> an option with a period.
...this one to ada/ChangeLog (without the ada/ prefix).
> * c-family/c.opt: Same.
...this one to c-family/ChangeLog (without the c-family/ prefix).
> * fortran/lang.opt: Same.
...this one to fortran/Change
known to hold a value of the required mode the
transformation is invalid. */
--
Eric Botcazou
Botcazou
* match.pd (fold_widened_comparison): Apply simplifications to
all integral types.
2015-10-26 Eric Botcazou
* gcc.dg/atomic-noinline.c: Fix test on __atomic_is_lock_free.
* gcc.dg/atomic-noinline-aux.c: Fix its return type.
* gnat.dg/opt51.adb
TYPE (enumtype), precision, sgn);
/* If -fstrict-enums, still constrain TYPE_MIN/MAX_VALUE. */
if (flag_strict_enums)
set_min_and_max_values_for_integral_type (enumtype, precision, sgn);
So the compiler should still not optimize if -fno-strict-enums AFAICS.
--
Eric Botcazou
> Maybe you should count how many times __atomic_is_lock_free is called
> instead of the current patch to the testsuite.
I have changed it to make __atomic_is_lock_free set a value through p.
--
Eric Botcazou
> Thanks - the arm backend changes are ok - but you need to wait for an
> AArch64 maintainer to review the AArch64 changes.
I installed the ARM changes long ago but the Aarch64 ones are still pending.
--
Eric Botcazou
ns should be supported for ObjC++ (and the existing cases that aren't
> in c.opt generally look dubious).
Sorry, I have zero experience with ObjC and objC++, let alone their front-end.
--
Eric Botcazou
VCE... which is now deleted. :-(
See the call to derivedIP in the attached testcase which now fails on x86-64.
How do we get away from here?
* gnat.dg/discr44.adb: New test.
--
Eric Botcazou-- { dg-do run }
-- { dg-options "-gnatws" }
procedure Discr44 is
function Ident (I : In
mp; ObjC++ but this comes with no warranty.
--
Eric Botcazou
I try
to get rid of the useless ones as much as I can so assistance from the middle-
end is not really required. I'll test Richard's patch and install it if the
outcome is positive (unless you want to do the vector thing right away).
--
Eric Botcazou
d 32-bit sizetype in corner cases.
But using offset_int should be OK, see for example get_ref_base_and_extent.
--
Eric Botcazou
uages).
I don't really know what it was made for, but there must be a better way...
* gnat.dg/discr45.adb: New test.
--
Eric Botcazou-- { dg-do run }
-- { dg-options "-O2 -gnatws" }
procedure Discr45 is
function Ident_Int (I : Integer) return Integer is
begin
return I;
en
> This fails on ia64.
gnat.dg/discr44.adb and gnat.dg/discr45.adb are supposed to fail everywhere
(and there are also a few ACATS failures everywhere). Sorry for the awkward
situation but they are testcases exposing the recent type system breakage.
--
Eric Botcazou
> I suggest to re-instantiate the canonical type checks for the aggregate type
> case.
OK, thanks, this fixes all the known ICEs so far.
Tested on x86_64-suse-linux, OK for the mainline?
2015-11-03 Eric Botcazou
* gimple-expr.c (useless_type_conversion_p): Reinstate type can
ld be annotated with the sequence length.
OK, thanks for the review, I'll adjust.
--
Eric Botcazou
> Yes, but that's not usual, ARM and SPARC have it too, 4096 happens to be the
> limit of reg+off addressing mode on several architectures.
... not unusual...
--
Eric Botcazou
in,
but all the known regressions are now fixed thanks to Richard's latest change
to useless_type_conversion_p itself.
--
Eric Botcazou
ent size");
debug_generic_stmt (expr);
return true;
}
else if (!handled_component_p (op))
return false;
}
It's related to dynamic slicing (reduced testcase attached).
* gnat.dg/slice9.adb: New test.
--
E
ages first, and be extended or not to the rest of languages afterwards.
> One possibility is that this whole construct, ARRAY_RANGE_REF that it
> is, should mark *.LC0 in cannot_scalarize_away_bitmap.
ARRAY_RANGE_REF is only used in Ada so you can do that for now (unless this
introduces regressions in the gnat.dg testsuite but I doubt it).
--
Eric Botcazou
Applied on the mainline.
2015-11-07 Eric Botcazou
* config/sparc/sparc.opt (mfix-at697f): Add final period.
--
Eric BotcazouIndex: config/sparc/sparc.opt
===
--- config/sparc/sparc.opt (revision 229840)
+++ config
ith [sso] and
ebotca...@gcc.gnu.org be added to the CC field.
--
Eric Botcazou
at have an
internal representation distinct from the GENERIC trees and thus do a global
translation to GENERIC at the end; e.g. in the Ada compiler we'd rather have
*more* folding than less during this translation.
--
Eric Botcazou
This apparently doesn't have any effect in practice, but valgrind rightfully
complains, as reported by Martin L.
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2015-11-09 Eric Botcazou
PR middle-end/68253
* fold-const.c (fold_truth_andor_1): Initializ
;ll install the Fortran
testcase once it is reduced because it takes a while to compile ATM.
2015-11-09 Eric Botcazou
PR middle-end/68251
* tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
* tree.h (REF_REVERSE_STORAGE_ORDER): Change to de
age order.
: Likewise.
: Likewise.
: Likewise.
: Likewise.
(split_address_cost): Likewise. Bail out if reverse storage order
--
Eric Botcazou
> Right, the change is just to the C++ front end 'convert'.
OK, thanks for the clarification.
--
Eric Botcazou
generated in
Fortran (COMPONENT_REF of a VOID_TYPE) and making it more robust is trivial.
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2015-11-09 Eric Botcazou
PR middle-end/68259
* tree.h (reverse_storage_order_for_component_p) :
Check that the t
On the heels of Julian's patch, this turns the 3 PRINT_OPERAND_* macros into
hooks for the Visium port.
Tested on visium-elf, applied on the mainline.
2015-11-09 Eric Botcazou
* config/visium/visium.h (PRINT_OPERAND): Delete.
(PRINT_OPERAND_PUNCT_VALID_P): Lik
-elf, applied on the mainline as obvious.
2015-11-09 Eric Botcazou
* gcc.dg/sso/*.c: Robustify dg-output directives.
--
Eric BotcazouIndex: gcc.dg/sso/p1.c
===
--- gcc.dg/sso/p1.c (revision 230016)
+++ gcc.dg/sso/p1.c (working
n all branches.
2015-11-09 Eric Botcazou
PR target/57845
* config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
not promote the mode for aggregate types.
2015-11-09 Eric Botcazou
* gcc.target/sparc/sparc-ret.c: Rename to...
* gcc.target/
> Tested on x86_64-suse-linux, OK for the mainline? I'll install the Fortran
> testcase once it is reduced because it takes a while to compile ATM.
Here it is, as reduced by Joost, installed on the mainline.
2015-11-10 Eric Botcazou
* gfortran.dg/pr68251.f90: New test
stack checking implementation)
2015-11-11 Eric Botcazou
PR target/67265
* ira.c (ira_setup_eliminable_regset): Do not necessarily create the
frame pointer for stack checking if non-call exceptions aren't used.
2015-11-11 Eric Botcazou
* gcc.target
> This piece of code along doesn't tell me exactly why the frame pointer
> is needed. I was looking for an explicit use, but I now guess that if
> you have multiple adjusts of the [stack] pointer you can't easily undo
> them in the error case (the function behaves as-if using alloca). Is
> that it?
stcase.
So I installed the following one-liner as obvious after testing on x86-64.
2015-11-12 Eric Botcazou
PR target/67265
* config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
assertion on the CFA register.
2015-11-12 Eric Botcazou
* gcc.t
Tested on visium-elf, applied on the mainline.
2015-11-12 Eric Botcazou
* config/visium/visium-protos.h (notice_update_cc): Delete.
(print_operand): Likewise.
(print_operand_address): Likewise.
--
Eric BotcazouIndex: config/visium/visium-protos.h
stack to be
checked is known at compile time (since it's the static part of the frame).
Tested on PowerPC/Linux, OK for the mainline?
2015-11-12 Eric Botcazou
* config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
(output_probe_stack_range): Rotate the loo
stack to be
checked is known at compile time (since it's the static part of the frame).
Unfortunately I don't have access to MIPS hardware any more so I only verified
that the assembly code is as expected and can be assembled. OK for mainline?
2015-11-12 Eric Botcazou
stack to be
checked is known at compile time (since it's the static part of the frame).
Tested on SPARC/Solaris, to be applied on the mainline.
2015-11-12 Eric Botcazou
* config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
(output_probe_stack_range): Rotate the
stack to be
checked is known at compile time (since it's the static part of the frame).
The patch also fixes an error in the instruction count for the loop.
Tested on IA-64/Linux, OK for the mainline?
2015-11-12 Eric Botcazou
* config/ia64/ia64.c (ia64_emit_probe_stack_
and
x86/Solaris (ix86_emit_probe_stack_range path). OK for the mainline?
2015-11-12 Eric Botcazou
* config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
an lea instruction when possible.
(output_adjust_stack_and_probe): Rotate the loop and
immediate parent of the scalar type
DIEs to determine the endianness of the scalars.
Tested on x86_64-suse-linux, OK for the mainline?
2015-11-13 Eric Botcazou
* dwarf2out.c (gen_array_type_die): Add DW_AT_endianity attribute on
an array type with reverse storage order
> No RISC architecture can store directly to MEM, so the expected RTL in
> g++.dg/init/vbase1.C is wrong. I am adding XFAIL for PowerPC. This
> probably should be disabled for ARM and other RISC architectures.
Some of them can store 0 directly to MEM though, for example SPARC.
; a zero_extend, after which everything works as expected.
Agreed.
> 2015-11-15 Segher Boessenkool
>
> PR rtl-optimization/68330
> * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
> of LSHIFTRT by a non-zero constant integer.
OK, thanks.
--
Eric Botcazou
ng stage #1 of a bootstrap.
--
Eric Botcazou
> No, the bug still exists. Try --enable-checking=release.
Ah, OK, so tree checking somehow works around it I presume.
--
Eric Botcazou
> Bootstrapped and tested on x86_64-linux. Ok?
OK once the 2/2 patch is also approved.
--
Eric Botcazou
> Thank you. The 2/2 has a small regrename piece to add target_data
> fields, are you OK with that as well?
Sure.
--
Eric Botcazou
96
as before and it generates code that can be assembled for 8192.
Tested on Aarch64/Linux, OK for the mainline?
2015-11-16 Tristan Gingold
Eric Botcazou
PR middle-end/65958
* config/aarch64/aarch64-protos.h (aarch64_output_probe_stack-range):
D
This adds a user-mode set of multilibs to the visium-elf port.
Applied on the mainline.
2015-11-17 Eric Botcazou
* config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
(MULTILIB_DIRNAMES): Adjust accordingly.
--
Eric BotcazouIndex: config/visium/t-visium
.
Bootstrapped/regtested on x86_64-suse-linux, OK for mainline and 5.x branch?
2015-11-18 Eric Botcazou
PR middle-end/65958
* gimplify.c (struct gimplify_ctx): Turn boolean fields into 1-bit
fields, add keep_stack and reorder them.
(gimplify_bind_expr): Save
e syntactic blocks in the source code, since several C++
--
Eric Botcazou
ope ends. (If you use both variable-length arrays and
`alloca' in the same function, deallocation of a variable-length array
also deallocates anything more recently allocated with `alloca'.)
so we need to amend the documentation if we go for the patch.
--
Eric Botcazou
> Ah. I think the patch is good and we should reflect this in the
> documentation.
OK, will do, thanks.
--
Eric Botcazou
, applied on the mainline and 5.x branch.
2015-11-18 Eric Botcazou
* gcc-interface/trans.c (fold_constant_decl_in_expr) : If
the index is not itself constant then bail out.
--
Eric BotcazouIndex: gcc-interface/trans.c
Addresses cannot be directly subject to a renaming, but they can nevertheless
be renamed through a constant and thus need to be dealt with as other rvalues.
Tested on x86_64-suse-linux, applied on the mainline.
2015-11-18 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity
The Ada compiler generates overflow checks by default (as required by the
language) so it makes sense to enable -fstrict-overflow at all optimization
levels; this mainly affects -O1 in practice.
Tested on x86_64-suse-linux, applied on the mainline.
2015-11-18 Eric Botcazou
* gcc
particular removes a
bunch of superfluous VIEW_CONVERT_EXPRs, so it's worth having IMO.
Tested on x86_64-suse-linux, applied on the mainline.
2015-11-18 Eric Botcazou
* gcc-interface/ada-tree.h (DECL_INVARIANT_P): New macro.
* gcc-interface/gigi.h (enum standard_datatypes): R
We simply fail to recurse into nested packages.
Tested on x86_64-suse-linux, applied on the mainline.
2015-11-18 Eric Botcazou
* gcc-interface/trans.c (elaborate_all_entities_for_package): New
function extracted from... Recurse on packages.
(elaborate_all_entities
This is the breakage of the init_priority attribute on sparc-elf, a regression
from older releases in the 4.x series.
Tested on sparc-elf, applied on all active branches.
2015-11-19 Eric Botcazou
PR target/68408
* config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine
alone, as before my patch.
Tested on x86_64-suse-linux, OK for all active branches?
2015-11-19 Eric Botcazou
PR lto/61313
* configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
by the user.
* configure: Regenerate.
--
Eric BotcazouIndex: configu
with 'make doc' on x86-64/Linux, OK for mainline and 5 branch?
2015-11-20 Eric Botcazou
* doc/md.texi (Standard Names): Move entry for addptr3 around,
add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
glitch in entries for cbranch4 and jump.
> Toward fixing PR68385. I'm just starting a full round of testing, but
Do you mind if I install my doc patch? It's slightly more thorough.
--
Eric Botcazou
ategy ought to be adjusted
if new patterns for the jump on carry are added.
--
Eric Botcazou
This just moves the VIS3 mulx patterns to a more appropriate place.
Tested on SPARC/Solaris, applied on the mainline.
2015-11-20 Eric Botcazou
* config/sparc/sparc.md (umulxhi_vis): Move around.
(*umulxhi_sp64): Likewise.
(umulxhi_v8plus): Likewise
apply
> to multi-word hard regs.
This pass started as a Zero-Extension Elimination pass for x86-64 and was only
considering implicit SI->DI extensions initially. The algorithm was tailored
to this specific pattern and I agree that the pass should be reimplemented.
--
Eric Botcazou
gt; Second I also hash TYPE_MODE for aggregates, becuase we now always require a
> match and I check that we don't match types that are incomplete where this
> would give false negatives.
We clearly know that TYPE_MODE is far from being sufficient for aggregates.
--
Eric Botcazou
opened with bugzilla if we tolerated it.
--
Eric Botcazou
on
architectures that use different calling conventions for them).
> Eric, it would be great to have a stand alone testcases in style of
> gcc/testsuite/gfortran.dg/lto/bind_c-*
> which stores and reads the same memory location in same alias set and thus
> trigger the undefined behvaiour.
OK, I'll think about that, thanks.
--
Eric Botcazou
t);
> + if (POINTER_TYPE_P (t))
> + t = ptr_type_node;
> + }
> +
> + record_alias_subset (superset, get_alias_set (t));
> + }
>break;
Are you sure that it's not !TYPE_NONALIASED_COMPONENT (t) here?
--
Eric Botcazou
properly in my experience, so this could
well be responsible for the gnat1 miscompilation.
--
Eric Botcazou
a code.
Maybe we could apply this special treatment only to the void_ptr subtype of
Interfaces.C.Extensions and require its use when interfacing with C.
--
Eric Botcazou
ce the C library and AFAIK we don't LTO the C library (yet).
And I presume that, if people start interfacing in Ada with C code doing heavy
pointer manipulation, we can also point them to Interfaces.C.Pointers. :-)
--
Eric Botcazou
ity of System.Address not a Ada FE thing only?
You mean rewriting System.Address into a pointer when translating to GENERIC?
Yes, I presume that's doable, but I don't see all the consequences right now.
--
Eric Botcazou
> Will it also fix
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61954
Yes, probably, as well as the m68k issue, if that's really doable.
--
Eric Botcazou
> If you have any clue how to debug it further, I would be happy to try.
> That atree code is real software engineering treat BTW
I'll have a look at some point, once things have stabilized a bit.
--
Eric Botcazou
he same on the Ada side,
which is a bit tricky because of the way the primitive operations (counterpart
of methods in Ada) are declared.
Tested on x86-64/Linux and x86/Windows, applied on mainline and 5 branch.
2015-11-24 Eric Botcazou
* gcc-interface/decl.c (is_cplusplus_method):
This fixes a crash in an obscure case in ASIS mode.
Tested on x86-64/Linux, applied on the mainline.
2015-11-24 Eric Botcazou
* gcc-interface/trans.c (gnat_to_gnu): In type_annotate_only mode, do
not build a NULL_EXPR for an N_Expanded_Name.
--
Eric BotcazouIndex: gcc
Tested on x86_64-suse-linux, applied on the mainline.
2015-11-24 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : In
ASIS mode, do a minimal translation for root types with discriminants.
* gcc-interface/trans.c (gnat_to_gnu) : Move around
this revised version? I'd like to close the PR.
--
Eric Botcazou
ESSABLE (fb_decl) = 1;
+ DECL_CONTEXT (fb_decl) = root->frame_type;
+ field_decl_p = &TYPE_FIELDS (root->frame_type);
+ while (*field_decl_p != NULL_TREE)
+ field_decl_p = &DECL_CHAIN (*field_decl_p);
+ *field_decl_p = fb_decl;
TYPE_FIELDS (root->frame_type)
= chainon (TYPE_FIELDS (root->frame_type), fb_decl);
--
Eric Botcazou
-11-26 Eric Botcazou
PR c++/68527
* c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
(print_ada_struct_decl): Likewise.
--
Eric BotcazouIndex: c-family/c-ada-spec.c
===
--- c-family/c-ada
> Here’s the updated patch. Regtested again on x86_64-linux.
Thanks, it looks good as far as I'm concerned (modulo the missing "in order"
before "not to shift all other offsets" in a comment).
--
Eric Botcazou
before PLACEHOLDER_TYPE_CONSTRAINTS is set in make_constrained_auto.
Tested on x86_64-suse-linux, OK for the mainline?
2015-11-26 Eric Botcazou
PR c++/68290
* constraint.cc (make_constrained_auto): Move to...
* pt.c (make_auto_1): Add set_canonical parameter and set
[i] here? Don't this need to be
placed before the conditional call to create_new_chain?
--
Eric Botcazou
> Both good points. Ok with those changes (will retest)?
Yes, thanks.
--
Eric Botcazou
P suffixed types are fat pointers and they are maximally aligned so
that they can be given non-BLK mode and, consequently, live in registers.
> Thoughts?
There is no official ABI for Ada so I guess that's not really a problem as
long as it's documented on https://gcc.gnu.org/gcc-5/changes.html.
--
Eric Botcazou
e how it can
break a port whose handling of the CFA was not already (partially) broken.
IOW did __builtin_dwarf_cfa () really work for PTX before your patch?
--
Eric Botcazou
new parameter?
--
Eric Botcazou
> Note this also is wrong on PA and one of the SPARC adjust_cost macros.
Thanks for the heads up, fixed thusly, applied on the mainline
PR target/28115
* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
(sparc_adjust_cost): Add missing space.
--
Eric BotcazouI
.
Tested on x86_64-suse-linux, applied on the mainline.
2015-11-30 Eric Botcazou
* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2.
Remove obsolete code setting the alignment on some atomic
Self-explanatory, tested on x86_64-suse-linux, applied on the mainline.
2015-11-30 Eric Botcazou
* gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.
2015-11-30 Eric Botcazou
* gnat.dg/loop_optimization22.ad[sb]: New test.
--
Eric Botcazou-- { dg-do
.here. Call it on the expression.
2015-11-30 Eric Botcazou
* gnat.dg/loop_optimization22.adb: Add final scan.
--
Eric BotcazouIndex: ada/gcc-interface/gigi.h
===
--- ada/gcc-interface/gigi.h (revision 231061)
+++ ad
701 - 800 of 4591 matches
Mail list logo