[llvm] [IR] Remove check for bitcast of called function in CallBase::has/getFnAttrOnCalledFunction (PR #91392)
via llvm-commits
llvm-commits at lists.llvm.org
Tue May 7 13:09:38 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-ir
Author: Arthur Eubanks (aeubanks)
<details>
<summary>Changes</summary>
With opaque pointers, we shouldn't have bitcasts between function pointer types.
---
Full diff: https://github.com/llvm/llvm-project/pull/91392.diff
1 Files Affected:
- (modified) llvm/lib/IR/Instructions.cpp (+3-18)
``````````diff
diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp
index 7ad1ad4cddb70..295f9ec3a51af 100644
--- a/llvm/lib/IR/Instructions.cpp
+++ b/llvm/lib/IR/Instructions.cpp
@@ -454,24 +454,14 @@ bool CallBase::paramHasAttr(unsigned ArgNo, Attribute::AttrKind Kind) const {
}
bool CallBase::hasFnAttrOnCalledFunction(Attribute::AttrKind Kind) const {
- Value *V = getCalledOperand();
- if (auto *CE = dyn_cast<ConstantExpr>(V))
- if (CE->getOpcode() == BitCast)
- V = CE->getOperand(0);
-
- if (auto *F = dyn_cast<Function>(V))
+ if (auto *F = dyn_cast<Function>(getCalledOperand()))
return F->getAttributes().hasFnAttr(Kind);
return false;
}
bool CallBase::hasFnAttrOnCalledFunction(StringRef Kind) const {
- Value *V = getCalledOperand();
- if (auto *CE = dyn_cast<ConstantExpr>(V))
- if (CE->getOpcode() == BitCast)
- V = CE->getOperand(0);
-
- if (auto *F = dyn_cast<Function>(V))
+ if (auto *F = dyn_cast<Function>(getCalledOperand()))
return F->getAttributes().hasFnAttr(Kind);
return false;
@@ -485,12 +475,7 @@ Attribute CallBase::getFnAttrOnCalledFunction(AK Kind) const {
assert(Kind != Attribute::Memory && "Use getMemoryEffects() instead");
}
- Value *V = getCalledOperand();
- if (auto *CE = dyn_cast<ConstantExpr>(V))
- if (CE->getOpcode() == BitCast)
- V = CE->getOperand(0);
-
- if (auto *F = dyn_cast<Function>(V))
+ if (auto *F = dyn_cast<Function>(getCalledOperand()))
return F->getAttributes().getFnAttr(Kind);
return Attribute();
``````````
</details>
https://github.com/llvm/llvm-project/pull/91392
More information about the llvm-commits
mailing list