[llvm-commits] [PATCH] Use GetUnderlyingObjects in misched

Hal Finkel hfinkel at anl.gov
Sat Nov 17 01:59:59 PST 2012


Andy, et al.,

misched currently uses GetUnderlyingObject in order to break false load/store dependencies, and the -enable-aa-sched-mi feature similarly relies on GetUnderlyingObject in order to ensure it is safe to use the aliasing analysis. Unfortunately, GetUnderlyingObject does not recurse through phi nodes, and so (especially due to LSR) all of these mechanisms fail for induction-variable-dependent loads and stores inside loops.

The attached patch replaces uses of GetUnderlyingObject with GetUnderlyingObjects (which will recurse through phi and select instructions) in misched. On in-order cores with a long pipline depth (such as the PPC A2), this is extremely important (the loop in the attached test case, for example, shows a ~100% speedup). Please review.

Thanks again,
Hal

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
A non-text attachment was scrubbed...
Name: misched_objs.patch
Type: text/x-patch
Size: 14601 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121117/6f5d6b68/attachment.bin>


More information about the llvm-commits mailing list