[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