--- Comment #11 from steven at gcc dot gnu dot org 2006-01-07 00:25 ---
The thread starting at http://gcc.gnu.org/ml/gcc-patches/2006-01/msg00373.html
addresses my question in comment #10.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23455
--- Comment #10 from steven at gcc dot gnu dot org 2006-01-04 22:35 ---
Re. comment #9, I don't understand how the way we hash would make load PRE
harder. Could you elaborate a bit on what is missing or done "wrong" for load
PRE of globals??
--
http://gcc.gnu.org/bugzilla/show_bug.
--- Comment #9 from dberlin at gcc dot gnu dot org 2006-01-03 18:29 ---
Load PRE on globals is going to take a while, because we do some stupid things
in hashing (like hashing tcc_declaration's by pointer, instead of DECL_UID).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23455
--- Comment #8 from bonzini at gnu dot org 2006-01-03 08:04 ---
> Ehm, wouldn't "unsigned char *" alias everything? GCSE doesn't do load PRE
> for
> me on the original test case, either.
Yes, I was checking if load PRE removes the redundant load of t3 if
flush_outbuf is not called. S
--- Comment #7 from steven at gcc dot gnu dot org 2006-01-02 21:30 ---
With an even more modified test case, load PRE does happen:
unsigned long outcnt;
extern void flush_outbuf(void);
void
bi_windup(unsigned int *outbuf, unsigned int bi_buf, unsigned long *outcnt)
{
unsigned long
--- Comment #6 from steven at gcc dot gnu dot org 2006-01-02 21:27 ---
Ehm, wouldn't "unsigned char *" alias everything? GCSE doesn't do load PRE for
me on the original test case, either. And, as long as "outbuf[outcnt] =
bi_buf;" has a V_MAY_DEF for outcnt, you're not going to see any