Hi,
I try ARM, MIPS, PowerPC and X86 on povray benchmark. No one can shrink-wrap function Ray_In_Bound.
Here is: bool Ray_In_Bound (RAY *Ray, OBJECT *Bounding_Object) { ... for (Bound = Bounding_Object; Bound != NULL; Bound = Bound->Sibling) {...} return (true); } For ARM O2/O3, "Bound" is allocated to "r6" during ira. So there is copy
r6 = r1 before testing Bound != NULL
The copy (using r6) blocks the shrink-wrap optimization since r6 should be saved. Need enhance shrink-wrap to handle this case.
Overall, for povray benchmark, 54 functions are shrink-wrapped for ARM; 59 functions are shrink-wrapped for X86; 25 functions are shrink-wrapped for MIPS; 26 functions are shrink-wrapped for PowerPC.
Thanks! -Zhenqiang