[llvm] 80b311a - [SpeculativeExecution] Add support for ptrtoaddr
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 20 07:56:22 PDT 2025
Author: Nikita Popov
Date: 2025-10-20T16:56:11+02:00
New Revision: 80b311a9443f46826ed3a9a0003b83771bd53124
URL: https://github.com/llvm/llvm-project/commit/80b311a9443f46826ed3a9a0003b83771bd53124
DIFF: https://github.com/llvm/llvm-project/commit/80b311a9443f46826ed3a9a0003b83771bd53124.diff
LOG: [SpeculativeExecution] Add support for ptrtoaddr
Added:
Modified:
llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
llvm/test/Transforms/SpeculativeExecution/spec-casts.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp b/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
index fa66a038844db..23e1243def290 100644
--- a/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
+++ b/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
@@ -227,6 +227,7 @@ static InstructionCost ComputeSpeculationCost(const Instruction *I,
case Instruction::Call:
case Instruction::BitCast:
case Instruction::PtrToInt:
+ case Instruction::PtrToAddr:
case Instruction::IntToPtr:
case Instruction::AddrSpaceCast:
case Instruction::FPToUI:
diff --git a/llvm/test/Transforms/SpeculativeExecution/spec-casts.ll b/llvm/test/Transforms/SpeculativeExecution/spec-casts.ll
index 8e4d1c432c9ac..c7500cf8f4392 100644
--- a/llvm/test/Transforms/SpeculativeExecution/spec-casts.ll
+++ b/llvm/test/Transforms/SpeculativeExecution/spec-casts.ll
@@ -43,6 +43,26 @@ b:
ret void
}
+define void @ifThen_ptrtoaddr(ptr %arg) {
+; CHECK-LABEL: define void @ifThen_ptrtoaddr(
+; CHECK-SAME: ptr [[ARG:%.*]]) {
+; CHECK-NEXT: [[X:%.*]] = ptrtoaddr ptr [[ARG]] to i64
+; CHECK-NEXT: br i1 true, label %[[A:.*]], label %[[B:.*]]
+; CHECK: [[A]]:
+; CHECK-NEXT: br label %[[B]]
+; CHECK: [[B]]:
+; CHECK-NEXT: ret void
+;
+ br i1 true, label %a, label %b
+
+a:
+ %x = ptrtoaddr ptr %arg to i64
+ br label %b
+
+b:
+ ret void
+}
+
define void @ifThen_inttoptr(i64 %arg) {
; CHECK-LABEL: define void @ifThen_inttoptr(
; CHECK-SAME: i64 [[ARG:%.*]]) {
More information about the llvm-commits
mailing list