tipc
A TIP to LLVM compiler
Functions
TypeInference.cpp File Reference
#include "TypeInference.h"
#include "AbsentFieldChecker.h"
#include "PolyTypeConstraintCollectVisitor.h"
#include "TypeConstraint.h"
#include "TypeConstraintCollectVisitor.h"
#include "Unifier.h"
#include "loguru.hpp"
#include <memory>
Include dependency graph for TypeInference.cpp:

Functions

void topoVisit (CallGraph *cg, ASTFunction *f)
 
bool mayIndirectlyCall (CallGraph *cg, ASTFunction *f, ASTFunction *g)
 
std::deque< ASTFunction * > topoSort (CallGraph *cg, std::vector< ASTFunction * > funcs)
 
std::vector< ASTFunction * > recursiveFuncs (CallGraph *cg)
 
std::deque< ASTFunction * > topoSortNonRecursive (CallGraph *cg)
 
std::shared_ptr< TypeInferencerunPoly (ASTProgram *ast, SymbolTable *symbols, CallGraph *cg)
 
std::shared_ptr< TypeInferencerunMono (ASTProgram *ast, SymbolTable *symbols)
 

Function Documentation

◆ mayIndirectlyCall()

bool mayIndirectlyCall ( CallGraph cg,
ASTFunction f,
ASTFunction g 
)

◆ recursiveFuncs()

std::vector<ASTFunction *> recursiveFuncs ( CallGraph cg)

◆ runMono()

std::shared_ptr<TypeInference> runMono ( ASTProgram ast,
SymbolTable symbols 
)

◆ runPoly()

std::shared_ptr<TypeInference> runPoly ( ASTProgram ast,
SymbolTable symbols,
CallGraph cg 
)

◆ topoSort()

std::deque<ASTFunction *> topoSort ( CallGraph cg,
std::vector< ASTFunction * >  funcs 
)

◆ topoSortNonRecursive()

std::deque<ASTFunction *> topoSortNonRecursive ( CallGraph cg)

◆ topoVisit()

void topoVisit ( CallGraph cg,
ASTFunction f 
)