[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