[clang] [clang][bytecode] Avoid a getValue() call in builtin_isinf (PR #152939)
via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 10 12:56:33 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Timm Baeder (tbaederr)
<details>
<summary>Changes</summary>
Get the APFloat once and work with that, instead of calling isInf() and potentially isNegative().
---
Full diff: https://github.com/llvm/llvm-project/pull/152939.diff
1 Files Affected:
- (modified) clang/lib/AST/ByteCode/InterpBuiltin.cpp (+4-3)
``````````diff
diff --git a/clang/lib/AST/ByteCode/InterpBuiltin.cpp b/clang/lib/AST/ByteCode/InterpBuiltin.cpp
index 14f6929037ff5..ad923a52a4ce1 100644
--- a/clang/lib/AST/ByteCode/InterpBuiltin.cpp
+++ b/clang/lib/AST/ByteCode/InterpBuiltin.cpp
@@ -459,12 +459,13 @@ static bool interp__builtin_isinf(InterpState &S, CodePtr OpPC,
const InterpFrame *Frame, bool CheckSign,
const CallExpr *Call) {
const Floating &Arg = S.Stk.pop<Floating>();
- bool IsInf = Arg.isInf();
+ APFloat F = Arg.getAPFloat();
+ bool IsInf = F.isInfinity();
if (CheckSign)
- pushInteger(S, IsInf ? (Arg.isNegative() ? -1 : 1) : 0, Call->getType());
+ pushInteger(S, IsInf ? (F.isNegative() ? -1 : 1) : 0, Call->getType());
else
- pushInteger(S, Arg.isInf(), Call->getType());
+ pushInteger(S, IsInf, Call->getType());
return true;
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/152939
More information about the cfe-commits
mailing list