[llvm-commits] [llvm] r86840 - in /llvm/trunk: include/llvm/IntrinsicInst.h lib/Transforms/Utils/Local.cpp test/Transforms/InstCombine/invariant.ll
Chris Lattner
clattner at apple.com
Tue Dec 1 22:38:19 PST 2009
On Nov 11, 2009, at 7:34 AM, Duncan Sands wrote:
> Author: baldrick
> Date: Wed Nov 11 09:34:13 2009
> New Revision: 86840
>
> URL: http://llvm.org/viewvc/llvm-project?rev=86840&view=rev
> Log:
> Don't trivially delete unused calls to llvm.invariant.start. This allows
> llvm.invariant.start to be used without necessarily being paired with a call
> to llvm.invariant.end. If you run the entire optimization pipeline then such
> calls are in fact deleted (adce does it), but that's actually a good thing since
> we probably do want them to be zapped late in the game. There should really be
> an integration test that checks that the llvm.invariant.start call lasts long
> enough that all passes that do interesting things with it get to do their stuff
> before it is deleted. But since no passes do anything interesting with it yet
> this will have to wait for later.
Hi Duncan,
> +++ llvm/trunk/lib/Transforms/Utils/Local.cpp Wed Nov 11 09:34:13 2009
> @@ -252,6 +252,9 @@
> // We don't want debug info removed by anything this general.
> if (isa<DbgInfoIntrinsic>(I)) return false;
>
> + // Likewise for memory use markers.
> + if (isa<MemoryUseIntrinsic>(I)) return false;
Is this still needed? I thought that it turns out that these intrinsics need to be marked as having side effects after all?
-Chris
More information about the llvm-commits
mailing list