dfapass.h
No OneTemporary

File Metadata

Created
Wed, Jul 8, 9:29 AM

dfapass.h

// Data Flow Graph determination pass
#ifndef DFGPASS_H
#define DFGPASS_H
#include "abstractpass.h"
#include "analysis/dfagraph.h"
namespace xreate {
class ClaspLayer;
}
namespace xreate { namespace dfa {
class DfaExpressionProcessor;
class DFAPass: public AbstractPass<SymbolPacked> {
friend class DfaExpressionProcessor;
public:
DFAPass(PassManager* manager);
SymbolPacked processSymbol(const Symbol& symbol, PassContext context, const std::string& hintSymbol="") override;
SymbolPacked process(CodeScope* scope, PassContext context, const std::string& hintBlockDecl="") override;
void init();
void run() override;
void finish() override;
private:
struct
{
DFAGraph* graph;
} __context;
std::map<Operator, Expression> __signatures; //DFA data for particular operators
ClaspLayer* clasp;
};
}} //end of xreate::dfa namespace
#endif

Event Timeline