e? But AFAICS pass_dwarf2_frame isn't always enabled. Apply
the patch anyway with the appropriate additional conditions?
--
Eric Botcazou
gt;
> I'm not sure why the v6 variants allow this; I thought that had been
> taken out.
Apparently not.
--
Eric Botcazou
at op0 doesn't
have side-effects too before dropping one of the copies, as VEC_MERGE is
supposed to evaluate its 2 arguments I think.
--
Eric Botcazou
u need more canonicalization,
then why not propose new, precise canonicalization rules?
--
Eric Botcazou
false;
#endif
/* ??? What to do for UI_TARGET unwinding? They might be able to benefit
from the optimized shrink-wrapping annotations that we will compute.
For now, only produce the CFI notes for dwarf2. */
return dwarf2out_do_frame ();
}
--
Eric Botcazou
> Isn't pass_dwarf2_frame enabled whenever we're generating any unwind info?
OK, I've installed this on mainline, 4.8 branch and 4.7 branch.
2013-03-28 Eric Botcazou
* toplev.c (process_options): Do not disable -fomit-frame-pointer on a
general basis
.
It's the usual support for branches and inverted branches applied to returns,
so I'm not sure what you're asking here. :-)
> The cleanup stuff is OK, check that in whenver you'd like.
Thanks.
--
Eric Botcazou
* simplify-rtx.c (simplify_binary_operation_1) :
> Handle VEC_MERGE.
> (simplify_ternary_operation) : Use unsigned HOST_WIDE_INT
> for masks. Test for side effects. Handle nested VEC_MERGE. Handle
> equal arguments.
OK for mainline, thanks.
--
Eric Botcazou
PER_WIDE_INT)
mask = -1;
else
mask = ((unsigned HOST_WIDE_INT) 1 << n_elts) - 1;
in that case.
--
Eric Botcazou
that this
> patch brings, or is the current interface better?
I think that the current interface makes it clear that you need to tweak the
precedence in order to change the canonicalization (thus preserving the
transitivity). Btw, there is something to fix in the head comment of
commutative_operand_precedence because I cannot make sense of it.
--
Eric Botcazou
the back-ends is surprisingly very small).
--
Eric Botcazou
nsn will break formatting... just block_for_insn I'd say.
--
Eric Botcazou
s_p().
The first hunk for config/ia64/ia64.c looks incorrect.
--
Eric Botcazou
t) so sensible canonicalization is desirable.
--
Eric Botcazou
> Jakub, you don't happen to remember any changes in this area that could
> hide the problem for 4.7 and later?
We do have regressions on the 4.7 branch in the scheduler (CCed Olivier who
has more information).
--
Eric Botcazou
s_free_cfg can run after
> pass_machine_reorg (and after pass_cleanup_barriers that can be
> simplified if there's still a CFG around). It will also help make the
> DELAY_SLOTS hack in cfgrtl.c:rest_of_pass_free_cfg redundant.
I agree that we should get rid of MIPS/SPARC's dbr_schedule shuffling.
--
Eric Botcazou
NPUT || extract_asm_operands (body) != NULL
and replace most of the cases with a call to it?
--
Eric Botcazou
> I don't know whether backporting this would be better than reverting
> the offending change as just done on 4.7.
I presume that you meant on the 4.6 branch.
--
Eric Botcazou
> Andrey, could you please take care of this ?
I've reverted the patch after bootstrapping/regtesting on x86-64/Linux.
--
Eric Botcazou
te access, so you should be able
to install it yourself. Otherwise I'll be happy to do it for you.
Thanks for fixing this problem in the combiner.
--
Eric Botcazou
> * config/sparc/sparc.md: Use define_c_enum for "unspec" and
> "unspecv".
OK, thanks.
--
Eric Botcazou
c pass to enable... No () for functions in comments.
--
Eric Botcazou
> Alternatively, we can bump the minimum of that param, as usual ;)
Let's do that and bump it to 1, my understanding is that 0 and 1 are
equivalent for this param.
--
Eric Botcazou
> Bootstrapped&tested on powerpc64-unknown-linux-gnu and
> sparc64-unknown-linux-gnu with some dump inspections to make sure
> everything looks as expected now.
> OK for trunk?
Yes, thanks.
--
Eric Botcazou
> Ah, OK, yea, it makes perfect sense now. Approved.
Thanks.
> If you wanted to get ambitious, rewriting reorg.c to compute and use
> dependency links to drive its candidate selection instead of the insane
> tracking code it uses would be a huge step forward, both in terms of
> cleanliness. It'
g GMP builds.
>
> I'd like to check this into the various gcc-4_X-branch branches as
> well, unless there are major objections.
Sure, PR target/52610 was fixed for 4.7.x and above so you could do the same.
--
Eric Botcazou
t the skip_simple_constant_arithmetic function I wrote a few
years ago, so I've moving it next to its model skip_simple_arithmetic and
tidying up the implementation of the latter (but no functional changes).
Tested on x86_64-suse-linux, applied on mainline.
2013-04-11 Eric Botcazou
* sto
o emit-rtl.c.
- Are there still public functions that cannot be invoked in emit-rtl.c to
insert insns where there are SEQUENCEs in the stream? If so, you need to mark
the ones which can be invoked explicitly with a blurb in the head comment.
--
Eric Botcazou
elease
mode) modulo:
> ! /* Go through all the RTL insn bodies and remove the `used' flag. */
Let's use the same terminology as in the head comment of reset_used_flags, so
"clear all the USED bits" instead of "remove the `used' flag".
--
Eric Botcazou
> This is a quadratic algorithm and as such not ok. We already have
> aliasing_component_refs_p in tree-ssa-alias.c which is supposed to be
> the non-quadratic replacement. It's not used via decl_refs_may_alias_p,
> so that may be the thing to fix.
aliasing_component_refs_p isn't powerful enough
detection for the size expression of [0, -1] arrays.
Tested on x86_64-suse-linux, OK for the mainline and 4.8 branch?
2013-04-14 Eric Botcazou
PR middle-end/56474
* fold-const.c (size_binop_loc): Disable overflow detection for 0 - 1.
2013-04-14 Eric Botcazou
* gnat.dg
testcases.
The attached patch changes that and yields no regressions both in 32-bit and
64-bit modes. Any objections to applying it to all active branches?
2013-04-14 Eric Botcazou
PR target/56890
* config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value
> I don't recall ever working on this aspect of reorg. The obvious worry
> is that with reorg moving stuff around those notes may not be valid
> anymore in the general case.
Yes, in the general case I agree that's too dangerous. In this particular
case, i.e. backward scan only, this might be pl
sn_note subtype, bool on_bb_boundary_p)
+{
This should be implemented with a switch statement.
--
Eric Botcazou
as the historical behavior, before the latest sizetype changes.
--
Eric Botcazou
> No objections.
Thanks.
> We can actually support this by adding patterns for the partial store
> instructions, which can store 8-bit and 16-bit quantities from FP
> registers.
Ah, indeed, with -mvis. Not clear whether that would really be worthwhile.
--
Eric Botcazou
> Note that looking at the access path _is_ assuming TBAA constraints as
> soon as the base objects are not the same (in the above case '*p' and 'a'
> are not the same and p could alias a in a way that all f1 and f2 overlap).
Right, but here I'm assuming (and asserting) that the base objects are t
- 1 because of the way we compute size expressions for
variable-sized arrays.
--
Eric Botcazou
for (note = REG_NOTES (tem); note; note = next)
{
next = XEXP (note, 1);
Did you mean to move the comment instead of duplicating it?
--
Eric Botcazou
_2(D)].j = j_5(D);
_7 = u.a[n_2(D)].i;
return _7;
becomes:
u.a[n_2(D)].i = i_3(D);
u.a[n_2(D)].j = j_5(D);
_7 = i_3(D);
return _7;
> Otherwise the patch is ok.
Thanks.
--
Eric Botcazou
se you need to split the instructions after reload.
--
Eric Botcazou
n index 0. But this index has been disabled since day #1 and I couldn't
figure out a more elegant approach... Of course I'm ready to implement what
the maintainers would suggest as alternative implementation.
Tested on x86_64-suse-linux, OK for the mainline?
2013-04-19 Eric Botcazo
eptical. Where do you compute the size expression for variable-sized
> arrays? I suppose with the testcase in the initial patch I can then inspect
> myself what actually happens?
Sure, but we already went through this in the PR. It's because of the formula
used for the length of variable-sized arrays, which needs to handle the case
of superflat arrays.
--
Eric Botcazou
Bootstrapped/regtested on x86_64-suse-linux, applied as obvious.
2013-04-21 Eric Botcazou
* cfgexpand.c (avoid_complex_debug_insns): Fix C++ism.
cp/
* parser.c (cp_parser_late_return_type_opt): Likewise.
--
Eric BotcazouIndex: cp/parser.c
> Umm, I thought declaring at first use (or near first use) was one of the
> approved C++-isms?
>
> http://gcc.gnu.org/wiki/CppConventions
You probably missed the [4.7] in the subject.
--
Eric Botcazou
_type) <= 64);
> + if (TYPE_UNSIGNED (gnu_type)
> + && TYPE_PRECISION (gnu_type) == 64
> + && wi::neg_p (Input, SIGNED))
> return No_Uint;
> #endif
>
> We need this to ensure that 32 to 63 bit values with the high bit set don’t
> return N
needs to be changed because of web/60933, then it's probably the
versions provided at ftp://gcc.gnu.org/pub/gcc/infrastructure/
--
Eric Botcazou
boehm, etc.. gmp 6.0 now has 'mini-gmp'
> which is a slow but very small variant for example. Not sure
> if that's enough for our gmp needs for example.
That would clearly be the definitive answer, but I don't know if it's
doable in practice.
--
Eric Botcazou
2014-04-25 Eric Botcazou
PR target/60941
* config/sparc/sparc.md (ashlsi3_extend): Delete.
2014-04-25 Eric Botcazou
* gcc.c-torture/execute/20140425-1.c: New test.
--
Eric BotcazouIndex: config/spar
is not a good place for that and *.x files are terribly ugly, so
> better would be to move the test to gcc.dg/torture/ in that case).
Not clear to me, (2U << i) should be zero if the shift count is masked.
--
Eric Botcazou
expr.c (PUSH_ARGS_REVERSED): Do not define.
> > (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
> > code accordingly.
>
> This is fine for the trunk at this point.
Are you sure that it's not a correctness issue for some targets though?
--
Eric Botcazou
> > Not clear to me, (2U << i) should be zero if the shift count is masked.
>
> 2U << 31 is undefined behavior on those targets.
Precisely not, or else we are not talking about the same notion of masking.
--
Eric Botcazou
t; So on 16-bit int systems you can't portably shift 2U by more than 15.
Sure, but we're talking about targets for which the shift count is masked, not
about the C standard.
--
Eric Botcazou
r and the result will nevertheless be zero.
--
Eric Botcazou
As discussed at http://gcc.gnu.org/ml/gcc/2014-04/msg00241.html, this changes
the compiler to directly emit a 'casa' instruction with an appropriate ASI on
LEON3 and adds the -muser-mode switch.
Tested on SPARC/Solaris and LEON3, applied on mainline, 4.9 and 4.8 branches.
2014-0
> Bootstrap and test succeeded, thanks.
Thanks, applied as such. You can re-apply the gcc-interface/Makefile.in hunk
(I reverted it as well) but you first need to adjust it to the mainline.
* exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix,
add 'Suffix' para
> It has been two weeks since Richard commited this to trunk. Perhaps it's
> ok to backport to 4.8 branch now?
Richard, can you do that before the 4.8.3 release? Thanks in advance.
--
Eric Botcazou
days ahead of releases
instead of undergoing a longer period of testing]
--
Eric Botcazou
ested on x86_64-suse-linux, OK for the mainline?
2014-05-09 Eric Botcazou
PR debug/53927
* function.c (instantiate_decls): Process the saved static chain.
(expand_function_start): If not optimizing, save the static chain
onto the stack.
* tree-nes
You cannot do that for an official release.
--
Eric Botcazou
> OK, thanks. Richard also gave an RM's OK on IRC so I've now applied it.
Thanks!
--
Eric Botcazou
y around the
> official releases.
Possibly, but with our scheme it's the opposite: it's stable most of the time
and series of patches are applied just before the releases...
--
Eric Botcazou
> I don't think that the mechanical change in UI_From_gnu is correct, see the
> comment just above. The annotate_value change is very likely correct, but
> please double check and, upon positive outcome, remove the last sentence of
> the comment just above.
The annotate_value change was wrong, fi
> > So does this remove the last concern around Bernd's patch?
>
> And can we remove TYPE_ALIGN_OK as followup? (ISTR it's used
> by obj-c/c++ as well, but I can't find such use)
Probably but, as previously indicated, I need to do some testing first.
--
Eric Botcazou
> 2014-05-06 Nick Clifton
>
> * except.c (init_eh): Fix computation of builtin setjmp buffer
> size.
That's the same patch as
https://gcc.gnu.org/ml/gcc-patches/2011-11/msg00272.html
and is still incorrect.
--
Eric Botcazou
> Now we just need a __builtin_setjmp style of maintainer to review…
Let's just do what I suggested in
https://gcc.gnu.org/ml/gcc-patches/2011-11/msg00286.html
--
Eric Botcazou
> PR target/61084
> * config/sparc/sparc.md: Fix types of low and high in DI constant
> splitter. Use gen_int_mode in some other splitters.
OK, thanks.
--
Eric Botcazou
> OK for trunk and 4.9.1 branch?
OK if Pascal has no objections to the patch:
https://gcc.gnu.org/ml/gcc-patches/2014-05/msg00671.html
--
Eric Botcazou
> * gcc-interface/decl.c (gnat_to_gnu_entity): Convert
> integer_one_node to the appropriate type.
> * gcc-interface/trans.c (gnat_to_gnu): Likewise.
> (pos_to_constructor): Likewise.
OK for the sake of consistency, thanks.
--
Eric Botcazou
.
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2014-05-14 Eric Botcazou
* cfgcleanup.c (try_forward_edges): Use location_t for locations.
* cfgrtl.c (rtl_merge_blocks): Fix comment.
(cfg_layout_merge_blocks): Likewise.
* except.c
ng if the argument
is correctly folded, but is more forgiving if it is not).
Tested on x86_64-suse-linux, OK for the mainline?
2014-05-14 Eric Botcazou
* fold-const (fold_unary_loc) : New case.
: Pass arg0 instead of op0 to fold_convert_const.
--
Eric BotcazouIndex: fold-co
modification of the already existing s-osinte-*.ads files.
It's quite nice that you need only one specific file for GNU/Hurd. This is
mostly OK, but your LIBGNAT_TARGET_PAIRS looks a bit outdated, specifically
for the atomic support, see the other *BSD for reference.
--
Eric Botcazou
> 2014-03-20 Eric Botcazou
>
> * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
> around for store forwarding issue in the FPU on the UT699.
> * config/sparc/sparc.md (in_branch_delay): Return false for single FP
> loads and operati
*/
if (POINTER_SIZE > BITS_PER_WORD)
tmp = size_int (4);
else
tmp = size_int (5 * BITS_PER_WORD / POINTER_SIZE - 1);
which is simple and safe.
--
Eric Botcazou
> Seems reasonable. Do you happen to have a testcase where you can see
> the effects in one of the dumps?
That's not easy because NON_LVALUE_EXPRs are present only in .original and, at
least in Ada, essentially only in size expressions which are not visible in
the dump.
--
Eric Botcazou
s, IMO that's fine, thanks.
--
Eric Botcazou
for which this doesn't work is the IA-64, which is a very special
beast... In this case, the way out is to define DONT_USE_BUILTIN_SETJMP and
JMP_BUF_SIZE to the needed size.
--
Eric Botcazou
PR target/61084
> * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
> than wide_int.
OK, thanks.
--
Eric Botcazou
e removed when all the ports have been fixed. */
if (!targetm.call_fusage_contains_non_callee_clobbers)
and invoke collect_fn_hard_reg_usage from rest_of_handle_final only when
flag_use_caller_save is true.
Why do you need to retest them in get_call_reg_set_usage and get_call_fndecl?
--
Eric Botcazou
This is a regression present on the mainline and 4.9 branch for a corner case:
a superflat array indexed by an enumeration type with representation clause.
Tested on x86_64-suse-linux, applied on the mainline and 4.9 branch.
2014-05-18 Eric Botcazou
* gcc-interface/decl.c
This replaces an explicit test for private types by Underlying_Type, which
does the test automatically.
Tested on x86_64-suse-linux, applied on the mainline.
2014-05-18 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity): Use Underlying_Type in
lieu of more verbose
This exports End_Location from sinfo and uses it in gigi, instead of redoing
the computation locally.
Tested on x86_64-suse-linux, applied on the mainline.
2014-05-18 Eric Botcazou
* fe.h (Set_Present_Expr): Move around.
(End_Location): New macro.
* gcc-interface
The compiler aborts on a subprogram which takes a parameter with a volatile
unconstrained array type. This has apparently never worked.
Tested on x86_64-suse-linux, applied on the mainline.
2014-05-18 Eric Botcazou
* gcc-interface/decl.c (change_qualified_type): New static
This was broken in Ada by recent callgraph/varpool changes.
Tested on x86_64-suse-linux, applied on the mainline and 4.9 branch.
2014-05-18 Eric Botcazou
* utils.c (gnat_write_global_declarations): Adjust the flags put on
dummy_global.
--
Eric BotcazouIndex: gcc-interface
lse
set_curr_insn_source_location (cfun->function_start_locus);
so it's time to do exactly that.
Tested on x86_64-suse-linux, applied on the mainline.
2014-05-18 Eric Botcazou
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Rework comment and
set function_start_locus.
add_reg_crossing_jump_notes): Rename to...
> (update_crossing_jump_flags): ...this.
> (pass_partition_blocks::execute): Update accordingly.
OK, thanks.
--
Eric Botcazou
t (and whether the use of widest_int could be avoided altogether
by using a common type throughout the computation).
--
Eric Botcazou
-05-19 Eric Botcazou
* tree-ssa-dom.c (hashable_expr_equal_p) : Also compare the
EH region of calls to pure functions that can throw an exception.
* tree-ssa-sccvn.c (vn_reference_eq): Remove redundant test.
(copy_reference_ops_from_call): Also copy the EH region
> I thought we had decided a long time ago that pure and const functions could
> not throw and that was the documented behavior.
No, it's precisely the opposite.
--
Eric Botcazou
esting requirements and it would
> be nice to exercise this w/o Ada)
OK, I can add a C++ testcase.
--
Eric Botcazou
.dg/test_raise_from_pure.adb
--
Eric Botcazou
when E => N := N +1;
end;
exit when I = 1;
end loop;
if N /= 2 or I = 0 then
raise Program_Error;
end if;
end;
> Can't the same happen for non-call exceptions?
I don't think so, we don't have the equivalent of pure/const for non-call
exceptions, in particular we have side effects.
--
Eric Botcazou
r unsigned HOST_WIDE_INT)
Does 3) really buy us something? That would make backports painful I think.
--
Eric Botcazou
> DOM bits are good. Richi wants the "redundant" test to be kept around,
> so OK with that change.
Thanks. The test is more duplicated than redundant so I'll remove it anyway.
--
Eric Botcazou
alongside with [u]int64_t being less to type ...
I personally find the abstraction and the separation with the other, more
mundane types useful, but I guess that it's a matter of habit.
--
Eric Botcazou
now.
But the test for targetm.call_fusage_contains_non_callee_clobbers seems to be
useless in practice if -fuse-caller-save isn't the default, so I'd remove it.
OK with that change and a head comment for get_call_cgraph_node, unless Jan
wants to move get_call_fndecl and get_call_cgraph_node to cgraph.c.
--
Eric Botcazou
in DWARF,
then synthesizing a base type on the fly would probably be OK.
--
Eric Botcazou
> RTL checking would probably have found this quickly, but that's very
> expensive so not normally enabled during trunk development.
This used to be very expensive, but has been only moderately expensive for a
while (it's in my checking options for years on trunk for x86/x8
uiltin.
Tested on x86_64-suse-linux, OK for the mainline?
2014-05-21 Eric Botcazou
* tree.h (PLUS_EXPR_CODE_P): New macro.
(PLUS_EXPR_P): Likewise.
(CASE_PLUS): Likewise.
* tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P+A) - (T)P
-> (T)A trans
R_PLUS_EXPR *.c" convinced me of the contrary (and I
planned to post a follow-up patch) but I don't really care in the end.
--
Eric Botcazou
3001 - 3100 of 4611 matches
Mail list logo