[llvm-dev] Loop Load Elimination - RAR forward deps

Renato Golin via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 3 02:50:54 PST 2015


Hi Adam,

I'm looking into your LLE pass in order to remove the RAR dependency
from GVN, and I've hit a problem that might need some more thinking.

I've modified your patch to cope with both kinds of dependencies in
the ForwardingCandidate class, but the way the pass gathers
informations only brings RAW dependencies:

    const auto *Deps = LAI.getDepChecker().getDependences();
    if (!Deps)
      return Candidates;

If I add RAR dependency checking on LoopAccessInfo, that'll break
everything else that depends on it, and if I scan the basic blocks for
RAR dependency in LLE itself, it would be moving the logic away from
its rightful place.

I'm thinking of renaming getDependencies() to something like
getStoreToLoadDeps() and add a getLoadToLoadDeps(). Does that seem
reasonable?

Or am I missing something obvious?

cheers,
--renato


More information about the llvm-dev mailing list