Re: [PATCH] Optimize (ne:SI (subreg:QI (ashift:SI x 7) 0) 0) as (and:SI x 1).

2023-10-10 Thread Michael Matz
On Tue, 10 Oct 2023, Roger Sayle wrote: > > This patch is the middle-end piece of an improvement to PRs 101955 and > 106245, that adds a missing simplification to the RTL optimizers. > This transformation is to simplify (char)(x << 7) != 0 as x & 1. Random observation: So, why restrict to shi

Re: [PATCH] Canonicalize real X - CST to X + -CST

2020-09-17 Thread Michael Matz
Hello, On Wed, 16 Sep 2020, Richard Biener wrote: > This removes the canonicalization of X + -CST to X - CST to facilitate > SLP vectorization analysis where we currently treat the added testcase > as two-operation plus blend vectorization opportunity. While there > may be the possibility to avo

Re: Fix PR90796

2019-10-23 Thread Michael Matz
Hello, On Tue, 22 Oct 2019, Rainer Orth wrote: > > testsuite/ > > * gcc.dg/unroll-and-jam.c: Add three invalid and one valid case. > > this testcase now FAILs on 32-bit targets (seen on i386-pc-solaris2.11 > and sparc-sun-solaris2.11, also reports for i686-pc-linux-gnu and > i586-unknown-fre

Re: Fix PR90796

2019-10-28 Thread Michael Matz
Hi, On Wed, 23 Oct 2019, Michael Matz wrote: > On Tue, 22 Oct 2019, Rainer Orth wrote: > > > > testsuite/ > > > * gcc.dg/unroll-and-jam.c: Add three invalid and one valid case. > > > > this testcase now FAILs on 32-bit targets (seen on i386-pc-solaris2.11

Re: Fix PR90796

2019-10-28 Thread Michael Matz
Hello, On Mon, 28 Oct 2019, Rainer Orth wrote: > >> > +FAIL: gcc.dg/unroll-and-jam.c scan-tree-dump-times unrolljam "applying > >> > unroll and jam" 6 > >> > >> Hrmpf, I'll have a look :-/ Thanks for noticing. > > > > A strange interaction with LIM, which only does something on 32bit, but > >

Re: [PATCH] Add if-chain to switch conversion pass.

2019-11-13 Thread Michael Matz
Hi, On Wed, 13 Nov 2019, Martin Liška wrote: > > Not a review, just a few questions: > > Hello. > > Thank you for it. > > > > > 1) what does it do if __builtin_expect* has been used, does it preserve > > the probabilities and if in the end decides to expand as ifs, are those > > proba

Re: [PATCH] doc: clarify the situation with pointer arithmetic

2020-01-30 Thread Michael Matz
Hi, On Thu, 30 Jan 2020, Uecker, Martin wrote: > > guarantees face serious implementation difficulties I think > > so the only alternative to PVNI (which I think is implementable > > but at a optimization opportunity cost) is one that makes > > two pointers with the same value always have the sam

Re: [PATCH] doc: clarify the situation with pointer arithmetic

2020-01-30 Thread Michael Matz
Hi, On Thu, 30 Jan 2020, Michael Matz wrote: > > and the pointers have the same address, then it would evaluate to true > > at run-time. If I understand correctly, you somehow want to make this > > case be UB, but I haven't quite understood how (if it is not the

Re: [PATCH, v3] wwwdocs: e-mail subject lines for contributions

2020-02-03 Thread Michael Matz
Hello, On Mon, 3 Feb 2020, Richard Earnshaw (lists) wrote: > Where does your '50 chars' limit come from? It's not in the glibc text, > and it's not in the linux kernel text either. AFAICT this is your > invention and you seem to be the only person proposing it. Nope, it's fairly common, so m

Re: [PATCH, v3] wwwdocs: e-mail subject lines for contributions

2020-02-03 Thread Michael Matz
Hi, On Mon, 3 Feb 2020, Richard Earnshaw (lists) wrote: > The idea is that the [...] part is NOT part of the commit, only part of > the email. I understand that, but the subject line of this thread says "e-mail subject lines", so I thought we were talking about, well, exactly that; and I see

Re: [PATCH, v3] wwwdocs: e-mail subject lines for contributions

2020-02-03 Thread Michael Matz
Hello, On Mon, 3 Feb 2020, Jakub Jelinek wrote: > > > The idea is that the [...] part is NOT part of the commit, only part of > > > the email. > > > > I understand that, but the subject line of this thread says "e-mail > > subject lines", so I thought we were talking about, well, exactly that;

Re: [PATCH, v3] wwwdocs: e-mail subject lines for contributions

2020-02-03 Thread Michael Matz
Hello, On Mon, 3 Feb 2020, Richard Earnshaw (lists) wrote: > Well, I'd review a patch differently depending on whether or not it was > already committed, a patch requiring review or an RFC looking for more > general comments, so I *do* think such an email prefix is useful. As I said: a very go

Re: [PATCH] Come up with constructors of symtab_node, cgraph_node and varpool_node.

2019-12-05 Thread Michael Matz
Hi, On Thu, 5 Dec 2019, Richard Biener wrote: > On December 5, 2019 3:35:17 PM GMT+01:00, Tom Tromey wrote: > >> "Martin" == Martin Liška writes: > > > >Martin> + /* Default constructor. */ > >Martin> + symtab_node (symtab_type t) > > > >FWIW, in gdb, we normally make single-argument con

Re: [RFC] Characters per line: from punch card (80) to line printer (132) (was: [Patch][OpenMP/OpenACC/Fortran] Fix mapping of optional (present|absent) arguments)

2019-12-05 Thread Michael Matz
Hello, (oh a flame bait :) ) On Thu, 5 Dec 2019, Thomas Schwinge wrote: > So, I formally propose that we lift this characters per line restriction > from IBM punch card (80) to mainframe line printer (132). > > Tasks: > > - Discussion. I object to cluttering code in excuse for using sensibl

