[Bug tree-optimization/23455] New: load PRE is missing
bonzini at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Aug 18 08:22:00 GMT 2005
Load PRE is scheduled for 4.2, I'm creating this bug because load PRE is
currently split between CSE and GCSE (this bug blocks the "optimizations caught
by CSE" meta-bug, PR19721). Given this code,
unsigned outcnt;
extern void flush_outbuf(void);
void
bi_windup(unsigned char *outbuf, unsigned char bi_buf)
{
outbuf[outcnt] = bi_buf;
if (outcnt == 16384)
flush_outbuf();
outbuf[outcnt] = bi_buf;
}
we'd want the code to become
void
bi_windup(unsigned char *outbuf, unsigned char bi_buf)
{
int t1 = outcnt;
outbuf[t1] = bi_buf;
int t2 = outcnt, t3;
if (t2 == 16384) {
flush_outbuf();
t3 = outcnt;
} else
t3 = t2;
outbuf[t3] = bi_buf;
}
currently this optimization is split between CSE (with path following) and GCSE.
Actually, GCSE is able to do it alone if the number of GCSE passes is increased.
--
Summary: load PRE is missing
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P2
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bonzini at gcc dot gnu dot org
CC: dberlin at gcc dot gnu dot org,gcc-bugs at gcc dot gnu
dot org
OtherBugsDependingO 19721
nThis:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23455
More information about the Gcc-bugs
mailing list