> m68k-suse-linux
visium-elf too.
--
Eric Botcazou
c and
Walloca-11.c probably) and promote the existing wvla-[1-7].c to uppercase.
--
Eric Botcazou
Yet another pass generating a useless dump file when it is not run.
Tested on x86_64-suse-linux, applied on mainline as obvious.
2016-10-19 Eric Botcazou
* omp-low.c (pass_oacc_device_lower::gate): New method.
(execute): Always call execute_oacc_device_lower.
--
Eric
> It's unclear from your response whether you want to do this or want me
> to do it. In the interest of being lazy, I'll let you do it :).
I guess this wasn't really decided in my mind either. ;-)
> p.s. If OTOH, you want me to do it, let me know.
Yes, please do, than
> I have committed the attached patch as mostly obvious :).
Thanks!
--
Eric Botcazou
> This fixes both tests on m68k.
Likewise on Visium.
--
Eric Botcazou
;t seem to change the behavior of the Go compiler so the attached
patch does just that.
Tested on x86_64-suse-linux and SPARC/Solaris, OK for mainline?
2016-10-19 Eric Botcazou
* runtime/runtime.h (runtime_startup_random_data): Delete.
(runtime_startup_random_data_len)
ss-language LTO) exactly like the sizetype discrepancy, so I don't really
feel like going back in time.
--
Eric Botcazou
warning: requested alignment 16 is larger than 8 [-
Wattributes]
alignas(alignof(X)) char buf[sizeof(X)];
Can we reopen the PR since it's apparently not fixed everywhere?
--
Eric Botcazou
require support for
constructor priorities for example? Or does it assume an order of invocation
for the constructors of inline-var1.C vs those of inline-var1a.C?
--
Eric Botcazou
> Agreed, let's do that for starters.
And a small follow-up fix for a blunder.
2016-10-20 Nicolas Roche
* gcc-interface/Makefile (x86-64/Linux): Restore missing pairs.
(x86/Darwin): Likewise.
--
Eric BotcazouIndex: gcc-interface/Makefile.in
=
6)
(gdb) continue
Continuing.
Program received signal SIGABRT, Aborted.
0xfefcaa58 in _lwp_kill () from /lib/libc.so.1
If fails because x == 16 and w == 0 on the first invocation to bar but, given
that w is not modified anywhere else, this seems to be expected.
--
Eric Botcazou
> Fixed the testcase.
It passes now, thanks!
--
Eric Botcazou
erations (except for multiplication).
Tested on visium-elf, applied on the mainline.
2016-10-20 Eric Botcazou
* compare-elim.c (conforming_compare): Accept UNSPECs.
(find_comparison_dom_walker::before_dom_children): Deal with
instructions both u
> Does this fix it? It still works on Linux:
>
> 2016-10-20 Jakub Jelinek
>
> * g++.dg/cpp1z/inline-var1.C (w): Initialize to 64 + 2.
Yes, it does, thanks!
--
Eric Botcazou
L_TYPE would not really
work either for the same reason. So we would need INTEGER_TYPE for strict
correctness, but this would add casts from/to boolean_type_node all over the
place so is not very appealing either.
--
Eric Botcazou
> isn't really special anymore (and fix all places). But then, why do we have
> BOOLEAN_TYPE ...
I think BOOLEAN_TYPE essentially works fine for Ada if you don't try to treat
it like an INTEGER_TYPE, as the new factor_out_conditional_conversion does...
--
Eric Botcazou
ove, I think it would be simpler to keep
> this logic in the caller functions and avoid introducing
> append_insn_reg_notes.
I disagree: there are currently n ways of copying NOTEs in the RTL middle-end,
with different properties each time. We need only one primitive in rtlanal.c.
--
Eric Botcazou
lied on the mainline.
2016-10-21 Eric Botcazou
* config/sparc/sparc-modes.def (CCV): New.
(CCXV): Likewise.
* config/sparc/predicates.md (v_comparison_operator): New.
(icc_comparison_operator): Add support for CCV/CCXV.
(xcc_comparison_operator): Likewi
> I'm not strongly against your patch, I'm just very surprised it is really
> needed (acats is much larger, check-gnat is small).
In what unit do you count? ACATS has fewer tests than gnat.dg nowadays.
--
Eric Botcazou
x and PowerPC64/Linux, OK for the mainline?
2016-10-21 Eric Botcazou
* internal-fn.c (expand_arith_overflow): Do not promote a signed
multiplication done in hardware to an unsigned open-coded one.
* config/rs6000/rs6000-modes.def (CCV): New.
* conf
ccept-invalid leads to wrong
code in all cases, then you want to plug the hole; if it's benign in almost
all cases, then it's a different discussion.
--
Eric Botcazou
Tested on SPARC/Solaris, applied on the mainline.
2016-10-22 Eric Botcazou
* gcc.dg/tree-ssa/pr71347.c: Remove XFAIL on SPARC.
--
Eric BotcazouIndex: gcc.dg/tree-ssa/pr71347.c
===
--- gcc.dg/tree-ssa/pr71347.c
Tested on SPARC/Solaris, applied on the mainline and 6 branch.
2016-10-23 Eric Botcazou
* config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
with TARGET_ARCH64. Define __VIS to 0x400 if TARGET_VIS4.
--
Eric BotcazouIndex: config/sparc/sparc-c.c
Tested on SPARC/Solaris, applied on the mainline and 6 branch.
2016-10-23 Eric Botcazou
* config/sparc/sparc.md (cpu_feature): Minor tweak.
(enabled): Likewise.
(movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
movdf_insn_sp32, movdf_insn_sp64
se?
In a valid program, no. In an invalid program, maybe, in which case we don't
want to ICE so we would need to filter them out and raise Constraint_Error
instead when we run into one; certainly doable I'd say.
--
Eric Botcazou
t; That may work better. It also may be better if you expose the OV bit
> as a separate reg (just like we have CA), instead of putting two machine
> insns in each template.
Yes, although CA can be seen as behaving like a register to some extent, but
OV far less so IMO.
--
Eric Botcazou
whereas you cannot with OV, you really need to manipulate it like a flag.
--
Eric Botcazou
> > But integer_truep is just integer_onep for BOOLEAN_TYPEs.
>
> Yes, but it's more descriptive IMHO.
At the cost of consistency with fits_to_tree_p though.
> fits_to_tree_p avoids creating an INTEGER_CST in ggc memory and thus is the
> prefered way to test if you have a wide-int but not yet an
ddo 3,3,4
mcrxr 7
bgt- 7,.L10
blr
L10:
--
Eric Botcazou
t; blt
These ones (if correct) are quite better than the generic code!
> neg:
> neg 3,3
> xoris. 9,3,0x8000
> beq
>
> mul:
> mulhw 9,3,4
> mullw 3,3,4
> srawi 4,9,31
> cmpw 4,9
> bne
These ones are essentially equivalent to the generic code.
--
Eric Botcazou
> And the generic one for div is as good as it gets as well I suppose?
There is no support for div at all, only add/sub/neg/mul.
--
Eric Botcazou
OLEAN_TYPE)
return eq_p (x, 0) || eq_p (x, 1);
instead of just int_fits_type_p (but I don't really know if there is a penalty
associated with eq_p here).
--
Eric Botcazou
x27;ll submit the change to the generic code separately.
--
Eric Botcazou
n eq_p (x, 0) || eq_p (x, 1);
Is eq_p free for them too? If no, then you distribute the overhead over all
the callers instead of just int_fits_type_p (for which the call is unlikely).
--
Eric Botcazou
No functional changes.
Tested on SPARC/Solaris, applied on the mainline.
2016-10-25 Eric Botcazou
* config.gcc (sparc*-*-solaris2*): Adjust.
(sparc64-*-linux*): Likewise.
* config/sparc/default-64.h: Rename to...
* config/sparc/default64.h: ...this
> it seems your patch introduced a considerable number of regressions
> (found on sparc-sun-solaris2.12 with /bin/as): the first mail-report.log
> is from r241560 with just your patch reverted, the second from that rev
> as is:
Ouch, it's a single '*' probably added very late in the game... Testi
swaps the arms of the branch.
Tested on x86-64/Linux, PowerPC/Linux and PowerPC64/Linux, OK for mainline?
2016-10-27 Eric Botcazou
Segher Boessenkool
* dojump.c (do_jump_by_parts_greater_rtx): Invert probability when
swapping the arms of the branch.
> 2016-10-27 Jakub Jelinek
>
> PR rtl-optimization/78132
> * ree.c (combine_reaching_defs): Give up if copy_needed and
> !HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode).
>
> * gcc.target/i386/pr78132.c: New test.
OK, thanks.
--
Eric Botcazou
pr_real_1) : Force CONCAT into
> MEM if mode1 is not a complex mode.
>
> * g++.dg/torture/pr77919.C: New test.
I think that's OK.
--
Eric Botcazou
> Then to some extent defining WORD_REGISTER_OPERATIONS on SPARC is a lie,
> it only has "INT_REGISTER_OPERATIONS", i.e. all operations smaller than
> int are performed on the whole register, int operations can be really done
> in SImode in the IL (no need to sign/zero extend anything to DImode, if
references to java in install.texi
There are more references in sourcebuild.texi and install.texi.
--
Eric Botcazou
: LOAD_EXTEND_OP (inner_mode) != ZERO_EXTEND)
|| !MEM_P (SUBREG_REG (x
#endif
So if WORD_REGISTER_OPERATIONS is zero and LOAD_EXTEND_OP is defined, for
example on PowerPC, the block guarded by the condition is always executed in
the former case but never in the latter case.
--
Eric Botcazou
t; GET_MODE_PRECISION (inner_mode))
nonzero |= (GET_MODE_MASK (GET_MODE (x))
& ~GET_MODE_MASK (inner_mode));
}
--
Eric Botcazou
in the ~50 back-ends...
--
Eric Botcazou
, but doesn't enforce the single order. Maybe something based on a
macro calling duplicate_reg_note, but not clear whether it's really better.
--
Eric Botcazou
> Thanks, here is the patch doing this.
> Committing to trunk after bootstrap and testing on x86_64.
Thanks for the quick turn around!
--
Eric Botcazou
;s the purpose of ix86_init_libfuncs if the libfuncs are already there?
--
Eric Botcazou
> Thanks for the feedback, I'll try to work through this.
Thanks, but since there doesn't seem to be a consensus on the goal, feel free
to disregard it and just implement what you need for your initial work.
--
Eric Botcazou
> libfunc, as in "__{,u}divmod{di,ti}4 library function" is already
> implemented in libgcc. But the enablement of this function inside the
> compiler has to be performed by each target.
So can we do it generically instead of duplicating it ~50 times?
--
Eric Botcazou
p1,
>"ient, &remainder);
>
> else
> gcc_unreachable ();
> --cut here--
>
> so, by declaring divmod libfunc, the target also has to provide target hook.
Right, that's why I also suggested a default associated target hook.
--
Eric Botcazou
normally should not be needed outside of emit_copy_of_insn_after, so having
> that do the right thing ought to be good enough.
reload does direct note copying too (in forward order).
--
Eric Botcazou
original quantity in all places, and if so, eliminate the ssa
> name.
Did you try to enable -free on s390x? It's a RTL pass.
--
Eric Botcazou
The vec_interleave_{low, high} standard patterns were removed 5 years ago.
Tested on SPARC/Solaris, applied on the mainline.
2016-11-03 Eric Botcazou
* config/sparc/sparc.md (vec_interleave_lowv8qi): Delete.
(vec_interleave_highv8qi): Likewise.
--
Eric BotcazouIndex
at the interface with C
(when objects have "convention C" in Ada parlance).
This was bootstrapped/regtested on x86_64-suse-linux but AdaCore has been
using it on native platforms (Linux, Windows, Solaris, etc) for years.
OK for the mainline?
2016-06-29 Eric Botcazou
Several tests in the function were updated with a guard for a NULL decl but
not the VxWorks-specific one, which results in a segfault building libgcc.
Tested on ARM/VxWorks, applied on mainline, 6 and 5 branches as obvious.
2016-07-01 Eric Botcazou
* config/arm/arm.c
This avoids doing useless work at the local level in gnat_to_gnu_entity.
Tested on x86_64-suse-linux, applied on the mainline.
2016-07-05 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity): Invoke global_bindings_p
last when possible. Do not call
pleteness, but it is not necessary for fixing the problem.
Tested on x86_64-suse-linux, OK for the mainline?
2016-07-05 Eric Botcazou
* cgraph.h (symbol_table::decl_assembler_name_hash): Make public.
* fold-const.c (operand_equal_p) : Add special
processing during W
X_VALUE (TYPE_DOMAIN (type)) != error_mark_node)
inchash::add_expr (TYPE_MAX_VALUE (TYPE_DOMAIN (type)), hstate);
}
--
Eric Botcazou
on
for compatibility of pointer types is the alias set, which is based on the
TYPE_CANONICAL of the pointed-to type, so we fail to merge pointer types
because warn_type_compatibility_p returns non-zero if TYPE_CANONICAL differs.
--
Eric Botcazou
ChangeLogs so I'll try and fix that up and then commit this.
You don't need to post patches to ChangeLogs, just apply them silently.
--
Eric Botcazou
> I removed the empty directories
>
>gcc/common/config/mep
>gcc/config/mep
>libgcc/config/mep
https://gcc.gnu.org/backends.html needs to be updated accordingly.
--
Eric Botcazou
.
> So is there any news on that front?
I should have meaningful results tomorrow morning baring unexpected issues.
--
Eric Botcazou
x27;t reveal any issue.
So no objection to the patch on principle by me.
--
Eric Botcazou
Tested on PowerPC/VxWorks, applied on the mainline.
2016-07-11 Eric Botcazou
PR ada/71817
* adaint.c (__gnat_is_read_accessible_file): Add parentheses.
(__gnat_is_write_accessible_file): Likewise.
--
Eric BotcazouIndex: adaint.c
This make sure the TREE_READONLY flag is set consistently on the definition
and the references of public entities in LTO mode.
Tested on x86_64-suse-linux, applied on the mainline.
2016-07-11 Eric Botcazou
* gcc-interface/trans.c (add_decl_expr): Minor tweak.
* gcc
> So sth like
>
> Index: gcc/lto-streamer-out.c
> ===
> --- gcc/lto-streamer-out.c (revision 238039)
> +++ gcc/lto-streamer-out.c (working copy)
> @@ -996,7 +996,7 @@ hash_tree (struct streamer_tree_cache_d
>else
>
what I initially proposed?
https://gcc.gnu.org/ml/gcc-patches/2016-07/msg00182.html
And, as mentioned in my previous message, I'm not sure that we would be able
to merge all the global types with the unification scheme, it is too strict.
--
Eric Botcazou
fallthrough macros conditional on __GNUC__
> (I'd tried to use a configure check but then decided I won't put up with
> all the vagaries of autoconf).
Do we really want to clutter up the entire tree like that? The result is
particularly ugly IMO. Just add -Wno-switch-fallthrough somewhere I'd say.
--
Eric Botcazou
rwise this will very likely badly backfire.
--
Eric Botcazou
ord types with dynamic offsets, which are first-class citizens.
--
Eric Botcazou
27;ll let the patch sit here as I
> don't really care too much about those pesky targets (and
> targets can choose to opt-in by providing movmisalign optabs
> anyway so they don't go the store/extract_bit_field path).
I'll conduct more thorough testing over the next few days.
--
Eric Botcazou
e they are EXPR_P)? Please split that part out
> as well.
Yes, I can do that.
--
Eric Botcazou
{
uint32_t v;
memcpy(&v, __builtin_assume_aligned(s, 4), sizeof(v));
return v;
}
As discussed in the audit trail, the compiler ought to generate again the same
code on strict-alignment targets in both cases, as Clang apparently and as GCC
itself during most of its existence (until GCC 4.5 to be precise).
--
Eric Botcazou
]
/home/eric/svn/gcc/gcc/testsuite/gnat.dg/lto19_pkg.adb:7:3: note:
'lto19_pkg__proc' was previously declared here
/home/eric/svn/gcc/gcc/testsuite/gnat.dg/lto19_pkg.adb:7:3: note: code may be
misoptimized unless -fno-strict-aliasing is used
Jan, any idea on how to address thi
r another compilation unit, the type is an array
of ptr_type_node. That's because the "something" isn't even parsed by the
compiler in the second case, so that you can change the implementation without
recompiling all the clients.
--
Eric Botcazou
can probably get away without going this
far, e.g. by completely ignoring non-constant fields only, but I see, thanks.
--
Eric Botcazou
based on __builtin_setjmp
(which is similar but distinct from the regular SJLJ EH because the front-end
directly manages the SJLJ buffers) for internal EH. Note that it's on the
host only, for the target it uses the same EH scheme as C++/Java/etc.
--
Eric Botcazou
get stuff getting into tree-*. Is this really
> needed?
It's the target hook mentioned earlier, e.g. for targets that use procedure
descriptors natively we don't want to create generic descriptors but use the
regular "degenerated" trampolines.
> I think the biggest issues are the ABI concerns and getting the target
> maintainers to take a looksie. Everything else looks pretty good.
Thanks for the review.
--
Eric Botcazou
, thanks for the info, the value will need to be bumped to 4 then.
>From the definition of TARGET_PTRMEMFUNC_VBIT_LOCATION, I gather that the MIPS
setting is probably incorrect too and ought to be bumped to 2.
--
Eric Botcazou
control what happens at the interface with
other languages and accept what they send (and do not send them descriptors).
The ISO standard contains an entire annex specifying this interfacing in Ada.
--
Eric Botcazou
nto 2 parts as agreed, and get approval from the
architecture maintainers individually.
--
Eric Botcazou
to arrive at sane solutions.
It would help to make a pass over the main architecture back-ends and evaluate
the potential fallout and required adjustments, if any.
--
Eric Botcazou
Tests showed that it helps to eliminates redundant 32-to-64-bit extensions.
Tested on SPARC/Solaris, applied on the mainline.
2016-11-24 Eric Botcazou
* common/config/sparc/sparc-common.c (option_optimization_table):
Enable REE at -O2 and higher.
* config/sparc
that
do _not_ define PROMOTE_MODE, this could be an explanation.
--
Eric Botcazou
ion (c41104a):
+===GNAT BUG DETECTED==+
| 7.0.0 20161125 (experimental) [trunk revision 242863] (x86_64-suse-linux)
GCC error:|
| in size_binop_loc, at fold-const.c:1744 |
| Error detected at c41104a.adb:60:33
+
| 7.0.0 20161125 (experimental) [trunk revision 242863] (x86_64-suse-linux)
GCC error:|
| in size_binop_loc, at fold-const.c:1744 |
| Error detected at p.adb:8:20
so I presume this comes from the recent match.pd changes.
--
Eric Botcazou
worse. From
> looking at the assembly we seemingly are copying blocks that aren't
> strictly necessary.
I'm seeing essentially the same thing on SPARC, probably because of the ifcvt
change; the rtlanal change seems to be neutral for the architecture.
--
Eric Botcazou
This is the bootstrap failure on the mainline with _FORTIFY_SOURCE enabled.
Fixed thusly, tested on x86_64-suse-linux, applied on the mainline.
2016-11-27 Eric Botcazou
PR ada/78531
* namet.h (Max_Line_Length): Define.
(struct Bounded_String): Declare Chars with
This is the failure of ACATS c41104a introduced by the recent match.pd change.
Fixed thusly, tested on x86_64-suse-linux, applied on the mainline.
2016-11-27 Eric Botcazou
PR ada/78524
* gcc-interface/utils.c (max_size) : Add missing
conversion to original type in
The switch will very likely not happen for GCC 7, but an experimental support
can probably be introduced. The attached patch adds the famous -mlra option
and rescues straightforward changes by DaveM.
Tested on SPARC/Solaris, applied on the mainline.
2016-12-01 Eric Botcazou
is fixed, I'm going to open an enhancement PR.
Tested on SPARC/Solaris, applied on the mainline.
2016-12-03 Eric Botcazou
David S. Miller
* config/sparc/constraints.md (U): Adjust comment.
* config/sparc/sparc.md (lra): New attribute.
(enabled): For base instru
obvious.
2016-12-03 Eric Botcazou
* lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all
cases to build a lowpart SUBREG.
--
Eric BotcazouIndex: lra-constraints.c
===
--- lra-constraints.c (revision
Iain Sandoe privately reported that the overhaul of the system files had
broken the Ada compiler on Power/Darwin 32-bit. Applied on the mainline.
2016-12-05 Eric Botcazou
* system-darwin-ppc.ads (Support_Atomic_Primitives): Set to True only
if the word size is 64.
--
Eric
attached patch, which also overhauls the 3 series of double-word
move splitters in 32-bit mode. Tested on SPARC/Solaris w/ and w/o -mlra in
32-bit mode, applied on the mainline.
2016-12-05 Eric Botcazou
* config/sparc/sparc-protos.h (sparc_splitdi_legitima
should be possible to recreate the problem by configuring with
> --enable-languages=go and running `make
> RUNTESTFLAGS="go-test.exp=recover.go" check-gcc-go`.
Thanks, I'll try to reproduce tomorrow.
--
Eric Botcazou
nd SPARC/Solaris, OK for the mainline?
2016-12-05 Eric Botcazou
PR middle-end/78642
* emit-rtl.c (verify_rtx_sharing) : Relax condition.
(copy_rtx_if_shared_1) : Likewise.
(copy_insn_1) : Likewise.
--
Eric B
_address on the address, which aborts out of
confusion; reload (and all subsequent passes) lets it go through unmodified.
The attached patch simply adds a bypass to process_address_1 in order to avoid
invoking decompose_mem_address in this case.
Tested on SPARC/Solaris with LRA and x86
passes do the right thing, so LRA needs to be on par IMO.
--
Eric Botcazou
> There are a couple of changes to the RTL expander for calls; they are
> supposed to be transparent but they might have tripped on a latent issue.
Tentative fix attached, I need to test it extensively in Ada though.
Btw, Ian, if the heap trampoline support is no longer used by the Go compiler,
2401 - 2500 of 4611 matches
Mail list logo