Re: [PATCH] Come up with constructors of symtab_node, cgraph_node and varpool_node.

2019-12-06 Thread Michael Matz
Hi, On Thu, 5 Dec 2019, Richard Biener wrote: > >> Indeed - please adjust that as well. > > > >Explicit ctors are a c++11+ feature. > > Surely not. Whoops, I was conflating ctors and conversion functions, the latter can be explicit only in c++11+. Ciao, Michael.

Re: [PATCH] Generate gimple-match.c and generic-match.c earlier

2021-05-28 Thread Michael Matz
Hello, On Fri, 28 May 2021, Bernd Edlinger wrote: > >> I was wondering, why gimple-match.c and generic-match.c > >> are not built early but always last, which slows down parallel > >> makes significantly. > >> > >> The reason seems to be that generated_files does not > >> mention gimple-match.c a

Re: GCC documentation: porting to Sphinx

2021-05-31 Thread Michael Matz
Hello Martin, On Mon, 31 May 2021, Martin Liška wrote: > I've made quite some progress with the porting of the documentation and > I would like to present it to the community now: > https://splichal.eu/scripts/sphinx/ > > Note the documentation is automatically ([1]) generated from texinfo with

Re: GCC documentation: porting to Sphinx

2021-06-01 Thread Michael Matz
Hello, On Tue, 1 Jun 2021, Martin Liška wrote: > On 5/31/21 5:49 PM, Michael Matz wrote: > > Hello Martin, > > > > On Mon, 31 May 2021, Martin Liška wrote: > > > >> I've made quite some progress with the porting of the documentation and > >&g

Re: Aligning stack offsets for spills

2021-06-08 Thread Michael Matz
Hello, On Mon, 7 Jun 2021, Jeff Law wrote: > > So, as many of you know I left Red Hat a while ago and joined Tachyum.  We're > building a new processor and we've come across an issue where I think we need > upstream discussion. > > I can't divulge many of the details right now, but one of the q

Re: Aligning stack offsets for spills

2021-06-08 Thread Michael Matz
Hello, On Tue, 8 Jun 2021, Jeff Law wrote: > On 6/8/2021 9:06 AM, H.J. Lu wrote: > > On Tue, Jun 8, 2021 at 7:56 AM Jakub Jelinek via Gcc-patches > > wrote: > >> On Tue, Jun 08, 2021 at 08:47:26AM -0600, Jeff Law wrote: > Why is the machinery involving STACK_SLOT_ALIGNMENT and > spill_

Re: [PATCH] Avoid DSE/DCE of pure call that throws

2021-05-03 Thread Michael Matz
Hello, On Mon, 3 May 2021, Jan Hubicka wrote: > > (it should not abort). The documentation of 'pure' must be read > > as that 'pure' is not valid for 'foo' since throwing an exception > > is obviously an observable effect on the state of the program > > (in particular for the testcase at hand).

Re: [PATCH] middle-end/114480 - IDF compute is slow

