OmniSciDB
a5dc49c757
|
#include <AnnotateInternalFunctionsPass.h>
Public Member Functions | |
AnnotateInternalFunctionsPass () | |
bool | runOnSCC (llvm::CallGraphSCC &SCC) override |
llvm::StringRef | getPassName () const override |
Static Public Attributes | |
static char | ID = 0 |
Static Private Member Functions | |
static bool | isInternalStatelessFunction (const llvm::StringRef &func_name) |
static bool | isInternalMathFunction (const llvm::StringRef &func_name) |
Static Private Attributes | |
static const std::set < std::string > | extension_functions |
static const std::set < std::string > | math_builtins |
Annotates internal functions with function attributes designating the function as one which does not modify memory, does not throw, does not synchronize state with other functions/parts of the program, and is guaranteed to return. This allows the LLVM optimizer to more aggressively remove / reorder these functions and is particularly important for dead code elimination.
Definition at line 34 of file AnnotateInternalFunctionsPass.h.
|
inline |
Definition at line 37 of file AnnotateInternalFunctionsPass.h.
|
inlineoverride |
Definition at line 70 of file AnnotateInternalFunctionsPass.h.
|
inlinestaticprivate |
Definition at line 82 of file AnnotateInternalFunctionsPass.h.
References math_builtins.
Referenced by runOnSCC().
|
inlinestaticprivate |
Definition at line 75 of file AnnotateInternalFunctionsPass.h.
References extension_functions.
Referenced by runOnSCC().
|
inlineoverride |
Definition at line 39 of file AnnotateInternalFunctionsPass.h.
References CHECK, isInternalMathFunction(), and isInternalStatelessFunction().
|
staticprivate |
Definition at line 73 of file AnnotateInternalFunctionsPass.h.
Referenced by isInternalStatelessFunction().
|
static |
Definition at line 36 of file AnnotateInternalFunctionsPass.h.
|
staticprivate |
Definition at line 80 of file AnnotateInternalFunctionsPass.h.
Referenced by isInternalMathFunction().