isaligned store insns will be generated for the
> misaligned memory access instead of regular store.
OK, but what happens in the end? What's the failure mode? Internal compiler
error, impossible reloading, wrong code, suboptimal code, etc?
--
Eric Botcazou
is yes, the current handling is definitely correct, which probably
means that a special_memory_constraint ought not to be used here and that a
usual memory_constraint should work just fine.
--
Eric Botcazou
adb:40:31 |
| Please submit a bug report; see https://gcc.gnu.org/bugs/ . |
--
Eric Botcazou
t for deprecation.
We have a port to VxWorks 7, which is EABI/AAPCS, ready to be contributed.
--
Eric Botcazou
> 2017-07-11 Daniel Cederman
>
> * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
> to back store errata sensitive sequence from being generated.
> (sqrtdf2_fix): Likewise.
Thanks, applied to mainline and 7 branch.
--
Eric Botcazou
an change it to something totally different. That's why the attached fix
replaces the call to force_reg with a call to copy_to_reg, which should be OK
since the mode-less RTXes, i.e. constants, cannot satisfy may_trap_p.
Bootstrapped/regtested on x86_64-suse-linux, applied on mainline and 7 branc
s about &*0x1?
Yes, it's not the address of a constant, it's the address of an object whose
base address is absolute, so &(abs_address)->field[index]. This kind of thing
is not folded by build_fold_addr_expr.
--
Eric Botcazou
e first step. It
> does not mean that it has been deprecated. Sometimes the only way to
> find out if a port really is wanted is to make such a threat...
No disagreement. ;-)
--
Eric Botcazou
r even
>
> value->base = tree-to-rtx (TREE_OPERAND (target, 0));
> value->offset = offset;
The callers expect the base to be SYMBOL_REF or LABEL_REF though.
--
Eric Botcazou
Applied to the wwwdocs module.
--
Eric BotcazouIndex: gcc-7/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-7/changes.html,v
retrieving revision 1.87
diff -u -r1.87 changes.html
--- gcc-7/changes.html 15 Jul 2017 16:51:18 -000
ize everyone else?
--
Eric Botcazou
zero 2nd operand explicitely in build2 given there's no
> "constant" value for this. That is,
> for FP 1./0. is NaN (a "constant" value) even if the operation might trap.
Yes, that would be faster & simpler and avoids the abomination.
--
Eric Botcazou
hould never be
gratuitously penalized when they upgrade the compiler, this sends a very bad
message. The !TARGET_LEON part is probably OK but not the !TARGET_LEON3 part.
--
Eric Botcazou
> What is your opinion with respect to a -mno-fsmuld option or something
> similar?
Far better in my opinion (at least for LEON3).
--
Eric Botcazou
ng false instead of true.
Bootstrapped/regtested on x86_64-suse-linux, applied on mainline as obvious.
2017-07-25 Eric Botcazou
* gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
to update EH info here.
2017-07-25 Javier Miranda
ada/
* ch
> Bootstrapped/regtested on x86_64-linux and i686-linux, where it improves
> e.g. the code generation for slp-43.c and slp-45.c testcases.
> make cc1 tested in cross-compilers to the remaining targets.
The SPARC bits are OK by me.
--
Eric Botcazou
> All TARGET_DEFAULT defines set MASK_FPU. There is no need to set it in
> some CPU target flags enable.
>
> gcc/
> config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
> from all CPU target flags enable members.
OK for mainline and 7 branch, thanks.
--
Eric Botcazou
ASK_FPU is set and disabling
it by default for v7, cypress and leon (i.e MASK_ISA|MASK_FSMULD for them)?
--
Eric Botcazou
traSPARC+, so we are sure v9 instructions
> are available; -m64 also implies v9. */
> @@ -1641,6 +1648,9 @@ sparc_option_override (void)
>if (sparc_fix_ut699 || sparc_fix_ut700 || sparc_fix_gr712rc)
> sparc_fix_b2bst = 1;
>
> + if (sparc_fix_ut699)
> + target_flags &= ~MASK_FSMULD;
Add a stupid comment line here, something like:
"Disable FsMULd for the UT699 since it doesn't work correctly."
--
Eric Botcazou
,1251
>
> > Use of the Floating-point Multiply Single to Double (FsMULd)
> >
> > instruction can now be controlled by the
>
> -mfsmuld and
>
> > -fno-fsmuld options.
>
We document changes for only one release so the above is sufficient and OK.
--
Eric Botcazou
> Thanks for your quick review. I am really glad that we can now use the
> upcoming GCC 7.2 release.
You"re welcome. I just realized that FSMULD would pop up out of nowhere in
the log displayed by -mdebug=options so I have installed the attached fixlet.
2017-07-27 Er
erface is probably the most convenient.
--
Eric Botcazou
This is a trivial patch to fix a segfault on anonymous structures with the
special -fdump-ada-spec switch. It also contains a fixlet for enumeral types.
Bootstrapped/regtested on x86_64-suse-linux, applied on the mainline.
2017-07-29 Eric Botcazou
c-family/
* c-ada-spec.c
Plus a couple of minor tweaks left and right.
Bootstrapped/regtested on x86_64-suse-linux, applied on the mainline.
2017-08-01 Eric Botcazou
c-family/
* c-ada-spec.c (print_generic_ada_decl):Pass correctly-typed constant
(dump_ada_function_declaration): Likewise
It was broken by the recent removal of TYPE_METHODS.
Bootstrapped/regtested on x86_64-suse-linux, applied on the mainline.
2017-08-01 Eric Botcazou
c-family/
* c-ada-spec.c (has_static_fields): Look only into fields.
(dump_generic_ada_node): Small tweak
> It was broken by the recent removal of TYPE_METHODS.
It turns out that the support for constructors/destructors also needs to be
adjusted after the recent changes.
Tested on x86_64-suse-linux, applied on the mainline.
2017-08-05 Eric Botcazou
c-family/
* c-ada-spe
> It was broken by the recent removal of TYPE_METHODS.
Hopefully last tweak...
Tested on x86_64-suse-linux, applied on the mainline.
2017-08-07 Eric Botcazou
c-family/
* c-ada-spec.c (has_nontrivial_methods): Test for FUNCTION_DECL.
(print_ada_methods): Likew
In the case where build_access_from_expr_1 returns NULL because of a storage
order barrier. No functional changes.
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2017-08-11 Eric Botcazou
* tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
>
> Cures c38102a.adb with LTO early debug patches for me.
>
> Any comments? (no further testing sofar)
See walk_type_fields for a different approach to the same isse.
--
Eric Botcazou
d about the possibility of
tasks (threads) overwriting each other's stack; in that case, their only
requirement is to be able to run a last chance handler to terminate the
task properly. But the ACATS testsuite contains a handul of tests that
litteraly play with stack overflows and this complicates the implementation
for artificial reasons].
--
Eric Botcazou
e promotion triggers the alignment promotion on strict-alignment
targets and the specified alignment is thus equal to the default one, so the
code works as intended and clears DECL_USER_ALIGN. Not very clear what to do,
but the most robust approach would be to use lookup_attribute on the type.
--
Eric Botcazou
Hi,
it seems that there are many undocumented IA-32 builtins. This patch starts
small and documents the builtins corresponding to the basic instrinsics which
are declared in ia32intrin.h.
Tested with 'make doc', OK for all active branches?
2017-08-23 Eric Botcazou
> it seems that there are many undocumented IA-32 builtins. This patch starts
> small and documents the builtins corresponding to the basic instrinsics
> which are declared in ia32intrin.h.
Any comment on this? Should I open a PR with a list of undocumented builtins?
--
Eric Botcazou
/C++ but not for other languages though, but OK I guess.
--
Eric Botcazou
h means that COND_EXPR is no longer turned into MAX_EXPR in TYPE_SIZE.
--
Eric Botcazou
th GCC 7.2.1, the t.c.003t.original dump contains:
;; Function foo (null)
;; enabled by -tree-original
{
return (long unsigned int) MAX_EXPR ;
}
With mainline, it contains:
;; Function foo (null)
;; enabled by -tree-original
{
return x > 0 ? (long unsigned int) x : 0;
}
--
Eric Botcazou
++.dg/debug/dwarf2/ref-3.C, this generates more DIEs in the
debug info, but DW_TAG_ptr_to_member_type DIEs only contain 10 bytes.
Bootstrapped on x86-64/Linux & SPARC64/Solaris, OK for mainline and 7 branch?
2017-09-02 Eric Botcazou
PR bootstrap/81926
> A solution would be to put them into a global GCed pointer-map or vector,
> freeing that at free-lang-data time.
The first part sounds good, but not the second part, as rest_of_handle_final
generates debug info too.
--
Eric Botcazou
2.0/gcc/final.c:4520
--
Eric Botcazou
> A solution would be to put them into a global GCed pointer-map or vector,
> freeing that at free-lang-data time.
Here's a version that implements a bona-fide type->offset_type map.
PR bootstrap/81926
* cp-objcp-common.c (struct offset_type_hasher): New class.
(offset_ty
This is a regression present on the mainline, 7 and 6 branches, in the form of
an ICE during tree-sra, which is confused by an unconstrained array type.
Tested on x86_64-suse-linux, applied on mainline, 7 and 6 branches.
2017-09-05 Eric Botcazou
* gcc-interface/trans.c
This is a regression present on the mainline, 7 and 6 branches: the compiler
generates an useless temporary for an allocator.
Tested on x86_64-suse-linux, applied on mainline, 7 and 6 branches.
2017-09-05 Eric Botcazou
* gcc-interface/trans.c (Call_to_gnu): If this is a function
I1 at 0 range 0 .. 31;
S1 at 4 range 0 .. 15;
A1 at 6 range 0 .. ((Var1 * 16)) - 1;
end record;
where Var1 is a symbolic representation of the dynamic value.
2017-09-05 Eric Botcazou
* repinfo.ads: Document new treatment of dynamic values.
(TCode): Bump upper boun
This is a regression recently introduced on the mainline for Taft-Amendment
types, when the restriction on inter-unit inlining was lifted.
Tested on x86_64-suse-linux, applied on mainline.
2017-09-05 Eric Botcazou
* gcc-interface/trans.c (adjust_for_implicit_deref): New function
Tested on x86_64-suse-linux, applied on mainline.
2017-09-05 Eric Botcazou
* gcc-interface/gigi.h (renaming_from_generic_instantiation_p):Turn to
(renaming_from_instantiation_p): ...this.
* gcc-interface/decl.c (gnat_to_gnu_entity): Use inline predicate
This is a regression present on the mainline, 7 and 6 branches, in the form of
an ICE during tree-ccp, which is confused by a type witn zero precision.
Tested on x86_64-suse-linux, applied on mainline, 7 and 6 branches.
2017-09-05 Eric Botcazou
* gcc-interface/utils.c
Tested on x86_64-suse-linux, applied on mainline.
2017-09-05 Eric Botcazou
* gcc-interface/trans.c (Attribute_to_gnu) : Do notstrip
conversions around prefixes that are not references.
--
Eric BotcazouIndex: gcc-interface/trans.c
Tested on x86_64-suse-linux, applied on mainline.
2017-09-05 Eric Botcazou
* gcc-interface/trans.c (convert_with_check): Use a custom base type
if the base type of the expression has a different machine mode.
Rename a couple of parameters and local variable.
--
Eric
Tested on x86_64-suse-linux, applied on mainline and 7 branch.
2017-09-05 Eric Botcazou
PR ada/62235
* gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing
for Itypes that are E_Record_Subtype with a cloned subtype.
: Use the DECL of the cloned
The analysis and original patch:
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg00101.html
and the amended patch:
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg00146.html
Thanks in advance.
--
Eric Botcazou
A small oversight in the implementation of component reordering.
Tested on x86_64-suse-linux, applied on mainline.
2017-09-07 Eric Botcazou
PR ada/82127
* gcc-interface/decl.c (copy_and_substitute_in_layout): Put the fields
in order of increasing position in more
This is the Ada bootstrap failure on SPARC64/Linux that I worked around at
some point; it turns out that we can do something plausible in the back-end.
Tested on SPARC64/Linux, applied on mainline.
2017-09-07 Eric Botcazou
PR target/80897
* config/sparc/sparc.c
CK_BOUNDARY but suddenly stopped again with Wilco's patch.
The failure mode is very nasty (random corruption of the stack contents) and
there are very likely other affected targets among the ~50 supported ones.
--
Eric Botcazou
paradoxical
subregs, namely 32-bit multiplication operations.
Tested on SPARC64/Linux, applied on mainline and 7 branch.
2017-09-08 Eric Botcazou
PR target/81988
* config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
(*mulsi3_sp64): New instruction.
(mulsi3
listically? The SPARC back-
end is parameterized according to the ABI and the documented interface between
middle-end and back-end.
--
Eric Botcazou
While investigating another issue, I came across a case where a simple
assignment gives rise to the creation of two CONSTRUCTORS in a row when a
padding type is involved. I think we can get away with only one.
Tested on x86_64-suse-linux, applied on the mainline.
2017-09-09 Eric Botcazou
It's caused by a mode mismatch between variants of the same type.
Tested on x86_64-suse-linux, applied on the mainline and 7 branch.
2017-09-09 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity): Only set theTYPE_ALIGN_OK
and TYPE_BY_REFERENCE_P flags on types
Tested on x86_64-suse-linux, applied on the mainline and 7 branch.
2017-09-09 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Apply the
promotion to static memory earlier in the processing.
--
Eric BotcazouIndex: gcc-interface/decl.c
The compiler wrongly rejects a pragma Atomic on a component of a record whose
type is composite, but it accepts the pragma on a variable of the same type.
Tested on x86_64-suse-linux, applied on the mainline and 7 branch.
2017-09-09 Eric Botcazou
* gcc-interface/decl.c
It's a fallout of the new implementation of layout for derived record types.
Tested on x86_64-suse-linux, applied on the mainline.
2017-09-09 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Copy the
layout of the record from the parent type only if both a
Expression functions are supposed to be very small so it makes sense to inline
them in almost all cases.
Tested on x86_64-suse-linux, applied on the mainline.
2017-09-09 Eric Botcazou
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Disregard inlining
limits for expression
This disables the recently implemented component reordering in one more case.
Tested on x86_64-suse-linux, applied on the mainline.
2017-09-09 Eric Botcazou
* gcc-interface/decl.c (components_to_record): Do not reorder in non-
packed record types if pragma Optimize_Alignment
Tested on x86_64-suse-linux, applied on the mainline.
2017-09-09 Pierre-Marie de Rodat
* gcc-interface/decl.c (gnat_to_gnu_entity) : Don't
generate debug info for inner record types if -fgnat-encodings=minimal
(gnat_to_gnu_entity) : Use the ultimate base record
manner directly in store_fixed_bit_field_1
and yields the expected 8-bit insertion:
@@ -26,7 +26,7 @@
lwz 9,12(1)
lbz 31,0(9)
.L3:
- slwi 3,31,16
+ rlwinm 3,31,16,8,15
lwz 0,36(1)
mtlr 0
lwz 31,28(1)
Tested on x86-64/Linux and PowerPC64/Linux,
> this is a bug originally reported in Ada on 32-bit PowerPC with the SVR4 ABI
> (hence not Linux) and reproducible in C with the attached testcase at -O1.
With the right C testcase this time...
--
Eric Botcazoustruct S { char c1, c2, c3, c4; } __attribute__((aligned(4)));
static char bar (char
t portable and
will fail on targets for which pointer size and word size are not equal.
--
Eric Botcazou
o me, but I can give it a try.
--
Eric Botcazou
%g1, 8, %g1
mov 0, %g2
mov 5, %g3
std %g2, [%g1]
nop
return %i7+8
nop
that is to say, the compiler now generates an unaligned store.
--
Eric Botcazou
anges
> independent of the patch which means the GENERIC must be somehow invalid.
Possibly so, yes.
--
Eric Botcazou
ction for a non-executable stack.
Thanks for fixing this, applied to all active branches.
--
Eric Botcazou
type, if
there is also a representation clause on the type.
Tested on x86_64-suse-linux, applied on the mainline.
2017-05-15 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Whenthere
is a representation clause on an extension, propagate the alignment of
the
Tested on x86_64-suse-linux, applied on the mainline.
2017-05-15 Eric Botcazou
* gcc-interface/trans.c (gnat_to_gnu) : Fix formatting.
: Use properly typed constants.
(extract_values): Move around.
(pos_to_constructor): Minor tweaks.
(Sloc_to_locus
86_64-suse-linux, applied on the mainline.
2017-05-15 Eric Botcazou
* gcc-interface/trans.c (Compilation_Unit_to_gnu): Skip subprograms on
the inlined list that are not public.
* gcc-interface/utils.c (create_subprog_decl): Clear TREE_PUBLIC if
there is a p
Tested on x86_64-suse-linux, applied on the mainline.
2017-05-15 Eric Botcazou
* gcc-interface/trans.c (Identifier_to_gnu): Also accept incomplete
types not coming from a limited context.
--
Eric BotcazouIndex: gcc-interface/trans.c
Tested on x86_64-suse-linux, applied on the mainline.
2017-05-15 Eric Botcazou
* gcc-interface/trans.c (return_value_ok_for_nrv_p): Only apply the
addressability check in the constrained case.
--
Eric BotcazouIndex: gcc-interface/trans.c
Tested on x86_64-suse-linux, applied on the mainline.
2017-05-15 Pierre-Marie de Rodat
* gcc-interface/utils.c (can_materialize_object_renaming_p):
Synchronize with GNAT's Exp_Dbug.Debug_Renaming_Declaration:
process Original_Node instead of expanded names.
2017-05-1
s.
;;
I'm going to install the fixlet.
--
Eric Botcazou
case, you can request it by means of
the form linked to from https://gcc.gnu.org/svnwrite.html with me as sponsor.
--
Eric Botcazou
angeLog file so the second item must go
there without the testsuite/ prefix (and "New test" is enough in this case):
* gcc.target/sparc/niagara7-align.c: New test.
--
Eric Botcazou
ut the ChangeLog entry into the ChangeLog file of the
directory where the change is made, or that of the parent directory if there
is none, recursively. The filename in that ChangeLog file must be relative to
the directory when the ChangeLog file is.
--
Eric Botcazou
s.
...where...
--
Eric Botcazou
> The gcc source tree is as desired, but I may have made
> 2 inadvertent process mistakes:
> * did not send a revised PATCH to gcc-patches
That's OK since only a minor correction was requested.
> * made the 4 changes with 1 commit
That's as expected.
--
Eric Botcazou
In preparation for an upcoming improvement.
Tested on x86_64-suse-linux, applied on the mainline.
2017-05-22 Eric Botcazou
libada/
* configure.ac: Add check for sys/capability.h header.
(have_capability): New substitution.
* configure: Regenerate
GNAT has historically enforced strong restrictions on volatile components, but
this is no basis for that in the RM.
Tested on x86_64-suse-linux, applied on the mainline.
2017-05-22 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_field): Do not enforce strict
alignment for
ine.
2017-05-22 Ed Schonberg
Eric Botcazou
* sem_ch4.adb (Analyze_Call): In Ada2012 an incomplete type from a
limited view may appear in the profile of a function, and a call to
that function in another unit in which the full view is available must
n the mainline and 7 branch.
2017-05-22 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing
for Itypes that are E_Access_Subtype.
: Use the DECL of the base type directly.
2017-05-22 Pierre-Marie de Rodat
* gnat.dg/specs/not_null
air of parentheses after function names.
--
Eric Botcazou
Hi,
libstdc++-v3 already contains support but doesn't build for Android. Now GDB
has switched to C++, which means that you need a C++ cross-build for GDBserver
in order to debug a program on the target.
Tested on x86_64-suse-linux and arm-linux-androideab, OK for mainline?
2017-05-24
ine?
2017-05-24 Eric Botcazou
* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Deal properly
with large frames if a stack limit is used.
2017-05-24 Eric Botcazou
* gcc.target/powerpc/stack-limit-1.c: New test.
--
Eric BotcazouIndex:
param-[123].c in the
guality testsuite). This works fine e.g. on x86 or x86-64, but not on SPARC
or Visium which pass these structures indirectly as per their ABI.
Tested on x86_64-suse-linux and visium-elf, applied on mainline as obvious.
2017-05-24 Eric Botcazou
* var-track
and far less risky than -O2 in this case.
--
Eric Botcazou
> interface (similar to Ada?), however extended platform support is
> something I wish to address first before I make this a consideration.
Yes, the Ada compiler is written in Ada and the glue code (called gigi) lives
in ada/gcc-interface and is written in C++.
--
Eric Botcazou
-05-29 Eric Botcazou
* doc/install.texi (Options specification): Restore entry of
--enable-sjlj-exceptions.
--
Eric BotcazouIndex: doc/install.texi
===
--- doc/install.texi (revision 248552)
+++ doc/install.texi
> Are you sure? In my experience -O2 gets the most test coverage during
> lifetime of a particular release.
Yes, some older GCC releases have aliasing issues that are exposed at -O2 only
because of -fstrict-aliasing and -fschedule-insns.
--
Eric Botcazou
> That's why we decided to enable -O2 just with GCC 4.8+.
IMO it's too dangerous on non-x86 platforms and -O1 would be much safer.
--
Eric Botcazou
We have apparently never tried to build shared libraries in cross builds.
Tested on x86_64-suse-linux, applied on mainline and 7 & 6 branches.
2017-06-01 Eric Botcazou
PR ada/80921
* configure.ac (default_gnatlib_target): Remove bogus condition.
(have_getip
different register, r2 already has different functions in
> most ABIs. It *probably* will compile anyway, but :-)
It's a straight copy of gcc.target/powerpc/pr48344-1.c though.
--
Eric Botcazou
Hi,
libstdc++-v3 already contains support but doesn't build for Android. Now GDB
has switched to C++, which means that you need a C++ cross-build for GDBserver
in order to debug a program on the target.
Tested on x86_64-suse-linux and arm-linux-androideab, OK for mainline?
2017-06-02
This removes the second parameter of expand_builtin_alloca I added a while
back, since it can always be inferred from the first parameter in practice.
Tested on x86_64-suse-linux, applied on mainline as obvious.
2017-06-02 Eric Botcazou
* builtins. (expand_builtin_alloca): Remove
ad of a diff header).
!?? The patch contains a single hunk for config/rs6000/rs6000.c.
--
Eric Botcazou
2101 - 2200 of 4611 matches
Mail list logo