[llvm] b2d091a - [NFC] MemoryBuiltins: tease out a getFreeFunctionDataForFunction helper
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 3 08:36:55 PST 2022
Author: Augie Fackler
Date: 2022-02-03T08:36:36-08:00
New Revision: b2d091aa5d31ffaa6715868a1401472ed5f55808
URL: https://github.com/llvm/llvm-project/commit/b2d091aa5d31ffaa6715868a1401472ed5f55808
DIFF: https://github.com/llvm/llvm-project/commit/b2d091aa5d31ffaa6715868a1401472ed5f55808.diff
LOG: [NFC] MemoryBuiltins: tease out a getFreeFunctionDataForFunction helper
Added:
Modified:
llvm/lib/Analysis/MemoryBuiltins.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Analysis/MemoryBuiltins.cpp b/llvm/lib/Analysis/MemoryBuiltins.cpp
index 49f0d5da9a31..a2d102142957 100644
--- a/llvm/lib/Analysis/MemoryBuiltins.cpp
+++ b/llvm/lib/Analysis/MemoryBuiltins.cpp
@@ -43,6 +43,7 @@
#include <cassert>
#include <cstdint>
#include <iterator>
+#include <type_traits>
#include <utility>
using namespace llvm;
@@ -434,16 +435,22 @@ static const std::pair<LibFunc, FreeFnsTy> FreeFnData[] = {
};
// clang-format on
-/// isLibFreeFunction - Returns true if the function is a builtin free()
-bool llvm::isLibFreeFunction(const Function *F, const LibFunc TLIFn) {
+Optional<FreeFnsTy> getFreeFunctionDataForFunction(const Function *Callee,
+ const LibFunc TLIFn) {
const auto *Iter =
find_if(FreeFnData, [TLIFn](const std::pair<LibFunc, FreeFnsTy> &P) {
return P.first == TLIFn;
});
- if (Iter == std::end(FreeFnData)) {
+ if (Iter == std::end(FreeFnData))
+ return None;
+ return Iter->second;
+}
+
+/// isLibFreeFunction - Returns true if the function is a builtin free()
+bool llvm::isLibFreeFunction(const Function *F, const LibFunc TLIFn) {
+ Optional<FreeFnsTy> FnData = getFreeFunctionDataForFunction(F, TLIFn);
+ if (!FnData.hasValue())
return false;
- }
- const FreeFnsTy *FnData = &Iter->second;
// Check free prototype.
// FIXME: workaround for PR5130, this will be obsolete when a nobuiltin
More information about the llvm-commits
mailing list