> tbp wrote: > > > Secundo, while i very much appreciate the brand new string ops, it > > seems that on ia32 some array initialization cases where left out, > > hence i still see oodles of 'movl $0x0' when generating code for k8. > > Also those zeroings get coalesced at the top of functions on ia32, and > > i have a function where there's 3 pages of those right after prologue. > > See the attached 'grep 'movl $0x0' dump. > > It looks like Jan and Richard have answered some of your questions about > inlining (or are in the process of doing so), but I haven't seen a > response to this point. > > Certainly, if we're generating zillions of zero-initializations to > contiguous memory, rather than using memset, or an inline loop, that > seems unfortunate. Would you please file a bug report?
I though the comment was more reffering to fact that we will happily generate movl $0x0, place1 movl $0x0, place2 ... movl $0x0, placeMillion rather than shorter xor %eax, %eax movl %eax, ... but indeed both of those issues should be addressed (and it would be interesting to know where we fail ty synthetize memset in real scenarios). With the repeated mov issue unforutnately I don't know what would be the best place: we obviously don't want to constrain register allocation too much and after regalloc I guess only machine dependent pass is the hope that is pretty ugly (but not that difiuclt to code at least at local level). Honza > > Thanks, > > -- > Mark Mitchell > CodeSourcery > [EMAIL PROTECTED] > (650) 331-3385 x713