aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h')
-rw-r--r--contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h b/contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h
index 976772b343fd..c148ee790778 100644
--- a/contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h
+++ b/contrib/llvm-project/llvm/include/llvm/IR/GlobalIFunc.h
@@ -93,6 +93,12 @@ public:
static bool classof(const Value *V) {
return V->getValueID() == Value::GlobalIFuncVal;
}
+
+ // Apply specific operation to all resolver-related values. If resolver target
+ // is already a global object, then apply the operation to it directly. If
+ // target is a GlobalExpr or a GlobalAlias, evaluate it to its base object and
+ // apply the operation for the base object and all aliases along the path.
+ void applyAlongResolverPath(function_ref<void(const GlobalValue &)> Op) const;
};
template <>