Re: compiling very large functions.

2006-11-06 Thread Andrew MacLeod
On Sat, 2006-11-04 at 15:17 -0500, Kenneth Zadeck wrote: > ld. > > However, I think that before anyone starts hacking anything, we should > come to a consensus on an overall strategy and implement something > consistent for the entire compiler rather than attack some particular > pass in a manne

alias slowdown?

2006-11-17 Thread Andrew MacLeod
I just tried compiling cplusplus_grammer.ii with mainline, checking disabled, and had to stop it after 30 minutes (use to be <50 seconds on my x86-linux box). A quick check with GDB seems to show that its spending in inordinate amount of time in may_alias: #0 0x0816d1ac in bitmap_ior_into (a=0x

Re: alias slowdown?

2006-11-17 Thread Andrew MacLeod
On Fri, 2006-11-17 at 12:22 -0500, Andrew MacLeod wrote: > I just tried compiling cplusplus_grammer.ii with mainline, checking > disabled, and had to stop it after 30 minutes (use to be <50 seconds on > my x86-linux box). A quick check with GDB seems to show that its > spendin

Re: alias slowdown?

2006-11-18 Thread Andrew MacLeod
On Fri, 2006-11-17 at 22:19 -0500, Daniel Berlin wrote: > On 11/17/06, Andrew MacLeod <[EMAIL PROTECTED]> wrote: > > On Fri, 2006-11-17 at 12:22 -0500, Andrew MacLeod wrote: > > > I just tried compiling cplusplus_grammer.ii with mainline, checking > > > disa

mainline slowdown

