--- Additional Comments From rth at gcc dot gnu dot org 2005-01-27 00:12
---
Fixed.
--
What|Removed |Added
Status|ASSIGNED|RESOLVED
--- 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
--- 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
--- 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:
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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$
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--
18 matches
Mail list logo