[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