On 20 November 2012 22:10, Zhenqiang Chen <zhenqiang.c...@linaro.org> wrote:
> 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

Could you hack the benchmark to make the early exit explicit and see
if that changes the result?  That lets us know if improving shrink
wrap is worthwhile.

Something like:

 bool Ray_In_Bound (RAY *Ray, OBJECT *Bounding_Object)
 {
  if (Bounding_Object == NULL) return true;
   ...
   for (Bound = Bounding_Object; Bound != NULL; Bound = Bound->Sibling)
   {...}
   return (true);
}

-- Michael

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to