[llvm-commits] [llvm] r66244 - in /llvm/trunk: lib/Transforms/Scalar/GVN.cpp test/Transforms/GVN/2009-03-05-dbg.ll
Owen Anderson
resistor at mac.com
Thu Mar 5 19:17:13 PST 2009
You may need to make a similar change to memdep, to prevent debug
instrinsics from blocking load elimination.
--Owen
On Mar 5, 2009, at 6:59 PM, Devang Patel wrote:
> Author: dpatel
> Date: Thu Mar 5 20:59:27 2009
> New Revision: 66244
>
> URL: http://llvm.org/viewvc/llvm-project?rev=66244&view=rev
> Log:
> Skip DbgInfoIntrinsic.
>
> Added:
> llvm/trunk/test/Transforms/GVN/2009-03-05-dbg.ll
> Modified:
> llvm/trunk/lib/Transforms/Scalar/GVN.cpp
>
> Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=66244&r1=66243&r2=66244&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Thu Mar 5 20:59:27 2009
> @@ -21,7 +21,7 @@
> #include "llvm/Constants.h"
> #include "llvm/DerivedTypes.h"
> #include "llvm/Function.h"
> -#include "llvm/Instructions.h"
> +#include "llvm/IntrinsicInst.h"
> #include "llvm/Value.h"
> #include "llvm/ADT/DenseMap.h"
> #include "llvm/ADT/DepthFirstIterator.h"
> @@ -1470,7 +1470,7 @@
>
> if (isa<AllocationInst>(CurInst) ||
> isa<TerminatorInst>(CurInst) ||
> isa<PHINode>(CurInst) || CurInst->mayReadFromMemory() ||
> - CurInst->mayWriteToMemory())
> + CurInst->mayWriteToMemory() ||
> isa<DbgInfoIntrinsic>(CurInst))
> continue;
>
> uint32_t valno = VN.lookup(CurInst);
>
> Added: llvm/trunk/test/Transforms/GVN/2009-03-05-dbg.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/2009-03-05-dbg.ll?rev=66244&view=auto
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/test/Transforms/GVN/2009-03-05-dbg.ll (added)
> +++ llvm/trunk/test/Transforms/GVN/2009-03-05-dbg.ll Thu Mar 5
> 20:59:27 2009
> @@ -0,0 +1,66 @@
> +; RUN: llvm-as < %s | opt -gvn -disable-output
> + %llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*,
> i8*, i1, i1, i8*, i32 }
> + at llvm.dbg.compile_unit298 = external constant
> %llvm.dbg.compile_unit.type ; <%llvm.dbg.compile_unit.type*>
> [#uses=1]
> +
> +declare void @llvm.dbg.stoppoint(i32, i32, { }*) nounwind
> +
> +define i8* @__deregister_frame_info_bases(i8* %begin) {
> +entry:
> + br i1 false, label %bb17, label %bb
> +
> +bb: ; preds = %entry
> + br i1 false, label %bb17, label %bb6.preheader
> +
> +bb6.preheader: ; preds = %bb
> + br label %bb6
> +
> +bb3: ; preds = %bb6
> + br i1 false, label %bb4, label %bb6
> +
> +bb4: ; preds = %bb3
> + br label %out
> +
> +bb6: ; preds = %bb3, %bb6.preheader
> + br i1 false, label %bb14.loopexit, label %bb3
> +
> +bb8: ; preds = %bb14
> + br i1 false, label %bb9, label %bb11
> +
> +bb9: ; preds = %bb8
> + br i1 false, label %bb10, label %bb13
> +
> +bb10: ; preds = %bb9
> + br label %out
> +
> +bb11: ; preds = %bb8
> + br i1 false, label %bb12, label %bb13
> +
> +bb12: ; preds = %bb11
> + br label %out
> +
> +bb13: ; preds = %bb11, %bb9
> + br label %bb14
> +
> +bb14.loopexit: ; preds = %bb6
> + br label %bb14
> +
> +bb14: ; preds = %bb14.loopexit, %bb13
> + br i1 false, label %bb15.loopexit, label %bb8
> +
> +out: ; preds = %bb12, %bb10, %bb4
> + tail call void @llvm.dbg.stoppoint(i32 217, i32 0, { }* bitcast
> (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit298 to { }*))
> + br i1 false, label %bb15, label %bb16
> +
> +bb15.loopexit: ; preds = %bb14
> + br label %bb15
> +
> +bb15: ; preds = %bb15.loopexit, %out
> + tail call void @llvm.dbg.stoppoint(i32 217, i32 0, { }* bitcast
> (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit298 to { }*))
> + unreachable
> +
> +bb16: ; preds = %out
> + ret i8* null
> +
> +bb17: ; preds = %bb, %entry
> + ret i8* null
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list