[LAA] LLE 1/6: Expose Forward dependences

Description

[LAA] LLE 1/6: Expose Forward dependences

Summary:
Before this change, we didn't use to collect forward dependences since
none of the current clients (LV, LDist) required them.

The motivation to also collect forward dependences is a new pass
LoopLoadElimination (LLE) which discovers store-to-load forwarding
opportunities across the loop's backedge. The pass uses both lexically
forward or backward loop-carried dependences to detect these
opportunities.

The new pass also analyzes loop-independent (forward) dependences since
they can conflict with the loop-carried dependences in terms of how the
data flows through memory.

The newly added test only covers loop-carried forward dependences
because loop-independent ones are currently categorized as NoDep. The
next patch will fix this.

The two patches were tested together for compile-time regression. None
found in LNT/SPEC.

Note that with this change LAA provides all dependences rather than just
"interesting" ones. A subsequent NFC patch will remove the now trivial
isInterestingDependence and rename the APIs.

Reviewers: hfinkel

Subscribers: jmolloy, rengolin, llvm-commits

Differential Revision: http://reviews.llvm.org/D13254

Details

Committed
anemetNov 3 2015, 12:13 PM
Differential Revision
D13254: [LAA] LLE 1/6: Expose Forward dependences
Parents
rL251971: Update for llvm change.
Branches
Unknown
Tags
Unknown