stack_range.
All the stack checking code, in the middle-end and the various back-ends, use
a uniform implementation. This can probably be optimized a bit, but I'm not
sure it's really worth the hassle.
--
Eric Botcazou
): Call copy_rtx on folded_arg{0,1} before passing
> it to simplify_relational_operation.
OK with:
* cse.c (fold_rtx) : Call copy_rtx on ...
and if you also fix the long simplify_relational_operation line.
--
Eric Botcazou
> I would like to apply the following patch to trunk and gcc-4_7-branch.
> GCC doesn't build for sparc64-rtems* without it.
Sure, thanks.
--
Eric Botcazou
s in basic-block. And the comment seems to be outdated.
--
Eric Botcazou
This cannot be right. You're going to propagate a toplevel location above
locations at deeper level that can be different and should prevail. It would
be far better to set the right location at node creation instead of patching
it up during RTL expansion.
--
Eric Botcazou
e the behavior of 'm' and 'o',
;; i.e. accept pseudo-registers during reload.
While you're at it, you could also move the (define_memory_constraint "w") out
of the "register contraints" part and put it into a "memory constraints" part
with the other memory constraints.
--
Eric Botcazou
during the transition
period. We'll remove it before the release if all goes well.
--
Eric Botcazou
> Thanks for catching this. Also the comment at the top can now mention
> the now-available constraint letter as well.
Ah, yes. And doc/md.texi be adjusted accordingly.
--
Eric Botcazou
;none,icc,fcc,reg"
>(const_string "none"))
There seems to be one superfluous comment line.
Otherwise looks good. Thanks for having introduced the -mcbcond switch, I
think that's perfectly appropriate for a feature like this brand new set of
branch instructions.
--
Eric Botcazou
> But honestly I think the cbcond patch has higher priority, are you
> going to work on those solaris bits?
Yes, I'll at least make sure that the patch can be installed without breaking
the Solaris port.
--
Eric Botcazou
location on every single node before RTL expansion,
since RTL insns inherit the current location, so I'm not sure what you are
trying to achieve here. Fixing specific issues with changes like the one you
posted for tree-eh.c is the way to go instead.
--
Eric Botcazou
; multiple callers.
> (ipa_inline): Handle inlining for size into multiple callers.
The entry for the testcase must go into testsuite/ChangeLog.
--
Eric Botcazou
of stage #1 isn't a hard limit for architecture-specific patches, so we
need not make a decision about LRA immediately. I don't think we want to half
enable it though, so it's all or nothing.
--
Eric Botcazou
need
a finer granularity than a GIMPLE location, so clearing EXPR_LOCATION to work
around a debug info size issue seems very short-sighted (to say the least).
--
Eric Botcazou
> gcc/
> * expmed.c (store_bit_field_1): Remove test for BLKmode values.
This looks fine to me.
--
Eric Botcazou
DE.
We have had a similar change in our tree for some months.
--
Eric Botcazou
> gcc/
> * expmed.c (store_bit_field_using_insv): New function,
> split out from...
> (store_bit_field_1): ...here.
> (extract_bit_field_using_extv): New function, split out from...
> (extract_bit_field_1): ...here.
No objections to this cleanup.
--
Eric Botcazou
> gcc/
> * expmed.c (store_bit_field_1): Move generation of MEM insvs
> to the MEM_P block.
> (extract_bit_field_1): Likewise extvs and extzvs.
I guess it's in keeping with your earlier changes in these functions.
--
Eric Botcazou
of the field. */
> +xop0 = narrow_bit_field_mem (xop0, byte_mode, bitnum, bitnum);
> +op0 = narrow_bit_field_mem (op0, byte_mode, bitnum, bitnum);
... mightily confusing the reader here.
--
Eric Botcazou
> gcc/
> * combine.c (make_extraction): Remove dead wanted_inner_mode-
> and pos_rtx-related code.
OK, thanks.
--
Eric Botcazou
> gcc/
> * combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume
> that zero_extracts of const_ints are doing word-sized extractions.
This looks plausible.
--
Eric Botcazou
This will hopefully fix the build failure reported by Diego. Apart from
adding missing dependencies, this also removes redundant command lines.
Tested on x86_64-suse-linux, applied on the mainline and 4.7 branch.
2012-10-30 Eric Botcazou
* gcc-interface/Make-lang.in: Fix and clean
In the form of a couple of references in comments from cse.c.
Tested on x86_64-suse-linux, applied on the mainline and 4.7 branch.
2012-10-30 Eric Botcazou
* cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in
head comment.
(hash_rtx): Likewise
Original message at:
http://gcc.gnu.org/ml/gcc-patches/2012-10/msg00013.html
Thanks in advance.
--
Eric Botcazou
creep in, but when should we use references
> and when pointers? I think Richard B made a comment about using references
> for things that can't be null.
I'm personally dubious about using references, especially in the middle-end of
a file where all other functions use pointers; consistency should come first.
--
Eric Botcazou
> Your change caused:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55142
Please check whether it worked before Richard's fix (r188009).
--
Eric Botcazou
> It failed with revision 188008.
OK, thanks. So the testcase never compiled on the trunk (except for about 24
hours between 188009 & 188118) or did it compile before 188008 at some point?
--
Eric Botcazou
xpander, possibly using EXPAND_MEMORY, but it should trigger
_only_ for structures with zero-sized arrays and non-BLKmode and be preceded
by a big ??? comment explaining why it is deemed necessary.
--
Eric Botcazou
Hi,
this is a regression on the mainline introduced by my tree-ssa-alias.c change:
2013-04-17 Eric Botcazou
* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
(decl_refs_may_alias_p): Add REF1 and REF2 parameters.
Use
http://gcc.gnu.org/ml/gcc-patches/2013-09/msg02000.html
Thanks in advance.
--
Eric Botcazou
soon as we go through the bitfield
expansion path until last year, when I changed it:
2012-09-14 Eric Botcazou
PR rtl-optimization/44194
* calls.c (expand_call): In the PARALLEL case, copy the return value
into pseudos instead of spilling it onto the stack.
* emit-rtl.c
noinline, noclone))
> foo (void)
> {
> s xx=(s)(0x8002);
> xx->x[3] = 3;
> }
>
> int
> main ()
> {
> foo ();
> check ();
> return 0;
> }
But this testcase is invalid on STRICT_ALIGNMENT platforms: xx is pointer to a
type with 4-byte alignment so its value must be a multiple of 4.
--
Eric Botcazou
> Seems like a odd thing for a param. If the compile time increase is very
> small (< 1%?) I would just make the new threshold default.
I don't understand the 'odd' here... params are exactly for this purpose, i.e.
to avoid hardcoding magic numbers in the compiler, so ple
so (and I don't intend to spend time on this
right now). So let's apply my patchlet first, close PR middle-end/58570 and
if you want to discuss an alternate plan for PR rtl-optimization/44194, let's
do that in a separate thread.
--
Eric Botcazou
nd up at
> them.
>
> or sth similar.
Done, thanks.
> You don't check whether we are at the RTL level after all (not that this
> would be appropriate).
Yes, I was sure that you would have criticized that even more ;-)
--
Eric Botcazou
> That would definitely be a good move. Maybe someone should approve it?
Yes, but I agree that we ought to restrict it to trailing zero-sized arrays.
That would help to allay Jakub's concerns about possible ABI fallouts.
--
Eric Botcazou
far less clear a couple of decades later IMO.
--
Eric Botcazou
guated in alias.c for ages.
--
Eric Botcazou
x27;t find anything less ad-hoc and there is a similar
check for REG_UNUSED notes in the first part of the code.
Tested on x86_64-suse-linux, applied on the mainline.
2013-10-13 Eric Botcazou
PR rtl-optimization/58662
* combine.c (try_combine): Take into account death nodes
I forgot to remove it when I removed the associated code back in June.
Tested on x86_64-suse-linux, applied on the mainline and 4.8 branch.
2013-10-13 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_param): Remove obsolete comment.
--
Eric BotcazouIndex: gcc-interface/decl.c
This fixes an ICE on a rare conjunction of pragma Inline_Always, 2-element
array and uninitialized local variable.
Tested on x86_64-suse-linux, applied on the mainline.
2013-10-13 Eric Botcazou
* gcc-interface/decl.c (gnat_to_gnu_entity) : Force all local
variables with
> > 2013-09-05 Eric Botcazou
> >
> > * config/arm/arm.c (arm_expand_prologue): In a nested APCS frame with
> > arguments to push onto the stack and no varargs, save ip into a stack
> > slot if r3 isn't available on entry.
>
> This is all
e mainline.
2013-10-14 Eric Botcazou
PR bootstrap/58509
* config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
(registers_ok_for_ldd_peep): Move around.
* config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
* config/sparc/sparc.md (widening peeph
-10-19 Eric Botcazou
* gcc-interface/utils.c (gnat_set_type_context): New function.
(gnat_pushdecl): Use it to set the context of the type.
--
Eric BotcazouIndex: gcc-interface/utils.c
===
--- gcc-interface/utils.c
Tested on x86_64-suse-linux, applied on the mainline.
2013-10-19 Eric Botcazou
* gcc-interface/cuintp.c: Remove useless include directives.
(build_cst_from_int): Use standard predicate.
(UI_To_gnu): Simplify.
(UI_From_gnu): Fix formatting.
* gcc
The compiler may emit an incorrect alignment in the XVE descriptive type
associated with a record type containing a dynamic-sized field.
Tested on x86_64-suse-linux, applied on the mainline and 4.8 branch.
2013-10-19 Eric Botcazou
* gcc-interface/utils.c (scale_by_factor_of): New
This ensures the path names in the debug info of the library are consistent
with those of libgcc.
Tested on x86_64-suse-linux, applied on the mainline.
2013-10-19 Thomas Quinot
* gcc-interface/Makefile.in: Use canonical absolute path to refer to
the top source directory and
reated tree-ssa-ter.h file, and included it directly from
> tree-outof-ssa.c, the only consumer.
Apparently something went wrong when tree-ssa-ter.h was created.
--
Eric Botcazou
> what went wrong? I see it in my checkouts...?
Just open the file in your preferred editor. :-)
--
Eric Botcazou
SIZE (type) is really the size of all the objects of
the type; if it isn't, i.e. if we allow access past TYPE_SIZE (type), then we
cannot use the field's mode. So we need to decide where to draw the line.
--
Eric Botcazou
> The following trivial patch avoids this and allows the
> i386-pc-solaris2.1[01] and sparc-sun-solaris2.11 bootstraps to finish.
>
> Ok for mainline?
Sure, thanks for fixing this.
--
Eric Botcazou
ot;whatever mode you think you are expanding, it is actually BLK mode."
Please let's not enter this hazardous business. We just need to draw a line
somewhere and clearly state what we support in terms of out-of-bounds access.
--
Eric Botcazou
can save one addition in the final code.
--
Eric Botcazou
breaks the
uniqueness of representation of -1 as constm1_rtx. Can't we find a really
contained hack instead, especially if we want to backport it to 4.8?
--
Eric Botcazou
to my previous
> version of part 2:
>
> http://gcc.gnu.org/ml/gcc-patches/2013-10/msg00222.html
Why? Just set BLKmode in this case as well.
--
Eric Botcazou
> Because of the ABI-change?
While concerns about accidental ABI changes are real, they shouldn't be
overstated either. We have been saying for longer than a decade that the
back-ends must not use the type mode to implement calling conventions and
other external interfaces.
--
Eric Botcazou
& SPARC64 Solaris, OK for mainline?
2013-10-24 Eric Botcazou
* var-tracking.c (track_expr_p): Do not track declarations for parts
of tracked parameters.
(add_stores): Do not track values for tracked parameters passed in
multiple locations.
(vt_get
idered as such here? Frankly, the
choice of 'true' vs 'false' for create_convert_operand_to in optabs isn't
crystal clear...
--
Eric Botcazou
.
Obvious patch attached, tested on x86_64-suse-linux. Do we want to apply it
on mainline only or on all the active branches?
2013-10-24 Eric Botcazou
* recog.c (search_ofs): New static variable moved from...
(peep2_find_free_register): ...here.
(peephole2_optimize
id value before the clobber, so
the machinery wrongly records the set at insn 30. I think the fix is just to
set reg_seen[N] if static_reg_base_value[N] is non-null in the copy above made
by init_alias_analysis. Tested on x86_64-suse-linux.
Jeff, it's old code of yours, are you OK with this?
that is
> not correct for the entire life. ie, from function entry to the clobber
> (reg 4) has a value totally unrelated to what we've stored in
> new_reg_base_value[4]? RIght?
Yes, that's exactly it.
> Seems reasonable to me, assuming my understandings noted above are correct.
Thanks.
--
Eric Botcazou
op0, off);
}
op0 = memory_address_addr_space (mode, op0, as);
The offset computation is done in address_mode and then, only at the end,
converted to mode.
--
Eric Botcazou
0;
> }
>
> to_rtx = offset_address (to_rtx, offset_rtx,
>highest_pow2_factor_for_target (to,
>offset));
> }
Yes, the comment is out-of-sync and not very informative.
--
Eric Botcazou
ecifiers=0x7fffda00, checks=0x0,
function_definition_allowed_p=true, member_p=false,
declares_class_or_enum=2, function_definition_p=0x7fffda8b,
maybe_range_for_decl=0x0)
at /home/eric/gnat/gnat-head/src/gcc/cp/parser.c:16640
Is that expected and, consequently, should we adjust the machinery?
--
Eric Botcazou
3-10-13 Tom de Vries
>
> * cfgexpand.c (gimple_expand_cfg): Don't commit insertions after
> NOTE_INSN_FUNCTION_BEG.
>
> * gcc.target/arm/require-pic-register-loc.c: New test.
OK if you also remove the test on parm_birth_insn.
--
Eric Botcazou
this point, so
let's exclude the 4.7 branch here.
--
Eric Botcazou
> Reverted on the 4.7 branch.
Thanks.
--
Eric Botcazou
y_address_addr_space (enum machine_mode, rtx, addr_space_t);
with
rtx convert_memory_address_addr_space (enum machine_mode, rtx, addr_space_t);
for a long time apparently... Sorry about that. In the meantime, I installed
the obvious patch to eliminate the small redundancy. Tested on x86_64/Linux
.
OK, patch attached. It's large because of some internal shuffling, but it
just implements that. Tested on x86-64/Linux, any objections?
2013-10-31 Eric Botcazou
c-family/
* c-ada-spec.h (cpp_operation): Add HAS_TRIVIAL_DESTRUCTOR.
(dump_ada_specs): Adjust prototype o
RTIFICIAL decls in TYPE_METHODS.
That sounds interesting indeed, thanks for the tip. I was initially reluctant
to call into the front-end because of side-effects, but the various predicates
in tree.c seem fine in this respect.
--
Eric Botcazou
> I think a good way to check for any non-trivial methods would be to
> check trivial_type_p in the front end and then see if there are any
> !DECL_ARTIFICIAL decls in TYPE_METHODS.
Revised patch attached, tested on x86-64/Linux.
2013-10-31 Eric Botcazou
c-family/
* c-a
the back-ends which implement static stack
checking modulo Alpha. Tested on a bunch of platforms covering the various
cases, any objections (given that I wrote essentially all the code here)?
2013-10-31 Eric Botcazou
* config/i386/i386.c (ix86_expand_prologue): Optimize stack checking
Tested on x86_64-suse-linux, OK for the mainline?
2016-01-21 Eric Botcazou
* doc/extend.texi (scalar_storage_order type attribute): Document
restriction on type punning and aliasing.
--
Eric BotcazouIndex: doc/extend.texi
> Isn't this kind of implied by the already documented restriction of
> taking the address of a union field? Still, you can add this or any kind
> of similar language if you like.
It's stronger I think since you can do type punning without taking an address.
--
Eric Botcazou
do that.
I can see it in KDE's documentation ("hovering over a folder with it for a
short time will open that folder"), Firefox's ("If you've opened more tabs
than will fit on the tab strip"), etc. But I have fixed it anyway.
--
Eric Botcazou
n->can_throw_non_call_exceptions is
true and callee_fun->can_throw_non_call_exceptions is false, so the above test
is false and we can inline. With the new code (yours): check_match is true
and opt_for_fn (callee->decl, flag_non_call_exceptions) is false, so we cannot
inline.
--
Eric Botcazou
s will require fiddling with DejaGNU.
--
Eric Botcazou
u're the only one caring about inlining Ada into other languages ;-)
--
Eric Botcazou
trouble this would introduce. If the sofware contains a
mix of C and Ada and some C->Ada calls are performance critical, then they'd
better be rewritten in C, they will be optimized at any optimization level
instead of just with LTO.
--
Eric Botcazou
> Ok, rebased onto a more recent build, and bootstrapping with Ada posed no
> problems. Sorry for the noise.
Great, no problem, and thanks for double checking.
--
Eric Botcazou
EH for these.
OK, we may have inlined them after all... My understanding of the new code is
that we will still inline them if the Ada callee doesn't use EH, which is good
enough in my opinion.
--
Eric Botcazou
Tested on x86_64-suse-linux, applied on the mainline as obvious.
2016-01-25 Eric Botcazou
* doc/extend.texi (scalar_storage_order type attribute): Fix typo and
improve wording for mixed storage order support.
--
Eric BotcazouIndex: doc/extend.texi
I happened to note that there is an ICE in the C testsuite on IA-64 and that
it is trivial to fix, so here is the result.
Tested on ia64-suse-linux, applied on the mainline and 5 branch as obvious.
2016-01-26 Eric Botcazou
* config/ia64/ia64.c (ia64_expand_vecint_compare): Use
This test is very convoluted, doesn't contain a single line of comment and
apparently makes an invalid assumption (see PR testsuite/68886).
Tested on x86-64/Linux and SPARC64/Solaris, applied on the mainline.
2016-01-26 Eric Botcazou
* gcc.c-torture/execute/stkalign.c: XFAIL r
For the same reason as on Alpha and PowerPC 64-bit.
Tested on x86-64/Linux and SPARC64/Solaris, applied on the mainline.
2016-01-27 Eric Botcazou
* gcc.dg/tree-ssa/ssa-dom-cse-2.c: XFAIL on SPARC 64-bit.
--
Eric BotcazouIndex: gcc.dg/tree-ssa/ssa-dom-cse-2.c
> The new test case fails on s390x:
Likewise on SPARC 32-bit and 64-bit.
--
Eric Botcazou
This is the en masse failure of the gnat.dg/sso tests on Windows, which is the
same DOS line termination issue I run into for gcc.dg/sso on Visium:
https://gcc.gnu.org/ml/gcc-patches/2015-11/msg01133.html.
Rainer wrote and tested the attached patch on both Windows and Linux. Applied
on the mai
CC 7.0 and backport the fix to
GCC 6.x unless really impracticable. That being said, it's ultimately Jakub
and Richard's call.
--
Eric Botcazou
: note: an enum with different value name is defined
in another translation unit
Fixed thusly, tested on x86_64-suse-linux, applied on the mainline.
2016-01-28 Eric Botcazou
* gcc-interface/gigi.h (enum attr_type): Rename into...
(enum attrib_type): ...this.
(struct
They are not flagged by the compiler, albeit obviously dead, but static
analyzers will probably not miss them.
Tested on x86_64-suse-linux, applied on the mainline.
2016-02-01 Eric Botcazou
* postreload.c (reload_cse_simplify): Remove dead code.
--
Eric BotcazouIndex
variants with different alignments (for strict-alignment targets
at least), this seems fundamentally broken to me.
--
Eric Botcazou
t because this will
significantly pessimize over non-BLKmode at the RTL level. As Richard said
(and as discussed many times over the years), you ought not to rely on the
mode for the calling convention of aggregate types.
--
Eric Botcazou
nitize_thread to a
> runtime test, and we *again* unnecessarily waste 5 minutes of test
> time here, waiting for a test to timeout.
Well, if you don't want someone else to do it again, you'd better adjust the
comments as well because, as Jakub put it, the whole stuff is rather weird.
--
Eric Botcazou
ant, if it
> wants. If it did this, then all the ports are fixed wrt this issue.
Or just fix PRE wrt the alignment discrepancy, which looks a lot safer to me.
It's not because this works on x86 that this is necessarily correct for all
the other architectures, especially the strict-alignment architectures.
--
Eric Botcazou
> Anyone have a sense of how this is supposed to work and what is wrong? The
> lines appear to be the same to me. :-(
You probably need to tweak the regexps again to make it accept the ^M.
--
Eric Botcazou
testsuite/gcc.dg/sso/t6.c: Likewise.
> * gcc/testsuite/gcc.dg/sso/t7.c: Likewise.
> * gcc/testsuite/gcc.dg/sso/t8.c: Likewise.
> * gcc/testsuite/gcc.dg/sso/u5.c: Likewise.
> * gcc/testsuite/gcc.dg/sso/u6.c: Likewise.
I'd rather patch the driver (gcc.dg/sso/sso.exp) itself.
--
Eric Botcazou
gnment from that.
> Doesn't "fix" the same issue popping up in other passes.
Which pass does the alignment promotion? Maybe it's the one to be fixed.
--
Eric Botcazou
It causes the global uninitialized variables to be put in DATA instead of (the
equivalent of) BSS on some platforms like AIX.
Fixed thusly, tested on x86_64-suse-linux, applied on the mainline.
2016-02-08 Eric Botcazou
* gcc-interface/utils.c (create_var_decl): Set again
pe = build_aligned_type (exp_type, align);
mem_ref = fold_build2_loc (loc, MEM_REF, exp_type, base, off);
--
Eric Botcazou
> No, that's not over-aliging a salar type, that's preserving alignment
> information on the memory reference.
What would we lose exactly by lowering the alignment to that of the type?
What's the point in knowing that a 32-bit integer is 64-bit aligned at the
GIMPLE level?
--
Eric Botcazou
401 - 500 of 4591 matches
Mail list logo