[PATCH][4/n] into-SSA TLC

2012-07-27 Thread Richard Guenther
as-improvements (originally the first 'alias' pass enabled virtual operands). Btw, we still have no virtual operands at -O0, it would now become a tiny bit cheaper to add them (just to remove some !optimize checks). Bootstrap and regtest pending on x86_64-unknown-linux-gnu. Richard. 201

Re: [PATCH]: Use GTY atomic option for arrays, new atomic vector type

2012-07-27 Thread Richard Guenther
On Fri, Jul 27, 2012 at 2:59 PM, Laurynas Biveinis wrote: > This is a slightly expanded version of the patch in [1]. The main difference > is that I expanded gengtype diagnostics to error on GTY length option applied > to strings too, in addition to other arrays of atomic types. This in turn >

Re: [patch[ Add explanations to sbitmap, bitmap, and sparseset

2012-07-27 Thread Richard Guenther
On Thu, Jul 26, 2012 at 11:57 AM, Steven Bosscher wrote: > On Thu, Jul 26, 2012 at 11:23 AM, Richard Guenther > wrote: >> Ok! Thanks for adding this exhaustive documentation. > > There's more to come! I want to add some explanations to ebitmap, > pointer-set, fibhe

Re: [PATCH v2] Target-specific limits on vector alignment

2012-07-30 Thread Richard Guenther
On Fri, Jul 27, 2012 at 5:24 PM, Ulrich Weigand wrote: > Richard Guenther wrote: >> On Mon, Jun 11, 2012 at 5:25 PM, Richard Earnshaw wrote: >> > On 11/06/12 15:53, Richard Guenther wrote: >> >> The type argument or the size argument looks redundant. >> >

Re: [PATCH][4/n] into-SSA TLC

2012-07-30 Thread Richard Guenther
On Fri, 27 Jul 2012, Richard Guenther wrote: > > This avoids triggering update-ssa right after into-ssa just because > we didn't rename virtual operands yet. Simply do that on-the-fly, > update_stmt will have added bare symbols as operands already. > Surprisingly simple ...

[PATCH][5/n] into-SSA TLC

2012-07-30 Thread Richard Guenther
-unknown-linux-gnu, queued for now. The remaining var-ann users are remove_unused_locals (the used flag) and cfgexpands out-of-SSA. Richard. 2012-07-30 Richard Guenther * tree-flow.h (struct var_ann_d): Remove need_phi_state and current_def members. * tree-into-ssa.c (struct

Re: [patch[ Add explanations to sbitmap, bitmap, and sparseset

2012-07-30 Thread Richard Guenther
On Mon, Jul 30, 2012 at 4:43 PM, Peter Bergner wrote: > On Fri, 27 Jul 2012 15:40:35 +0200 Richard Guenther > wrote: >> Also it looks less efficient than sbitmap in the case when >> your main operation is adding to the set and querying the set randomly. > > How so? Add

Re: [patch[ Add explanations to sbitmap, bitmap, and sparseset

2012-07-30 Thread Richard Guenther
On Mon, Jul 30, 2012 at 5:14 PM, Richard Guenther wrote: > On Mon, Jul 30, 2012 at 5:05 PM, Steven Bosscher > wrote: >> On Mon, Jul 30, 2012 at 4:53 PM, Richard Guenther >> wrote: >>> No, but less space efficient and of comparable speed as sbitmap which >>>

Re: [patch[ Add explanations to sbitmap, bitmap, and sparseset

2012-07-30 Thread Richard Guenther
On Mon, Jul 30, 2012 at 5:05 PM, Steven Bosscher wrote: > On Mon, Jul 30, 2012 at 4:53 PM, Richard Guenther > wrote: >> No, but less space efficient and of comparable speed as sbitmap which >> is also O(1). > > But iterating an sbitmap has worse complexity than sp

Re: [PATCH] Fix PR53733

2012-07-31 Thread Richard Guenther
ptr (next_stmt), >gimple_assign_rhs2_ptr (next_stmt)); > update_stmt (next_stmt); > + > + if (CONSTANT_CLASS_P (gimple_assign_rhs1 (next_stmt))) > + LOOP_VINFO_OPERANDS_SWAPPED (loop_info) = true; > } > else >

Re: [PATCH 0/2] Convert s390 to atomic optabs, v2

2012-07-31 Thread Richard Guenther
tside the loop. > >* Given that we're having to zap the mask in %r1 for the second > compare anyway, I wonder if RISBG is really beneficial over OR. > Is RISBG (or ICM for that matter) any faster (or even smaller)? > > > r~ > > > Richard Henderso

Re: [PATCH] Fix the LOOP_BRANCH prediction

2012-07-31 Thread Richard Guenther
On Tue, Jul 31, 2012 at 5:17 AM, Dehao Chen wrote: > Hi, > > This patch fixed the problem when a LOOP_EXIT edge for the inner loop > happened to target at the LOOP_LATCH of the outer loop. As the outer > loop is processed first, the LOOP_BRANCH heuristic is honored > (first_match), thus the inner

Re: [patch] Dump slim RTL to assembly file if the final dump is slim

2012-07-31 Thread Richard Guenther
On Tue, Jul 31, 2012 at 12:13 PM, Steven Bosscher wrote: > Hello, > > For me, the slim RTL dumps are much easier to read than the default > lisp-like representation. I use the -dAP option frequently, to see > where an assembly instruction came from. This patch scratches an itch: > The insns dumped

Re: [PATCH] Fix the LOOP_BRANCH prediction

2012-07-31 Thread Richard Guenther
bb == loop->latch) here instead !header_found && bb->loop_father == loop > /* If we already used more reliable loop exit predictors, do not > bother with PRED_LOOP_EXIT. */ > && !predict

Re: [PATCH] Fix the LOOP_BRANCH prediction

2012-07-31 Thread Richard Guenther
On Tue, Jul 31, 2012 at 12:38 PM, Jan Hubicka wrote: >> On Tue, Jul 31, 2012 at 12:20 PM, Dehao Chen wrote: >> > Are you suggesting a patch like this: >> > >> > Index: gcc/predict.c >> > === >> > --- gcc/predict.c (revision 189

Re: [PATCH] Fix the LOOP_BRANCH prediction

2012-07-31 Thread Richard Guenther
On Tue, Jul 31, 2012 at 12:43 PM, Richard Guenther wrote: > On Tue, Jul 31, 2012 at 12:38 PM, Jan Hubicka wrote: >>> On Tue, Jul 31, 2012 at 12:20 PM, Dehao Chen wrote: >>> > Are you suggesting a patch like this: >>

[PATCH][RFC][6/n] into-SSA TLC

2012-07-31 Thread Richard Guenther
code removed in matrix-reorg.c reminds me of removing that useless beast ... Thanks, Richard. 2012-07-31 Richard Guenther * tree-flow.h (struct gimple_df): Remove syms_to_rename member, add ssa_renaming_needed and rename_vops flags. (SYMS_TO_RENAME): R

Re: [PATCH][5/n] into-SSA TLC

2012-07-31 Thread Richard Guenther
On Mon, 30 Jul 2012, Michael Matz wrote: > Hi, > > On Mon, 30 Jul 2012, Richard Guenther wrote: > > > > > This makes into-SSA no longer rely on variable annotations and instead > > uses on-the-side information local to into/update-SSA. Lookups can > > prob

Re: [PATCH 0/2] Convert s390 to atomic optabs, v2

2012-08-01 Thread Richard Guenther
On Tue, 31 Jul 2012, Richard Henderson wrote: > On 2012-07-31 02:09, Richard Guenther wrote: > > What do we expect __builtin_compare_exchange to do for > > unaligned inputs? > > At the moment we expect it to SIGBUS, as a rule. > > We'd *like* to defer to the libr

[PATCH][7/n] into-SSA TLC

2012-08-01 Thread Richard Guenther
This cleans up the way we rename all virtual operands throughout the compiler by simply providing an abstraction for that. mark_sym_for_renaming is gone then. Bootstrapped and tested on x86_64-unknown-linux-gnu. I will apply 6/n and 7/n later today. Richard. 2012-08-01 Richard Guenther

Re: [PATCH] Improve debug info if tree DCE removes stores (PR debug/50317, fallout)

2012-08-01 Thread Richard Guenther
On Fri, Dec 2, 2011 at 8:28 PM, Jakub Jelinek wrote: > On Fri, Dec 02, 2011 at 02:27:40PM +0100, Richard Guenther wrote: >> This change seems wrong. We are turning valid gimple >> >> # DEBUG D#2 => transfer.0 [with addres taken] >> >> into invalid one >&

[PATCH][1/2] Remove referenced vars

2012-08-01 Thread Richard Guenther
rse lookup capability uid -> decl. This was the last user of referenced_var (). Bootstrapped and tested on x86_64-unknown-linux-gnu. Richard. 2012-08-01 Richard Guenther * tree-flow-inline.h (referenced_var): Remove. * tree-ssa-coalesce.c (create_outofssa_var_map): Rem

[PATCH] Update tree-ssa docs

2012-08-01 Thread Richard Guenther
Committed as obvious. Richard. 2012-08-01 Richard Guenther * tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming. Index: gcc/doc/tree-ssa.texi === --- gcc/doc/tree-ssa.texi (revision 190034) +++ gcc/doc

[PATCH][2a/2] Remove referenced vars

2012-08-01 Thread Richard Guenther
2012-08-01 Richard Guenther * tree-dfa.c (referenced_var_lookup): Remove. * tree-flow.h (referenced_var_lookup): Likewise. * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert. * gimple-pretty-print.c (pp_points_to_solution): Dump

[PATCH][2b/2] Remove referenced vars

2012-08-01 Thread Richard Guenther
This removes the referenced vars machinery (stubbing out add_referenced_vars and gimple_referenced_vars - a patch fixing all callers will be 2c/2). Bootstrap and regtest pending on x86_64-unknown-linux-gnu. Richard. 2012-08-01 Richard Guenther * tree-flow.h (struct gimple_df

Re: Ping: [PATCH] Fix PR46556 (straight-line strength reduction, part 2)

2012-08-01 Thread Richard Guenther
On Sun, Jul 22, 2012 at 5:19 PM, William J. Schmidt wrote: > Ping... > > On Thu, 2012-06-28 at 16:45 -0500, William J. Schmidt wrote: >> Here's a relatively small piece of strength reduction that solves that >> pesky addressing bug that got me looking at this in the first place... >> >> The main p

Re: [PATCH] propagate anti-range to switch in tree-vrp

2012-08-01 Thread Richard Guenther
On Sat, Jul 21, 2012 at 3:57 PM, Tom de Vries wrote: > Jakub, > > this patch adds propagation of anti-ranges to switches. > > The test-case is this: > ... > void > f3 (int s) > { > if (s >> 3 == -2) > /* s in range [ -16, -9]. */ > ; > else > { > /* s in range ~[-16, -9], so

Re: [Patch, Fortran] assumed-rank some bound intrinsics support, fix failures and improve diagnostcs

2012-08-01 Thread Richard Guenther
On Wed, Aug 1, 2012 at 2:37 PM, Tobias Burnus wrote: > On 08/01/2012 01:37 PM, Mikael Morin wrote: >>> >>> However, I found another spot where one needs to have a scalarizer; >>> possibly a poor man's version is enough. Namely INTENT(OUT) handling. >> >> Indeed. >>> >>> Do you have an idea how to

Re: [1/3] remove var_ann: tlc for out-of-ssa

2012-08-01 Thread Richard Guenther
On Wed, Aug 1, 2012 at 4:05 PM, Michael Matz wrote: > Hi, > > this tidies ssa liveness calculation a bit (related to out-of-ssa). In > particular it doesn't make use of var annotations to compress the index > space from partitions to base variable indices anymore, but instead a > hashmap built on

Re: [2/3] remove var_ann: Remove used flag

2012-08-01 Thread Richard Guenther
On Wed, Aug 1, 2012 at 4:09 PM, Michael Matz wrote: > Hi, > > this removes the last member of var_ann_d, a bit used only locally in > remove_unused_locals, so we can as well just use a bitmap. (The funny > renaming of the member I had to do because gengtype doesn't like empty > structs, the whole

Re: [3/3] remove var_ann: die

2012-08-01 Thread Richard Guenther
On Wed, Aug 1, 2012 at 4:13 PM, Michael Matz wrote: > Hi, > > On Wed, 1 Aug 2012, Michael Matz wrote: > >> The only remaining semantic of var_ann now is "if it's non-zero it's a >> non-global variable that was put into referenced_vars". > > And that's removed in this patch. Most of the time it's

Re: rfa: merge handling of locals and globals in remove_unused_locals

2012-08-01 Thread Richard Guenther
On Wed, Aug 1, 2012 at 5:28 PM, Michael Matz wrote: > Hi, > > On Wed, 1 Aug 2012, Richard Guenther wrote: > >> Ok. Would be nice to now unify global and local var handling with a >> single bitmap. > > Yeah, wanted to do that as follow-up. Namely like so. Reg

Re: [PATCH 0/2] Convert s390 to atomic optabs, v2

2012-08-01 Thread Richard Guenther
On Wed, 1 Aug 2012, Richard Henderson wrote: > On 08/01/2012 01:40 AM, Richard Guenther wrote: > > I see. So your issue is that you don't get the knowledge > > that the address is even more aligned than required by the > > builtin. > > Yes. Very helpful for qu

Re: [PATCH][1/2] Remove referenced vars

2012-08-01 Thread Richard Guenther
On Wed, 1 Aug 2012, Richard Guenther wrote: > > This series aims at removing referenced vars. It builds on the into-SSA > TLC series and the still to be posted removal of var-anns. > > This first patch removes SRAs use of referenced vars. Instead of > turning it upside-

[PATCH] SSA default-def TLC

2012-08-02 Thread Richard Guenther
void set_ssa_default_def (struct function *, tree, tree); ! extern tree ssa_default_def (struct function *, tree); ! extern tree get_or_create_ssa_default_def (struct function *, tree); Queued for bootstrap and regtest on x86_64-unknown-linux-gnu. Richard. 2012-08-02 Richard Guenther *

[PATCH] Remove make_rename_temp

2012-08-02 Thread Richard Guenther
It's now a wrapper around create_tmp_reg. Bootstrap and regtest pending on x86_64-unknown-linux-gnu. Richard. 2012-08-02 Richard Guenther * tree-flow.h (make_rename_temp): Remove. * tree-dfa.c (make_rename_temp): Likewise. * cgraphunit.c (thunk_a

Re: ORDERED_EXPR in invert_tree_comparison

2012-08-02 Thread Richard Guenther
On Wed, Aug 1, 2012 at 9:21 PM, Marc Glisse wrote: > Hello, > > an opinion on this? > > (I just noticed: I'll update the list in the comment visible at the top of > the patch if this gets in). It looks ok to me but I am no floating-point expert. Can you add a testcase? Ok with that change. Tha

Re: [patch, fortran] Fix PR 54033, problems with -I, with test cases

2012-08-02 Thread Richard Guenther
On Tue, Jul 31, 2012 at 3:47 PM, Tobias Burnus wrote: > On 07/29/2012 11:24 AM, Thomas Koenig wrote: >> >> here is an updated patch for PR 54033, this time with test cases. >> Thanks to Janis for pointing me in the right direction with these. >> Regression-tested. OK for trunk? > > > Ok. Thanks fo

Re: [PATCH][7/n] into-SSA TLC

2012-08-02 Thread Richard Guenther
On Thu, 2 Aug 2012, Tom de Vries wrote: > On 01/08/12 10:47, Richard Guenther wrote: > > * tree-ssa-tail-merge.c (release_last_vdef): Remove. > > (replace_block_by): Adjust. > > (tail_merge_optimize): Use mark_virtual_operands_for_renaming. > > Richard,

Re: PATCH: Remove redundant instructions after regcprop

2012-08-02 Thread Richard Guenther
On Thu, Aug 2, 2012 at 12:19 PM, Paulo J. Matos wrote: > Forgot to mention: this is to fix PR 54154. > > Updated changelog: > > 2012-08-02 Paulo Matos > > PR middle-end/54154 > > * regcprop.c (copy_value): remove check for redundant moves. > * regcprop.c (copy_value): add check for

Re: [C++ patch] Allow p->~T() when T is a vector

2012-08-02 Thread Richard Guenther
On Thu, Aug 2, 2012 at 1:42 PM, Marc Glisse wrote: > Hello, > > this patch allows p->~T() when T is (after substitution) a vector, which is > necessary for use in std::vector for instance. Why not include VECTOR_TYPE in ARITHMETIC_TYPE_P? > gcc/cp/ChangeLog > 2012-08-02 Marc Glisse > >

Re: ORDERED_EXPR in invert_tree_comparison

2012-08-02 Thread Richard Guenther
On Thu, Aug 2, 2012 at 2:48 PM, Marc Glisse wrote: > On Thu, 2 Aug 2012, Richard Guenther wrote: > >> On Wed, Aug 1, 2012 at 9:21 PM, Marc Glisse wrote: >>> >>> Hello, >>> >>> an opinion on this? >>> >>> (I just noticed: I'll

[PATCH] Speedup into-SSA a bit

2012-08-02 Thread Richard Guenther
This removes some of the redundant hash lookups for the decl aux info. Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2012-08-02 Richard Guenther * tree-into-ssa.c (struct common_info_d): New struct. (struct var_info_d, struct ssa_name_info): Use it

Re: VRP wrapping MULT_EXPR

2012-08-03 Thread Richard Guenther
On Thu, Aug 2, 2012 at 11:49 PM, Marc Glisse wrote: > Hello, > > here is a patch handling multiplication of wrapping integer types in VRP. It > passed bootstrap+testsuite limited to c,c++ and without the testcase, so > I'll retest it better during the night. For some reason the test > libgomp.grap

Re: [PATCH, i386]: Implement atomic_fetch_sub

2012-08-03 Thread Richard Guenther
On Fri, Aug 3, 2012 at 9:24 AM, Uros Bizjak wrote: > On Fri, Aug 3, 2012 at 8:40 AM, Uros Bizjak wrote: > >> We can implement atomic_fetch_sub with atomic_fetch_add and inverted >> operand 2. However, we have to prevent overflows with negation, so >> only const_int operand 2 is allowed in the exp

[PATCH][1/n] Allow anonymous SSA names

2012-08-03 Thread Richard Guenther
-unknown-linux-gnu, applied. Richard. 2012-08-03 Richard Guenther * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query is_gimple_reg on the SSA name, not its variable. (vect_update_ivs_after_vectorizer): Likewise. * tree-ssa-copyrename.c (rename_ssa_copies

[PATCH][0/n] Allow anonymous SSA names

2012-08-03 Thread Richard Guenther
the latter I plan to count created decls during bootstrap from before and after the patch (well, once that bootstraps ;)). Thanks, Richard. TODO: * Add SSA_NAME_FOR_RESULT_DECL (), SSA_NAME_FOR_PARM_DECL () macros, hiding the fact that SSA_NAME_VAR may be NULL. * Likewise add a SSA_NAME_AR

[PATCH][2/n] Allow anonymous SSA names, a bunch of new predicates for SSA names

2012-08-03 Thread Richard Guenther
This adds a bunch of new SSA name predicates to remove explicit uses of SSA_NAME_VAR. Bootstrapped and tested on x86_64-unknown-linux-gnu. I'm leaving this for comments. This mainly removes this cases from explicit covering in further patches. Richard. 2012-08-03 Richard Gue

Re: speedup stack var conflicts (PR54146)

2012-08-03 Thread Richard Guenther
On Fri, Aug 3, 2012 at 3:14 PM, Michael Matz wrote: > Hi, > > as Steven noted in the bug report one reason of the slowness are the > myriads of calls to bitmap_set_bit, resulting from the clique generation > at the start of basic blocks. Can be sped up by using bitmap_ior. He > implemented upper

Re: [PATCH] Remove introduction of undefined overflow in emit_case_bit_test.

2012-08-06 Thread Richard Guenther
On Mon, Aug 6, 2012 at 1:31 AM, Tom de Vries wrote: > Richard, > > the code in emit_case_bit_tests currently introduces a MINUS_EXPR in signed > type > (without checking if signed types wrap or not), which could mean introduction > of > undefined overflow. > > This patch fixes this problem by pe

Re: [PATCH] Improve ifcombine (PR 52005)

2012-08-06 Thread Richard Guenther
On Mon, Aug 6, 2012 at 8:27 AM, Marc Glisse wrote: > > Hello, > > do you have an opinion on this patch (available here: > http://gcc.gnu.org/ml/gcc-patches/2012-07/msg01352.html > ) ? I like it. Thus, the referenced patch is ok for trunk. Thanks, Richard. > Or should we go back to my old patch

Re: [patch] speed up ifcvt:cond_move_convert_if_block

2012-08-06 Thread Richard Guenther
On Mon, Aug 6, 2012 at 8:54 AM, Steven Bosscher wrote: > Hello, > > In PR54146, ifcvt spends a lot of time just clearing memory. This > patch changes the value maps to pointer-maps to fix this issue. > > Bootstrapped&tested on x86_64-unknown-linux-gnu. OK? Ok! Thanks, Richard. > Ciao! > Steven

Re: cosmetic change - simplify cse.c:preferable()

2012-08-06 Thread Richard Guenther
On Sat, 4 Aug 2012, Dimitrios Apostolou wrote: > On Thu, 19 Jul 2012, Richard Guenther wrote: > > > > I don't think it's any good or clearer to understand. > > Hi Richi, I had forgotten I prepared this for PR #19832, maybe you want to > take a look. FWIW

Re: Huge change on 4.7 branch

2012-08-06 Thread Richard Guenther
On Mon, Aug 6, 2012 at 3:25 PM, H.J. Lu wrote: > Hi Nick, > > You checked a huge change into 4,7 branch: > > http://gcc.gnu.org/ml/gcc-cvs/2012-08/msg00149.html > > Is this an accident? I hope so. Please revert. Thanks, Richard. > -- > H.J.

Re: [cxx-conversion] Make double_int a class with methods and operators. (issue6443093)

2012-08-07 Thread Richard Guenther
On Tue, Aug 7, 2012 at 2:35 AM, Lawrence Crowl wrote: > Convert double_int from a struct with function into a class with > operators and methods. > > This patch adds the methods and operators. In general functions of > the form "double_int_whatever" become member functions "whatever" or, > when p

Re: [patch] Use a smaller, dynamic worklist in compute_global_livein

2012-08-07 Thread Richard Guenther
On Tue, Aug 7, 2012 at 8:24 AM, Steven Bosscher wrote: > Hello, > > In the test case for PR54146, compute_global_livein allocates/frees a > worklist for >400,000 basic blocks on each invocation. And it's called > a lot, for rewrite_into_loop_closed_ssa. But the maximum number of > basic blocks eve

Re: [patch] Use a smaller, dynamic worklist in compute_global_livein

2012-08-07 Thread Richard Guenther
On Tue, Aug 7, 2012 at 11:03 AM, Steven Bosscher wrote: > On Tue, Aug 7, 2012 at 10:31 AM, Richard Guenther > wrote: >> On Tue, Aug 7, 2012 at 8:24 AM, Steven Bosscher >> wrote: >>> Hello, >>> >>> In the test case for PR54146, compute_global_livei

Re: [patch] Use a smaller, dynamic worklist in compute_global_livein

2012-08-07 Thread Richard Guenther
On Tue, Aug 7, 2012 at 11:45 AM, Steven Bosscher wrote: > On Tue, Aug 7, 2012 at 11:22 AM, Richard Guenther > wrote: >> Another optimization would be to do >> >> @@ -440,13 +442,13 @@ compute_global_livein (bitmap livein ATT >> &&

Re: fix incorrect SRA transformation on non-integral VIEW_CONVERT argument

2012-04-26 Thread Richard Guenther
On Wed, Apr 25, 2012 at 11:29 PM, Olivier Hainque wrote: > Thanks for your feedback Richard, > > On Apr 25, 2012, at 16:16 , Richard Guenther wrote: >> I think much better would be to simply disallow any toplevel >> VIEW_CONVERT_EXPR of BLKmode, > >> Does that fi

Re: [PR tree-optimization/52558]: RFC: questions on store data race

2012-04-26 Thread Richard Guenther
On Wed, 25 Apr 2012, Aldy Hernandez wrote: > On 04/25/12 06:45, Richard Guenther wrote: > > On Tue, Apr 24, 2012 at 7:43 PM, Aldy Hernandez wrote: > > > On 04/13/12 03:46, Richard Guenther wrote: > > > > > > > > On Fri, Apr 13, 2012

Re: [PATCH] Fix for PR51879 - Missed tail merging with non-const/pure calls

2012-04-26 Thread Richard Guenther
On Wed, Apr 25, 2012 at 11:56 PM, Tom de Vries wrote: > On 25/04/12 11:57, Richard Guenther wrote: > >>>> >> Hmm.  I'm not sure we can conclude that they have the same value! >>>> >> >>>> >> +int bar (int); >>>> >

Re: [PATCH, PR38785] Throttle PRE at -O3

2012-04-26 Thread Richard Guenther
On Wed, Apr 25, 2012 at 8:06 AM, Maxim Kuvyrkov wrote: > On 18/04/2012, at 9:17 PM, Richard Guenther wrote: > >> On Wed, Apr 18, 2012 at 4:15 AM, Maxim Kuvyrkov >> wrote: >>> Steven, >>> J"orn, >>> >>> I am looking into fixing perfor

Re: combine_conversions int->double->int

2012-04-26 Thread Richard Guenther
On Wed, Apr 25, 2012 at 3:58 PM, Marc Glisse wrote: > On Wed, 25 Apr 2012, Richard Guenther wrote: > >> On Wed, Apr 25, 2012 at 10:12 AM, Marc Glisse >> wrote: >>> >>> Hello, >>> >>> a conversion like int->double->int is just the identi

Re: [PATCH] Fix PR52977

2012-04-26 Thread Richard Guenther
re them (think Java/Go/Python modules). And btw - the PCH implementation shares this limitation. All tokens consumed are part of the PCH - changing the state when trying to use the PCH will invalidate it (or crash gcc). In this way PCH is even more limited than PPH because you can only have a sin

Re: [patch] Simplify tree-switch-conversion.c a bit - prep work for gimple switch lowering

2012-04-27 Thread Richard Guenther
On Thu, Apr 26, 2012 at 7:48 PM, Steven Bosscher wrote: > Hello, > > The attached patch re-organizes some code in tree-switch-conversion.c. > All information about a GIMPLE_SWITCH is now collected by one > function, so that my switch lowering code can use the same > switch_conv_info. Bootstrapped&

Re: combine_conversions int->double->int

2012-04-27 Thread Richard Guenther
On Thu, Apr 26, 2012 at 8:43 PM, Marc Glisse wrote: > On Thu, 26 Apr 2012, Richard Guenther wrote: > >> On Wed, Apr 25, 2012 at 3:58 PM, Marc Glisse wrote: >>> >>> Here is take 2 on this patch, which seems cleaner. Bootstrapped and >>> regression tested. &

Re: [C11-atomic] [patch] gimple atomic statements

2012-04-27 Thread Richard Guenther
On Thu, Apr 26, 2012 at 7:53 PM, Andrew MacLeod wrote: > On 04/05/2012 05:14 AM, Richard Guenther wrote: >> >> >> Ok.  Remember that you should use non-tree things if you can in GIMPLE >> land.  This probably means that both the size and the memmodel "operands&

Re: [C11-atomic] [patch] gimple atomic statements

2012-04-27 Thread Richard Guenther
On Thu, Apr 26, 2012 at 10:07 PM, Andrew MacLeod wrote: > On 04/05/2012 05:14 AM, Richard Guenther wrote: >> >> + static inline bool >> + gimple_atomic_has_fail_order (const_gimple gs) >> + { >> +   return gimple_atomic_kind (gs) == GIMPLE_ATOMIC_COMPARE_EXCHANGE

Re: Continue strict-volatile-bitfields fixes

2012-04-27 Thread Richard Guenther
On Fri, Apr 27, 2012 at 10:29 AM, Jakub Jelinek wrote: > On Fri, Apr 27, 2012 at 12:42:41PM +0800, Thomas Schwinge wrote: >> > > GET_MODE_BITSIZE (lmode)« (8 bits).  (With the current sources, lmode is >> > > VOIDmode.) >> > > >> > > Is emmitting »BIT_FIELD_REF <*common, 32, 0> & 255« wrong in thi

Re: [PATCH] Fix for PR51879 - Missed tail merging with non-const/pure calls

2012-04-27 Thread Richard Guenther
On Fri, Apr 27, 2012 at 8:20 AM, Tom de Vries wrote: > On 26/04/12 12:20, Richard Guenther wrote: >> On Wed, Apr 25, 2012 at 11:56 PM, Tom de Vries >> wrote: >>> On 25/04/12 11:57, Richard Guenther wrote: >>> >>>>>>>> Hmm.  I

Re: [PATCH] teach phi-opt to produce -(a COND b)

2012-04-27 Thread Richard Guenther
+} > Index: testsuite/gcc.dg/tree-ssa/phi-opt-10.c > === > --- testsuite/gcc.dg/tree-ssa/phi-opt-10.c(revisione 0) > +++ testsuite/gcc.dg/tree-ssa/phi-opt-10.c(revisione 0) > @@ -0,0 +1,11 @@ > +/* { dg-

Re: set the correct block info for the call stmt in fnsplit (issue6111050)

2012-04-27 Thread Richard Guenther
On Fri, Apr 27, 2012 at 12:50 PM, Eric Botcazou wrote: >> We do not depend on the block structure any more when dealing with >> stack layout for variables in GCC 4.7.0 and above.  I am not saying >> your patch is incorrect or not needed.  Just it will not have an >> effect on variable stack layout

Re: [PATCH] teach emit_store_flag to use clz/ctz

2012-04-27 Thread Richard Guenther
reload_completed" > - [(set (match_dup 2) (ashiftrt:DI (match_dup 1) (const_int 63))) > - (set (match_dup 0) (xor:DI (match_dup 2) (match_dup 1))) > - (set (match_dup 0) (minus:DI (match_dup 0) (match_dup 2)))] > - "") > - > -(define_insn_and_split "*nabsdi2" > - [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,r") > -(neg:DI (abs:DI (match_operand:DI 1 "gpc_reg_operand" "r,0" > - (clobber (match_scratch:DI 2 "=&r,&r"))] > - "TARGET_POWERPC64 && !TARGET_ISEL" > - "#" > - "&& reload_completed" > - [(set (match_dup 2) (ashiftrt:DI (match_dup 1) (const_int 63))) > - (set (match_dup 0) (xor:DI (match_dup 2) (match_dup 1))) > - (set (match_dup 0) (minus:DI (match_dup 2) (match_dup 0)))] > - "") > - > (define_insn "muldi3" >[(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") > (mult:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r") > @@ -13100,13 +13044,9 @@ > operands[2], operands[3]); > } > > - /* For SNE, we would prefer that the xor/abs sequence be used for integers. > - For SEQ, likewise, except that comparisons with zero should be done > - with an scc insns. However, due to the order that combine see the > - resulting insns, we must, in fact, allow SEQ for integers. Fail in > - the cases we don't want to handle or are best handled by portable > - code. */ > - if (GET_CODE (operands[1]) == NE) > + /* Fail in the cases we don't want to handle or are best handled by > + portable code. */ > + if (GET_CODE (operands[1]) == NE || GET_CODE (operands[1]) == EQ) > FAIL; >if ((GET_CODE (operands[1]) == LT || GET_CODE (operands[1]) == LE > || GET_CODE (operands[1]) == GT || GET_CODE (operands[1]) == GE) > > -- Richard Guenther SUSE / SUSE Labs SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer

[PATCH] Remove is_hidden_global_store

2012-04-27 Thread Richard Guenther
This removes is_hidden_global_store in favor of two functions with more clear semantics. Bootstrapped and tested on x86_64-unknown-linux-gnu. Richard. 2012-04-27 Richard Guenther * tree-flow.h (is_hidden_global_store): Remove. * tree-ssa-sink.c (is_hidden_global_store

Re: [PATCH] teach phi-opt to produce -(a COND b)

2012-05-02 Thread Richard Guenther
On Tue, 1 May 2012, Richard Henderson wrote: > On 04/27/2012 03:01 AM, Paolo Bonzini wrote: > > This patch teaches phiopt to look at phis whose arguments are -1 and 0, > > and produce negated setcc statements. > > Is this really a win over a COND_EXPR, i.e. (a < b ? -1 : 0)? > > There is quite a

Re: [PATCH RFC] Warn when optimization flag is given without -O

2012-05-02 Thread Richard Guenther
On Sat, Apr 28, 2012 at 4:48 PM, Alexander Monakov wrote: > > Looks like people who want to play with optimization options are still tripped > by the fact that optimizations are not enabled unless -O is given (even though > it's documented in the manual now).  Can we add a warning for that like be

Re: Optimize calls to functions that return one of their arguments

2012-05-02 Thread Richard Guenther
On Sat, Apr 28, 2012 at 5:31 PM, Bernd Schmidt wrote: > This patch allows us to recognize that even if the argument to memcpy lives > across the call, we can allocate it to a call-used register by reusing the > return value of the function. > > First, the patch sets the existing "fn spec" attribut

Re: [PATCH] Don't ignore compute_all_dependences failures in phiopt (PR tree-optimization/53163)

2012-05-02 Thread Richard Guenther
On Mon, Apr 30, 2012 at 3:39 PM, Jakub Jelinek wrote: > Hi! > > compute_all_dependences in 4.7+ can fail, and cond_if_else_store_replacement > isn't prepared to handle the chrec_dont_know DDR added there in case of > failure (with NULL DDR_A/DDR_B). > > Fixed thusly, bootstrapped/regtested on x86_

Re: [PATCH 1/2] Minor refactoring of tree-vect-patterns.c

2012-05-02 Thread Richard Guenther
On Mon, Apr 30, 2012 at 6:19 PM, Ulrich Weigand wrote: > Hello, > > in working on a fix for PR 52633, I noticed that tree-vect-patterns.c now > contains a number of copies of rather similar code (of which my patch > would have added another copy), so it seems to make sense to do a bit of > refacto

Re: [PATCH 2/2] Minor refactoring of tree-vect-patterns.c

2012-05-02 Thread Richard Guenther
On Mon, Apr 30, 2012 at 6:19 PM, Ulrich Weigand wrote: > Hello, > > as a second step in refactoring this patch introduces a routine > vect_find_single_use to determine whether a defining statement > has one single use within the current vectorization domain. > > The helper is then called wherever

Re: Backported r185231 from trunk. (issue 6139063)

2012-05-02 Thread Richard Guenther
On Mon, Apr 30, 2012 at 9:54 PM, wrote: > Reviewers: xur, davidxl, iant2, > > Message: > I backported the following patch: Btw, there were various followup commits fixing issues on some ports. Richard. > 2012-03-12  Richard Guenther   > >        * gthr.h (__GTHREA

Re: [2/6] Fold prev/next into gimple: fewer gimple_seq_alloc calls

2012-05-02 Thread Richard Guenther
On Wed, May 2, 2012 at 3:06 AM, Michael Matz wrote: > Hi, > > This patch gets rid of some easy gimple_seq_alloc calls that we don't even > need currently because most gimple_seq modifier will lazily allocate one. > Most of the time it's enough to simply initialize a seq to NULL and call > the resp

Re: [3/6] Fold prev/next into gimple

2012-05-02 Thread Richard Guenther
On Wed, May 2, 2012 at 3:14 AM, Michael Matz wrote: > Hi, > > this introduces a new helper (gsi_replace_with_seq) which can replace a > single statement with a sequence, and makes use of it in > gimplify_and_update_call_from_tree.  This make sure that the statements > aren't inserted into the targ

Re: [5/6] Fold prev/next into gimple

2012-05-02 Thread Richard Guenther
On Wed, May 2, 2012 at 3:28 AM, Michael Matz wrote: > Hi, > > this patch basically is the one that makes all interfaces that possibly > change a gimple_seq take a pointer to one, this time _including_ the > statement iterator. > > For that I opted to use the same idiom as our basic block edge iter

Re: [patch] PR53153

2012-05-02 Thread Richard Guenther
On Wed, May 2, 2012 at 10:32 AM, Steven Bosscher wrote: > Hello, > > The attached patch fixes PR53153. > > The problem is that tree-ssa-forwprop.c propagates away a cast, but > leaves out-of-range case labels in the switch. Before my patch for > r186579, the code in stmt.c would remove such case l

Re: [PATCH RFC] Warn when optimization flag is given without -O

2012-05-02 Thread Richard Guenther
On Wed, May 2, 2012 at 12:03 PM, Alexander Monakov wrote: > > > On Wed, 2 May 2012, Richard Guenther wrote: > >> That's surely too coarse - you will warn about options that _will_ >> have an effect. >> There is currently no easy way to glob all affected options

Re: [PATCH] Don't ignore compute_all_dependences failures in phiopt (PR tree-optimization/53163)

2012-05-02 Thread Richard Guenther
On Wed, May 2, 2012 at 12:04 PM, Jakub Jelinek wrote: > On Wed, May 02, 2012 at 11:24:13AM +0200, Richard Guenther wrote: >> > Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, >> > ok for trunk/4.7? >> >> Ok. > > Thanks. > >> &

Re: [PATCH] Make sizetypes no longer sign-extending

2012-05-02 Thread Richard Guenther
On Fri, 27 Apr 2012, Eric Botcazou wrote: > > Ah, and all ACATS fails and > > > > -FAIL: gnat.dg/loop_optimization3.adb (test for excess errors) > > -FAIL: gnat.dg/loop_optimization3.adb execution test > > -FAIL: gnat.dg/test_8bitlong_overflow.adb (test for excess errors) > > -FAIL: gnat.dg/test_8

Re: [PATCH] Fix predcom VTA ICE (PR debug/53174)

2012-05-03 Thread Richard Guenther
= (*h)[1]; > + m += (*h)[2]; > + h += 274; > + k += (*h)[0]; > + l += (*h)[1]; > + m += (*h)[2]; > + h++; > + k += (*h)[0]; > + l += (*h)[1]; > + m += (*h)[2]; > + h++; > + k += (*h)[0]; > + l += (*h)[1]; > +

Re: [i386] access subvectors

2012-05-03 Thread Richard Guenther
On Wed, May 2, 2012 at 11:46 PM, Marc Glisse wrote: > Hello, > > I definitely don't expect the attached patch to be accepted, but I would > like some advice on the direction to go, and a patch that passes the > testsuite and does the optimization I want on a couple testcases seems like > it may he

[PATCH] Fix PR53144

2012-05-03 Thread Richard Guenther
This fixes PR53144 - we were assigning a constant value-id to a non-constant value. That breaks bitmap set invariants and thus we end up endlessly inserting things. Oops. Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk and branch. Richard. 2012-05-03 Richard Guenther

Re: [PATCH] Fix overzealous DSE on sparc

2012-05-03 Thread Richard Guenther
On Thu, May 3, 2012 at 10:31 AM, Richard Sandiford wrote: > David Miller writes: >> From: Richard Sandiford >> Date: Wed, 02 May 2012 20:37:58 +0100 >> >>> I think the DSE assuption is fair though.  If you reuse MEMs like >>> this, then they're no longer just serving the purpose described by >>>

Re: [patch] Fix dominance info in switch conversion

2012-05-03 Thread Richard Guenther
On Thu, May 3, 2012 at 10:29 AM, Steven Bosscher wrote: > Hello, > > Throwing away dominance info is wasteful if it is so easy to fix. The > immediate dominators are easily known, and iterate_fix_dominators() > can take care of the rest. > > And if we're doing to free post-dominance info anyway, d

[PATCH] Fix gfortran.dg/pr52621.f90 testcase

2012-05-03 Thread Richard Guenther
Committed as obvious. Richard. 2012-05-03 Richard Guenther * gfortran.dg/pr52621.f90: Add -w to avoid diagnostic about unsupported prefetching support. Index: gcc/testsuite/gfortran.dg/pr52621.f90 === --- gcc

Re: [PATCH] Fix overzealous DSE on sparc

2012-05-03 Thread Richard Guenther
On Thu, May 3, 2012 at 11:38 AM, David Miller wrote: > From: Richard Sandiford > Date: Thu, 03 May 2012 10:17:44 +0100 > >> Richard Guenther writes: >>> On Thu, May 3, 2012 at 10:31 AM, Richard Sandiford >>> wrote: >>>> David Miller writes: >&

Re: [PATCH] teach emit_store_flag to use clz/ctz

2012-05-03 Thread Richard Guenther
On Fri, Apr 27, 2012 at 2:43 PM, Paolo Bonzini wrote: > Il 27/04/2012 13:16, Richard Guenther ha scritto: >> In optabs.c we compare the CTZ_DEFINED_VALUE_AT_ZERO against two, >> is != 0 really what you want here?  The docs suggest to me >> that as you are using the optab bel

Re: [C11-atomic] [patch] gimple atomic statements

2012-05-03 Thread Richard Guenther
On Fri, Apr 27, 2012 at 2:31 PM, Andrew MacLeod wrote: > On 04/27/2012 04:37 AM, Richard Guenther wrote: >> >> Since integral atomics are always of an unsigned type ,  I could switch >> over >> and use 'unsigned size' instead of 'tree fntype' for

Re: [PATCH] Fix for PR51879 - Missed tail merging with non-const/pure calls

2012-05-03 Thread Richard Guenther
On Wed, May 2, 2012 at 4:06 PM, Tom de Vries wrote: > On 27/04/12 11:01, Richard Guenther wrote: > >>>>>> I see you do not handle > >>>>>> struct S { int i; }; >>>>>> struct S foo (void); >>>>>> struct S

Re: fix incorrect SRA transformation on non-integral VIEW_CONVERT argument

2012-05-03 Thread Richard Guenther
On Thu, May 3, 2012 at 10:21 AM, Olivier Hainque wrote: > > On Apr 30, 2012, at 16:18 , Olivier Hainque wrote: >>> Can you formally relate those three representations and tell me why >>> VIEW_CONVERT_EXPR is useful (not only convenient because of less operands) >>> to use on lvalues (thus memory,

Re: [PATCH] Fix overzealous DSE on sparc

2012-05-03 Thread Richard Guenther
On Thu, May 3, 2012 at 11:52 AM, David Miller wrote: > From: Richard Guenther > Date: Thu, 3 May 2012 11:48:03 +0200 > >> calls.c is unsafe, too.  Which is probably why making DSE stronger for >> calls using the usual alias predicates did not work. > > Well, when

<    5   6   7   8   9   10   11   12   13   14   >