public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/35281]  New: [4.3 regression] multiply with 0 generated for 64*32->64
@ 2008-02-21 20:50 astrange at ithinksw dot com
  2008-02-21 21:36 ` [Bug rtl-optimization/35281] " ubizjak at gmail dot com
                   ` (19 more replies)
  0 siblings, 20 replies; 21+ messages in thread
From: astrange at ithinksw dot com @ 2008-02-21 20:50 UTC (permalink / raw)
  To: gcc-bugs

> /usr/local/gcc43/bin/gcc -v                                           
Using built-in specs.
Target: i386-apple-darwin9.2.0
Configured with: ../gcc/configure --prefix=/usr/local/gcc43
--enable-threads=posix --with-arch=core2 --with-tune=core2 --with-gmp=/sw
--with-mpfr=/sw --disable-nls --disable-bootstrap --enable-checking=yes,rtl
CFLAGS=-g LDFLAGS=/usr/lib/libiconv.dylib --enable-languages=c,c++,objc,obj-c++
Thread model: posix
gcc version 4.4.0 20080219 (experimental) (GCC) 
> /usr/local/gcc43/bin/gcc -Os -fno-PIC -S u64mul.c -fomit-frame-pointer

gcc generates:
_mul32:
        pushl   %ebx
        xorl    %edx, %edx
        subl    $8, %esp
        movl    _b, %eax
        movl    _a, %ecx
        movl    _a+4, %ebx
        imull   %edx, %ecx
        imull   %eax, %ebx
        mull    _a
        addl    %ebx, %ecx
        leal    (%ecx,%edx), %edx
        popl    %ecx
        popl    %ebx
        popl    %ebx
        ret

and somehow leaves all the stuff with edx in.
4.1.3 generates:
mul32:
        movl    _b, %eax
        movl    _a+4, %ecx
        imull   %eax, %ecx
        mull    _a
        addl    %edx, %ecx
        movl    %ecx, %edx
        ret

They both generate bad code for mul16.


-- 
           Summary: [4.3 regression] multiply with 0 generated for 64*32->64
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: astrange at ithinksw dot com
 GCC build triplet: i386-apple-darwin9.2.0
  GCC host triplet: i386-apple-darwin9.2.0
GCC target triplet: i386-apple-darwin9.2.0


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


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

