[llvm-commits] [PATCH] Fix llvm.invariant support
Kenneth Uildriks
kennethuil at gmail.com
Mon Nov 22 19:14:17 PST 2010
Ping.
On Sat, Nov 13, 2010 at 7:00 PM, Kenneth Uildriks <kennethuil at gmail.com> wrote:
> A less drastic attempt to fix issues with support for
> llvm.invariant.start and llvm.invariant.end. It involves adding
> invariant tracking by block to MemoryDependenceAnalysis. When a load
> is analyzed, the invariant information for that block and its
> predecessors is lazily computed and consulted. If the load's target
> is not invariant anywhere in the block, there is no need to look for
> invariant markers during the scan. If it is invariant throughout the
> block, no def or clobber can be in that block, so we can skip
> backwards to the block(s) that began the invariance. If it is
> invariant through part of the block, we need to continue scanning
> backwards past clobbers until we find the def or an invariant marker -
> we can't assume that the scan starts after the invariant end, but
> instead assume that we *might* have started scanning in the middle of
> an invariant region until we can prove otherwise.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MemDep2.patch
Type: text/x-patch
Size: 16946 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20101122/d7109986/attachment.bin>
More information about the llvm-commits
mailing list