2006-12-01 Thread Andrew MacLeod
My bootstrap/make check cycle took about 10 hours with yesterdays checkout (way longer than expected). A quick investigation shows C++ compilation timed are through the roof. Using quick (in theory) and trusty cpgram.ii, I get: tree PTA :1135.48 (88%) usr 5.47 (55%) sys1168.23 (85

Re: mainline slowdown

2006-12-01 Thread Andrew MacLeod
On Fri, 2006-12-01 at 10:40 -0500, Andrew MacLeod wrote: > My bootstrap/make check cycle took about 10 hours with yesterdays > checkout (way longer than expected). A quick investigation shows C++ > compilation timed are through the roof. > > Using quick (in theory) and trusty c

Re: mainline slowdown

2006-12-01 Thread Andrew MacLeod
On Fri, 2006-12-01 at 10:56 -0500, Andrew MacLeod wrote: > On Fri, 2006-12-01 at 10:40 -0500, Andrew MacLeod wrote: > > My bootstrap/make check cycle took about 10 hours with yesterdays > > checkout (way longer than expected). A quick investigation shows C++ > > compilation

Re: mainline slowdown

2006-12-01 Thread Andrew MacLeod
On Fri, 2006-12-01 at 13:49 -0500, Daniel Berlin wrote: > On 12/1/06, Andrew MacLeod <[EMAIL PROTECTED]> wrote: > > My bootstrap/make check cycle took about 10 hours with yesterdays > > checkout (way longer than expected). A quick investigation shows C++ > > compilation

Re: SPEC CFP2000 and polyhedron runtime scores dropped from 13. november onwards

2006-12-01 Thread Andrew MacLeod
On Fri, 2006-12-01 at 11:45 -0500, Daniel Berlin wrote: > On 12/1/06, Richard Guenther <[EMAIL PROTECTED]> wrote: > > On 12/1/06, Uros Bizjak <[EMAIL PROTECTED]> wrote: > > > Hello! > until we can deal with the register pressure (though i thought we had > out-of-ssa changes to help with this now).

Re: mainline slowdown

2006-12-01 Thread Andrew MacLeod
On Fri, 2006-12-01 at 15:06 -0500, Daniel Berlin wrote: > On 12/1/06, Andrew MacLeod <[EMAIL PROTECTED]> wrote: > > On Fri, 2006-12-01 at 13:49 -0500, Daniel Berlin wrote: > > > > > > > > Using quick (in theory) and trusty cpgram.ii, I get: > > > &g

Re: mainline slowdown

2006-12-01 Thread Andrew MacLeod
On Fri, 2006-12-01 at 14:59 -0500, Daniel Berlin wrote: > On 12/1/06, Andrew MacLeod <[EMAIL PROTECTED]> wrote: > > On Fri, 2006-12-01 at 13:49 -0500, Daniel Berlin wrote: > > > On 12/1/06, Andrew MacLeod <[EMAIL PROTECTED]> wrote: > > > > My bootstrap

Re: [PATCH]: Require MPFR 2.2.1

2006-12-04 Thread Andrew MacLeod
On Mon, 2006-12-04 at 17:23 +0100, Richard Guenther wrote: > On 12/3/06, Kaveh R. GHAZI <[EMAIL PROTECTED]> wrote: > > This patch updates configure to require MPFR 2.2.1 as promised here: > > http://gcc.gnu.org/ml/gcc/2006-12/msg00054.html > > > > Tested on sparc-sun-solaris2.10 using mpfr-2.2.1, m

expand_builtin_memcpy bug exposed by TER and gfortran

2006-12-05 Thread Andrew MacLeod
I've been investigating a testsuite failure which shows up with the new TER implementation, and it appears to be a bug in the code for expand_builtin_memcpy. The problem is an array slice of a string constant, which is this case originates in gfortran. The source code looks like: subroutine f

Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Andrew MacLeod
On Mon, 2006-12-11 at 15:16 +0100, Steven Bosscher wrote: > On 12/11/06, Kaz Kojima <[EMAIL PROTECTED]> wrote: > > It seems that the first tree dump which differs before and > > after r119711 is .099t.optimized. > > In that case, this is a different problem, probably caused by the new > out-of-SSA

Re: Mis-handled ColdFire submission?

2007-01-10 Thread Andrew MacLeod
On Wed, 2007-01-10 at 21:13 +, Richard Sandiford wrote: > I know Andrew replied privately, but I hope he doesn't mind me raising > the issue on-list. I just wanted to guage the general feeling as to > whether I'd screwed up, and whether I should have submitted the patches > in a different way.

Mainline bug in RTL fwprop.

2007-03-06 Thread Andrew MacLeod
8, and propagated di into the compare. insn 7 would be dead and we'd get the code the PR is looking for :-) Andrew 2007-03-05 Andrew MacLeod <[EMAIL PROTECTED]> * tree-ssa-ter.c (find_replaceable_in_bb): Allow expression replacement of same basename variables for s

Re: Mainline bug in RTL fwprop.

2007-03-06 Thread Andrew MacLeod
On Tue, 2007-03-06 at 18:18 +0100, Paolo Bonzini wrote: > > It would be really sweet if we propagated the 'di - 4' into insn 8, then > > recognized that di is now the value of SI 58, and propagated di into the > > compare. insn 7 would be dead and we'd get the code the PR is looking > > for :-) >

Re: GCC 4.2.0 Status Report (2007-03-04)

2007-03-07 Thread Andrew MacLeod
On Sun, 2007-03-04 at 20:45 -0800, Mark Mitchell wrote: > However, I do think that it's important to eliminate some of the 139 > open P2 and P1 regressions [2], especially those P1 regressions which > did not appear in GCC 4.1.x. There are a handful I've been involved with which are labeled as 4.

Re: Google SoC Project Proposal: Better Uninitialized Warnings

2007-03-19 Thread Andrew MacLeod
On Mon, 2007-03-19 at 10:33 -0700, Joe Buck wrote: > On Mon, Mar 19, 2007 at 09:27:25AM -0400, Diego Novillo wrote: > > Manuel López-Ibáñez wrote on 03/17/07 14:28: > > > > > This is the project proposal that I am planning to submit to Google > > > Summer of Code 2007. It is based on previous work

Re: RFC: GIMPLE tuples. Design and implementation proposal

2007-04-10 Thread Andrew MacLeod
On Tue, 2007-04-10 at 00:49 -0400, Diego Novillo wrote: > Following up on the recent discussion about GIMPLE tuples > (http://gcc.gnu.org/ml/gcc/2007-03/msg01126.html), we have summarized > our main ideas and implementation proposal in the attached document. > > This should be enough to get the im

Re: RFC: GIMPLE tuples. Design and implementation proposal

2007-04-10 Thread Andrew MacLeod
On Tue, 2007-04-10 at 19:54 +0200, J.C. Pizarro wrote: > Hi Diego Novillo > > Your "Tuple representation" of the GIMPLE instructions was: > HEADER: > code16 bits > subcode 16bits > nextword > prevword > bb word > locus word > block wor

RE: RFC: GIMPLE tuples. Design and implementation proposal

2007-04-10 Thread Andrew MacLeod
On Tue, 2007-04-10 at 20:39 +0100, Dave Korn wrote: > On 10 April 2007 20:02, Diego Novillo wrote: > > >> The obvious way to make the proposed tuples position independent would > >> be to use array offsets rather than pointers. This has the obvious > >> disadvantage that every access through a po

Re: RFC: GIMPLE tuples. Design and implementation proposal

2007-04-10 Thread Andrew MacLeod
On Tue, 2007-04-10 at 16:03 -0400, Diego Novillo wrote: > Dave Korn wrote on 04/10/07 15:39: > > > Reverse-traversing an array really isn't all that painful or slow! > > Instructions are not laid out in an array. Insertion and removal is > done constantly. It would be very expensive to use ar

Re: RFC: GIMPLE tuples. Design and implementation proposal

2007-04-10 Thread Andrew MacLeod
On Tue, 2007-04-10 at 15:02 -0400, Diego Novillo wrote: > Ian Lance Taylor wrote on 04/10/07 14:13: > > I would like us to seriously think about this approach. Most of the > > details would be hidden by accessor macros when it comes to actual > > coding. The question is whether we can tolerate s

Re: RFC: Changes in the representation of call clobbers

2005-03-17 Thread Andrew MacLeod
What if we try a variation on this. Im not even sure how I feel about it since its even wonkier than what you suggest. first, create a unique GV for each type, and implement a gatherer definition. Instead of individual VMAYDEFS for 3 variables, we have a gatherer which assigns them all to one g

Re: Semi-Latent Bug in tree vectorizer

2005-04-08 Thread Andrew MacLeod
On Fri, 2005-04-08 at 12:52, Jeffrey A Law wrote: > In the interest of brevity, I'm just going to point out the > problematical store from the .ifcvt dump: > > > # x_16 = V_MAY_DEF ; > # SFT.3_20 = V_MAY_DEF ; > *D.1470_8 = D.1472_11; > > Which gets vectorized and appears like this in

Re: Semi-Latent Bug in tree vectorizer

2005-04-08 Thread Andrew MacLeod
On Fri, 2005-04-08 at 13:26, Devang Patel wrote: > On Apr 8, 2005, at 10:08 AM, Jeffrey A Law wrote: > > > On Fri, 2005-04-08 at 13:04 -0400, Daniel Berlin wrote: > >>> When we rescan the operands, we get a different set of V_MAY_DEFS, > >>> specifically we lose the V_MAY_DEF for SFT.3_20. > >> >

Re: Semi-Latent Bug in tree vectorizer

2005-04-08 Thread Andrew MacLeod
On Fri, 2005-04-08 at 13:27, Andrew MacLeod wrote: > On Fri, 2005-04-08 at 12:52, Jeffrey A Law wrote: > > When we rescan the operands, we get a different set of V_MAY_DEFS, > > specifically we lose the V_MAY_DEF for SFT.3_20. Which results in > > uses of SFT.3_20 later,

Re: Semi-Latent Bug in tree vectorizer

2005-04-08 Thread Andrew MacLeod
On Fri, 2005-04-08 at 13:27, Andrew MacLeod wrote: > On Fri, 2005-04-08 at 12:52, Jeffrey A Law wrote: > actually, I'll jsut keep talking to myself here :-) > > In the interest of brevity, I'm just going to point out the > > problematical store from the .ifcvt du

Re: Merging stmt_ann_d into tree_statement_list_node

2005-04-25 Thread Andrew MacLeod
On Mon, 2005-04-25 at 04:48, Zdenek Dvorak wrote: > Hello, > > > I am thinking about merging stmt_ann_d into tree_statement_list_node. > > > > Background > > -- > > > > tree_statement_list_node is a linked list node defined like so > > > > struct tree_statement_list_node { > > struct t

Re: Merging stmt_ann_d into tree_statement_list_node

2005-04-25 Thread Andrew MacLeod
On Mon, 2005-04-25 at 11:32, Kazu Hirata wrote: > I might need your help later as a loop optimizer expert. I just found > yesterday that tree-ssa-loop-im.c:schedule_sm is using stmt_ann before > a statement proper is linked to a basic block. Specifically, it > creates a statement, attaches a stm

Re: Merging stmt_ann_d into tree_statement_list_node

2005-04-25 Thread Andrew MacLeod
On Mon, 2005-04-25 at 12:00, Kazu Hirata wrote: > Hi Andrew, > > I believe DOM uses the routine to create a dummy expression for a store > > which looks like a load. This load is then entered into the equivalency > > tables such that the store of the expression also shows up as a load > > allowing

Re: Merging stmt_ann_d into tree_statement_list_node

2005-04-25 Thread Andrew MacLeod
On Mon, 2005-04-25 at 14:37, Kazu Hirata wrote: > Hi Andrew, > > > well, there isnt a tree_statement_list_node right... DOM simply has an > > expression, and we end up calling create_stmt_ann. I guess you would > > have to create a completely detached stmt_list node for this case. what > > are y

Re: Merging stmt_ann_d into tree_statement_list_node

2005-04-25 Thread Andrew MacLeod
On Mon, 2005-04-25 at 17:55, Kazu Hirata wrote: > Hi Andrew, > > > How is the get_stmt_ann (stmt) going to work from the caller of > > create_ssa_artificial_load_stmt() when it goes to look at the operands > > for its new "stmt"? > > I am going to replace that particular call to get_stmt_ann w

Re: Merging stmt_ann_d into tree_statement_list_node

2005-04-25 Thread Andrew MacLeod
On Mon, 2005-04-25 at 19:01, Kazu Hirata wrote: > Hi Andrew, > No, I would like to remove stmt_ann_t pointer from the stmt node, but > not yet. All I want to do in this project is to put > tree_statement_list_node and stmt_ann_d next to each other in memory > while doing necessary adjustments in

Re: Merging stmt_ann_d into tree_statement_list_node

2005-04-25 Thread Andrew MacLeod
On Mon, 2005-04-25 at 20:32, Kazu Hirata wrote: > Hi Adnrew, > This looks like a better approach. How would we do your step 1? We > have var_ann and tree_ann in addition to stmt_ann. Shall we put a > type field at the beginning of tree_statement_list_node+stmt_ann_d so > that an annotation node

Re: folding after TER notes

2005-04-27 Thread Andrew MacLeod
On Wed, 2005-04-27 at 04:22, Jeffrey A Law wrote: > On Tue, 2005-04-26 at 23:40 -0700, Zack Weinberg wrote: > > Wasn't TER a temporary kludge that should be going away? > When we have a tree combiner I would expect TER to disappear. Or if tree expansion were rewritten. One of the many things still

operand swapping in get_expr_operands.

2005-05-04 Thread Andrew MacLeod
Why is it we try to swap operands in get_expr_operands, where we are otherwise simply parsing not modifying? /* If it would be profitable to swap the operands, then do so to canonicalize the statement, enabling better optimization. By placing canonicalization of such

Re: operand swapping in get_expr_operands.

2005-05-04 Thread Andrew MacLeod
On Wed, 2005-05-04 at 11:07, Jeffrey A Law wrote: > On Wed, 2005-05-04 at 10:28 -0400, Andrew MacLeod wrote: > > Why is it we try to swap operands in get_expr_operands, where we are > > otherwise simply parsing not modifying? > > > > /* If it would be profitable

rtl printing

2005-05-13 Thread Andrew MacLeod
Do we currently have an RTL infix printing mechanism hidden away somewhere? I seem to vaguely recall new-ra might have had something once upon a time... I also suspect others have fooled with it over the years. Is there code laying around I can snarf and work with? Andrew

Re: Problem with -ftree-ter and loop unrolling

2005-05-18 Thread Andrew MacLeod
On Wed, 2005-05-18 at 09:23, Steven Bosscher wrote: > On May 18, 2005 03:06 PM, Zdenek Dvorak <[EMAIL PROTECTED]> wrote: > > > So far OK, but with ter, this becomes > > > > sum1 = 0; > > sum2 = 0; > > for (i = 0; i < n; i+=4) > > { > > x_1 = a[i]; > > y_1 = b[i]; > > x_2 = a[i+1]; >

Re: SSA_NAMEs not always released

2005-08-24 Thread Andrew MacLeod
On Wed, 2005-08-24 at 18:28 -0400, Daniel Berlin wrote: > > Could someone look into this and see what they can do? > > You should probably ask Diego or Andrew directly whether they'd like us > to do this in bsi_remove (which requires adding an argument) and > remove_phi_node(ditto) so that a lot

Re: SSA_NAMEs not always released

2005-08-25 Thread Andrew MacLeod
On Wed, 2005-08-24 at 21:26 -0400, Daniel Berlin wrote: > On Wed, 2005-08-24 at 19:19 -0400, Andrew MacLeod wrote: > > removing a stmt doesn't mean that the def is no longer needed. > > That ws the goal of the extra argument, however I noticed this after I sent the note :-

Re: Cost of having an immediate use in the phi argument

2005-09-18 Thread Andrew MacLeod
On Sat, 2005-09-17 at 14:59, Daniel Berlin wrote: > It seems the only reason we have PHI_ARG_IMM_USE_NODE (and a struct > ssa_use_operand_d) in a phi node argument (struct phi_arg_d) is *just* > so we can iterate over the uses and hand back use_operand_p. > > I'm talking, in particular, about: >

Re: GGC Questions

2005-10-25 Thread Andrew MacLeod
On Tue, 2005-10-25 at 09:36 -0400, Daniel Berlin wrote: > On Tue, 2005-10-25 at 10:13 +0530, Ranjit Mathew wrote: > > On 10/25/05, Mike Stump <[EMAIL PROTECTED]> wrote: > > > > > > > > First off, several fields are marked "skip", though the > > > > documents seem to strongly discourage this. For ex

Register Allocation

2005-11-17 Thread Andrew MacLeod
It must be the season for this sort of thing :-) I have been contemplating building a GCC register allocator from scratch for some time. To that end, I have put together a bit of a document given a high level overview of the various components I think would benefit GCC, and a rough description of

Re: Register Allocation

2005-11-18 Thread Andrew MacLeod
On Fri, 2005-11-18 at 10:53 +0100, Giovanni Bajo wrote: > Andrew MacLeod <[EMAIL PROTECTED]> wrote: > 1) Do you believe there will be sub-parts of this project which could be > carried on succesfully and efficiently by programmers without previous RTL > experience? IIUC, the

Re: Register Allocation

2005-11-23 Thread Andrew MacLeod
On Fri, 2005-11-18 at 22:18 -0800, Ian Lance Taylor wrote: > Andrew MacLeod <[EMAIL PROTECTED]> writes: > Secondary/tertiary reloads and reload_in/out patterns are apparently > subsumed by the Spill Engine. Porting a target to the new framework > is going to require providin

Re: Register Allocation

2005-11-23 Thread Andrew MacLeod
On Sun, 2005-11-20 at 01:37 +0100, Steven Bosscher wrote: > On Thursday 17 November 2005 17:53, Andrew MacLeod wrote: > > http://people.redhat.com/dnovillo/rable.pdf > > How are the insn annotations and caches you propose different from > what df.c already does? > I don

Re: Register Allocation

2005-11-23 Thread Andrew MacLeod
On Tue, 2005-11-22 at 13:26 -0600, Peter Bergner wrote: > Register Coalescing [page(s) 8]: > * We will probably need some method for telling the coalescer > that a particular copy (or type of copy/copies) should either > be completely ignored (ie, do not coalesce it even if it look

Re: [gcjx] Tree-SSA Operands Processing Problem

2006-01-09 Thread Andrew MacLeod
On Mon, 2006-01-09 at 08:22 +0530, Ranjit Mathew wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > However, it still remains true that the code path > I referred to is wrong and if, as you say, it can > never be taken, it should just be removed and > replaced with an assertion codifying w

Spurious parallel make failures in libgcc.

2015-07-15 Thread Andrew MacLeod
I occasionally get a build failure in libgcc when doing a scratch build (onx86_64-unknown-linux-gnu) , and if I simply do another make, it works fine. I am always building with make -j16, so its never been easy to spot. This morning, it happened to fail in such a way that I can sort of see wh

Re: Spurious parallel make failures in libgcc.

2015-07-15 Thread Andrew MacLeod
which ends up overwriting gthr-default.h at what turns out to be a poor time ? that sort of makes sense I guess. Im not sure how we synchronize the parallel bits. Andrew so it probably is related to rerunning config.status On 07/15/2015 10:07 AM, Andrew MacLeod wrote: I occasionally get a build

Re: Spurious parallel make failures in libgcc.

2015-07-15 Thread Andrew MacLeod
On 07/15/2015 02:58 PM, Jeff Law wrote: On 07/15/2015 08:33 AM, Andrew MacLeod wrote: Maybe if gthr-default already existed (as well as config.status), the makefile would spawn the libgcov-interface.c object builds... meanwhile a reconfigure is going which ends up overwriting gthr-default.h

Re: [gimplefe] [gsoc16] Gimple Front End Project

2016-03-09 Thread Andrew MacLeod
On 03/07/2016 11:33 AM, David Malcolm wrote: So for testing specific passes, I'd much rather have an input format for testing individual passes that: * can be easily generated by GCC from real test cases * ability to turn into unit tests, which implies: * human-readable and editabl

Re: [gimplefe] [gsoc16] Gimple Front End Project

2016-03-09 Thread Andrew MacLeod
On 03/09/2016 10:47 AM, Richard Biener wrote: On Wed, Mar 9, 2016 at 3:27 PM, Andrew MacLeod wrote: On 03/07/2016 11:33 AM, David Malcolm wrote: So for testing specific passes, I'd much rather have an input format for testing individual passes that: * can be easily generated b

Re: fold() can't fold simple expressions?

2016-09-14 Thread Andrew MacLeod
On 09/14/2016 09:33 AM, Richard Biener wrote: On Wed, Sep 14, 2016 at 3:25 PM, Aldy Hernandez wrote: Hi folks. I'm working on better range information with Macleod, and I've been playing with folding arbitrary range expressions, which I expect fold() to ahem...fold. I'm surprised that even se

Re: fold() can't fold simple expressions?

2016-09-14 Thread Andrew MacLeod
On 09/14/2016 03:29 PM, Richard Biener wrote: On September 14, 2016 6:39:14 PM GMT+02:00, Jeff Law wrote: On 09/14/2016 08:08 AM, Andrew MacLeod wrote: range generator understands, we just thought it would be handy to leverage the folder during the proof of concept stage. It's also

Re: ICE with atomic_store

2014-06-18 Thread Andrew MacLeod
On 06/18/2014 12:59 PM, Basile Starynkevitch wrote: Hello All, The following code: #include struct s1_st { char* i_name; struct s1_st* i_foo; }; void clear_s1 (struct s1_st*s) { __atomic_store(s->i_name, NULL, __ATOMIC_SEQ_CST); } gives an ICE when c

Re: Using BUILT_IN_ATOMIC_...

2014-07-09 Thread Andrew MacLeod
On 07/09/2014 02:17 AM, Tobias Burnus wrote: Hello all, I am trying to use BUILT_IN_ATOMIC_..., but it does not quite work. I am calling them as: tmp = builtin_decl_explicit (BUILT_IN_ATOMIC_LOAD_4); tmp = build_call_expr_loc (input_location, tmp, 2, atom.expr, ... That gives the followi

Re: [GNU Tools Cauldron 2014] GCC Re-architecture BOF

2014-08-06 Thread Andrew MacLeod
On 08/05/2014 10:21 AM, Prathamesh Kulkarni wrote: Hi, I have written notes on "GCC re-architecture BOF" presented at the Cauldron. I would be grateful if you would review it for me. Seems to cover the core parts well... all subject to change as we go tho :-) initial focus wlll be the ty

plugins header file

2014-09-15 Thread Andrew MacLeod
During the re-architecture session at Cauldron, I mentioned the possibility of introducing a plugin-headers.h. This would be a file which plugins could use which would protect them somewhat from header file restructuring. The idea is that it includes all the common things plugins need, (like

Re: plugins header file

2014-10-14 Thread Andrew MacLeod
On 09/15/2014 02:18 PM, Andrew MacLeod wrote: During the re-architecture session at Cauldron, I mentioned the possibility of introducing a plugin-headers.h. This would be a file which plugins could use which would protect them somewhat from header file restructuring. The idea is that it

Re: [gimple-classes, committed 4/6] tree-ssa-tail-merge.c: Use gassign

2014-11-13 Thread Andrew MacLeod
On 11/13/2014 05:45 AM, Richard Biener wrote: On Thu, Nov 13, 2014 at 2:41 AM, David Malcolm wrote: On Tue, 2014-11-11 at 11:43 +0100, Richard Biener wrote: On Tue, Nov 11, 2014 at 8:26 AM, Jakub Jelinek wrote: On Mon, Nov 10, 2014 at 05:27:50PM -0500, David Malcolm wrote: On Sat, 2014-11-0

Re: [gimple-classes, committed 4/6] tree-ssa-tail-merge.c: Use gassign

2014-11-13 Thread Andrew MacLeod
On 11/13/2014 09:34 AM, Richard Biener wrote: On Thu, Nov 13, 2014 at 3:24 PM, Andrew MacLeod wrote: On 11/13/2014 05:45 AM, Richard Biener wrote: On Thu, Nov 13, 2014 at 2:41 AM, David Malcolm wrote: On Tue, 2014-11-11 at 11:43 +0100, Richard Biener wrote: On Tue, Nov 11, 2014 at 8:26 AM

Query about the TREE_TYPE field

2014-11-18 Thread Andrew MacLeod
I was poking around attribs.c while trial running my tree-type-safety stuff, and it triggered something in decl_attributes() that seems fishy to me. It looks like it was part of the fix for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35315 decl_attributes() can be passed a tree node which is

Re: Query about the TREE_TYPE field

2014-11-18 Thread Andrew MacLeod
On 11/18/2014 09:40 AM, Jason Merrill wrote: On 11/18/2014 09:26 AM, Andrew MacLeod wrote: I was poking around attribs.c while trial running my tree-type-safety stuff, and it triggered something in decl_attributes() that seems fishy to me. It looks like it was part of the fix for https

Re: Query about the TREE_TYPE field

2014-11-18 Thread Andrew MacLeod
On 11/18/2014 09:52 AM, Andrew MacLeod wrote: On 11/18/2014 09:40 AM, Jason Merrill wrote: On 11/18/2014 09:26 AM, Andrew MacLeod wrote: I was poking around attribs.c while trial running my tree-type-safety stuff, and it triggered something in decl_attributes() that seems fishy to me. It

Re: Query about the TREE_TYPE field

2014-11-18 Thread Andrew MacLeod
On 11/18/2014 01:36 PM, Jeff Law wrote: On 11/18/14 09:30, Andrew MacLeod wrote: I tried doing the if before chaning to TREE_TYPE... absolutely no effect on the testsuite or anything else :-) What do you think, should I check this in? What is there is clearly incorrect.we could also

Re: Atomic operations and unaligned memory

2015-03-26 Thread Andrew MacLeod
On 03/26/2015 04:02 PM, Jason Merrill wrote: The wiki page https://gcc.gnu.org/wiki/Atomic/GCCMM/UnalignedPolicy says, --- typedef char B3[3]; _Atomic B3 obj2; An object will be promoted up to the next lock-free size in order to enable lock free operations, as long as it isn't already a do

Re: Do we have any plans to un-flatten our header files?

2015-04-20 Thread Andrew MacLeod
On 04/20/2015 09:18 AM, Richard Biener wrote: On Mon, Apr 20, 2015 at 3:02 PM, Martin Jambor wrote: Hi, because I really dislike the hassle our (almost) flattened header files cause quite often, I have made a very simple experiment to find out how the header files really depend on each other.

trunk test result inconsistencies

2015-04-22 Thread Andrew MacLeod
Is anyone else seeing comparison problems on trunk? I was having problems testing a patch on a 4/16 extraction, so last night I checked out a fresh trunk, built it, ran make check... then removed the build directory, re-built it from scratch again. make check.. and get a bunch of different re

Re: trunk test result inconsistencies

2015-04-22 Thread Andrew MacLeod
On 04/22/2015 08:19 AM, Jakub Jelinek wrote: On Wed, Apr 22, 2015 at 08:04:03AM -0400, Andrew MacLeod wrote: Is anyone else seeing comparison problems on trunk? I was having problems testing a patch on a 4/16 extraction, so last night I checked out a fresh trunk, built it, ran make check

Re: trunk test result inconsistencies

2015-04-22 Thread Andrew MacLeod
On 04/22/2015 08:33 AM, Jeff Law wrote: On 04/22/2015 06:28 AM, Andrew MacLeod wrote: On 04/22/2015 08:19 AM, Jakub Jelinek wrote: On Wed, Apr 22, 2015 at 08:04:03AM -0400, Andrew MacLeod wrote: Is anyone else seeing comparison problems on trunk? I was having problems testing a patch on a 4

switch statement type incompatibilities ?

2018-10-29 Thread Andrew MacLeod
What is valid in a switch statement for type compatibility?  I would have expected it to follow what appears to be the gimple "standard"  of allowing types that pass the "useless_type_convserion_p()"  test. I am doing some switch analysis and an triggering a failure in ADA when the gimple_sw

Re: switch statement type incompatibilities ?

2018-10-29 Thread Andrew MacLeod
On 10/29/18 1:30 PM, Richard Biener wrote: On October 29, 2018 6:20:25 PM GMT+01:00, Andrew MacLeod wrote: What is valid in a switch statement for type compatibility?  I would have expected it to follow what appears to be the gimple "standard"  of allowing types tha

Re: FIXME in gcc/gimplify.c

2019-04-01 Thread Andrew MacLeod
On 4/1/19 12:49 PM, nick wrote: On 2019-04-01 4:21 a.m., Martin Liška wrote: On 3/29/19 11:29 PM, nick wrote: Greetings all, Not sure why this exists still as tree-eh.h is including in tree-eh.c which defines this header as used for this FIXME: #include "tree-pass.h" /* FIXME: onl

Re: FIXME in gcc/gimplify.c

2019-04-02 Thread Andrew MacLeod
On 4/1/19 5:17 PM, nick wrote: On 2019-04-01 1:54 p.m., Andrew MacLeod wrote: #include "tree-flow.h" #include "cgraph.h" #include "timevar.h" #include "hashtab.h" #include "flags.h" #include "function.h" #include "ggc.h" #i

Re: SSA Pressure Reduction

2019-05-07 Thread Andrew MacLeod
On 5/7/19 2:40 PM, nick wrote: Andrew, I read through your notes briefly on this issue and if you want help I'm game for it. I assuming it's fixed not through as the gcc projects pages tend to me out of date in my experience. Nick Yeah, very old project and not really on the radar any more :

On-Demand range technology [2/5] - Major Components : How it works

2019-05-22 Thread Andrew MacLeod
*This note will talk about the 4 major components of the prototype and explain how they work together.   I will be fairly light on detail just to give an overview, we can delve into whatever details are needed. - Range-ops : Range operations at the statement level - GORI - Generates Outgoing Ran

On-Demand range technology [1/5] - Executive Summary

2019-05-22 Thread Andrew MacLeod
Now that stage 1 has reopened, I’d like to reopen a discussion about the technology and experiences we have from the Ranger project I brought up last year. https://gcc.gnu.org/ml/gcc/2018-05/msg00288.html .  (The original wiki pages are now out of date, and I will work on updating them soon.)

On-Demand range technology [3/5] - The Prototype

2019-05-22 Thread Andrew MacLeod
There is a functioning prototype in branch “ssa-range” which is a proof of concept that the approach is functional as well as quick, and can be used to answer questions which come up regarding what it can and can’t do.  Our last merge was on April 13th, so it's fairly up to date. We have imple

On-Demand range technology [4/5] - Performance results

2019-05-22 Thread Andrew MacLeod
We have done extensive performance analysis to help address concerns about the nature of an on-demand model. LLVM made an attempt at something similar,  but suffered from significant performance issues they could not solve with their approach. This approach is not the same, and we have seen no

On-Demand range technology [5/5] - Looking to the future.

2019-05-22 Thread Andrew MacLeod
A primary goal of this approach is to try to pull the various aspects of VRP apart and make them individually viable so they can be used at appropriate places as needed.  The various components of VRP were identified as:     - Ranges     - Relational queries     - Equivalencies     - Bitmask tr

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-05-24 Thread Andrew MacLeod
On 5/23/19 8:55 AM, Richard Biener wrote: On Thu, May 23, 2019 at 3:28 AM Andrew MacLeod wrote: 2 * GORI The second component is the “Generates Outgoing Range Info” engine. This is a basic-block oriented component which determines what ssa-names have ranges created on outgoing

Re: On-Demand range technology [3/5] - The Prototype

2019-05-24 Thread Andrew MacLeod
On 5/23/19 9:10 AM, Richard Biener wrote: On Thu, May 23, 2019 at 3:29 AM Andrew MacLeod wrote: This aspect of symbolics would be handled by a relational/equivalence processing engine that would be follow on work. Using the same basic model as ranges, each tree code is taught to understand

Re: On-Demand range technology [4/5] - Performance results

2019-05-24 Thread Andrew MacLeod
On 5/23/19 9:29 AM, Richard Biener wrote: On Thu, May 23, 2019 at 3:29 AM Andrew MacLeod wrote: All times are with a release configured compiler. Out of the 242 files, pretty much across the board in all 4 sets of figures, RVRP was faster in about 90% of the cases, and slower in the other 10

Re: On-Demand range technology [5/5] - Looking to the future.

2019-05-24 Thread Andrew MacLeod
On 5/23/19 10:07 AM, Richard Biener wrote: On Thu, May 23, 2019 at 3:30 AM Andrew MacLeod wrote: This aspect of all calculations being driven from the opcode and combined generically without special casing at a higher level is both very powerful and less prone to produce errors. Our initial

Re: On-Demand range technology [3/5] - The Prototype

2019-05-24 Thread Andrew MacLeod
On 5/24/19 5:36 AM, Richard Biener wrote: On Fri, May 24, 2019 at 12:27 AM Eric Botcazou wrote: While I agree that symbolic ranges are a complication and that most cases it currently handles are not "value-range" things I do not agree with the idea that we can simply remove handling them and de

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-05-28 Thread Andrew MacLeod
On 5/27/19 9:02 AM, Richard Biener wrote: On Fri, May 24, 2019 at 5:50 PM Andrew MacLeod wrote: The above suggests that iff this is done at all it is not in GORI because those are not conditional stmts or ranges from feeding those. The machinery doing the use-def walking from stmt context

Re: On-Demand range technology [3/5] - The Prototype

2019-05-31 Thread Andrew MacLeod
On 5/29/19 9:11 AM, Richard Biener wrote: On Tue, May 28, 2019 at 4:41 PM Jeff Law wrote: This aspect of symbolics would be handled by a relational/equivalence processing engine that would be follow on work. Using the same basic model as ranges, each tree code is taught to understand the rel

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-05-31 Thread Andrew MacLeod
On 5/29/19 7:15 AM, Richard Biener wrote: On Tue, May 28, 2019 at 4:17 PM Andrew MacLeod wrote: On 5/27/19 9:02 AM, Richard Biener wrote: On Fri, May 24, 2019 at 5:50 PM Andrew MacLeod wrote: The above suggests that iff this is done at all it is not in GORI because those are not conditional

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-05-31 Thread Andrew MacLeod
On 5/31/19 2:16 PM, Jeff Law wrote: On 5/31/19 9:40 AM, Andrew MacLeod wrote: On 5/29/19 7:15 AM, Richard Biener wrote: On Tue, May 28, 2019 at 4:17 PM Andrew MacLeod wrote: On 5/27/19 9:02 AM, Richard Biener wrote: On Fri, May 24, 2019 at 5:50 PM Andrew MacLeod wrote: The above suggests

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-05-31 Thread Andrew MacLeod
On 5/31/19 6:00 PM, Jeff Law wrote: On 5/31/19 2:26 PM, Andrew MacLeod wrote: On 5/31/19 2:16 PM, Jeff Law wrote: On 5/31/19 9:40 AM, Andrew MacLeod wrote: stmt-level tracking of ranges are sometimes important.  This is something the machinery cannot provide - correct?  At least not

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-06-04 Thread Andrew MacLeod
On 6/4/19 11:26 AM, Richard Biener wrote: On Fri, May 31, 2019 at 5:40 PM Andrew MacLeod wrote: On 5/29/19 7:15 AM, Richard Biener wrote: On Tue, May 28, 2019 at 4:17 PM Andrew MacLeod wrote: On 5/27/19 9:02 AM, Richard Biener wrote: On Fri, May 24, 2019 at 5:50 PM Andrew MacLeod wrote

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-06-04 Thread Andrew MacLeod
On 6/4/19 11:37 AM, Richard Biener wrote: On Tue, Jun 4, 2019 at 5:26 PM Richard Biener wrote: But you still have a reference to the range in evry BB dominated by the definition? Btw, I was thinking of unsigned char foo(long); void baz(unsigned char c) { try{ long i = c; i +

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-06-04 Thread Andrew MacLeod
On 6/4/19 1:07 PM, Richard Biener wrote: On June 4, 2019 6:50:07 PM GMT+02:00, Andrew MacLeod wrote: On 6/4/19 11:37 AM, Richard Biener wrote: where the single(!) query of the range of i on the alloca call will populate N BBs caches with the Nth having ranges for all SSA defs of i running

Re: On-Demand range technology [2/5] - Major Components : How it works

2019-06-04 Thread Andrew MacLeod
On 6/4/19 4:21 PM, Marc Glisse wrote: On Tue, 4 Jun 2019, Martin Sebor wrote: On 5/31/19 9:40 AM, Andrew MacLeod wrote: On 5/29/19 7:15 AM, Richard Biener wrote: On Tue, May 28, 2019 at 4:17 PM Andrew MacLeod wrote: On 5/27/19 9:02 AM, Richard Biener wrote: On Fri, May 24, 2019 at 5:50 PM

On-Demand range technology [6/5] - Integration

2019-06-05 Thread Andrew MacLeod
After the various discussions, I've evaluated how I think everything can fit together, so this is my proposal for integration with trunk. The complete Ranger prototype consists of 5 major  components, one of which is missing/un-implemented as yet :-) 1 - irange -  This is the non-symboli

Re: Dead code at gcc/tree-ssa-loop.c:772?

2019-06-06 Thread Andrew MacLeod
On 6/6/19 6:20 AM, Martin Liška wrote: Hi. The code is dead: 757 char * 758 get_lsm_tmp_name (tree ref, unsigned n, const char *suffix) 759 { 760 char ns[2]; 761 762 lsm_tmp_name_length = 0; 763 gen_lsm_tmp_name (ref); 764 lsm_tmp_name_add ("_lsm");

  1   2   3   >