* [Bug rtl-optimization/35281] [4.3 regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
@ 2008-02-21 21:36 ` ubizjak at gmail dot com
  2008-02-21 21:59 ` astrange at ithinksw dot com
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ubizjak at gmail dot com @ 2008-02-21 21:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from ubizjak at gmail dot com  2008-02-21 21:35 -------
I know that the test sources are probably trivial, but can you post them here
for reference?


-- 


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


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

* [Bug rtl-optimization/35281] [4.3 regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
  2008-02-21 21:36 ` [Bug rtl-optimization/35281] " ubizjak at gmail dot com
@ 2008-02-21 21:59 ` astrange at ithinksw dot com
  2008-03-05 10:15 ` ubizjak at gmail dot com
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: astrange at ithinksw dot com @ 2008-02-21 21:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from astrange at ithinksw dot com  2008-02-21 21:58 -------
Created an attachment (id=15199)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15199&action=view)
source

Oh, I forgot.


-- 


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


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

* [Bug rtl-optimization/35281] [4.3 regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
  2008-02-21 21:36 ` [Bug rtl-optimization/35281] " ubizjak at gmail dot com
  2008-02-21 21:59 ` astrange at ithinksw dot com
@ 2008-03-05 10:15 ` ubizjak at gmail dot com
  2008-03-05 10:17 ` ubizjak at gmail dot com
                   ` (16 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ubizjak at gmail dot com @ 2008-03-05 10:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from ubizjak at gmail dot com  2008-03-05 10:14 -------
Confirmed with

--cut here--
unsigned long long a;
unsigned int b;
unsigned short c;

unsigned long long mul32()
{
  return a * b;
}

unsigned long long mul16()
{
  return a * c;
}
--cut here--

Setting milestone to 4.3.0


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
      Known to fail|                            |4.3.0
      Known to work|                            |4.1.2 4.2.3
   Last reconfirmed|0000-00-00 00:00:00         |2008-03-05 10:14:59
               date|                            |
   Target Milestone|---                         |4.3.0


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


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

* [Bug rtl-optimization/35281] [4.3 regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (2 preceding siblings ...)
  2008-03-05 10:15 ` ubizjak at gmail dot com
@ 2008-03-05 10:17 ` ubizjak at gmail dot com
  2008-03-05 10:28 ` [Bug rtl-optimization/35281] [4.3/4.4 Regression] " rguenth at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ubizjak at gmail dot com @ 2008-03-05 10:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from ubizjak at gmail dot com  2008-03-05 10:16 -------
Note, this is _NOT_ the same issue as PR rtl-optimization/34522.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ubizjak at gmail dot com


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (3 preceding siblings ...)
  2008-03-05 10:17 ` ubizjak at gmail dot com
@ 2008-03-05 10:28 ` rguenth at gcc dot gnu dot org
  2008-03-05 10:33 ` ubizjak at gmail dot com
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-03-05 10:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from rguenth at gcc dot gnu dot org  2008-03-05 10:27 -------
With -O we even have

        movl    $0, %edx
        movl    a, %ecx
        imull   %edx, %ecx

I wonder why we do not constant-propagate / simplify here?

Note that with 4.2 and 4.1 mul16 is also bad.  Setting milestone to 4.3.1,
only mul32 is a regression.

Steven, shouldn't rtl const-prop catch this?


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stevenb dot gcc at gmail dot
                   |                            |com
  GCC build triplet|i386-apple-darwin9.2.0      |
   GCC host triplet|i386-apple-darwin9.2.0      |
 GCC target triplet|i386-apple-darwin9.2.0      |i?86-*-*
           Keywords|                            |missed-optimization
           Priority|P3                          |P2
            Summary|[4.3 regression] multiply   |[4.3/4.4 Regression]
                   |with 0 generated for 64*32- |multiply with 0 generated
                   |>64                         |for 64*32->64
   Target Milestone|4.3.0                       |4.3.1


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (4 preceding siblings ...)
  2008-03-05 10:28 ` [Bug rtl-optimization/35281] [4.3/4.4 Regression] " rguenth at gcc dot gnu dot org
@ 2008-03-05 10:33 ` ubizjak at gmail dot com
  2008-03-05 11:11 ` ubizjak at gmail dot com
                   ` (13 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ubizjak at gmail dot com @ 2008-03-05 10:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from ubizjak at gmail dot com  2008-03-05 10:32 -------
4.2 figures out in cse1 pass that:

(insn 9 8 10 2 (parallel [
            (set (reg:DI 60 [ b ])
                (zero_extend:DI (mem/c/i:SI (symbol_ref:SI ("b") <var_decl
0xb7caf108 b>) [3 b+0 S4 A32])))
            (clobber (reg:CC 17 flags))
        ]) 79 {zero_extendsidi2_32} (nil)
    (nil))

...

(insn 11 10 12 2 (parallel [
            (set (reg:SI 61)
                (mult:SI (reg:SI 62 [ a ])
                    (subreg:SI (reg:DI 60 [ b ]) 4)))
            (clobber (reg:CC 17 flags))
        ]) 182 {*mulsi3_1} (nil)
    (nil))

can simply be substituted with:

(insn 11 9 12 2 (set (reg:SI 61)
        (const_int 0 [0x0])) 34 {*movsi_1} (nil)
    (nil))


-- 


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (5 preceding siblings ...)
  2008-03-05 10:33 ` ubizjak at gmail dot com
@ 2008-03-05 11:11 ` ubizjak at gmail dot com
  2008-03-05 13:22 ` bonzini at gnu dot org
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: ubizjak at gmail dot com @ 2008-03-05 11:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from ubizjak at gmail dot com  2008-03-05 11:10 -------
It looks that:

2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
            Steven Bosscher  <steven@gcc.gnu.org>

        * fwprop.c: New file.
        ...
        * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
        canon_for_address, table_size): Remove.
        (new_basic_block, insert, remove_from_table): Remove references to
        table_size.
        (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
        simplification loop more straightforward by not calling fold_rtx
        recursively.
        (equiv_constant): Move here a small part of fold_rtx_subreg,
        do not call fold_rtx.  Call avoid_constant_pool_reference
        to process MEMs.

removed this functionality. Specifically this part:

-    /* If this is a constant pool reference, we can fold it into its
-       constant to allow better value tracking.  */
-    if (base && GET_CODE (base) == SYMBOL_REF
-       && CONSTANT_POOL_ADDRESS_P (base))
-      {
-       rtx constant = get_pool_constant (base);
-       enum machine_mode const_mode = get_pool_mode (base);
-       rtx new;
-
-       if (CONSTANT_P (constant) && GET_CODE (constant) != CONST_INT)
-         {
-           constant_pool_entries_cost = COST (constant);
-           constant_pool_entries_regcost = approx_reg_cost (constant);
-         }
-
-       /* If we are loading the full constant, we have an
-          equivalence.  */
-       if (offset == 0 && mode == const_mode)
-         return constant;
-
-       /* If this actually isn't a constant (weird!), we can't do
-          anything.  Otherwise, handle the two most common cases:
-          extracting a word from a multi-word constant, and
-          extracting the low-order bits.  Other cases don't seem
-          common enough to worry about.  */
-       if (! CONSTANT_P (constant))
-         return x;
-
-       if (GET_MODE_CLASS (mode) == MODE_INT
-           && GET_MODE_SIZE (mode) == UNITS_PER_WORD
-           && offset % UNITS_PER_WORD == 0
-           && (new = operand_subword (constant,
-                                      offset / UNITS_PER_WORD,
-                                      0, const_mode)) != 0)
-         return new;
-
-       if (((BYTES_BIG_ENDIAN
-             && offset == GET_MODE_SIZE (GET_MODE (constant)) - 1)
-            || (! BYTES_BIG_ENDIAN && offset == 0))
-           && (new = gen_lowpart (mode, constant)) != 0)
-         return new;
-      }

This also explains why 4.2 doesn't fold HImode references ("Other cases don't
seem common enough to worry about.").

Can we have this functionality back, perhaps also for "Other cases", since
there are people that worry about them?


-- 


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (7 preceding siblings ...)
  2008-03-05 13:22 ` bonzini at gnu dot org
@ 2008-03-05 13:22 ` bonzini at gnu dot org
  2008-03-10 14:15 ` bonzini at gnu dot org
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-03-05 13:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from bonzini at gnu dot org  2008-03-05 13:21 -------
Should be handled by this code in simplify_subreg:

      /* A SUBREG resulting from a zero extension may fold to zero if
         it extracts higher bits that the ZERO_EXTEND's source bits.  */
      if (GET_CODE (op) == ZERO_EXTEND
          && bitpos >= GET_MODE_BITSIZE (GET_MODE (XEXP (op, 0))))
        return CONST0_RTX (outermode);

fwprop does not because the memory is written to.  Can anyone run spec moving
fwprop *before* CSE instead of after?


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |13724


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (6 preceding siblings ...)
  2008-03-05 11:11 ` ubizjak at gmail dot com
@ 2008-03-05 13:22 ` bonzini at gnu dot org
  2008-03-05 13:22 ` bonzini at gnu dot org
                   ` (11 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-03-05 13:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from bonzini at gnu dot org  2008-03-05 13:22 -------
> fwprop does not because the memory is written to

(and fwprop does not do alias analysis).


-- 


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (8 preceding siblings ...)
  2008-03-05 13:22 ` bonzini at gnu dot org
@ 2008-03-10 14:15 ` bonzini at gnu dot org
  2008-03-10 15:19 ` bonzini at gnu dot org
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-03-10 14:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from bonzini at gnu dot org  2008-03-10 14:14 -------
I have a patch.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-03-05 10:14:59         |2008-03-10 14:14:30
               date|                            |


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (9 preceding siblings ...)
  2008-03-10 14:15 ` bonzini at gnu dot org
@ 2008-03-10 15:19 ` bonzini at gnu dot org
  2008-03-11 16:49 ` bonzini at gnu dot org
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-03-10 15:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from bonzini at gnu dot org  2008-03-10 15:19 -------
The patch at http://gcc.gnu.org/ml/gcc-patches/2008-03/msg00623.html fixes
mul16.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2008-
                   |                            |03/msg00624.html


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (10 preceding siblings ...)
  2008-03-10 15:19 ` bonzini at gnu dot org
@ 2008-03-11 16:49 ` bonzini at gnu dot org
  2008-03-11 16:49 ` bonzini at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-03-11 16:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from bonzini at gnu dot org  2008-03-11 16:49 -------
For 4.4, both mul16 and mul32 will be fixed by the pending patch.

The pending patch is what cures the regression part of this bug.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (11 preceding siblings ...)
  2008-03-11 16:49 ` bonzini at gnu dot org
@ 2008-03-11 16:49 ` bonzini at gcc dot gnu dot org
  2008-04-02  9:58 ` bonzini at gnu dot org
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gcc dot gnu dot org @ 2008-03-11 16:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from bonzini at gnu dot org  2008-03-11 16:49 -------
For 4.4, both mul16 and mul32 will be fixed by the pending patch.

The pending patch is what cures the regression part of this bug.


------- Comment #13 from bonzini at gnu dot org  2008-03-11 16:49 -------
Subject: Bug 35281

Author: bonzini
Date: Tue Mar 11 16:48:28 2008
New Revision: 133116

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133116
Log:
2008-03-11  Paolo Bonzini  <bonzini@gnu.org>

        PR rtl-optimization/35281
        * expr.c (convert_move): Use a new pseudo for the intermediate
        from_mode->word_mode result.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/expr.c


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


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


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

* [Bug rtl-optimization/35281] [4.3/4.4 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (12 preceding siblings ...)
  2008-03-11 16:49 ` bonzini at gcc dot gnu dot org
@ 2008-04-02  9:58 ` bonzini at gnu dot org
  2008-04-02 11:25 ` [Bug rtl-optimization/35281] [4.3 " bonzini at gnu dot org
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-04-02  9:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from bonzini at gnu dot org  2008-04-02 09:57 -------
committed to trunk as 133828


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


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


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

* [Bug rtl-optimization/35281] [4.3 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (13 preceding siblings ...)
  2008-04-02  9:58 ` bonzini at gnu dot org
@ 2008-04-02 11:25 ` bonzini at gnu dot org
  2008-04-03  5:38 ` bonzini at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-04-02 11:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from bonzini at gnu dot org  2008-04-02 11:24 -------
oops, still on 4.3


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
      Known to work|4.1.2 4.2.3                 |4.1.2 4.2.3 4.4.0
         Resolution|FIXED                       |
            Summary|[4.3/4.4 Regression]        |[4.3 Regression] multiply
                   |multiply with 0 generated   |with 0 generated for 64*32-
                   |for 64*32->64               |>64


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


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

* [Bug rtl-optimization/35281] [4.3 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (14 preceding siblings ...)
  2008-04-02 11:25 ` [Bug rtl-optimization/35281] [4.3 " bonzini at gnu dot org
@ 2008-04-03  5:38 ` bonzini at gcc dot gnu dot org
  2008-06-06 15:02 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gcc dot gnu dot org @ 2008-04-03  5:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from bonzini at gnu dot org  2008-04-03 05:37 -------
Subject: Bug 35281

Author: bonzini
Date: Thu Apr  3 05:36:26 2008
New Revision: 133859

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133859
Log:
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

        PR rtl-optimization/35281
        * gcc.target/i386/pr35281.c: New test.


Added:
    trunk/gcc/testsuite/gcc.target/i386/pr35281.c
Modified:
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug rtl-optimization/35281] [4.3 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (15 preceding siblings ...)
  2008-04-03  5:38 ` bonzini at gcc dot gnu dot org
@ 2008-06-06 15:02 ` rguenth at gcc dot gnu dot org
  2008-07-14 16:08 ` bonzini at gnu dot org
                   ` (2 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-06-06 15:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from rguenth at gcc dot gnu dot org  2008-06-06 14:59 -------
4.3.1 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.1                       |4.3.2


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


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

* [Bug rtl-optimization/35281] [4.3 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (16 preceding siblings ...)
  2008-06-06 15:02 ` rguenth at gcc dot gnu dot org
@ 2008-07-14 16:08 ` bonzini at gnu dot org
  2008-07-18 11:46 ` bonzini at gnu dot org
  2008-07-18 11:46 ` bonzini at gcc dot gnu dot org
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-07-14 16:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from bonzini at gnu dot org  2008-07-14 16:07 -------
The two commits listed here fix the regression, they should be safe to backport
to 4.3.2.


-- 


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


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

* [Bug rtl-optimization/35281] [4.3 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (17 preceding siblings ...)
  2008-07-14 16:08 ` bonzini at gnu dot org
@ 2008-07-18 11:46 ` bonzini at gnu dot org
  2008-07-18 11:46 ` bonzini at gcc dot gnu dot org
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2008-07-18 11:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from bonzini at gnu dot org  2008-07-18 11:45 -------
bootstrapped/regtested on 4.3 branch, committed there too


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED


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


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

* [Bug rtl-optimization/35281] [4.3 Regression] multiply with 0 generated for 64*32->64
  2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
                   ` (18 preceding siblings ...)
  2008-07-18 11:46 ` bonzini at gnu dot org
@ 2008-07-18 11:46 ` bonzini at gcc dot gnu dot org
  19 siblings, 0 replies; 21+ messages in thread
From: bonzini at gcc dot gnu dot org @ 2008-07-18 11:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from bonzini at gnu dot org  2008-07-18 11:45 -------
Subject: Bug 35281

Author: bonzini
Date: Fri Jul 18 11:44:57 2008
New Revision: 137942

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137942
Log:
gcc:
2008-07-18  Paolo Bonzini  <bonzini@gnu.org>

        PR rtl-optimization/35281
        * expr.c (convert_move): Use a new pseudo for the intermediate
        from_mode->word_mode result.
        * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
        (propagate_rtx_1): Handle PR_HANDLE_MEM.
        (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
        (varying_mem_p): Move above propagate_rtx.
        (all_uses_available_at): Do not check MEMs.

gcc/testsuite:
2008-07-18  Paolo Bonzini  <bonzini@gnu.org>

        PR rtl-optimization/35281
        * gcc.target/i386/pr35281.c: New.


Added:
    branches/gcc-4_3-branch/gcc/testsuite/gcc.target/i386/pr35281.c
      - copied unchanged from r133859,
trunk/gcc/testsuite/gcc.target/i386/pr35281.c
Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/expr.c
    branches/gcc-4_3-branch/gcc/fwprop.c
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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


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

end of thread, other threads:[~2008-07-18 11:46 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-21 20:50 [Bug rtl-optimization/35281] New: [4.3 regression] multiply with 0 generated for 64*32->64 astrange at ithinksw dot com
2008-02-21 21:36 ` [Bug rtl-optimization/35281] " ubizjak at gmail dot com
2008-02-21 21:59 ` astrange at ithinksw dot com
2008-03-05 10:15 ` ubizjak at gmail dot com
2008-03-05 10:17 ` ubizjak at gmail dot com
2008-03-05 10:28 ` [Bug rtl-optimization/35281] [4.3/4.4 Regression] " rguenth at gcc dot gnu dot org
2008-03-05 10:33 ` ubizjak at gmail dot com
2008-03-05 11:11 ` ubizjak at gmail dot com
2008-03-05 13:22 ` bonzini at gnu dot org
2008-03-05 13:22 ` bonzini at gnu dot org
2008-03-10 14:15 ` bonzini at gnu dot org
2008-03-10 15:19 ` bonzini at gnu dot org
2008-03-11 16:49 ` bonzini at gnu dot org
2008-03-11 16:49 ` bonzini at gcc dot gnu dot org
2008-04-02  9:58 ` bonzini at gnu dot org
2008-04-02 11:25 ` [Bug rtl-optimization/35281] [4.3 " bonzini at gnu dot org
2008-04-03  5:38 ` bonzini at gcc dot gnu dot org
2008-06-06 15:02 ` rguenth at gcc dot gnu dot org
2008-07-14 16:08 ` bonzini at gnu dot org
2008-07-18 11:46 ` bonzini at gnu dot org
2008-07-18 11:46 ` bonzini 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).