[PATCH] llvm.assume - CodeGen support
hfinkel at anl.gov
hfinkel at anl.gov
Thu Apr 30 08:20:07 PDT 2015
Hi chandlerc, reames,
This is part of the series started by D9375, and adds CodeGen support for llvm.noalias. The support is trivial (the intrinsic always returns its argument).
http://reviews.llvm.org/D9380
Files:
lib/CodeGen/IntrinsicLowering.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
test/CodeGen/Generic/noalias.ll
Index: lib/CodeGen/IntrinsicLowering.cpp
===================================================================
--- lib/CodeGen/IntrinsicLowering.cpp
+++ lib/CodeGen/IntrinsicLowering.cpp
@@ -462,6 +462,11 @@
case Intrinsic::assume:
case Intrinsic::var_annotation:
break; // Strip out these intrinsics
+
+ case Intrinsic::noalias:
+ // Just forward the value
+ CI->replaceAllUsesWith(CI->getOperand(0));
+ break;
case Intrinsic::memcpy: {
Type *IntPtr = DL.getIntPtrType(Context);
Index: lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
===================================================================
--- lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -4554,6 +4554,7 @@
}
case Intrinsic::annotation:
case Intrinsic::ptr_annotation:
+ case Intrinsic::noalias:
// Drop the intrinsic, but forward the value
setValue(&I, getValue(I.getOperand(0)));
return nullptr;
Index: test/CodeGen/Generic/noalias.ll
===================================================================
--- /dev/null
+++ test/CodeGen/Generic/noalias.ll
@@ -0,0 +1,12 @@
+; RUN: llc < %s
+
+define i8* @main(i8* %p) {
+ %v = call i8* @llvm.noalias.p0i8(i8* %p, metadata !1)
+ ret i8* %v
+}
+
+declare i8* @llvm.noalias.p0i8(i8*, metadata) nounwind
+
+!0 = !{!0, !"some domain"}
+!1 = !{!1, !0, !"some scope"}
+
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9380.24714.patch
Type: text/x-patch
Size: 1396 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150430/190cc1c2/attachment.bin>
More information about the llvm-commits
mailing list