#include <NotationGenerator.hpp>

Generates notation files. Notation files consist of a series of clauses that describe the contents of an intermediate representation.
Definition at line 32 of file NotationGenerator.hpp.
| NotationGenerator::NotationGenerator | ( | OA::OA_ptr< OA::Alias::AliasIRInterface > | ir, | |
| std::ostream & | codeStream | |||
| ) |
The notations generated will be outputted to the passed stream.
Definition at line 32 of file NotationGenerator.cpp.
| void NotationGenerator::generate | ( | OA::ProcHandle | proc | ) |
Output notation for a given procedure to the code stream.
Definition at line 40 of file NotationGenerator.cpp.
References mCodeStream, mIR, outputFormals(), outputLocations(), outputProcedure(), outputStmt(), and popIndt().

| void NotationGenerator::outputAccuracy | ( | bool | hasFullAccuracy | ) | [private] |
output 'full' or 'part' based on the passed value. used to output whether an expression has full or partial accuracy
Definition at line 425 of file NotationGenerator.cpp.
References mCodeStream.
| void NotationGenerator::outputCallSites | ( | OA::StmtHandle | stmt | ) | [private] |
output a CALLSITES clause
Definition at line 184 of file NotationGenerator.cpp.
References indt(), mCodeStream, mIR, outputHandle(), outputMemRefExpr(), popIndt(), and pushIndt().
Referenced by outputStmt().

| void NotationGenerator::outputFormals | ( | OA::ProcHandle | proc | ) | [private] |
output a FORMALS clause
Definition at line 70 of file NotationGenerator.cpp.
References indt(), mCodeStream, mIR, outputHandle(), popIndt(), and pushIndt().
Referenced by generate().

| void NotationGenerator::outputHandle | ( | OA::CallHandle | h | ) | [private] |
Definition at line 412 of file NotationGenerator.cpp.
References mCodeStream, and mIR.
| void NotationGenerator::outputHandle | ( | OA::SymHandle | h | ) | [private] |
Definition at line 404 of file NotationGenerator.cpp.
References mCodeStream, mIR, and mSymHandles.
| void NotationGenerator::outputHandle | ( | OA::ProcHandle | h | ) | [private] |
Definition at line 389 of file NotationGenerator.cpp.
References mCodeStream, and mIR.
| void NotationGenerator::outputHandle | ( | OA::MemRefHandle | h | ) | [private] |
Definition at line 382 of file NotationGenerator.cpp.
References mCodeStream, and mIR.
| void NotationGenerator::outputHandle | ( | OA::ExprHandle | h | ) | [private] |
Definition at line 374 of file NotationGenerator.cpp.
References mCodeStream, and mIR.
| void NotationGenerator::outputHandle | ( | OA::StmtHandle | h | ) | [private] |
ouput a handle
Definition at line 366 of file NotationGenerator.cpp.
References mCodeStream, and mIR.
Referenced by outputCallSites(), outputFormals(), outputLocation(), outputMemRefExpr(), outputMemRefExprs(), outputParamBindPtrAssignPairs(), outputProcedure(), and outputPtrAssignPairs().
| void NotationGenerator::outputLocation | ( | OA::ProcHandle | proc, | |
| OA::SymHandle | sym | |||
| ) | [private] |
output a LOCATION clause
Definition at line 442 of file NotationGenerator.cpp.
References indt(), mCodeStream, mIR, outputHandle(), and OA::OA_ptr< T >::ptrEqual().
Referenced by outputLocations().

| void NotationGenerator::outputLocations | ( | OA::ProcHandle | proc | ) | [private] |
after having outputted all statements, output all LOCATION clauses for a procedure.
Definition at line 431 of file NotationGenerator.cpp.
References mSymHandles, and outputLocation().
Referenced by generate().

| void NotationGenerator::outputMemRefExpr | ( | OA::SubSetRef & | ref | ) | [private] |
Definition at line 356 of file NotationGenerator.cpp.
References OA::RefOp::getMemRefExpr(), mCodeStream, outputMemRefExpr(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::IdxExprAccess & | expr | ) | [private] |
Definition at line 333 of file NotationGenerator.cpp.
References OA::IdxExprAccess::getExpr(), OA::RefOp::getMemRefExpr(), mCodeStream, outputHandle(), outputMemRefExpr(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::IdxAccess & | expr | ) | [private] |
Definition at line 344 of file NotationGenerator.cpp.
References OA::IdxAccess::getIdx(), OA::RefOp::getMemRefExpr(), mCodeStream, outputMemRefExpr(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::FieldAccess & | expr | ) | [private] |
Definition at line 320 of file NotationGenerator.cpp.
References OA::FieldAccess::getFieldName(), OA::RefOp::getMemRefExpr(), mCodeStream, outputMemRefExpr(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::Deref & | expr | ) | [private] |
Definition at line 307 of file NotationGenerator.cpp.
References OA::RefOp::getMemRefExpr(), OA::Deref::getNumDerefs(), mCodeStream, outputMemRefExpr(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::AddressOf & | expr | ) | [private] |
Definition at line 298 of file NotationGenerator.cpp.
References OA::RefOp::getMemRefExpr(), mCodeStream, outputMemRefExpr(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::UnknownRef & | expr | ) | [private] |
Definition at line 291 of file NotationGenerator.cpp.
References mCodeStream, and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::UnnamedRef & | expr | ) | [private] |
Definition at line 276 of file NotationGenerator.cpp.
References OA::UnnamedRef::getExprHandle(), OA::UnnamedRef::getProcHandle(), OA::UnnamedRef::isLocal(), mCodeStream, outputHandle(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::NamedRef & | expr | ) | [private] |
Definition at line 265 of file NotationGenerator.cpp.
References OA::NamedRef::getSymHandle(), mCodeStream, outputHandle(), and outputMemRefType().

