Re: [patch tree-optimization 1/2]: Branch-cost optimizations

2011-11-10 Thread Kai Tietz
2011/11/10 Richard Guenther : > On Wed, Nov 9, 2011 at 10:09 PM, Kai Tietz wrote: >> 2011/11/9 Jeff Law : >>> -BEGIN PGP SIGNED MESSAGE- >>> Hash: SHA1 >>> >>> On 11/07/11 15:36, Richard Guenther wrote: >>> >>>> >&

[patch testsuite]: Fix failing test for llp64 in gcc.dg/tree-ssa

2012-09-19 Thread Kai Tietz
Hi, this patch fixes testsuite-failures for llp64 targets in gcc.dg/tree-ssa testsuite. ChangeLog 2012-09-19 Kai Tietz * gcc.dg/tree-ssa/scev-3.c: Add llp64 to xfail. * gcc.dg/tree-ssa/scev-4.c: Likewise. Ok for apply? Regards, Kai Index: scev-3.c

Re: Ping: [PATCH] Add implicit C linkage for win32-specific entry points

2012-06-15 Thread Kai Tietz
2012/6/15 Eric Botcazou : >> Jacek Caban sent this: >> >> http://gcc.gnu.org/ml/gcc-patches/2012-03/msg01987.html >> >> in response to this: >> >> http://gcc.gnu.org/ml/gcc-patches/2012-03/msg01986.html >> >> But it never got reviewed.  Could you review and commit? > > No, I don't have approval rig

Re: [Patch] Don't test for pr53425 on mingw

2012-06-18 Thread Kai Tietz
2012/6/18 JonY : > Hi, > > I am told that this ABI test does not apply to mingw targets. OK to apply? Hi JonY, The test doesn't apply to x64 windows targets, as for it sse is part of its ABI. As test already checks for !ia32, we could simply check for x86_64/i?86-*-mingw* targets instead. We don

Re: [Patch] Adjustments for Windows x64 SEH

