[PATCH] Review for hoisting and sinking of equivalent memory instruction (Instruction Merge Pass)
ghoflehner at apple.com
Tue Jun 10 13:43:29 PDT 2014
This pass iteratively hoists two loads to the same address out of a diamond (hammock) and merges them
into a single load in the header. Similar it sinks and merges two stores to the tail block. The algorithm
iterates over the instructions of one side of the diamond and attempts to find a matching load/store on
the other side. It hoists / sinks when it thinks it safe to do so. I tailored the code as conservative as possible to catch the initial cases we are interested in, which keeps code size and complexity in check. The optimization helps hiding load latencies and triggering if-conversion.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 25918 bytes
Desc: not available
More information about the llvm-commits