|
LLVM 23.0.0git
|
#include "llvm/Transforms/IPO/ForceFunctionAttrs.h"#include "llvm/IR/Function.h"#include "llvm/IR/Module.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/LineIterator.h"#include "llvm/Support/MemoryBuffer.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "forceattrs" |
Functions | |
| static bool | hasConflictingFnAttr (Attribute::AttrKind Kind, Function &F) |
| static void | forceAttributes (Function &F) |
| If F has any forced attributes given on the command line, add them. | |
| static bool | hasForceAttributes () |
Variables | |
| static cl::list< std::string > | ForceAttributes ("force-attribute", cl::Hidden, cl::desc("Add an attribute to a function. This can be a " "pair of 'function-name:attribute-name', to apply an attribute to a " "specific function. For " "example -force-attribute=foo:noinline. Specifying only an attribute " "will apply the attribute to every function in the module. This " "option can be specified multiple times.")) |
| static cl::list< std::string > | ForceRemoveAttributes ("force-remove-attribute", cl::Hidden, cl::desc("Remove an attribute from a function. This can be a " "pair of 'function-name:attribute-name' to remove an attribute " "from a specific function. For " "example -force-remove-attribute=foo:noinline. Specifying only an " "attribute will remove the attribute from all functions in the " "module. This " "option can be specified multiple times.")) |
| static cl::opt< std::string > | CSVFilePath ("forceattrs-csv-path", cl::Hidden, cl::desc("Path to CSV file containing lines of function names and attributes to " "add to them in the form of `f1,attr1` or `f2,attr2=str`.")) |
| #define DEBUG_TYPE "forceattrs" |
Definition at line 19 of file ForceFunctionAttrs.cpp.
|
static |
If F has any forced attributes given on the command line, add them.
If F has any forced remove attributes given on the command line, remove them. When both force and force-remove are given to a function, the latter takes precedence.
Definition at line 59 of file ForceFunctionAttrs.cpp.
References llvm::Attribute::canUseAsFnAttr(), llvm::dbgs(), F, ForceAttributes, ForceRemoveAttributes, llvm::Attribute::getAttrKindFromName(), hasConflictingFnAttr(), LLVM_DEBUG, llvm::Attribute::None, and llvm::StringRef::split().
Referenced by llvm::ForceFunctionAttrsPass::run().
Definition at line 47 of file ForceFunctionAttrs.cpp.
References F.
Referenced by forceAttributes(), and llvm::ForceFunctionAttrsPass::run().
|
static |
Definition at line 94 of file ForceFunctionAttrs.cpp.
References ForceAttributes, and ForceRemoveAttributes.
Referenced by llvm::ForceFunctionAttrsPass::run().
|
static |
Referenced by llvm::ForceFunctionAttrsPass::run().
|
static |
Referenced by forceAttributes(), and hasForceAttributes().
|
static |
Referenced by forceAttributes(), and hasForceAttributes().