| void NotationGenerator::outputMemRefExpr | ( | OA::OA_ptr< OA::MemRefExpr > | expr | ) | [private] |
output a memory reference expression
Definition at line 257 of file NotationGenerator.cpp.
Referenced by outputCallSites(), outputMemRefExpr(), outputMemRefExprs(), outputParamBindPtrAssignPairs(), outputPtrAssignPairs(), NGOutputVisitor::visitAddressOf(), NGOutputVisitor::visitDeref(), NGOutputVisitor::visitFieldAccess(), NGOutputVisitor::visitIdxAccess(), NGOutputVisitor::visitIdxExprAccess(), NGOutputVisitor::visitNamedRef(), NGOutputVisitor::visitSubSetRef(), NGOutputVisitor::visitUnknownRef(), and NGOutputVisitor::visitUnnamedRef().
| void NotationGenerator::outputMemRefExprs | ( | OA::StmtHandle | stmt | ) | [private] |
output a MEMREFEXPRS clause
Definition at line 111 of file NotationGenerator.cpp.
References indt(), mCodeStream, mIR, outputHandle(), outputMemRefExpr(), popIndt(), and pushIndt().
Referenced by outputStmt().

| void NotationGenerator::outputMemRefType | ( | OA::MemRefExpr & | expr | ) | [private] |
output a memory reference expression's type. Ex: DEF, USE, DEFUSE, etc.
Definition at line 396 of file NotationGenerator.cpp.
References OA::MemRefExpr::isDef(), OA::MemRefExpr::isDefUse(), OA::MemRefExpr::isUse(), OA::MemRefExpr::isUseDef(), and mCodeStream.
Referenced by outputMemRefExpr().

| void NotationGenerator::outputParamBindPtrAssignPairs | ( | OA::StmtHandle | stmt, | |
| OA::CallHandle | call | |||
| ) | [private] |
output a PARAMBINDPTRASSIGNPAIRS clause
Definition at line 225 of file NotationGenerator.cpp.
References indt(), mCodeStream, mIR, outputHandle(), outputMemRefExpr(), popIndt(), and pushIndt().

| void NotationGenerator::outputParamBindPtrAssignPairs | ( | OA::StmtHandle | stmt | ) | [private] |
iterate over all calls in a statement and output a PARAMBINDPTRASSIGNPAIRS for them if needed
Definition at line 214 of file NotationGenerator.cpp.
References mIR.
Referenced by outputStmt().
| void NotationGenerator::outputProcedure | ( | OA::ProcHandle | proc | ) | [private] |
output a PROCEDURE clause
Definition at line 57 of file NotationGenerator.cpp.
References indt(), mCodeStream, mIR, outputHandle(), and pushIndt().
Referenced by generate().

| void NotationGenerator::outputPtrAssignPairs | ( | OA::StmtHandle | stmt | ) | [private] |
output a PTRASSIGNPAIRS clause
Definition at line 144 of file NotationGenerator.cpp.
References indt(), mCodeStream, mIR, outputHandle(), outputMemRefExpr(), popIndt(), and pushIndt().
Referenced by outputStmt().

| void NotationGenerator::outputStmt | ( | OA::StmtHandle | stmt | ) | [private] |
output a statement. Statements may contain MEMREFEXPRS, PTRASSIGNPAIRS, CALLSITES, and PARAMBINDPTRASSIGNPAIRS clauses.
Definition at line 100 of file NotationGenerator.cpp.
References outputCallSites(), outputMemRefExprs(), outputParamBindPtrAssignPairs(), and outputPtrAssignPairs().
Referenced by generate().

| void NotationGenerator::outputTF | ( | bool | value | ) | [private] |
output T if the value is true, otherwise F
Definition at line 419 of file NotationGenerator.cpp.
References mCodeStream.
friend class NGOutputVisitor [friend] |
Definition at line 34 of file NotationGenerator.hpp.
std::ostream& NotationGenerator::mCodeStream [private] |
Definition at line 113 of file NotationGenerator.hpp.
Referenced by generate(), outputAccuracy(), outputCallSites(), outputFormals(), outputHandle(), outputLocation(), outputMemRefExpr(), outputMemRefExprs(), outputMemRefType(), outputParamBindPtrAssignPairs(), outputProcedure(), outputPtrAssignPairs(), and outputTF().
Definition at line 112 of file NotationGenerator.hpp.
Referenced by generate(), outputCallSites(), outputFormals(), outputHandle(), outputLocation(), outputMemRefExprs(), outputParamBindPtrAssignPairs(), outputProcedure(), and outputPtrAssignPairs().
std::set<OA::SymHandle> NotationGenerator::mSymHandles [private] |
In order to determine what locations to output the notation generator must construct a set of all sym handles encountered while generating notations for a procedure.
Definition at line 118 of file NotationGenerator.hpp.
Referenced by outputHandle(), and outputLocations().
1.6.1