Enzyme main
Loading...
Searching...
No Matches
TypeAnalysis.h File Reference
#include <cstdint>
#include <deque>
#include <llvm/Config/llvm-config.h>
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "SCEV/ScalarEvolution.h"
#include "SCEV/ScalarEvolutionExpander.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/ModuleSlotTracker.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/IR/Dominators.h"
#include "../Utils.h"
#include "TypeTree.h"
Include dependency graph for TypeAnalysis.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FnTypeInfo
 Struct containing all contextual type information for a particular function call. More...
 
class  TypeResults
 A holder class representing the results of running TypeAnalysis on a given function. More...
 
class  TypeAnalyzer
 Helper class that computes the fixed-point type results of a given function. More...
 
class  TypeAnalysis
 Full interprocedural TypeAnalysis. More...
 

Functions

static bool isMemFreeLibMFunction (llvm::StringRef str, llvm::Intrinsic::ID *ID=nullptr)
 
static bool operator< (const FnTypeInfo &lhs, const FnTypeInfo &rhs)
 
TypeTree defaultTypeTreeForLLVM (llvm::Type *ET, llvm::Instruction *I, bool intIsPointer=true)
 
FnTypeInfo preventTypeAnalysisLoops (const FnTypeInfo &oldTypeInfo_, llvm::Function *todiff)
 

Variables

const llvm::StringMap< llvm::Intrinsic::ID > LIBM_FUNCTIONS
 

Function Documentation

◆ defaultTypeTreeForLLVM()

TypeTree defaultTypeTreeForLLVM ( llvm::Type * ET,
llvm::Instruction * I,
bool intIsPointer = true )

◆ isMemFreeLibMFunction()

static bool isMemFreeLibMFunction ( llvm::StringRef str,
llvm::Intrinsic::ID * ID = nullptr )
inlinestatic

◆ operator<()

static bool operator< ( const FnTypeInfo & lhs,
const FnTypeInfo & rhs )
inlinestatic

◆ preventTypeAnalysisLoops()

FnTypeInfo preventTypeAnalysisLoops ( const FnTypeInfo & oldTypeInfo_,
llvm::Function * todiff )

Definition at line 6506 of file TypeAnalysis.cpp.

References FnTypeInfo::KnownValues.

Referenced by TypeAnalyzer::visitIPOCall().

Variable Documentation

◆ LIBM_FUNCTIONS

const llvm::StringMap<llvm::Intrinsic::ID> LIBM_FUNCTIONS
extern

Definition at line 97 of file TypeAnalysis.cpp.

Referenced by isMemFreeLibMFunction().