2012-06-18 Thread Kai Tietz
Hello Tristan, patch works for me, too. Just one nit about the patch. 2012/6/18 Tristan Gingold : > @@ -8558,6 +8558,11 @@ ix86_frame_pointer_required (void) >   if (TARGET_32BIT_MS_ABI && cfun->calls_setjmp) >     return true; > > +  /* Win64 SEH, very large frames need a frame-pointer as maximu

[patch testsuite]: Fix two testcases for x86_64-*-mingw* target

2012-06-20 Thread Kai Tietz
Hi, ChangeLog 2012-06-20 Kai Tietz * gcc.target/i386/pr23943.c (size_t): Use compatible type-definition for LLP64 targets. * gcc.target/i386/pr38988.c: Likewise. Regression-tested for x86_64-w64-mingw32, and x86_64-unknown-linux-gnu. Ok for apply? Regards, Kai

Re: [Patch] Don't test for pr53425 on mingw

2012-06-20 Thread Kai Tietz
As both tests are checking already for !ia32, there is no additiona check beside the targets necessary. Cheers, Kai

Re: [Patch] Adjustments for Windows x64 SEH

2012-06-25 Thread Kai Tietz
2012/6/25 Tristan Gingold : > > On Jun 18, 2012, at 4:28 PM, Kai Tietz wrote: > >> Hello Tristan, >> >> patch works for me, too. Just one nit about the patch. >> >> 2012/6/18 Tristan Gingold : >>> @@ -8558,6 +8558,11 @@ ix86_frame_pointer_requi

Re: [Patch-v2] Adjustments for Windows x64 SEH

2012-06-25 Thread Kai Tietz
2012/6/25 Richard Guenther : > On Mon, 25 Jun 2012, Tristan Gingold wrote: > >> >> On Jun 22, 2012, at 5:04 PM, Richard Henderson wrote: >> >> > On 06/21/2012 12:48 AM, Tristan Gingold wrote: >> >> 2012-06-18  Tristan Gingold   >> >> >> >>    * config/i386/winnt.c (i386_pe_seh_end_prologue): Move c

[patch c-faimily]: Fix for PR 37215

2012-06-27 Thread Kai Tietz
Hello, this patch fixes an ICE on valid code for preprocessor as described in PR 37215 ChangeLog 2012-06-27 Kai Tietz PR preprocessor/37215 * c-ppoutput.c (preprocess_file): Check for none-empty buffer. Tested for x86_64-unknown-linux-gnu, and i688-pc-cygwin. Ok for apply

[patch testsuite]: Fix another LP64 vs LLP64 issue

2012-06-27 Thread Kai Tietz
Hi, this patch fixes a testsuite-failure for LLP64 targets. ChangeLog 2012-06-27 Kai Tietz * g++.dg/cpp0x/constexpr-52672.C (ul_ptr): Use SIZE_TYPE instead of hard-coded 'unsigned long'. Tested for x86_64-w64-mingw32, and x86_64-unknown-linux-gnu. Ok for apply? Re

[patch i386]: always allow for pe-coff that relocations can be put into readonly memory

2012-06-27 Thread Kai Tietz
Hello, this patch makes sure that for pe(+)-coff targets always relocations are allowed in readonly memory. This fixes for x86_64-w64-mingw32 target some testcases. ChangeLog 2012-06-27 Kai Tietz * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function. * config/i386/i386

Re: [patch i386]: always allow for pe-coff that relocations can be put into readonly memory

2012-06-27 Thread Kai Tietz
2012/6/27 Richard Henderson : > On 06/27/2012 12:47 PM, Kai Tietz wrote: >> 2012-06-27  Kai Tietz >> >>       * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function. >>       * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add >>       prototype.

[patch mingw]: Fix PR bootstrap/52947

2012-07-05 Thread Kai Tietz
patch simply makes sure that the definition of NATIVE_SYSTEM_HEADER_DIR remains a POSIX-style path. ChangeLog 2012-07-05 Kai Tietz PR bootstrap/52947 * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always as "/mingw/include". Tested for x86_64-w64-mi

Re: [PATCH, Android] Runtime stack protector enabling for Android target

2012-07-16 Thread Kai Tietz
Hi, I would kindly ask to revert this patch soonish. The define OPTION_BIONIC is defined within linux.h header, which isn't used by cygwin and mingw targets. so this symbol is undefined for them and this is causing bootstrap issue for cygwin and mingw targets. Regards, Kai

Re: [Patch/RFC] SEH exceptions for Win64

2012-07-17 Thread Kai Tietz
2012/7/17 Richard Henderson : > On 07/17/2012 12:35 AM, Tristan Gingold wrote: >> So, the first element of ExceptionInformation will be exc. >> >> Should I add a comment ? > > Ah right. Definitely. > > Otherwise I don't see anything else in the way. Kai? > > > r~ No, I don't have any objections.

[patch tree-optimization]: Avoid !=/== 0/1 comparisons for boolean-typed argument

2011-08-02 Thread Kai Tietz
real effect, but IMHO it makes sense to add here the check for cast from boolean-type to be consitant. ChangeLog 2011-08-02 Kai Tietz * gimple.c (canonicalize_cond_expr_cond): Handle cast from boolean-type. * tree-ssa-forwprop.c (forward_propagate_comparison): Return true iff st

[patch tree-optimization]: Add cleanup code for possible unused statements in binary optimization

2011-08-02 Thread Kai Tietz
Hello, this patch adds some statement-cleanup to forward-propagation. ChangeLog 2011-08-02 Kai Tietz * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove possible unused statement after optimization. 2011-08-02 Kai Tietz * gcc.dg/tree-ssa/forwprop-9.c: Add

Re: [patch tree-optimization]: Avoid !=/== 0/1 comparisons for boolean-typed argument

2011-08-02 Thread Kai Tietz
2011/8/2 Richard Guenther : > On Tue, Aug 2, 2011 at 12:17 PM, Kai Tietz wrote: >> Hello, >> >> this patch removes in forward-propagation useless comparisons X != 0 >> and X != ~0 for boolean-typed X.  For one-bit precision typed X we >> simplifiy X == 0 (and X !=

Re: [patch tree-optimization]: Avoid !=/== 0/1 comparisons for boolean-typed argument

2011-08-02 Thread Kai Tietz
2011/8/2 Richard Guenther : > On Tue, Aug 2, 2011 at 3:14 PM, Kai Tietz wrote: >> 2011/8/2 Richard Guenther : >>> On Tue, Aug 2, 2011 at 12:17 PM, Kai Tietz wrote: >>>> Hello, >>>> >>>> this patch removes in forward-propagation useless c

Re: [patch tree-optimization]: Add cleanup code for possible unused statements in binary optimization

2011-08-02 Thread Kai Tietz
2011/8/2 Richard Guenther : > On Tue, Aug 2, 2011 at 12:39 PM, Kai Tietz wrote: Thanks, yes, I noticed that. Patch adjusted for cfg_tree. ChangeLog 2011-08-02  Kai Tietz          * tree-ssa-forwprop.c (simplify_bitwise_binary):        Remove possible unused statement after optimizat

Re: [patch tree-optimization]: Avoid !=/== 0/1 comparisons for boolean-typed argument

2011-08-02 Thread Kai Tietz
Sorry, had a pasto in testcase. Fixed at rev. 166205 2011-08-02 Kai Tietz PR middle-end/49947 * gcc.dg/tree-ssa/forwprop-15.c Tested on x86_64-pc-linux-gnu. Applied as obvious fix. Regards, Kai Index: gcc.dg/tree-ssa/forwprop-15.c

[patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-02 Thread Kai Tietz
-not expressions like ~(A & B) -> ~A | ~B, ~(A & B) -> ~A | ~B, and ~(A ^ B) -> A ^ ~B. These expansion are just temporary for this pass and getting later by fold reversed again back to their original form. ChangeLog 2011-08-02 Kai Tietz * tree-ssa-reassoc.c (gimple bu

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Kai Tietz
Hello, I noticed that I disallowed expansion of ~(X bitwise-binary-ops) for none-boolean type. This limitiation isn't necessary and prevented even some pattern-detections. I've added 3 new testcases for this to the patch. ChangeLog 2011-08-03 Kai Tietz * tree-ssa-reassoc

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Kai Tietz
2011/8/3 Michael Matz : > Hi, > > On Tue, 2 Aug 2011, Kai Tietz wrote: > >> this patch improves the ability of reassociation pass to simplifiy >> more complex bitwise-binary >> operations with comparisons.  We break-up for this patch statements >> like (X | Y

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-03 Thread Kai Tietz
2011/8/3 Michael Matz : > Hi, > > On Wed, 3 Aug 2011, Kai Tietz wrote: > >> > Implement all of this in the normal reassoc machinery that already >> > exists. Don't implement your own walker (which btw is superlinear >> > because you recurse into

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-08-04 Thread Kai Tietz
2011/8/3 Richard Guenther : > On Wed, Aug 3, 2011 at 3:32 PM, Kai Tietz wrote: >> 2011/8/3 Michael Matz : >>> Hi, >>> >>> On Tue, 2 Aug 2011, Kai Tietz wrote: >>> >>>> this patch improves the ability of reassociation pass to simpli

[patch i386]: Fix of a possible use of prior set variables

2011-08-04 Thread Kai Tietz
Hello, This patch resets for x64_64 windows abi the content of ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero. Those variable might contain wrong values from prior use of sysv-abi va_list. ChangeLog 2011-08-04 Kai Tietz * config/i386/i386.c (setup_incoming_varargs_ms_64

[patch i386]: Fix recent bootstrap failure for x86_64 windows target

2011-08-04 Thread Kai Tietz
call, then we should set frame's hard_frame_pointer_offset to its current stack_pointer_offset (minus 128 delta for smaller common stack-address ranges). ChangeLog 2011-08-04 Kai Tietz * config/i386/i386.c (ix86_compute_frame_layout): Adjust hard_frame_pointer_offset i

Re: [patch i386]: Fix recent bootstrap failure for x86_64 windows target

2011-08-04 Thread Kai Tietz
2011/8/4 Richard Henderson : > On 08/04/2011 01:53 PM, Kai Tietz wrote: >>        diff = frame->stack_pointer_offset - frame->hard_frame_pointer_offset; >> -      if (diff > 240 || (diff & 15) != 0) >> +      if (diff > 240 || (diff & 15) != 0 || cfun->

Re: [patch i386]: Fix recent bootstrap failure for x86_64 windows target

2011-08-05 Thread Kai Tietz
2011/8/4 Kai Tietz : > 2011/8/4 Richard Henderson : >> On 08/04/2011 01:53 PM, Kai Tietz wrote: >>>        diff = frame->stack_pointer_offset - >>> frame->hard_frame_pointer_offset; >>> -      if (diff > 240 || (diff & 15) != 0) >>> +    

[patch testsuite]: Adjust gcc.dg/tree-ssa tests for LLP64 target

2011-08-06 Thread Kai Tietz
Hello, this adjusts some testcases for LLP64 target x86_64 mingw. ChangeLog 2011-08-06 Kai Tietz * gcc.dg/tree-ssa/pr23455.c: Adjust testcases for LLP64 for x86_64 mingw target. * gcc.dg/tree-ssa/loop-1.c: Likewise. * gcc.dg/tree-ssa/ssa-store-ccp-2.c

Re: [patch testsuite]: Adjust gcc.dg/tree-ssa tests for LLP64 target

2011-08-07 Thread Kai Tietz
2011/8/7 Mike Stump : > On Aug 6, 2011, at 6:04 AM, Kai Tietz wrote: >> this adjusts some testcases for LLP64 target x86_64 mingw. > > Ok.  Please watch for any comments on stdarg...  I don't have any, but others > might. Ok, will do. Applied at rev 177543. Thanks, Kai

Re: [patch tree-optimization]: Fix for PR/49806

2011-08-09 Thread Kai Tietz
E is of integral kind, and CST fits into type of A. 2011-08-09 Kai Tietz PR middle-end/49806 * tree-vrp.c (simplify_bit_ops_using_ranges): Add code for type-cast sinking for bitwise-operations. * gcc.dg/tree-ssa/vrp47.c: Remove dom-dump and adjusted

Re: [patch tree-optimization]: Fix for PR/49806

2011-08-09 Thread Kai Tietz
Ups missed to update patch before sending it. Inlined tested patch. Kai Index: gcc/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c === --- gcc.orig/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c +++ gcc/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c @@ -4,8 +4

[patch mingw committed]: Add to GOMP_SELF_SPECS additionally the option -pthread

2011-08-16 Thread Kai Tietz
Hello, this patch fixes for options -fopenmp and/or -ftree-parallelize-loops= the binding to pthread-library. ChangeLog 2011-08-16 Kai Tietz * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option. Bootstrapped for x86_64-w64-mingw32 and i686-pc-mingw32. Applied at revision

[patch libstdc++]: Add some missing errno-constants for mingw-targets

2011-08-28 Thread Kai Tietz
32-bit and 64-bit Windows host. ChangeLog 2011-08-28 Kai Tietz * config/os/mingw32/error_constants.h (ECHILD): Add support, if present. (ENOSPC): Likewise. (EPERM): Likewise. Bootstrapped and regression tested for x86_64-w64-mingw32 and i686-w64-mingw32. Ok for

Re: [patch libstdc++]: Add some missing errno-constants for mingw-targets

2011-08-28 Thread Kai Tietz
2011/8/28 Paolo Carlini : > Hi, >> >> Hello, >> >> this patch adds some errno values supported by newer runtime-version. >> To keep backward compatibility >> this patch checks for their definition before trying to use them. > > Any particular reason for not using [GLIBCXX_CHECK_SYSTEM_ERROR] for mi

Re: [patch libstdc++]: Add some missing errno-constants for mingw-targets

2011-08-28 Thread Kai Tietz
2011/8/28 Paolo Carlini : > On 08/28/2011 10:05 PM, Kai Tietz wrote: >> >> 2011/8/28 Paolo Carlini: >>> >>> Hi, >>>> >>>> Hello, >>>> >>>> this patch adds some errno values supported by newer runtime-version. >&

Re: [patch libstdc++]: Add some missing errno-constants for mingw-targets

2011-08-28 Thread Kai Tietz
r-values ETIMEDOUT, ENOTSUP, and EWOULDBLOCK present. ChangeLog 2011-08-28 Kai Tietz * configure: Regenerated. * config.h.in: Regenerated. * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR) Add checks for ECHILD, ENOSPC, EPERM, ETIMEDOUT, and EWOULDBLOCK.

Re: [patch libstdc++]: Add some missing errno-constants for mingw-targets

2011-08-29 Thread Kai Tietz
2011/8/29 Paolo Carlini : > On 08/29/2011 10:54 AM, Pedro Alves wrote: >> >> While these two didn't get the HAVE_... prefix. Was that intended? > > To be clear: make sure before committing that *all* use _GLIBCXX_HAVE_* > > Paolo. Done and added missing _GLIBCXX_HAVE_ for all checks. Committed at

Re: [patch libstdc++]: Add some missing errno-constants for mingw-targets

2011-08-30 Thread Kai Tietz
Hi Pedro, The update of copyright date is ok. The rest of the patch doesn't look right. Why you have here a stray comma? Why you remove here leading spaces for comments? Kai 2011/8/30 Paolo Carlini : > ... I committed the below because what we have now cannot possibly be right, > can easily br

Re: [patch libstdc++]: Add some missing errno-constants for mingw-targets

2011-08-30 Thread Kai Tietz
2011/8/30 Paolo Carlini : > On 08/30/2011 11:18 AM, Kai Tietz wrote: >> >> Hi Pedro, > > Paolo >> >> The update of copyright date is ok. >> The rest of the patch doesn't look right.  Why you have here a stray >> comma? > > Actually, *you* ha

Re: [patch] --enable-dynamic-string default for mingw-w64

2011-09-19 Thread Kai Tietz
2011/9/20 JonY : > Hi, > > Its been used in the automated toolchain builds for sometime, seems like > a good idea to enable it by default. It can be easily changed to match > for all mingw as well if needed. > > OK for trunk? > > Index: libstdc++-v3/configure.ac > ==

Re: [patch] --enable-dynamic-string default for mingw-w64

2011-09-20 Thread Kai Tietz
2011/9/20 Charles Wilson : > On 9/20/2011 9:20 AM, JonY wrote: >> On 9/20/2011 13:59, Kai Tietz wrote: >>> 2011/9/20 JonY: >>>> Its been used in the automated toolchain builds for sometime, >>>> seems like a good idea to enable it by default. It can be >

Re: [patch tree-optimization]: Improve reassociation pass for bitwise-operations

2011-09-21 Thread Kai Tietz
ST'=~CST - (X != 0) | (Y != 0) -> (X ! Y) != 0 - (X == 0) & (Y == 0) -> (X | Y) == 0 - (X != ~0) | (Y != ~0) -> (X & Y) != ~0 - (X == ~0) & (Y == ~0) -> (X & Y) != ~0 ChangeLog 2011-09-21 Kai Tietz * tree-ssa-reassoc.c (gimple build_a

Re: [Mingw-users] [patch] --enable-dynamic-string default for mingw-w64

2011-09-25 Thread Kai Tietz
2011/9/25 Paolo Carlini : > On 09/25/2011 05:14 PM, Cesar Strauss wrote: >> >> I quote my reasoning: On 09/20/2011 11:56 PM, Cesar Strauss wrote: >>> >>> On the one hand, according to comment 4 of [1], by using >>> --enable-fully-dynamic-string, all other users will miss a very good >>> optimizatio

Re: [google] Add SECTION_EXCLUDE flag and exclude .gnu.callgraph sections (issue5126041)

2011-09-27 Thread Kai Tietz
2011/9/27 Richard Henderson : > On 09/23/2011 04:45 PM, Sriraman Tallam wrote: >> I also want the SECTION_EXCLUDE part alone to be considered for trunk. > > This is ok for trunk. > > Kai, is there a similar flag for pe-coff?  I.e. is there something > reasonable that we can add to i386_pe_asm_named

[patch windows]: Support SECTION_EXCLUDE for pe-coff targets

2011-09-27 Thread Kai Tietz
Hi, this patch enables same feature as in thread "[google] Add SECTION_EXCLUDE flag and exclude .gnu.callgraph sections (issue5126041)" for pe-coff x86 and x64 targets. ChangeLog 2011-09-27 Kai Tietz * configure.ac: Add test for new section attribute specifier &quo

Re: [patch windows]: Support SECTION_EXCLUDE for pe-coff targets

2011-09-27 Thread Kai Tietz
2011/9/27 Richard Henderson : > On 09/27/2011 12:58 PM, Kai Tietz wrote: >> +#ifdef HAVE_GAS_SECTION_EXCLUDE >> +  if ((flags & SECTION_EXCLUDE) != 0) >> +    *f++ = 'e'; >> +#endif > > If 'e' is not supported, I wonder if we should emit &#x

Re: [patch] --enable-dynamic-string default for mingw-w64 v2

2011-10-01 Thread Kai Tietz
2011/10/1 Pedro Alves : > On Saturday 01 October 2011 12:15:42, JonY wrote: >> On 10/1/2011 18:33, Pedro Alves wrote: >> > On Saturday 01 October 2011 07:03:35, JonY wrote: >> >> Hi, >> >> >> >> I followed Paolo's suggestion with the os_defines.h trick. I duplicated >> >> os/mingw32/ to os/mingw32-

Re: [PATCH] [mingw] fix typo: s/_REENTRANCE/_REENTRANT/

2011-10-03 Thread Kai Tietz
2011/10/3 Ozkan Sezer : > PING? > > On Thu, Sep 22, 2011 at 2:28 PM, Ozkan Sezer wrote: >> Hi: >> >> Unless I'm missing something, the mingw CPP_SPEC changes introduced in >> r171833 have a typo: -D_REENTRANCE should read -D_REENTRANT . Patchlet >> below.  Please review, and apply if it's OK. >> >

[patch tree-optimization]: 1 of 2: Add normalization of bitwise-operations to tree-ssa-reassoc pass

2011-10-04 Thread Kai Tietz
Hello, This patch (one of two) adds to tree-ssa-reassociation code for expansion of packed bitwise-binary operations - like (X | Y) == 0, etc. Also it normalizes bitwise-not operations on bitwise-binary tree chains - like ~(X | Y) -> ~X & ~Y. ChangeLog 2011-10-04 Kai Tietz

[patch tree-optimization]: 2 of 2: Add denormalization of bitwise-operations to tree-ssa-reassoc pass

2011-10-04 Thread Kai Tietz
Hello, This patch (two of two) adds to tree-ssa-reassociation code for repropagation of unpacked bitwise-binary operations - like (X == 0) & (Y == 0), etc. Also it denormalizes bitwise-not operations on bitwise-binary tree chains - eg ~X & ~Y -> ~(X | Y). ChangeLog 2011-10-04

Re: [PATCH] [mingw] fix typo: s/_REENTRANCE/_REENTRANT/

2011-10-04 Thread Kai Tietz
2011/10/3 Ozkan Sezer : > On Mon, Oct 3, 2011 at 5:56 PM, Kai Tietz wrote: >> 2011/10/3 Ozkan Sezer : >>> PING? >>> >>> On Thu, Sep 22, 2011 at 2:28 PM, Ozkan Sezer wrote: >>>> Hi: >>>> >>>> Unless I'm missing

[patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-06 Thread Kai Tietz
RUTH_(AND|OR)_EXPR, if left-hand operand is a simple operand, and has no side-effects. ChangeLog 2011-10-06 Kai Tietz * fold-const.c (fold_truth_andor): Convert TRUTH_(AND|OR)IF_EXPR to TRUTH_OR_EXPR, if suitable. Bootstrapped and tested for all languages (including Ada and

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-06 Thread Kai Tietz
-effects, and doesn't trap, then try to convert expression to a TRUTH_(AND|OR)_EXPR, if left-hand operand is a simple operand, and has no side-effects. ChangeLog 2011-10-06 Kai Tietz * fold-const.c (fold_truth_andor): Convert TRUTH_(AND|OR)IF_EXPR to TRUTH_OR_EXPR, if sui

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-06 Thread Kai Tietz
2011/10/6 Richard Guenther : > On Thu, Oct 6, 2011 at 11:28 AM, Kai Tietz wrote: >> Hello, >> >> Sorry attached non-updated change.  Here with proper attached patch. >> This patch improves in fold_truth_andor the generation of branch-conditions >> for targets ha

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-06 Thread Kai Tietz
Hi, I modified the patch so, that it always just converts two leafs of a TRUTH(AND|OR)IF chain into a TRUTH_(AND|OR) expression, if branch costs are high and leafs are simple without side-effects. Additionally I added some testcases for it. 2011-10-06 Kai Tietz * fold-const.c

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-06 Thread Kai Tietz
2011/10/6 Michael Matz : > Hi, > > On Thu, 6 Oct 2011, Richard Guenther wrote: > >> > +      && ((TREE_CODE_CLASS (TREE_CODE (arg1)) != tcc_comparison >> > +          && TREE_CODE (arg1) != TRUTH_NOT_EXPR) >> > +         || !FLOAT_TYPE_P (TREE_TYPE (TREE_OPERAND (arg1, 0) >> >> ?  simple_operan

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-06 Thread Kai Tietz
2011/10/6 Michael Matz : > Hi, > > On Thu, 6 Oct 2011, Kai Tietz wrote: > >> That's not the hole story.  The difference between TRUTH_(AND|OR)IF_EXPR >> and TRUTH_(AND|OR)_EXPR are, that for TRUTH_(AND|OR)IF_EXPR gimplifier >> creates a COND expression, but

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-06 Thread Kai Tietz
2011/10/6 Michael Matz : > Hi, > > On Thu, 6 Oct 2011, Kai Tietz wrote: > >> > at which point this association doesn't make sense anymore, as >> >> Sorry, exactly this doesn't happen, due an ANDIF isn't simple, and >> therefore it isn'

[patch tree-optimization]: 0 of 6 Improve reassoc for bitwise operations

2011-10-07 Thread Kai Tietz
Hello, This patch does rename break_up_subtract_bb to break_up_expr_bb, and it modifies build_and_add_sum so that unary expression can be created by it, too. The patch is a prerequisit of the following 6 additional patches. ChangeLog 2011-10-07 Kai Tietz * tree-ssa-reassoc.c

[patch tree-optimization]: 2 of 6 Improve reassoc for bitwise operations

2011-10-07 Thread Kai Tietz
Hello, This patch adds the repropagation of expanded bitwise-not expressions. ChangeLog 2011-10-07 Kai Tietz * tree-ssa-reassoc.c (walk_bitwise_stmt_elems): Helper to collect different kinds of operands of a bitwise-binary expression chain

[patch tree-optimization]: 1 of 6 Improve reassoc for bitwise operations

2011-10-07 Thread Kai Tietz
Hello, This patch adds to the break-up pass the facility to sink bitwise-not operations into bitwise-binary expressions. Additionally it handles special cases for ~(~X), and ~(X cmp Y). ChangeLog 2011-10-07 Kai Tietz * tree-ssa-reassoc.c (remove_stmt_chain): Helper function

[patch tree-optimization]: 3 of 6 Improve reassoc for bitwise operations

2011-10-07 Thread Kai Tietz
Hello, This patch adds to the break-up pass the facility to expand (X | Y) ==/!= 0 expression. This enables in later reassociation pass better results. ChangeLog 2011-10-07 Kai Tietz * tree-ssa-reassoc.c (expand_cmp_ior): Helper for expanding (X | Y) ==/!= 0 statments

[patch tree-optimization]: 5 of 6 Improve reassoc for bitwise operations

2011-10-07 Thread Kai Tietz
Hello, This patch adds to the break-up code the conversion for X ==/!= ~0 to ~X ==/!= 0. ChangeLog 2011-10-07 Kai Tietz * tree-ssa-reassoc.c (break_up_bitwise_combined_stmt): Add handling for X !=/== 0 transformation to ~X !=/== 0. 2011-10-07 Kai Tietz * gcc.dg

[patch tree-optimization]: 6 of 6 Improve reassoc for bitwise operations

2011-10-07 Thread Kai Tietz
Hello, This patch adds to the repropagation code the conversion for ~X ==/!= CST to X ==/!= CST' (with CST' = ~ CST). We need to do this back-conversion after initial bitwise-binary repropagation loop, as otherwise it would interfer. ChangeLog 2011-10-07 Kai Tietz

[patch tree-optimization]: 4 of 6 Improve reassoc for bitwise operations

2011-10-07 Thread Kai Tietz
Hello, This patch adds to the repropagation pass for bitwise-expression the conversion of (X != 0) | (Y != 0) -> (X | Y) != 0, and of (X == 0) & (Y == 0) -> (X | Y) == 0. ChangeLog 2011-10-07 Kai Tietz * tree-ssa-reassoc.c (walk_bitwise_stmt_elems): Add new argument

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-07 Thread Kai Tietz
Hello, this is the updated version with the suggestion 2011/10/7 Richard Guenther : > On Thu, Oct 6, 2011 at 4:25 PM, Kai Tietz wrote: >> +      && ((TREE_CODE_CLASS (TREE_CODE (arg1)) != tcc_comparison >> +           && TREE_CODE (arg1) != TRUTH_NOT_EXPR >

Re: [patch] --enable-dynamic-string default for mingw-w64 v2

2011-10-08 Thread Kai Tietz
2011/10/8 Paolo Carlini : > Hi, > >> Ok, fixed it, I made a very dumb mistake in configure.host, new patch >> attached. > > Patch is still ok with me, if Kai is ok with it (remember for next time: > regenerated files are not posted, are just a distraction) > > Paolo Ok, by me, too. Thanks, Kai

[patch bfd]: Some adjustments on coff-link.c

2011-10-09 Thread Kai Tietz
Hello, this patch improves COFF linker for undefined weak symbols and avoids writing symbols for discarded sections - if linker tells so -, and for IR generated sections. ChangeLog 2011-10-09 Kai Tietz * cofflink.c (coff_link_check_ar_symbols): Allow adding of archive-file

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
2011/10/7 Kai Tietz : > Hello, > > this is the updated version with the suggestion > > 2011/10/7 Richard Guenther : >> On Thu, Oct 6, 2011 at 4:25 PM, Kai Tietz wrote: >>> +      && ((TREE_CODE_CLASS (TREE_CODE (arg1)) != tcc_comparison >>> +

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
2011/10/10 Richard Guenther : > On Mon, Oct 10, 2011 at 12:35 PM, Kai Tietz wrote: >> 2011/10/7 Kai Tietz : >>> Hello, >>> >>> this is the updated version with the suggestion >>> >>> 2011/10/7 Richard Guenther :

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
Sample had a typo. Correct sample has of course to return r. int foo () {  int c, r = 0;  if ((c = foo ()) != 0 && c < 20)    r = 1;  return r; }

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
2011/10/10 Richard Guenther : > On Fri, Oct 7, 2011 at 11:36 PM, Kai Tietz wrote: >> Hello, >> >> this is the updated version with the suggestion >> >> 2011/10/7 Richard Guenther : >>> On Thu, Oct 6, 2011 at 4:25 PM, Kai Tietz wrote: >>

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
Recent patch had a thinko on rhs of inner lhs check for TRUTH-IF. It has to be checked that the LHS code is same as outer CODE, as otherwise we wouldn't apply different TRUTH-IF only on inner RHS of LHS, which is of course wrong. Index: gcc/gcc/fold-const.c ===

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
2011/10/10 Richard Guenther : > On Mon, Oct 10, 2011 at 2:29 PM, Kai Tietz wrote: >> Recent patch had a thinko on rhs of inner lhs check for TRUTH-IF.  It >> has to be checked that the LHS code is same as outer CODE, as >> otherwise we wouldn't apply different TRUTH-IF o

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
2011/10/10 Richard Guenther : > On Mon, Oct 10, 2011 at 4:06 PM, Kai Tietz wrote: >> 2011/10/10 Richard Guenther : >>> On Mon, Oct 10, 2011 at 2:29 PM, Kai Tietz wrote: >>>> Recent patch had a thinko on rhs of inner lhs check for TRUTH-IF.  It >>>> has

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-10 Thread Kai Tietz
2011/10/10 Richard Guenther : > On Mon, Oct 10, 2011 at 5:07 PM, Kai Tietz wrote: >> 2011/10/10 Richard Guenther : >>> On Mon, Oct 10, 2011 at 4:06 PM, Kai Tietz wrote: >>>> 2011/10/10 Richard Guenther : >>>>> On Mon, Oct 10, 2011 at 2:29 PM, Kai T

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-11 Thread Kai Tietz
2011/10/11 Michael Matz : > Hi, > > On Mon, 10 Oct 2011, Kai Tietz wrote: > >> To ensure that we use simple_operand_p in all cases, beside for >> branching AND/OR chains, in same way as before, I added to this function >> an additional argument, by which the l

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-11 Thread Kai Tietz
So updated version for patch. It creates new simple_operand_p_2 function instead of modifying simple_operand_p function. ChangeLog 2011-10-11 Kai Tietz * fold-const.c (simple_operand_p_2): New function. (fold_truthop): Rename to (fold_truth_andor_1): function name

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-11 Thread Kai Tietz
2011/10/11 Michael Matz : > Hi, > > On Tue, 11 Oct 2011, Kai Tietz wrote: > >> > Better make it a separate function the first tests your new >> > conditions, and then calls simple_operand_p. >> >> Well, either I make it a new function and call it instead

[patch i386]: Unbreak bootstrap for x64 SEH enabled target

2011-10-12 Thread Kai Tietz
prologue-used at the end of prologue. Also we need to emit a memory blockage. ChangeLog 2011-10-12 Kai Tietz * config/i386/i386.c (ix86_expand_prologue): Mark for TARGET_SEH all sse/integer registers as prologue-used. Tested for x86_64-w64-mingw32. Ok for apply? Regards, Kai

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-12 Thread Kai Tietz
2011/10/11 Michael Matz : > Hi, > > On Tue, 11 Oct 2011, Kai Tietz wrote: > >> So updated version for patch.  It creates new simple_operand_p_2 >> function instead of modifying simple_operand_p function. > > FWIW: I also can't think of a nice short name for that

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-12 Thread Kai Tietz
2011/10/12 Michael Matz : > Hi, > > On Wed, 12 Oct 2011, Kai Tietz wrote: > >> > And I think it could use some overview of the transformation done like in >> > the initial patch, ala: >> > >> > "Transform ((A && B) && C) into (A

Re: [patch i386]: Unbreak bootstrap for x64 SEH enabled target

2011-10-12 Thread Kai Tietz
2011/10/12 Richard Henderson : > On 10/12/2011 12:07 AM, Kai Tietz wrote: >> Hello, >> >> by recent changes gcc begun to move code into the prologue region. >> This is for x64 SEH an issue, as here the table-information for >> prologue is limited to 255 bytes

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-13 Thread Kai Tietz
to bitwise operation. This shows up for Fortran, as here are more then one boolean-kind type with different mode-sizes. I added a testcase for this, ChangeLog 2011-10-13 Kai Tietz * fold-const.c (simple_operand_p_2): New function. (fold_truthop): Rename to (fold_tru

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-13 Thread Kai Tietz
2011/10/13 Richard Guenther : > On Thu, Oct 13, 2011 at 1:25 PM, Kai Tietz wrote: >> Hello, >> >> this new version addresses the comments from Michael and additional fixes >> an latent issue shown up by this rewrite in fold-const. >> On gimplify.c's gimple_b

[patch optimization]: Improve tree-ssa-ifcombine pass

2011-10-13 Thread Kai Tietz
if ((a & 4) == 0) if ((a & 8) != 0) -> if ((a & 12) == 8) To support that, patch adds required additional patterns for if.and.if, and if.or.if detection to tree_ssa_ifcombine_bb. ChangeLog 2011-10-13 Kai Tietz * tree-ssa-ifcombine.c (same_phi_args_p_2): New

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-13 Thread Kai Tietz
e are more than one boolean-kind type with different mode-sizes. I added a testcase for this, ChangeLog 2011-10-13 Kai Tietz * fold-const.c (simple_operand_p_2): New function. (fold_truthop): Rename to (fold_truth_andor_1): function name. Additionally remove

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-13 Thread Kai Tietz
Yes, I have already sent an patch with Richard's wish. Indeed we need only to do this type-casting for operands on transcription of TRUTH_(AND|OR|XOR)_EXPR to BIT_(AND|OR|XOR)_EXPR. Cheers, Kai

Re: [patch] --enable-dynamic-string default for mingw-w64 v2

2011-10-13 Thread Kai Tietz
2011/10/13 Paolo Carlini : >> >> Ping, did this go in trunk already? > > I would be surprised to see this happening if nobody like you or Kai actually > does the commit ;) > > P I will take care to apply it. Kai

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-14 Thread Kai Tietz
-engough BRANCH_COST and no special-casing - like MIPS, S/390, and AVR. ChangeLog 2011-10-14 Kai Tietz * fold-const.c (simple_operand_p_2): New function. (fold_truthop): Rename to (fold_truth_andor_1): function name. Additionally remove branching creation for

[patch tree-optimization]: Fix for PR 45397 part 1 of 2

2012-03-15 Thread Kai Tietz
course for bitwise-xor/or operations some more simplifications are possible. This patch just does the type-hoisting part. In a second patch I add to compare_equal_optimize_1 the ability for further required simplifications for fixing this problem. ChangeLog 2012-03-15 Kai Tietz PR

[patch tree-optimization]: Fix for PR 45397 part 2 of 2

2012-03-15 Thread Kai Tietz
+ Y -> Y == 0 X ==/!= X ^ Y -> Y == 0 (X - Y) ==/!= (Z - Y) -> X ==/!= Z (Y - X) ==/!= (Y - Z) -> X ==/!= Z (X + Y) ==/!= (X + Z) -> Y ==/!= Z (X + Y) ==/!= (Z + X) -> Y ==/!= Z (X ^ Y) ==/!= (Z ^ X) -> Y ==/!= Z ChangeLog 2012-03-15 Kai Tietz PR tree-opt

Re: [patch tree-optimization]: Fix for PR 45397 part 2 of 2

2012-03-15 Thread Kai Tietz
2012/3/15 Richard Guenther : > On Thu, Mar 15, 2012 at 2:09 PM, Kai Tietz wrote: >> Hi, >> >> this is the second part of the patch for this problem.  It adds some >> basic simplifications for ==/!= >> comparisons for eliminating redudant operands. >> &g

Re: [patch tree-optimization]: Fix for PR 45397 part 1 of 2

2012-03-15 Thread Kai Tietz
2012/3/15 Richard Guenther : > On Thu, Mar 15, 2012 at 2:08 PM, Kai Tietz wrote >> Hi, >> >> The solution for this PR is a mix out of different issues.  First is >> of course the type-hoisting, but also >> it shows some lacks in simplifications on integer-value

Re: [patch tree-optimization]: Fix for PR 45397 part 1 of 2

2012-03-15 Thread Kai Tietz
2012/3/15 Richard Guenther : > On Thu, Mar 15, 2012 at 3:00 PM, Jakub Jelinek wrote: >> On Thu, Mar 15, 2012 at 02:53:10PM +0100, Kai Tietz wrote: >>> > This looks like to match unbound pattern sizes and thus does not fit >>> > into the forwprop machinery.  I

Re: [patch tree-optimization]: Fix for PR 45397 part 2 of 2

2012-03-15 Thread Kai Tietz
2012/3/15 Richard Guenther : > On Thu, Mar 15, 2012 at 2:46 PM, Kai Tietz wrote: >> 2012/3/15 Richard Guenther : >>> On Thu, Mar 15, 2012 at 2:09 PM, Kai Tietz wrote: >>>> Hi, >>>> >>>> this is the second part of the patch for this

<    1   2   3   4   5   6   7   8   9   >