Declaration of instrumentation helpers.
Definition in file Instrumentation.h.
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "Transition.h"
#include "tesla.pb.h"
#include <libtesla.h>
Go to the source code of this file.
Classes | |
class | tesla::FnInstrumentation |
Instrumentation for a function event. More... | |
class | tesla::InstInstrumentation |
Instrumentation on a single instruction that does not change control flow. More... | |
Namespaces | |
namespace | llvm |
namespace | tesla |
Typedefs | |
typedef llvm::SmallVector < llvm::Value *, 3 > | tesla::ArgVector |
A container for function arguments, which shouldn't be very numerous. More... | |
typedef llvm::SmallVector < llvm::Type *, 3 > | tesla::TypeVector |
A container for a few types (e.g., of function arguments). More... | |
Functions | |
llvm::Type * | tesla::IntPtrType (llvm::Module &) |
Extract the register_t type from an llvm::Module. More... | |
llvm::StructType * | tesla::TransitionType (llvm::Module &) |
Extract the tesla_transition type from an llvm::Module. More... | |
llvm::StructType * | tesla::TransitionSetType (llvm::Module &) |
Extract the tesla_transitions type from an llvm::Module. More... | |
llvm::Constant * | tesla::TeslaContext (AutomatonDescription::Context Context, llvm::LLVMContext &Ctx) |
Find the constant for a libtesla context (either TESLA_CONTEXT_THREAD or TESLA_CONTEXT_GLOBAL). More... | |
llvm::BasicBlock * | tesla::FindBlock (llvm::StringRef Name, llvm::Function &) |
Find a BasicBlock within a Function. More... | |
llvm::Function * | tesla::FindStateUpdateFn (llvm::Module &, llvm::Type *IntType) |
Find the libtesla function tesla_update_state. More... | |
llvm::Value * | tesla::Cast (llvm::Value *From, llvm::StringRef Name, llvm::Type *NewType, llvm::IRBuilder<> &) |
Cast an integer-ish Value to another type. More... | |
llvm::BasicBlock * | tesla::CreateInstrPreamble (llvm::Module &Mod, llvm::Function *F, const llvm::Twine &Prefix, bool SuppressDebugInstrumentation) |
Initialise the instrumentation function's preamble. More... | |
llvm::Value * | tesla::ConstructKey (llvm::IRBuilder<> &, llvm::Module &, llvm::ArrayRef< llvm::Value * > Args) |
Map a set of values into a tesla_key. More... | |
llvm::Constant * | tesla::ConstructTransition (llvm::IRBuilder<> &, llvm::Module &, const Transition &) |
Construct a single tesla_transition. More... | |
llvm::Constant * | tesla::ConstructTransitions (llvm::IRBuilder<> &, llvm::Module &, const TEquivalenceClass &) |
Construct a tesla_transitions for a TEquivalenceClass. More... | |
llvm::Function * | tesla::FunctionInstrumentation (llvm::Module &, const llvm::Function &, FunctionEvent::Direction, FunctionEvent::CallContext, bool SuppressDebugInstr) |
Find (or create) one function-event instrumentation function. More... | |
llvm::Function * | tesla::StructInstrumentation (llvm::Module &, llvm::StructType *, llvm::StringRef FieldName, size_t Index, bool Store, bool SuppressDebugInstr) |
Find (or create) one struct-field-event instrumentation function. More... | |