[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-26 Thread rth at gcc dot gnu dot org
--- Additional Comments From rth at gcc dot gnu dot org 2005-01-27 00:12 --- Fixed. -- What|Removed |Added Status|ASSIGNED|RESOLVED

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-26 Thread cvs-commit at gcc dot gnu dot org
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-01-27 00:08 --- Subject: Bug 18008 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-01-27 00:07:43 Modified files: gcc: ChangeLog c-decl.c expr.c Log messa

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-26 Thread cvs-commit at gcc dot gnu dot org
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-01-26 23:18 --- Subject: Bug 18008 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-01-26 23:18:15 Modified files: gcc: ChangeLog c-decl.c expmed.c expr.c

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-26 Thread cvs-commit at gcc dot gnu dot org
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-01-26 20:29 --- Subject: Bug 18008 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-01-26 20:29:27 Modified files: gcc: ChangeLog combine.c Log message:

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-26 Thread rth at gcc dot gnu dot org
--- Additional Comments From rth at gcc dot gnu dot org 2005-01-26 18:11 --- Tricky. Part the first, I thought, is that the mode of the FIELD_DECL doesn't match the mode of the FIELD_DECL's type. Except that doesn't actually appear to matter. I shall fix it anyway. As for combine, th

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-25 Thread steven at gcc dot gnu dot org
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-26 02:12 --- g++ produces the same code as 3.3. The .optimized dump for cc1plus: void store(B*, int) (b, v) { unsigned int v.0; : b->b = (unsigned int) v; return; } Look mom, no casts! -- htt

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-25 Thread steven at gcc dot gnu dot org
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-26 01:55 --- Why do we cast "v" to "unsigned char" before casting to the bitfield type? This is already in the GIMPLE dump and comes from the front end: ;; Function store (store) store (bD.1118, vD.1119) { uns

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-22 Thread bonzini at gcc dot gnu dot org
--- Additional Comments From bonzini at gcc dot gnu dot org 2005-01-22 10:04 --- Combine ought to merge these two (insn 13 11 14 1 (parallel [ (set (reg:QI 60) (and:QI (subreg:QI (reg/v:SI 59 [ v ]) 0) (const_int 3 [0x3]))) (cl

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-12-23 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-23 16:05 --- Note I would not be surprised that fixing this also helps compile time as there are a couple (really a lot) of bit fields in GCC. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18008

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-17 Thread roger at eyesopen dot com
--- Additional Comments From roger at eyesopen dot com 2004-10-17 19:02 --- There are clearly a number of problems exposed by this PR (constant folding issues, x86 backend issues, RTL simplification issues, etc...) My personal pick of which is the worst of these is that get_inner_referen

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-16 04:05 --- Actually there are two ands for -march=pentiumpro also: movl4(%esp), %ecx movzbl 8(%esp), %edx <--- one movl(%ecx), %eax andl$3, %edx <--- two andl$

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread kazu at cs dot umass dot edu
--- Additional Comments From kazu at cs dot umass dot edu 2004-10-16 03:50 --- >From IRC: kazu: Looks like PR 18008 only has a single AND with -march=pentiumpro, but two ANDs with -march=i386 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18008

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread kazu at cs dot umass dot edu
--- Additional Comments From kazu at cs dot umass dot edu 2004-10-16 03:46 --- All the interesting events happen in store_field. When store_field expands "() (unsigned char) v", it generates an AND with 3 because () is an anonymous type of two-bit integer. When it expands the assignment

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread kazu at cs dot umass dot edu
--- Additional Comments From kazu at cs dot umass dot edu 2004-10-15 21:18 --- This is a regression from 3.3.3, which does not generate two consecutive andl. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18008

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread kazu at cs dot umass dot edu
--- Additional Comments From kazu at cs dot umass dot edu 2004-10-15 16:55 --- There are at least two strange things. 1. We emit two ands in the first place. 2. The combiner does not seem to be working. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18008

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread kazu at cs dot umass dot edu
--- Additional Comments From kazu at cs dot umass dot edu 2004-10-15 16:42 --- No, I don't think this is a duplicate of mine. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18008

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread bangerth at dealii dot org
--- Additional Comments From bangerth at dealii dot org 2004-10-15 15:03 --- I thought one of Kazu's PRs already had this case. Someone should go through his PRs... W. -- What|Removed |Added

[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2004-10-15 Thread pinskia at gcc dot gnu dot org
--- Additional Comments From pinskia at gcc dot gnu dot org 2004-10-15 12:45 --- Confirmed, this is a middle-end issue as the trees look good b->b = () (unsigned char) v; -- What|Removed |Added --