[llvm] r176649 - [fast-isel] Add support for the expect intrinsic.

Chad Rosier mcrosier at apple.com
Thu Mar 7 12:42:17 PST 2013


Author: mcrosier
Date: Thu Mar  7 14:42:17 2013
New Revision: 176649

URL: http://llvm.org/viewvc/llvm-project?rev=176649&view=rev
Log:
[fast-isel] Add support for the expect intrinsic.
rdar://13370942

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
    llvm/trunk/test/CodeGen/ARM/fast-isel-intrinsic.ll

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp?rev=176649&r1=176648&r2=176649&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp Thu Mar  7 14:42:17 2013
@@ -698,6 +698,11 @@ bool FastISel::SelectCall(const User *I)
     UpdateValueMap(Call, ResultReg);
     return true;
   }
+  case Intrinsic::expect: {
+//    unsigned ResultReg = getRegForValue(Call->getArgOperand(0));
+//    UpdateValueMap(Call, ResultReg);
+//    return true;
+  }
   }
 
   // Usually, it does not make sense to initialize a value,

Modified: llvm/trunk/test/CodeGen/ARM/fast-isel-intrinsic.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/fast-isel-intrinsic.ll?rev=176649&r1=176648&r2=176649&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/fast-isel-intrinsic.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/fast-isel-intrinsic.ll Thu Mar  7 14:42:17 2013
@@ -238,3 +238,15 @@ define void @t7() nounwind ssp {
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 4), i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 16), i32 3, i32 2, i1 false)
   ret void
 }
+
+define i32 @t8(i32 %x) nounwind {
+entry:
+; ARM: t8
+; ARM-NOT: FastISel missed call:   %expval = call i32 @llvm.expect.i32(i32 %x, i32 1)
+; THUMB: t8
+; THUMB-NOT: FastISel missed call:   %expval = call i32 @llvm.expect.i32(i32 %x, i32 1)
+  %expval = call i32 @llvm.expect.i32(i32 %x, i32 1)
+  ret i32 %expval
+}
+
+declare i32 @llvm.expect.i32(i32, i32) nounwind readnone





More information about the llvm-commits mailing list