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
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
>
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
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.
>> >
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 ...
-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
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
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
>>>
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
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
>
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
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
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
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
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
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:
>>
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
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
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
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
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
>&
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
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
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
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
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
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
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
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
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
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
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
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
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-
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
*
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
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
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
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,
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
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
>
>
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
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
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
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
-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
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
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
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
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
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
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
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
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.
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
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
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
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
>> &&
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
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
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);
>>>> >
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
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 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
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&
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.
&
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&
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
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
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
+}
> 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-
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
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
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
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
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
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
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_
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
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
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
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
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
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
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
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
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.
>
>> &
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
= (*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];
> +
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
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
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
>>>
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
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
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:
>&
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
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
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
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,
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
901 - 1000 of 3817 matches
Mail list logo