public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/31657]  New: Should combine bit tests in if stmts
@ 2007-04-22 11:34 rguenth at gcc dot gnu dot org
  2007-06-12 12:06 ` [Bug tree-optimization/31657] " rguenth at gcc dot gnu dot org
  2007-06-12 12:09 ` rguenth at gcc dot gnu dot org
  0 siblings, 2 replies; 3+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-04-22 11:34 UTC (permalink / raw)
  To: gcc-bugs

1)

  if (X & (1 << a))
    if (X & (1 << b))

  should be combined to

  tmp = (1 << a) | (1 << b)
  if (X & tmp == tmp)

2)

  if (X & a)
    goto doit;
  else
    if (X & b)
      goto doit

 doit:

  (i.e. the CFG form of (X & a || X & b))

 should be combined to
  if (X & (a | b))
    goto doit


The first form happens in SPEC2k6 libquantum hottest loop.  The patch I
have for this should also be made to address PR15353.


-- 
           Summary: Should combine bit tests in if stmts
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: tree-optimization
        AssignedTo: rguenth at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
OtherBugsDependingO 15353,15357,26163
             nThis:


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31657


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug tree-optimization/31657] Should combine bit tests in if stmts
  2007-04-22 11:34 [Bug tree-optimization/31657] New: Should combine bit tests in if stmts rguenth at gcc dot gnu dot org
@ 2007-06-12 12:06 ` rguenth at gcc dot gnu dot org
  2007-06-12 12:09 ` rguenth at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-06-12 12:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from rguenth at gcc dot gnu dot org  2007-06-12 12:06 -------
Subject: Bug 31657

Author: rguenth
Date: Tue Jun 12 12:06:19 2007
New Revision: 125644

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125644
Log:
2007-06-12  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/15353
        PR tree-optimization/31657
        * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
        * timevar.def: Add TV_TREE_IFCOMBINE.
        * tree-pass.h (pass_tree_ifcombine): Declare.
        * tree-ssa-ifcombine.c: New file.
        * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
        * tree-flow.h (blocks_in_phiopt_order): Declare.
        * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
        (tree-ssa-ifcombine.o): New dependencies.

        * gcc.c-torture/execute/20070424-1.c: New testcase.
        * gcc.dg/tree-ssa/ssa-ifcombine-1.c: Likewise.
        * gcc.dg/tree-ssa/ssa-ifcombine-2.c: Likewise.
        * gcc.dg/tree-ssa/ssa-ifcombine-3.c: Likewise.
        * gcc.dg/tree-ssa/ssa-ifcombine-4.c: Likewise.
        * gcc.dg/tree-ssa/ssa-ifcombine-5.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.c-torture/execute/20070424-1.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-1.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-2.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-3.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-4.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-5.c
    trunk/gcc/tree-ssa-ifcombine.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/Makefile.in
    trunk/gcc/passes.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/timevar.def
    trunk/gcc/tree-flow.h
    trunk/gcc/tree-pass.h
    trunk/gcc/tree-ssa-phiopt.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31657


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug tree-optimization/31657] Should combine bit tests in if stmts
  2007-04-22 11:34 [Bug tree-optimization/31657] New: Should combine bit tests in if stmts rguenth at gcc dot gnu dot org
  2007-06-12 12:06 ` [Bug tree-optimization/31657] " rguenth at gcc dot gnu dot org
@ 2007-06-12 12:09 ` rguenth at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-06-12 12:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from rguenth at gcc dot gnu dot org  2007-06-12 12:08 -------
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.3.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31657


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-06-12 12:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-22 11:34 [Bug tree-optimization/31657] New: Should combine bit tests in if stmts rguenth at gcc dot gnu dot org
2007-06-12 12:06 ` [Bug tree-optimization/31657] " rguenth at gcc dot gnu dot org
2007-06-12 12:09 ` rguenth at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).