[x86,PATCH] Simple performance tuning for SLM.

2013-09-10 Thread Yuri Rumyantsev
for trunk? ChangeLog: 2013-09-10 Yuri Rumyantsev * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE for SLM. patch Description: Binary data

[x86,PATCH] Simple fix for Atom LEA splitting.

2013-09-16 Thread Yuri Rumyantsev
Hi All, Here is 1-line fix which improves Atom performance by better distance estimation. We got ~20% speedup on one of bench from eembc2.0 with this fix. Bootstrapping and regression testing were successful for x86-64. Is it OK for trunk? ChangeLog: 2013-09-16 Yuri Rumyantsev * config

Re: [x86,PATCH] Simple fix for Atom LEA splitting.

2013-09-16 Thread Yuri Rumyantsev
Uros, Thanks for your review. I attached modified patch - is it OK for you now? 2013/9/16 Uros Bizjak : > On Mon, Sep 16, 2013 at 2:50 PM, Yuri Rumyantsev wrote: >> Hi All, >> >> Here is 1-line fix which improves Atom performance by better distance >> estimation. We

Re: [x86,PATCH] Simple fix for Atom LEA splitting.

2013-09-17 Thread Yuri Rumyantsev
Here is a final patch with fixed commentary. 2013/9/16 Uros Bizjak : > On Mon, Sep 16, 2013 at 5:01 PM, Yuri Rumyantsev wrote: > >> Does this comment looks good to you: >> >> if (start != NULL_RTX) >> { >> bb = BLOCK_FOR_INSN (start

Additional fix for pre-reload schedule on x86 targets.

2012-10-23 Thread Yuri Rumyantsev
. The fix was fully tested on all acceptable suites and gcc bootstrapping with turned on pre-reload scheduler. Tested for i386 and x86-64, ok for trunk? ChangeLog: 2012-10-23 Yuri Rumyantsev * config/i386/i386.c (insn_is_function_arg) : Add check on CALL instruction

[gomp4 simd, RFC] Simple fix to override vectorization cost estimation.

2013-10-31 Thread Yuri Rumyantsev
Hi All, Here is a simple fix which allows to vectorize loop marked with 'pragma omp simd' even if cost model tells us that vectorization is not profitable. I checked that on simple test-case is works as expected. Is it Ok for trunk? ChangeLog: 2013-10-31 Yuri Rumyantsev * tree-v

Re: [PATCH PR68542]

2016-01-22 Thread Yuri Rumyantsev
. Is it OK for trunk? Thanks. Yuri. ChangeLog: 2016-01-22 Yuri Rumyantsev PR middle-end/68542 * config/i386/i386.c (ix86_expand_branch): Add support for conditional brnach with vector comparison. * config/i386/sse.md (define_expand "cbranch4): Add define-expand for vector comparion with

Re: [PATCH PR68542]

2016-01-28 Thread Yuri Rumyantsev
Thanks Richard. Uros, Could you please review back-end part of this patch? Thanks. Yuri. 2016-01-28 16:26 GMT+03:00 Richard Biener : > On Fri, Jan 22, 2016 at 3:29 PM, Yuri Rumyantsev wrote: >> Richard, >> >> I fixed all remarks pointed by you in vectorizer part of patch

Re: [off-list] Re: [PATCH PR68542]

2016-01-29 Thread Yuri Rumyantsev
Uros, Here is update patch which includes (1) couple changes proposed by Richard in tree-vect-loop.c and (2) the changes in back-end proposed by you. Is it OK for trunk? Bootstrap and regression testing dis not show any new failures. ChangeLog: 2016-01-29 Yuri Rumyantsev PR middle-end

[PATCH PR69652, Regression]

2016-02-04 Thread Yuri Rumyantsev
. Bootstrapping and regression testing on v86-64 did not show any new failures. Is it OK for trunk? ChangeLog: 2016-02-04 Yuri Rumyantsev PR tree-optimization/69652 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1 to nested loop, introduce new SCALAR_VUSE vector to keep vuse of all

Re: [PATCH PR69652, Regression]

2016-02-05 Thread Yuri Rumyantsev
all vector statements in semi-hammock including SQRT. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2016-02-05 Yuri Rumyantsev PR tree-optimization/69652 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1 to nested loop, introd

Re: [Patch] Gate vect-mask-store-move-1.c correctly, and actually output the dump

2016-02-08 Thread Yuri Rumyantsev
Hi James, Thanks for reporting this issue. I prepared slightly different patch since we don't need to add tree-vect dump option - it is on by default for all tests in /vect directory. gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-mask-store-move-1.c: Gate dump with x86 target. 2016-02-08 16:07 GM

Re: [Patch] Gate vect-mask-store-move-1.c correctly, and actually output the dump

2016-02-08 Thread Yuri Rumyantsev
Sorry for troubles. One line must be excluded from test: -/* { dg-options "-O3" } */ Here is updated patch. Best regards. Yuri. 2016-02-08 16:40 GMT+03:00 James Greenhalgh : > On Mon, Feb 08, 2016 at 04:29:31PM +0300, Yuri Rumyantsev wrote: >> Hi James, >> >>

Re: [PATCH PR69652, Regression]

2016-02-10 Thread Yuri Rumyantsev
Thanks Richard for your comments. I changes algorithm to remove dead scalar statements as you proposed. Bootstrap and regression testing did not show any new failures on x86-64. Is it OK for trunk? Changelog: 2016-02-10 Yuri Rumyantsev PR tree-optimization/69652 * tree-vect-loop.c

[PATCH PR69942] Fix test problem

2016-02-29 Thread Yuri Rumyantsev
Hi All, Here is a simple patch for gcc.dg/ifcvt5.c test - detect "6 basic blocks" string in rtl dump also to accept speculative motion of else-part of if-stmt before test-part aka IF-CASE-2. Is it OK for trunk? ChanageLog: 2016-02-29 Yuri Rumyantsev PR rtl-optimization/69942 gcc

Re: [PATCH PR69652, Regression]

2016-02-29 Thread Yuri Rumyantsev
This test simply checks that ICE is not occurred but not any vectorization issues. Best regards. Yuri. 2016-02-28 20:29 GMT+03:00 H.J. Lu : > On Wed, Feb 10, 2016 at 2:26 AM, Yuri Rumyantsev wrote: >> Thanks Richard for your comments. >> I changes algorithm to remove dead scala

Re: [PATCH PR69652, Regression]

2016-02-29 Thread Yuri Rumyantsev
Jacub! Here is patch and ChangeLog to move pr69652.c to /vect directory. Is it OK for trunk. Thanks. Yuri. ChangeLog: 2016-02-29 Yuri Rumyantsev PR tree-optimization/69652 gcc/testsuite/ChangeLog: * gcc.dg/torture/pr69652.c: Delete test. * gcc.dg/vect/pr69652.c: New test. 2016-02-29 16

[ipa PATCH] Fix bug introduced by r202567

2013-12-02 Thread Yuri Rumyantsev
Hi All, Attached is evident fix found in process of investigation of PR 58721. Note that this fix does not resolve it. Is it OK for trunk? ChangeLog: 2013-11-02 Yuri Rumyantsev * gcc/ipa-inline.c (check_callers) : Add missed pointer de-reference. ipa-inline-fix Description: Binary data

[x86 PATCH] Fix cost model for Silvermont.

2013-12-13 Thread Yuri Rumyantsev
Hi All, Attached is one-line fix which reduced a cost of integer multiplication for HI mode since imul instruction design was improved in SLM (in comparison with Atom). Is it OK for trunk? ChangeLog: 2013-12-13 Yuri Rumyantsev * config/i386/i386.c (slm_cost): Fix imul cost for HI. x86

[PATCH] Unswitching outer loops.

2015-07-10 Thread Yuri Rumyantsev
n (such test-case is also included to patch). Bootstrap and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2015-07-10 Yuri Rumyantsev * tree-ssa-loop-unswitch.c: Include "tree-cfgcleanup.h" and "gimple-iterator.h", add protot

Re: [PATCH] Simple optimization for MASK_STORE.

2015-07-20 Thread Yuri Rumyantsev
t-hook. Could you propose another solution implementing it? Thanks. Yuri. 2015-07-10 8:51 GMT+03:00 Jeff Law : > On 06/18/2015 08:32 AM, Yuri Rumyantsev wrote: >> >> Richard, >> >> Here is updated patch which does not include your proposal related to >> the targe

[PATH PR66926,PR66951} simple fix for ICE.

2015-07-22 Thread Yuri Rumyantsev
Hi All, Here is simple fix which fixes PR66926 and PR66951 - fix condition for renaming virtual operands to determine that statement is outside of loop. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? gcc/ChangeLog 2015-07-22 Yuri Rumyantsev PR tree

Re: [PATCH] Unswitching outer loops.

2015-07-23 Thread Yuri Rumyantsev
Hi Richard, I checked that both test-cases from 23855 are sucessfully unswitched by proposed patch. I understand that it does not catch deeper loop nest as for (i=0; i<10; i++) for (j=0;j: > On Fri, Jul 10, 2015 at 12:02 PM, Yuri Rumyantsev wrote: >> Hi All, >> &g

Re: [PATCH] Simple optimization for MASK_STORE.

2015-07-24 Thread Yuri Rumyantsev
AM, Yuri Rumyantsev wrote: >> >> Hi Jeff! >> >> Thanks for your details comments. >> >> You asked: >> How are conditionals on vectors usually handled? You should try to >> mimick that and report, with detail, why that's not working. >> >

Re: [PATCH] Unswitching outer loops.

2015-07-31 Thread Yuri Rumyantsev
r-loop vectorization. But it is clear that such transformation can be done other pass. What is your opinion? Yuri. 2015-07-28 13:50 GMT+03:00 Richard Biener : > On Thu, Jul 23, 2015 at 4:45 PM, Yuri Rumyantsev wrote: >> Hi Richard, >> >> I checked that both test-cases fr

Re: [PATCH] Simple optimization for MASK_STORE.

2015-08-06 Thread Yuri Rumyantsev
-08-06 Yuri Rumyantsev * config/i386/i386.c (ix86_expand_branch): Implement vector comparison with boolean result. * config/i386/sse.md (define_expand "cbranch4): Add define for vector comparion. * fold-const.c (fold_relational_const): Add handling of vector comparison with boolean r

Re: [PATCH] Unswitching outer loops.

2015-09-30 Thread Yuri Rumyantsev
any new failures. What is your opinion? Thanks. ChangeLog: 2015-09-30 Yuri Rumyantsev * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and "cfghooks.h", add prototypes for introduced new functions. (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all

Re: [PATCH] Unswitching outer loops.

2015-10-05 Thread Yuri Rumyantsev
-10-05 13:57 GMT+03:00 Richard Biener : > On Wed, Sep 30, 2015 at 12:46 PM, Yuri Rumyantsev wrote: >> Hi Richard, >> >> I re-designed outer loop unswitching using basic idea of 23855 patch - >> hoist invariant guard if loop is empty without guard. Note that this

Re: [PATCH] Unswitching outer loops.

2015-10-06 Thread Yuri Rumyantsev
: 2015-10-06 Yuri Rumyantsev * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and "cfghooks.h", add prototypes for introduced new functions. (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all checks on ability of loop unswitching to tree_unswitch

Re: [PATCH] Unswitching outer loops.

2015-10-07 Thread Yuri Rumyantsev
Richard, I've fixed adding virtual phi argument and add check on irreducible basic block. New patch is attached. I checked it for bootstrap and regression testing, no new failures. ChangeLog: 2015-10-07 Yuri Rumyantsev * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h"

Re: [PATCH] Unswitching outer loops.

2015-10-07 Thread Yuri Rumyantsev
Richard, I noticed that 'gimple' type was changed and send you updated patch. Thanks. Yuri. 2015-10-07 12:53 GMT+03:00 Yuri Rumyantsev : > Richard, > > I've fixed adding virtual phi argument and add check on irreducible basic > block. > New patch is attached. >

[PATCH] Simple 2-lines fix for outer-loop vectorization.

2015-10-08 Thread Yuri Rumyantsev
Yuri Rumyantsev * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi in the tail of outer-loop. gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-outer-simd-3.c: New test. patch.outer-vec Description: Binary data

[PATCH PR67909 PR67947]

2015-10-13 Thread Yuri Rumyantsev
Hi All, Here is a simple patch for unswitching outer loop through guard-edge hoisting. The check that guard-edge is around the inner loop was missed. Bootstrapping and regression testing did not show new failures. Is it OK for trunk? ChangeLog: 2014-10-13 Yuri Rumyantsev PR tree

Re: [PATCH PR67909 PR67947]

2015-10-13 Thread Yuri Rumyantsev
Here is updated patch with splitting long line. The patch is attached. Yuri. 2015-10-13 15:38 GMT+03:00 H.J. Lu : > On Tue, Oct 13, 2015 at 4:57 AM, Yuri Rumyantsev wrote: >> Hi All, >> >> Here is a simple patch for unswitching outer loop through guard-edge >> hoi

[RFC] Combine vectorized loops with its scalar remainder.

2015-10-28 Thread Yuri Rumyantsev
Hi All, Here is a preliminary patch to combine vectorized loop with its scalar remainder, draft of which was proposed by Kirill Yukhin month ago: https://gcc.gnu.org/ml/gcc-patches/2015-09/msg01435.html It was tested wwith '-mavx2' option to run on Haswell processor. The main goal of it is to impr

Re: [PATCH] Simple optimization for MASK_STORE.

2015-11-02 Thread Yuri Rumyantsev
pe)), MODE_INT, 0); ext_type = lang_hooks.types.type_for_mode (ext_mode , 1); but I've got zero type for it. Should I miss something? Any help will be appreciated. Yuri. 2015-08-13 14:40 GMT+03:00 Richard Biener : > On Thu, Aug 13, 2015 at 1:32 PM, Yuri Rumyantsev wrote: >> Hi

Re: [RFC] Combine vectorized loops with its scalar remainder.

2015-11-03 Thread Yuri Rumyantsev
+03:00 Richard Henderson : > On 10/28/2015 11:45 AM, Yuri Rumyantsev wrote: >> >> Hi All, >> >> Here is a preliminary patch to combine vectorized loop with its scalar >> remainder, draft of which was proposed by Kirill Yukhin month ago: >> https://gcc.gnu.org/ml/

Re: [RFC] Combine vectorized loops with its scalar remainder.

2015-11-03 Thread Yuri Rumyantsev
-constant trip count. Yuri. 2015-11-03 14:47 GMT+03:00 Richard Biener : > On Wed, Oct 28, 2015 at 11:45 AM, Yuri Rumyantsev wrote: >> Hi All, >> >> Here is a preliminary patch to combine vectorized loop with its scalar >> remainder, draft of which was proposed by Kirill

Re: [PATCH] Simple optimization for MASK_STORE.

2015-11-05 Thread Yuri Rumyantsev
not successful and I returned to vectori comparison with scalar Boolean result. ChangeLog: 2015-11-05 Yuri Rumyantsev * config/i386/i386.c: Add conditional initialization of PARAM_ZERO_TEST_FOR_MASK_STORE. (ix86_expand_branch): Implement vector comparison with boolean result. * config/i386/i386

Re: [PATCH] Simple optimization for MASK_STORE.

2015-11-06 Thread Yuri Rumyantsev
Richard, I tried it but 256-bit precision integer type is not yet supported. Yuri. 2015-11-06 15:56 GMT+03:00 Richard Biener : > On Mon, Nov 2, 2015 at 4:24 PM, Yuri Rumyantsev wrote: >> Hi Richard, >> >> I've come back to this optimization and try to implement your

Re: [PATCH] Simple optimization for MASK_STORE.

2015-11-11 Thread Yuri Rumyantsev
rd Biener : >>> On Tue, Nov 10, 2015 at 1:48 PM, Ilya Enkovich >>> wrote: >>>> 2015-11-10 15:33 GMT+03:00 Richard Biener : >>>>> On Fri, Nov 6, 2015 at 2:28 PM, Yuri Rumyantsev >>>>> wrote: >>>>>> Richard, >>>>&

Re: [RFC] Combine vectorized loops with its scalar remainder.

2015-11-13 Thread Yuri Rumyantsev
n Tue, Nov 3, 2015 at 1:08 PM, Yuri Rumyantsev wrote: >>>> Richard, >>>> >>>> It looks like misunderstanding - we assume that for GCCv6 the simple >>>> scheme of remainder will be used through introducing new IV : >>>> https://gcc.

Re: [PATCH] Simple optimization for MASK_STORE.

2015-11-19 Thread Yuri Rumyantsev
is is applied to very specialized context. My answers are below. 2015-11-12 16:58 GMT+03:00 Richard Biener : > On Wed, Nov 11, 2015 at 2:13 PM, Yuri Rumyantsev wrote: >> Richard, >> >> What we should do to cope with this problem (structure size increasing)? >> Shoul

Re: [RFC] Combine vectorized loops with its scalar remainder.

2015-11-23 Thread Yuri Rumyantsev
Hi Richard, Did you have a chance to look at this? Thanks. Yuri. 2015-11-13 13:35 GMT+03:00 Yuri Rumyantsev : > Hi Richard, > > Here is updated version of the patch which 91) is in sync with trunk > compiler and (2) contains simple cost model to estimate profitability > of

[PATCH PR68542]

2015-11-30 Thread Yuri Rumyantsev
Hi All, Here is a patch for 481.wrf preformance regression for avx2 which is sligthly modified mask store optimization. This transformation allows perform unpredication for semi-hammock containing masked stores, other words if we have a loop like for (i=0; i PR middle-end/68542 * config/i386/i386

Re: [RFC] Combine vectorized loops with its scalar remainder.

2015-11-30 Thread Yuri Rumyantsev
15-11-27 16:45 GMT+03:00 Richard Biener : > On Fri, Nov 13, 2015 at 11:35 AM, Yuri Rumyantsev wrote: >> Hi Richard, >> >> Here is updated version of the patch which 91) is in sync with trunk >> compiler and (2) contains simple cost model to estimate profitability >&g

Re: [PATCH PR68542]

2015-12-04 Thread Yuri Rumyantsev
this transformation works for "-march=bdver4" option and regression for 481.wrf must disappear too. Thanks. Yuri. 2015-12-04 15:18 GMT+03:00 Richard Biener : > On Mon, Nov 30, 2015 at 2:11 PM, Yuri Rumyantsev wrote: >> Hi All, >> >> Here is a patch for 481.wrf pref

Re: [PATCH PR68542]

2015-12-07 Thread Yuri Rumyantsev
Richard! Here is middle-end part of patch with changes proposed by you. Is it OK for trunk? Thanks. Yuri. ChangeLog: 2015-12-07 Yuri Rumyantsev PR middle-end/68542 * fold-const.c (fold_relational_const): Add handling of vector comparison with boolean result. * tree-cfg.c

Re: [PATCH PR68542]

2015-12-08 Thread Yuri Rumyantsev
Hi Richard, Here is the second part of patch. Is it OK for trunk? I assume that it should fix huge degradation on 481.wrf for -march=bdver4 also. ChangeLog: 2015-12-08 Yuri Rumyantsev PR middle-end/68542 * config/i386/i386.c (ix86_expand_branch): Implement integral vector comparison with

[PATCH PR62011]

2014-08-14 Thread Yuri Rumyantsev
tzcnt instructions. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? gcc/ChangeLog 2014-08-14 Yuri Rumyantsev PR target/62011 * config/i386/i386-protos.h (ix86_avoid_false_dep_for_bm): New function prototype. * config/i386/i386.c (ix86_avoid_false_dep_for_bm

Re: [PATCH PR62011]

2014-08-14 Thread Yuri Rumyantsev
), %rax addq %rax, %rcx xorq %rax, %rax popcntq (%rbx,%rsi,8), %rax addq %rax, %rcx leal 4(%rdx), %eax addq %rcx, %r14 movq %rax, %rdx cmpq %rax, %r12 ja .L23 2014-08-14 18:06 GMT+04:00 Ilya Enkovich : > 2014-08-14 18:00 GMT+04:00 Alexander Monakov : >> >> >> On Thu, 14 Aug

Re: [PATCH PR62011]

2014-08-14 Thread Yuri Rumyantsev
4:50 AM, Yuri Rumyantsev wrote: >> Hi All, >> >> Here is a fix for PR 62011 - remove false dependency for unary >> bit-manipulation instructions for latest BigCore chips (Sandybridge >> and Haswell) by outputting in assembly file zeroing destination >> reg

Re: [PATCH PR62011]

2014-08-15 Thread Yuri Rumyantsev
I checked that zeroing destination operand for unary bit-manipulation instruction is helpful for 64- and 32-bit mode only. So the patch was changed. Is it OK for trunk? gcc/ChangeLog 2014-08-15 Yuri Rumyantsev PR target/62011 * config/i386/i386-protos.h (ix86_avoid_false_dep_for_bm): New

Re: [PATCH] Extended if-conversion for loops marked with pragma omp simd.

2014-08-15 Thread Yuri Rumyantsev
a chain of cond expressions is produced. Updated patch is attached. Any comments will be appreciated. 2014-08-15 Yuri Rumyantsev * tree-if-conv.c (cgraph.h): Add include file to detect function clone. (flag_force_vectorize): New variable. (edge_predicate): New function. (set_edge_predicat

Re: [PATCH PR62011]

2014-08-15 Thread Yuri Rumyantsev
Jakub, Is it important to have correct value for length attribute for Big Cores? As I new this attribute is used for code layout alignment. 2014-08-15 15:54 GMT+04:00 Jakub Jelinek : > On Fri, Aug 15, 2014 at 03:45:33PM +0400, Yuri Rumyantsev wrote: >> gcc/ChangeLog >> 2

Re: [PATCH PR62011]

2014-08-18 Thread Yuri Rumyantsev
ch or you do it yourself? Thanks. Yuri. 2014-08-15 18:06 GMT+04:00 Uros Bizjak : > On Fri, Aug 15, 2014 at 2:26 PM, Yuri Rumyantsev wrote: > >> Is it important to have correct value for length attribute for Big Cores? >> As I new this attribute is used for code layout alignment.

Re: [PATCH] Extended if-conversion for loops marked with pragma omp simd.

2014-09-08 Thread Yuri Rumyantsev
Richard, Did you have a chance to look at this? Thanks. 2014-08-15 16:02 GMT+04:00 Yuri Rumyantsev : > Richard! > Here is updated patch with the following changes: > > 1. Any restrictions on phi-function were eliminated for extended conversion. > 2. Put predicate for critica

[x86,PATCH] Additional fix for 57756.

2013-11-19 Thread Yuri Rumyantsev
le fix was designed to cure this issue - definition of TARGET_FPMATH_DEFAULT_P macros was missed in i386/ssemath.h. Also one missed fix was done. Bootstrapping and regression testing were successful. Is it OK for trunk 2013-11-20 Yuri Rumyantsev * config/i386/i386.c (ix86_option_override_inte

Re: [x86,PATCH] Additional fix for 57756.

2013-11-19 Thread Yuri Rumyantsev
Resend modified ChangeLog: 2013-11-20 Yuri Rumyantsev PR target/57756 * config/i386/i386.c (ix86_option_override_internal): Add missed argument prefix for 'ix86_fpmath'. * config/i386/ssemath.h: Add missed definition of TARGET_FPMATH_DEFAULT_P macros. 2013/11/19 H.J. Lu : > O

[x86 PATCH] Additional changes Silvermont enabling.

2013-11-22 Thread Yuri Rumyantsev
Hi, This is addendum to H.J.'s patch for SIlvermont. Testing is in progress. Is it OK for the trunk after testing completion? 2013-11-22 Yuri Rumyantsev libgcc: * config/i386/cpuinfo.c (get_intel_cpu): Add Silvermont cases. gcc: * config/i386/i386.c(processor_alias_table): E

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-13 Thread Yuri Rumyantsev
Richard, Here is updated patch (part1) for extended if conversion. Second part of patch will be sent later. Changelog. 2014-10-13 Yuri Rumyantsev * tree-if-conv.c (cgraph.h): Add include file to detect function clone. (flag_force_vectorize): New variable. (edge_predicate): New function

[PATCH, 2/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-13 Thread Yuri Rumyantsev
are dead locally, i.e. local dead code elimination. Note that such dead code can prevent loop vectorization. Changelog: 2014-10-13 Yuri Rumyantsev * tree-if-conv.c (cgraph.h): Add include file to issue error message. (phi_has_two_different_args): New function. (is_cond_scalar_reduction): Add

[PATCH] Simple improvement for predicate computation in if-convert phase.

2014-10-16 Thread Yuri Rumyantsev
p1 & p2 | p1 & !p2. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? gcc/ChangeLog 2014-10-16 Yuri Rumyantsev * tree-if-conv.c (add_to_predicate_list): Check unconditionally that bb is always executed to early exit. Use predicate of cd-equi

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-16 Thread Yuri Rumyantsev
Richard, Here is reduced patch as you requested. All your remarks have been fixed. Could you please look at it ( I have already sent the patch with changes in add_to_predicate_list for review). Thanks. Yuri. ChangeLog 2014-10-16 Yuri Rumyantsev (flag_force_vectorize): New variable

Re: [PATCH] Simple improvement for predicate computation in if-convert phase.

2014-10-17 Thread Yuri Rumyantsev
is >largely responsible for the hack you're doing with having the function scoped >static variable join_bb. I don't have such test-case and I assume that if bb is always executed, it is not predicated. I also deleted "join_bb" in my changes. Is it OK for trunk now.

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-17 Thread Yuri Rumyantsev
asic blocks with only critical incoming edges since support for extended predication of phi nodes will be in next patch. Could you please clarify your statement. I attached modified patch. ChangeLog: 2014-10-17 Yuri Rumyantsev (flag_force_vectorize): New variable. (edge_predicate): N

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-20 Thread Yuri Rumyantsev
GMT+04:00 Richard Biener : > On Fri, Oct 17, 2014 at 4:09 PM, Yuri Rumyantsev wrote: >> Richard, >> >> I reworked the patch as you proposed, but I didn't understand what >> did you mean by: >> >>>So please rework the patch so critical edges are alwa

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-21 Thread Yuri Rumyantsev
Richard, I did some changes in patch and ChangeLog to mark that support for if-convert of blocks with only critical incoming edges will be added in the future (more precise in patch.4). Could you please review it. Thanks. ChangeLog: 2014-10-21 Yuri Rumyantsev (flag_force_vectorize): New

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-21 Thread Yuri Rumyantsev
also. Did I miss something? Thanks ahead. 2014-10-21 16:44 GMT+04:00 Richard Biener : > On Tue, Oct 21, 2014 at 2:25 PM, Yuri Rumyantsev wrote: >> Richard, >> >> I did some changes in patch and ChangeLog to mark that support for >> if-convert of blocks with only crit

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-21 Thread Yuri Rumyantsev
some minor changes in patch. But still did not get any feedback on it. Could you please take a look also on it? 2014-10-21 17:38 GMT+04:00 Richard Biener : > On Tue, Oct 21, 2014 at 3:20 PM, Yuri Rumyantsev wrote: >> Richard, >> >> Yes, This patch does not make sense since p

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-21 Thread Yuri Rumyantsev
ept one) to do phi-predication and it means that block containing such phi can have only 1 critical edge. Thanks. Yuri. 2014-10-21 18:19 GMT+04:00 Richard Biener : > On Tue, Oct 21, 2014 at 4:09 PM, Richard Biener > wrote: >> On Tue, Oct 21, 2014 at 3:58 PM, Yuri Rumyantsev wro

Re: [PATCH,1/2] Extended if-conversion for loops marked with pragma omp simd.

2014-10-24 Thread Yuri Rumyantsev
e know. Thanks. Yuri. ChangeLog: 2014-10-24 Yuri Rumyantsev * tree-if-conv.c (ifcvt_can_use_mask_load_store): Use FLAG_FORCE_VECTORIZE instead of loop flag. (if_convertible_bb_p): Allow bb has more than 2 predecessors if FLAG_FORCE_VECTORIZE is true. (if_convertible_bb_p): Delete check that bb

[PATCH, PR 61391]

2014-06-04 Thread Yuri Rumyantsev
Hi All, Here is a simple fix for 61391 - missed a check that statement basic block is inside loop. With this fix test-case from bug is compiled successfully. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2014-06-04 Yuri Rumyantsev PR tree

Re: [PATCH, PR 61391]

2014-06-04 Thread Yuri Rumyantsev
Richard. Here is update patch with test-case and new ChangeLog. gcc/ChangeLog 2014-06-04 Yuri Rumyantsev PR tree-optimization/61319 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that stmt belongs to loop. gcc/testsuite/ChangeLog * gcc.dg/torture/pr61319.c: New test. 2014

Re: [PATCH, PR 61391]

2014-06-04 Thread Yuri Rumyantsev
I converted test-case to Unix format and new patch is attached. 2014-06-04 19:14 GMT+04:00 Jakub Jelinek : > On Wed, Jun 04, 2014 at 07:11:26PM +0400, Yuri Rumyantsev wrote: >> Here is update patch with test-case and new ChangeLog. > > If approved, please avoid the DOS style line

Re: [PATCH, PR 61391]

2014-06-04 Thread Yuri Rumyantsev
Sorry, I sent you 'bad' patch, resend it. 2014-06-04 19:19 GMT+04:00 Yuri Rumyantsev : > I converted test-case to Unix format and new patch is attached. > > 2014-06-04 19:14 GMT+04:00 Jakub Jelinek : >> On Wed, Jun 04, 2014 at 07:11:26PM +0400, Yuri Rumyantsev wrote: >

[PATCH PR61518]

2014-06-18 Thread Yuri Rumyantsev
2014-06-18 Yuri Rumyantsev PR tree-optimization/61518 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that reduction var is used in reduction stmt or phi-function only. gcc/testsuite/ChangeLog * gcc.dg/torture/pr61518.c: New test. patch Description: Binary data

[PATCH PR61576]

2014-06-24 Thread Yuri Rumyantsev
Hi All, Here is a fix for PR 61576 - additional test was added that block containing reduction statement is predecessor of block containing phi to choose the correct condition. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? gcc/ChangeLog 2014-06-24 Yuri

Re: [PATCH PR61576]

2014-07-03 Thread Yuri Rumyantsev
Ping! 2014-06-24 13:37 GMT+04:00 Yuri Rumyantsev : > Hi All, > > Here is a fix for PR 61576 - additional test was added that block > containing reduction statement is predecessor of block containing phi > to choose the correct condition. > > Bootstrap and regression testing

Re: [PATCH] Simple optimization for MASK_STORE.

2015-05-20 Thread Yuri Rumyantsev
ments will be appreciated. Yuri. 2015-05-20 Yuri Rumyantsev * config/i386/i386.c: Include files stringpool.h and tree-ssanames.h. (ix86_vectorize_is_zero_vector): New function. (TARGET_VECTORIZE_IS_ZERO_VECTOR): New target macro * doc/tm.texi.in: Add @hook TARGET_VECTORIZE_IS_ZERO_VECTOR. * doc/tm

[PATCH] Simple fix to enhance outer-loop vectorization.

2015-05-28 Thread Yuri Rumyantsev
Hi All, Here is a simple patch which removes restriction on outer-loop vectorization - allow references in inner-loop with zero step. This case was found in one important benchmark. Bootstrap and regression testing did not show any new failures. Is it OK for trunk. ChangeLog: 2015-05-28 Yuri

Re: [PATCH] Simple fix to enhance outer-loop vectorization.

2015-05-28 Thread Yuri Rumyantsev
ch is attached. Yuri.. 2015-05-28 14:39 GMT+03:00 Richard Biener : > On Thu, May 28, 2015 at 1:00 PM, Yuri Rumyantsev wrote: >> Hi All, >> >> Here is a simple patch which removes restriction on outer-loop >> vectorization - allow references in inner-loop with zero ste

Re: [PATCH] Simple optimization for MASK_STORE.

2015-05-29 Thread Yuri Rumyantsev
Hi Richard, Did you have a chance to look at my updated patch? Any comments will be appreciated. Yuri. 2015-05-20 17:00 GMT+03:00 Yuri Rumyantsev : > Hi All, > > Here is updated patch to optimize mask stores. The main goal of it is > to avoid execution of mask store if its mask is

[PATCH] Yet another simple fix to enhance outer-loop vectorization.

2015-06-08 Thread Yuri Rumyantsev
Hi All, Here is a simple fix which allows duplication of outer loops to perform peeling for number of iterations if outer loop is marked with pragma omp simd. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2015-06-08 Yuri Rumyantsev * tree

[PATCH] Simple optimization for MASK_STORE.

2015-05-06 Thread Yuri Rumyantsev
on false edge.All MASK_STORE statements having the same mask put into one block. Any comments will be appreciate. ChangeLog: 2015-05-06 Yuri Rumyantsev * cfgloop.h (has_mask_store): Add new field to struct loop. * config/i386/i386.c: Include files stringpool.h and tree-ssanames.h

[PATCH PR63941]

2014-11-28 Thread Yuri Rumyantsev
OK for trunk? gcc/ChangeLog 2014-11-28 Yuri Rumyantsev PR tree-optimization/63941 * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that DOM_BB has non-true predicate, conditionally set non-true predicate for BB. gcc/testsuite/ChangeLog * gcc.dg/torture/pr63941.c: New test

Re: [PATCH 2/3] Extended if-conversion

2014-12-01 Thread Yuri Rumyantsev
int will be "after labels" Note also that phi result can have use in this block too, so we can't put predication code to the block end. Let me know if you still have any questions. Best regards. Yuri. 2014-11-28 15:43 GMT+03:00 Richard Biener : > On Wed, Nov 12, 2014 at 2:35 PM

Re: [PATCH 2/3] Extended if-conversion

2014-12-02 Thread Yuri Rumyantsev
the bb end otherwise. I assume that critical edge splitting is not a good decision. Best regards. Yuri. 2014-12-02 16:28 GMT+03:00 Richard Biener : > On Mon, Dec 1, 2014 at 4:53 PM, Yuri Rumyantsev wrote: >> Hi Richard, >> >> I resend you patch1 and patch2 with minor cha

[PATCH PR65161]

2015-02-24 Thread Yuri Rumyantsev
Hi All! Here is a simple patch to not perform instruction reordering for selective scheduling since it uses interface of list scheduling defined in "sched-int.h". Bootstrap and regression testing did not show any new failures. Is it OK for trunk? ChangeLog: 2015-02-24 Yuri Rumyan

Re: [PATCH PR65161]

2015-02-25 Thread Yuri Rumyantsev
Hi All, I prepared new patch which includes test-case. I can't agree with patch proposed by Alexander since other functions doing ready list reordering also use HID interface, so I put escape check in ix86_sched_reorder. Is it OK for trunk? 2015-02-25 Yuri Rumyantsev PR target/

Re: [PATCH PR65161]

2015-02-25 Thread Yuri Rumyantsev
Here is updated patch accordingly to Alexander comments. BTW another function using HID interface is do_reorder_for_imul and it is called from ix86_sched_reorder. Is it OK for trunk? 2015-02-25 13:26 GMT+03:00 Alexander Monakov : > > > On Wed, 25 Feb 2015, Yuri Rumyantsev wrote: &g

Re: [PATCH PR65161]

2015-02-25 Thread Yuri Rumyantsev
I modified patch accordingly to Alexander comments. Is it OK for trunk? 2015-02-25 15:38 GMT+03:00 Alexander Monakov : > > > On Wed, 25 Feb 2015, Yuri Rumyantsev wrote: > >> Here is updated patch accordingly to Alexander comments. >> >> BTW another f

Re: [PATCH PR65161]

2015-02-25 Thread Yuri Rumyantsev
Hi All, Here is updated patch to fix ICE. Is it OK for trunk? 2015-02-25 Yuri Rumyantsev PR target/65161 * config/i386/i386.c (ix86_sched_reorder): Skip instruction reordering for selective scheduling. gcc/testsuite/ChangeLog * gcc.target/i386/pr65161.c: New test. 2015-02-25 17:04 GMT+03

Re: [PATCH] Yet another simple fix to enhance outer-loop vectorization.

2015-06-16 Thread Yuri Rumyantsev
x27;t consider remainder for possible vectorization of inner-loop as we can see on the following example: for (i = 0; i < n; i++) { diff = 0; for (j = 0; j < M; j++) { diff += in[j+i]*coeff[j]; } out[i] = diff; } Is it worth to fix it? 2015-06-16 Yuri Rumyantsev

Re: [PATCH] Yet another simple fix to enhance outer-loop vectorization.

2015-06-17 Thread Yuri Rumyantsev
hard Biener : > On Tue, Jun 16, 2015 at 4:12 PM, Yuri Rumyantsev wrote: >> Thanks a lot Richard for your review. >> >> I presented updated patch which is not gated by force_vectorize. >> I added test on outer-loop in vect_enhance_data_refs_alignment >> and it returns

Re: [PATCH] Simple optimization for MASK_STORE.

2015-06-18 Thread Yuri Rumyantsev
new parameter to control such transformation. Few redundant tests have also been deleted. Any comments will be appreciated. Thanks. Yuri. 2015-06-18 Yuri Rumyantsev * config/i386/i386.c: Include files stringpool.h and tree-ssanames.h. (ix86_vectorize_build_zero_vector_test): New function. (TARGET_VEC

Re: [PATCH] Yet another simple fix to enhance outer-loop vectorization.

2015-06-29 Thread Yuri Rumyantsev
Hi All, Here is updated patch containing missed change in slpeel_tree_peel_loop_to_edge which prevents renaming of exit PHI uses in inner loop. ChangeLog: 2015-06-29 Yuri Rumyantsev * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument to allow renaming of PHI arguments on edges

Re: [PATCH] Simple optimization for MASK_STORE.

2015-07-07 Thread Yuri Rumyantsev
Hi Richard, Did you have a chance to look at this updated patch? Thanks. Yuri. 2015-06-18 17:32 GMT+03:00 Yuri Rumyantsev : > Richard, > > Here is updated patch which does not include your proposal related to > the target hook deletion. > You wrote: >> I still don't u

Re: [PATCH PR64434]

2015-01-15 Thread Yuri Rumyantsev
Hi All, I did a change proposed by Richard - unconditionally allocate from the heap. Bootstrap and regression testing did not show any new failures. Is it OK for trunk? ChangeLog 2015-01-15 Yuri Rumyantsev PR tree-optimization/64434 * cfgexpand.c (reorder_operands): New function

[PATCH PR64746]

2015-01-23 Thread Yuri Rumyantsev
failures. Is it OK for trunk? 2015-01-23 Yuri Rumyantsev PR tree-optimization/64746 * tree-if-conv.c (mask_exists): New function. (predicate_mem_writes): Save created mask with given size for further use. (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it

  1   2   3   >