2024-03-27 Thread Michael Matz
Hey, On Wed, 27 Mar 2024, Jakub Jelinek wrote: > > @@ -1712,12 +1711,9 @@ compute_idf (bitmap def_blocks, bitmap_head *dfs) > >gcc_checking_assert (bb_index > >< (unsigned) last_basic_block_for_fn (cfun)); > > > > - EXECUTE_IF_AND_COMPL_IN_BITMAP (&dfs[bb_in

Re: [PATCH] middle-end/114579 - speed up add_scope_conflicts

2024-04-04 Thread Michael Matz
Hello, On Thu, 4 Apr 2024, Richard Biener wrote: > I have reworded the comment before the all-to-all conflict recording > since it seemed to be confusing and missing the point - but maybe I > am also missing something here. The point of the comment was to explain how this differs from building a

Re: [PATCH] c: Handle scoped attributes in __has*attribute and scoped attribute parsing changes in -std=c11 etc. modes [PR114007]

2024-02-22 Thread Michael Matz
Hello, On Thu, 22 Feb 2024, Jakub Jelinek wrote: > So, the following patch adds a flag during preprocessing at the point > where we normally create CPP_SCOPE tokens out of 2 consecutive colons > on the first CPP_COLON to mark the consecutive case (as we are tight > on the bits, I've reused the PU

Re: [PATCH] c: Handle scoped attributes in __has*attribute and scoped attribute parsing changes in -std=c11 etc. modes [PR114007]

2024-02-22 Thread Michael Matz
Hi, On Thu, 22 Feb 2024, Jakub Jelinek wrote: > > Hmm, shouldn't you be able to use (nonexistence of) the PREV_WHITE flag on > > the second COLON token to see that it's indeed a '::' without intervening > > whitespace? Instead of setting a new flag on the first COLON token? > > > > I.e. somet

Re: [PATCH] tree-optimization/114074 - CHREC multiplication and undefined overflow

2024-02-26 Thread Michael Matz
Hello, On Mon, 26 Feb 2024, Jakub Jelinek wrote: > > Will update the patch, I think any improvement should be done > > to get_range_pos_neg (it's a bit odd in behavior for unsigned > > but I have only signed things incoming). > > For unsigned if it always returned 1, it would be quite useless, t

Re: [PATCH] i386: For noreturn functions save at least the bp register if it is used [PR114116]

2024-02-29 Thread Michael Matz
Hello, On Tue, 27 Feb 2024, Jakub Jelinek wrote: > On Tue, Feb 27, 2024 at 10:13:14AM +0100, Jakub Jelinek wrote: > > For __libc_start_main, glibc surely just could use no_callee_saved_registers > > attribute, because that is typically the outermost frame in backtrace, > > there is no need to sav

Re: [PATCH V1] rs6000: New pass for replacement of adjacent (load) lxv with lxvp

2024-01-17 Thread Michael Matz
Hello, On Wed, 17 Jan 2024, Ajit Agarwal wrote: > > first is even, since OOmode is only ok for even vsx register and its > > size makes it take two consecutive vsx registers. > > > > Hi Peter, is my understanding correct? > > > > I tried all the combination in the past RA is not allocating seq

[RFC] x86: Implement separate shrink wrapping

2024-07-17 Thread Michael Matz
Hello, I have implemented the separate shrink wrapping hooks for x86, and this is the result. With it we can now generate the pro- and epilogue sequences individually and possibly split over multiple BBs, unlike the non-separate shrink wrapping we implement (which can only move the whole prol

Re: [PATCH v6 1/8] Improve must tail in RTL backend

2024-05-29 Thread Michael Matz
On Tue, 21 May 2024, Andi Kleen wrote: > - Give error messages for all causes of non sibling call generation > - When giving error messages clear the musttail flag to avoid ICEs > - Error out when tree-tailcall failed to mark a must-tail call > sibcall. In this case it doesn't know the true reason

Re: [PATCH v6 1/8] Improve must tail in RTL backend

2024-06-03 Thread Michael Matz
Hello, On Fri, 31 May 2024, Andi Kleen wrote: > > I think the ultimate knowledge if a call can or cannot be implemented as > > tail-call lies within calls.cc/expand_call: It is inherently > > target and ABI specific how arguments and returns are layed out, how the > > stack frame is generated,

Re: [PATCH v6 1/8] Improve must tail in RTL backend

2024-06-04 Thread Michael Matz
Hello, On Mon, 3 Jun 2024, Jakub Jelinek wrote: > > Hmm. I count six tests in about 25 lines of code in > > tree-tailcall.cc:suitable_for_tail_opt_p and suitable_for_tail_call_opt_p. > > > > Are you perhaps worrying about the sibcall discovery itself (i.e. much of > > find_tail_calls)? Why w

LRA: Don't use 0 as initialization for sp_offset

2024-08-22 Thread Michael Matz
this is part of making m68k work with LRA. See PR116374. m68k has the property that sometimes the elimation offset between %sp and %argptr is zero. During setting up elimination infrastructure it's changes between sp_offset and previous_offset that feed into insns_with_changed_offsets that ultima

LRA: Fix setup_sp_offset

2024-08-22 Thread Michael Matz
This is part of making m68k work with LRA. See PR116429. In short: setup_sp_offset is internally inconsistent. It wants to setup the sp_offset for newly generated instructions. sp_offset for an instruction is always the state of the sp-offset right before that instruction. For that it starts at

final: go down ASHIFT in walk_alter_subreg

2024-08-22 Thread Michael Matz
when experimenting with m68k plus LRA one of the changes in the backend is to accept ASHIFTs (not only MULT) as scale code for address indices. When then not turning on LRA but using reload those addresses are presented to it which chokes on them. While reload is going away the change to make the

Re: LRA: Fix setup_sp_offset

2024-08-26 Thread Michael Matz
Hello, On Sun, 25 Aug 2024, Jeff Law wrote: > >550: [--sp] = 0 sp_off = 0 {pushexthisi_const} > >551: [--sp] = 37sp_off = -4 {pushexthisi_const} > >552: [--sp] = r37 sp_off = -8 {movsi_m68k2} > >554: [--sp] = r116 - r37sp_off = -12 {subsi3} >

Re: LRA: Fix setup_sp_offset

2024-08-26 Thread Michael Matz
Hello, On Mon, 26 Aug 2024, Paul Koning wrote: > >>> 550: [--sp] = 0 sp_off = 0 {pushexthisi_const} > >>> 551: [--sp] = 37sp_off = -4 {pushexthisi_const} > >>> 552: [--sp] = r37 sp_off = -8 {movsi_m68k2} > >>> 554: [--sp] = r116 - r37sp_off = -12 {su

Re: LRA: Fix setup_sp_offset

2024-08-27 Thread Michael Matz
Hello, On Mon, 26 Aug 2024, Paul Koning wrote: > >>> Yeah, I wondered as well. For things to go wrong some instructions that > >>> contain pre/post-inc/dec of the stack pointer need to have reloads in > >>> such > >>> a way that the actual SP-change sideeffect moves to a different > >>> inst

RE: [PATCH][ivopts]: use affine_tree when comparing IVs during candidate selection [PR114932]

2024-06-19 Thread Michael Matz
Hello, On Wed, 19 Jun 2024, Tamar Christina wrote: > So this is where we compare different IV expressions to determine which > IVs compute the same thing and thus can be in the same group. > > The STRIP_NOPS don't work because while the incoming types are the same > the casts are different. So:

Re: [RFC] Old school parallelization of WPA streaming

2013-08-28 Thread Michael Matz
Hi, On Wed, 21 Aug 2013, Richard Biener wrote: > I also fail to see why threads should not work here. Maybe simply > annotate gcc with openmp? Threads simply don't work here, because the whole streamer infrastructure (or anything else in GCC for that matter) isn't thread safe (you'd have to

Re: [RFC] Old school parallelization of WPA streaming

2013-08-29 Thread Michael Matz
Hi, On Thu, 29 Aug 2013, Richard Biener wrote: > > Fork-fire-forget is really a much simpler choice here IMO; no worries > > about shared resources, less debug hassle. > > It might be not as cheap as it is on Linux hosts on other hosts of > course. Sure. Don't use it there then. Not a reason

Re: [PATCH 0/6] Convert gimple to a C++ class hierarchy

2013-08-30 Thread Michael Matz
Hi, On Thu, 29 Aug 2013, David Malcolm wrote: > Successfully bootstrapped and tested on x86_64-unknown-linux-gnu: all > testcases show the same results as an unpatched build (relative to > r202029). I'd like to see some statistics for cc1{,plus} codesize and for compile time of something reason

Re: [PATCH 0/6] Convert gimple to a C++ class hierarchy

2013-08-30 Thread Michael Matz
Hi, On Fri, 30 Aug 2013, Gabriel Dos Reis wrote: > On Fri, Aug 30, 2013 at 9:02 AM, Jakub Jelinek wrote: > > >> I thought the principle that was acquired was that gengtype shouldn't > >> be improved to support more than what it does now…. > > > > If it means that we'll need to write and maintai

Re: [PATCH 0/6] Convert gimple to a C++ class hierarchy

2013-09-02 Thread Michael Matz
Hi, On Fri, 30 Aug 2013, David Malcolm wrote: > Here's the result of a pair of builds of r202029 without and with the > patches, configured with --enable-checking=release, running "make", then > stripping debuginfo [1] > > So the overall sizes of such binaries are essentially unchanged. Yep, co

Re: [PATCH 0/6] Convert gimple to a C++ class hierarchy

2013-09-04 Thread Michael Matz
Hi, On Tue, 3 Sep 2013, David Malcolm wrote: > > I can't really say I find this shorter, easier to read, more > > expressive or even safer than what was there before. And the > > repetition for adding the helpers for const and non-const types > > all the time doesn't make it bet

Re: [RFC] Changes to the wide-int classes

2013-09-05 Thread Michael Matz
Hi, On Thu, 5 Sep 2013, Richard Biener wrote: > > (1) whether it's OK for wide_ints to be writable. > > > > The interface already exposed the idea of an array of blocks, > > via get_val() and get_len(). The question here is whether it is OK > > to also have the corresponding write f

Re: RFC - Next refactoring steps

2013-09-06 Thread Michael Matz
Hi, On Thu, 5 Sep 2013, Andrew MacLeod wrote: > 1 - I think we ought to split out the data structures from gimple.h into > gimple-core.h, like we did with tree.h Why? > gimple.h. That won't really affect my work. I think it probably ought to be > done for clarity eventually.gimple.h wou

Re: [buildrobot] [PATCH] r202527: ssa / ssanames restructure broke alpha-linux

2013-09-16 Thread Michael Matz
Hi, On Mon, 16 Sep 2013, Uros Bizjak wrote: > >> Where? I don't see config/alpha.c listed anywhere. > > > > Must be in one of the fragments in config/ or config/alpha. For > > i386 it's config/i386/t-i386 > > Well, we have a problem here. The dependencies from t-* files are > ignored Why do yo

Re: [buildrobot] [PATCH] r202527: ssa / ssanames restructure broke alpha-linux

2013-09-16 Thread Michael Matz
Hi, On Mon, 16 Sep 2013, Uros Bizjak wrote: > > Why do you think so? The t-* frags are includes via > > ... > > tmake_file=...$(srcdir)/config/i386/t-i386 > > ... > > ifneq ($(tmake_file),) > > include $(tmake_file) > > endif > > ... > > > > It's just that there's no t-alpha frag yet. > > No, t

RE: [PATCH 1/n] Add conditional compare support

2013-09-18 Thread Michael Matz
Hi, On Wed, 18 Sep 2013, Zhenqiang Chen wrote: > The patch is updated according to your comments. It is a basic support, > which does not touch ifcombine and jump related optimizations yet. > > Current method is: > 1) In fold-const, if HAVE_conditional_compare, set > LOGICAL_OP_NON_SHORT_CIRCUIT

Re: [PATCH] manage dom-walk_data initialization and finalization with constructors and destructors

2013-09-18 Thread Michael Matz
Hello, On Tue, 17 Sep 2013, Jeff Law wrote: > I put the attached patch through a bootstrap and regression test cycle on > x86_64-unknown-linux-gnu. As expected no regressions. Installed onto the > trunk. > > Thanks Trevor! You missed one comment style nit, and some ChangeLog entry nits. I'm

Re: [PATCH] manage dom-walk_data initialization and finalization with constructors and destructors

2013-09-18 Thread Michael Matz
Hi, On Wed, 18 Sep 2013, Jeff Law wrote: > On 09/18/2013 10:24 AM, Michael Matz wrote: > > > > I'm irritated by the member name uglification (e.g. equiv_stack_ with > > trailing underscore). I know that's a certain style to mark private > > members, but I t

Re: [PATCH] manage dom-walk_data initialization and finalization with constructors and destructors

2013-09-19 Thread Michael Matz
Hi, On Wed, 18 Sep 2013, Jeff Law wrote: > > I know, and I don't like it there either. > > Well, as Ian pointed out, it is in our recommended style guidelines and > you'll find uses in the vec class as well. As I said, yes; I also said those were pre-existing from the C times already, so they

Re: [PATCH] manage dom-walk_data initialization and finalization with constructors and destructors

2013-09-20 Thread Michael Matz
Hi, On Fri, 20 Sep 2013, Trevor Saunders wrote: > > > very ugly FWIW. I only added the underscores because that's what > > > the conventions said. > > > > > > But we're never going to get consensus on this kind of thing. E.g. > > > I know some people really hate the GNU formatting style (alth

Re: [PATCH 2/3] Handle simple inheritance in gengtype.

2013-09-20 Thread Michael Matz
Hi, On Fri, 20 Sep 2013, David Malcolm wrote: > Treat GTY structs that have a "desc" as being the root of an inheritance > hierarchy. Generate a switch on desc within the marking function with > cases for each subclass, visiting all fields of the type (including > inherited ones). Yay! Thanks

Re: [PATCH] Trivial cleanup

2013-09-26 Thread Michael Matz
Hi, On Wed, 25 Sep 2013, Jeff Law wrote: > > > I was going to bring it up at some point too. My preference is > > > strongly to simply eliminate the space on methods... > > Which wouldn't be so weird: in the libstdc++-v3 code we do it all the time. > Yea. I actually reviewed the libstdc++ guide

Re: [PATCH] Trivial cleanup

2013-09-30 Thread Michael Matz
Hi, On Sat, 28 Sep 2013, Andrew MacLeod wrote: > My example in this form would look something like: > int unsignedsrcp = ptrvar.type().type().type_unsigned(); > > <...> > GimpleType t1 = ptrvar.type (); > GimpleType t2 = t1.type (); Stop that CamelCase dyslexia already, will you? ;-) Ciao, M

Re: [PATCH] Trivial cleanup

2013-10-01 Thread Michael Matz
Hi, On Mon, 30 Sep 2013, Jeff Law wrote: > > - the compiler better do an awesome job of sharing stack space for > > user variables in a function... I wouldn't want to blow up the stack > > with a bazillion unrelatd temps each wit their own location. > If the objects have the same type and disj

Re: Merge C++ conversion into trunk (4/6 - hash table rewrite)

2012-09-28 Thread Michael Matz
Hi, On Thu, 27 Sep 2012, Lawrence Crowl wrote: > > template > > struct D : B > > { > > typedef typename B::E E; // element_type > > E getme (int index); > > } > > Inside that struct, lets say we have a field of type E. Do we name > it F or f? IMHO only for types, not for any other decls.

Remove def operands cache, try 2

2012-10-22 Thread Michael Matz
Hi, On Tue, 11 Sep 2012, Michael Matz wrote: > the operands cache is ugly. This patch removes it at least for the def > operands, saving three pointers for roughly each normal statement (the > pointer in gsbase, and two pointers from def_optype_d). This is > relatively easy to

Re: [PATCH] Fix PR55011

2012-10-22 Thread Michael Matz
Hi, On Mon, 22 Oct 2012, Richard Biener wrote: > > This fixes PR55011, it seems nothing checks for invalid lattice > transitions in VRP, That makes sense, because the individual parts of VRP that produce new ranges are supposed to not generate invalid transitions. So if anything such checkin

Re: [PATCH] Fix PR55011

2012-10-22 Thread Michael Matz
Hi, On Mon, 22 Oct 2012, Richard Biener wrote: > On Mon, 22 Oct 2012, Michael Matz wrote: > > > Hi, > > > > On Mon, 22 Oct 2012, Richard Biener wrote: > > > > > > > > This fixes PR55011, it seems nothing checks for invalid lattice > > &g

Re: [PATCH] Fix PR55011

2012-10-23 Thread Michael Matz
Hi, On Tue, 23 Oct 2012, Richard Biener wrote: > > > > ... for this. We should never "produce" UNDEFINED when the input > > > > wasn't > > > > UNDEFINED already. > > > > > > Why? > > > > Because doing so _always_ means an invalid lattice transition. UNDEFINED > > is TOP, anything not UNDEF

Re: [PATCH] Fix PR55011

2012-10-23 Thread Michael Matz
Hi, On Tue, 23 Oct 2012, Richard Biener wrote: > > So, one question, are you claiming that a VRP worker like this: > > > >VR derive_new_range_from_operation (VR a, VR b) > > > > is _ever_ allowed to return UNDEFINED when a or b is something else than > > UNDEFINED? You seem to claim so AF

Re: [PATCH] Fix debug info for expr and jump stmt

2012-10-26 Thread Michael Matz
Hi, On Thu, 25 Oct 2012, Dehao Chen wrote: > >> * cfgexpand.c (set_expr_location_r): New callback function. > >> (gimple_assign_rhs_to_tree): Walk the expr recursively. > >> (expand_call_stmt): Likewise. > >> (expand_gimple_stmt_1): Likewise. > > > > This cannot be right. You're going to propaga

Re: [PATCH] Fix debug info for expr and jump stmt

2012-10-29 Thread Michael Matz
Hi, On Fri, 26 Oct 2012, Dehao Chen wrote: > 1. abandon the changes in cfgexpand.c Well, you merely moved the bogus code to gimple-low.c. It is bogus because you unconditionally overwrite TREE_BLOCK of all operands (and all operands operands) with the statements block. I assume the unit-test

Re: [PATCH] Fix debug info for expr and jump stmt

2012-10-29 Thread Michael Matz
Hi, On Mon, 29 Oct 2012, Richard Biener wrote: > > Well, you merely moved the bogus code to gimple-low.c. It is bogus > > because you unconditionally overwrite TREE_BLOCK of all operands (and all > > operands operands) with the statements block. I assume the unit-test you > > added shows the pr

Re: [PATCH] Fix debug info for expr and jump stmt

2012-10-29 Thread Michael Matz
Hi, On Mon, 29 Oct 2012, Dehao Chen wrote: > On Mon, Oct 29, 2012 at 7:17 AM, Michael Matz wrote: > > Hi, > > > > On Mon, 29 Oct 2012, Richard Biener wrote: > > > >> > Well, you merely moved the bogus code to gimple-low.c. It is bogus > >> >

Re: [PATCH] Fix debug info for expr and jump stmt

2012-10-30 Thread Michael Matz
Hi, On Tue, 30 Oct 2012, Richard Biener wrote: > On Tue, Oct 30, 2012 at 3:17 PM, Dehao Chen wrote: > >> And tree expressions don't have TREE_BLOCK before gimple-low either. > >> So IMNSHO it is gimple-low.c that should set TREE_BLOCK of all the gimple > >> stmts as well as all expression in the

Re: [PING] [PATCH] PR58143/58227 wrong code at -O3

2013-10-16 Thread Michael Matz
Hi, On Tue, 15 Oct 2013, Richard Biener wrote: > On Sun, Oct 6, 2013 at 2:22 PM, Bernd Edlinger > wrote: > > How I should proceed with this patch, is it OK? > > > > The latest version was posted at: > > http://gcc.gnu.org/ml/gcc-patches/2013-09/msg00234.html > > I have now attached a quick dra

patch: Fix gengtype to really detect same files

2013-10-24 Thread Michael Matz
Hi, I just hit this problem where gengtype thought an existing gt-*.h header was the same as what it wanted to write because its prefix was indeed equal to the buffer, but contained some additional things afterwards. gengtype simply forgot to check that the file end is reached at buffer end.

Speedup configure and build with system.h

2016-01-21 Thread Michael Matz
Hi, this has bothered me for some time. The gcc configure with stage1 feels like taking forever because some of the decl availability tests (checking for C function) include system.h, and that, since a while, unconditionally includes and under C++, and we meanwhile use the C++ compiler for

Re: Speedup configure and build with system.h

2016-01-22 Thread Michael Matz
Hi, On Fri, 22 Jan 2016, Oleg Endo wrote: > and have been put into system.h because there have > been problems with malloc poisoning and C++ stdlib implementation other > than libstdc++, which sometimes pull other headers which then cause > trouble. The fix for this set of errors was to inc

Re: Speedup configure and build with system.h

2016-01-22 Thread Michael Matz
Hi, On Thu, 21 Jan 2016, Richard Biener wrote: > I'm inclined to say #define INCLUDE_ALGORITHM is a better name, I've done this. On a different (slower) machine than the one from the initial mail: without patch, -j31 bootstrap all,ada: real35m2.655s user395m28.135s sys 12m10.814s

Re: Speedup configure and build with system.h

2016-01-25 Thread Michael Matz
Hi, On Fri, 22 Jan 2016, Jakub Jelinek wrote: > > > This may have caused: > > > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69434 > > > > Guess we need: > > > > 2016-01-22 Jakub Jelinek > > > > PR bootstrap/69434 > > * genrecog.c: Define INCLUDE_ALGORITHM before including sy

Re: Speedup configure and build with system.h

2016-01-25 Thread Michael Matz
Hi, On Mon, 25 Jan 2016, Uros Bizjak wrote: > This patch caused bootstrap failure on non-c++11 bootstrap compiler > [1], e.g. CentOS 5.11. > > The problem is with std::swap, which was defined in header > until c++11 [2]. > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69464 > [2] http://e

Re: Speedup configure and build with system.h

2016-01-26 Thread Michael Matz
Hi, On Tue, 26 Jan 2016, Uros Bizjak wrote: > > Meh. Can you try the attached patch with a configure test (it > > includes the generated files)? It works for me with 4.3.4, and should > > make your build include always. > > Yes, this patch works for me and allows bootstrap with gcc-4.1.2 to

Re: [PATCH] Fix PR69274, 435.gromacs performance regression due to RA

2016-02-08 Thread Michael Matz
Hi, On Mon, 8 Feb 2016, Richard Biener wrote: > 429.mcf 9120243 37.6 S9120245 37.3 S > 429.mcf 9120224 40.7 S9120241 37.8 * > 429.mcf 9120225 40.5 *9120229 39.9 S > 471.omne

Re: [patch] Fix timevar internal consistency failure

2016-02-10 Thread Michael Matz
Hi, On Wed, 10 Feb 2016, Richard Biener wrote: > > The problem is that TV_PHASE_DBGINFO is now nested within > > TV_PHASE_OPT_GEN, which violates the above mutual exclusivity > > requirement. Therefore the attached patch simply gets rid of > > TV_PHASE_DBGINFO (as well as of the sibling TV_PH

Re: [patch] Fix timevar internal consistency failure

2016-02-10 Thread Michael Matz
Hi, On Wed, 10 Feb 2016, David Malcolm wrote: > > +static timevar_id_t global_phase; > > FWIW I like the idea, but could this be a private field within class > timer, rather than a global? Sure, consider the patch amended accordingly. Ciao, Michael.

Re: [PATCH] Fix reassoc ICE (PR tree-optimization/69802)

2016-02-15 Thread Michael Matz
Hi, On Mon, 15 Feb 2016, Jakub Jelinek wrote: > + /* If op is default def SSA_NAME, there is no place to insert the > + new comparison. Give up, unless we can use OP itself as the > + range test. */ > + if (op && SSA_NAME_IS_DEFAULT_DEF (op)) > +{ > + if (op == range->exp > +

Re: Fix PR44281 (bad RA with global regs)

2016-02-22 Thread Michael Matz
Hi, On Mon, 22 Feb 2016, Jeff Law wrote: > > never considers them as candidates. However, we do seem to have proper > > data flow information for them. IMO one of the points of global reg vars, and its long-standing documentation to that effect, is that we do not have proper data flow informat

Re: [PATCH 10/9] ENABLE_CHECKING refactoring: remove remaining occurrences

2016-02-24 Thread Michael Matz
Hi, On Wed, 24 Feb 2016, Martin Liška wrote: > >> grep ENABLE_CHECKING *.[ch] > > dwarf2out.c:#if ENABLE_CHECKING > > dwarf2out.c:#if ENABLE_CHECKING > > dwarf2out.c:#if ENABLE_CHECKING > > dwarf2out.h:#if ENABLE_CHECKING > > Hi Richi. > > Removal in dwarf2out.c is not possible due to assignmen

Re: Fix PR44281 (bad RA with global regs)

2016-02-29 Thread Michael Matz
Hi, On Fri, 26 Feb 2016, Bernd Schmidt wrote: > Calls do, asms currently don't AFAICT. Not sure whether it's allowed to > use them, but I think it should be straightforward to adjust df-scan. > > > Some jit-like code uses global reg vars to reserve registers for the > > generated code. It wou

Re: Fix PR44281 (bad RA with global regs)

2016-02-29 Thread Michael Matz
Hi, On Mon, 29 Feb 2016, Bernd Schmidt wrote: > On 02/29/2016 06:07 PM, Michael Matz wrote: > > > %rbx would have to be implicitly used/clobbered by the asm. In addition > > it would have to be used by all function entries and exits (so that a > > function body whe

Re: Fix PR44281 (bad RA with global regs)

2016-02-29 Thread Michael Matz
Hi, On Mon, 29 Feb 2016, Mikael Pettersson wrote: > Well, almost. While it is true that a signal handler cannot > *accidentally* clobber the register state of the interrupted thread, it > can in fact access and update any part of that state via the ucontext_t > passed to it. Doing so is unco

Re: genmatch indent generated code

2015-07-10 Thread Michael Matz
Hi, On Fri, 10 Jul 2015, Richard Biener wrote: > > I also noticed it but didn't care ;) But now I notice > > > > switch (TREE_CODE (t)) > > { > > case SSA_NAME: > > > > cases are indented too much, it should be > > > > switch (TREE_CODE (t)) > > { > > case SSA_NAME: I like

Re: [RFC] two-phase marking in gt_cleare_cache

2015-07-13 Thread Michael Matz
Hi, On Sun, 12 Jul 2015, Tom de Vries wrote: > > I'm trying to get to a defined policy for what is allowed for caches. > > Either forbidding or allowing multi-step dependencies, I don't really > > mind. I think forbidding is the way to go, because ... > > I managed to write a patch series tha

Re: [RFC] two-phase marking in gt_cleare_cache

2015-07-13 Thread Michael Matz
Hi, On Mon, 13 Jul 2015, Tom de Vries wrote: > > Implementing multi-step maps or making the hashmaps non-caching > > doesn't solve any of the above problems > > I'm not saying that making those hashmaps non-caching solves any of > these problems. Ah, I didn't mean to imply this, I meant to im

Re: [PATCH, ARM] stop changing signedness in PROMOTE_MODE

2015-07-13 Thread Michael Matz
Hi, On Mon, 13 Jul 2015, Richard Biener wrote: > On Fri, Jul 10, 2015 at 5:46 PM, Jim Wilson wrote: > > On Tue, Jul 7, 2015 at 2:35 PM, Richard Biener > > wrote: > >> On July 7, 2015 6:29:21 PM GMT+02:00, Jim Wilson > >> wrote: > >>>signed sub-word locals. Thus to detect the need for a conve

Re: [PATCH, ARM] stop changing signedness in PROMOTE_MODE

2015-07-15 Thread Michael Matz
Hi, On Tue, 14 Jul 2015, Richard Earnshaw wrote: > > I think it's a backend bug that parameters and locals are extended > > differently. The code in tree-outof-ssa was written with the > > assumption that the modes of RTL objects might be different (larger) > > than the tree types suggest, bu

Re: [PATCH, ARM] stop changing signedness in PROMOTE_MODE

2015-07-15 Thread Michael Matz
Hi, On Tue, 14 Jul 2015, Jim Wilson wrote: > Now that we do have the problem, we can't fix it without an ARM port ABI > change, which is undesirable, so we may have to fix it with a MI change. What's the ABI implication of fixing the inconsistency? > There were two MI changes suggested, one wa

Re: [PATCH 4/5] Downgrade value_expr_for_decl to non-cache

2015-07-15 Thread Michael Matz
Hi, On Tue, 14 Jul 2015, Richard Biener wrote: > For example have those special caches have two marking phases. The first > phase marks all non-key edges originating from each entry. The second > phase is the same as what we have now - unmarked entries get removed. > > The first phase would go

Re: [PATCH] Add 'switch' statement to match.pd language

2015-07-15 Thread Michael Matz
Hi, On Tue, 14 Jul 2015, Richard Biener wrote: > I know Micha detests the extra 'if' as much as the extra braces thus > would have prefered > > (switch > (A) B > (B) C > (C) D > E) The lispy way would have been (switch (A) (B) (C) (D) (E) (F) G) i.e. parenthesize t

Re: [PATCH 4/5] Downgrade value_expr_for_decl to non-cache

2015-07-15 Thread Michael Matz
Hi, On Wed, 15 Jul 2015, Jakub Jelinek wrote: > On Wed, Jul 15, 2015 at 04:14:07PM +0200, Michael Matz wrote: > > That's Toms other approach with supporting multi-step dependencies. As I > > have tried to argue in the other thread, I think this idea is > > fundament

Re: [PATCH 4/5] Downgrade value_expr_for_decl to non-cache

2015-07-15 Thread Michael Matz
Hi, On Wed, 15 Jul 2015, Jakub Jelinek wrote: > > No, I really meant value. If you think it has meaning, then tell me > > what it is for DECL_VALUE_EXPR (X) to be 'Y', if Y is nowhere else > > mentioned, neither in code, nor in local-decls, nor in globals, or > > anywhere else that would be r

Re: [PATCH 4/5] Downgrade value_expr_for_decl to non-cache

2015-07-15 Thread Michael Matz
Hi, On Wed, 15 Jul 2015, Michael Matz wrote: > Similar for "ptr->foo" if "ptr" is nowhere mentioned in code or tables. > In effect DECL_VALUE_EXPR refers to stale decls that aren't initialized, > aren't given a place and aren't dealt with in

Re: [PATCH] Add 'switch' statement to match.pd language

2015-07-15 Thread Michael Matz
Hi, On Wed, 15 Jul 2015, Richard Biener wrote: > >> (switch > >> (A) B > >> (B) C > >> (C) D > >> E) > > > >The lispy way would have been > > > > (switch > >(A) (B) > >(C) (D) > >(E) (F) > >G) > > > >i.e. parenthesize the result as well, which then would be unambiguousl

Re: [PATCH 4/5] Downgrade value_expr_for_decl to non-cache

2015-07-15 Thread Michael Matz
Hi, On Wed, 15 Jul 2015, Richard Biener wrote: > >Or, maybe we're talking past each other. You mean the case where > >complicated-expr-on-Y is the value-expr, and Y is _no_ stale decl, but > >the complicated expr itself nevertheless is mentioned nowhere else? > >Yes, those trees must be reta

Re: [PATCH] Add 'switch' statement to match.pd language

2015-07-16 Thread Michael Matz
Hi, On Thu, 16 Jul 2015, Richard Biener wrote: > > Similar, if the condition is an atom you should be able to leave the > > parens away: > > > > (switch > > cond (minus @0 @1) > > ) > > > > (given a predicate 'cond' defined appropriately). > > Yes. Though techincally the condition cannot

  1   2   3   4   5   6   7   8   9   >