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

Bill Wendling wendling at apple.com
Thu Mar 7 13:36:17 PST 2013


On Mar 7, 2013, at 12:42 PM, Chad Rosier <mcrosier at apple.com> wrote:

> 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;
> +  }
>   }
> 
?? Why is this all commented out?

-bw

>   // 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
> 
> 
> _______________________________________________
> 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