inter-pass.hxx File Reference

#include "UocInfo.hxx"
#include "AST.hxx"
#include "Type.hxx"

Go to the source code of this file.

Defines

#define CHKERR(noerr, exp)
#define BE_CHKERR(noerr, exp)
#define FEXPR(let)   (let)->child(1)
#define IDENT(let)   (let)->child(0)->child(0)
#define IGNORE(ast)   ((size_t)(((ast)->astType == at_uswitch)?0:1))

Enumerations

enum  ResolutionMode {
  NULL_MODE = 0x0u, DEF_MODE = 0x1u, USE_MODE = 0x2u, DECL_MODE = 0x3u,
  LOCAL_MODE = 0x4u, TYPE_MODE = 0x5u
}
 Mode of operation used in Symbol Resolution and Type-inference. More...

Functions

void BitcP (std::ostream &out, const boost::shared_ptr< AST > ast, bool showTypes)
void addDecl (boost::shared_ptr< AST > decl)
void fatal ()
 Cease processing after fatal error.


Define Documentation

#define BE_CHKERR ( noerr,
exp   ) 

Value:

do {                                 \
    bool ans = (exp);                 \
    assert(ans);                 \
    if (ans == false)                 \
      (noerr) = false;                 \
  }while (0)

Definition at line 80 of file inter-pass.hxx.

Referenced by checkInfTypedValues(), polyinst(), and Specialize().

#define CHKERR ( noerr,
exp   ) 

Value:

do {                           \
    bool ans = (exp);           \
    if (ans == false)           \
      (noerr) = false;           \
  }while (0)

Definition at line 73 of file inter-pass.hxx.

Referenced by acyclic(), AllocCheck(), buildLinkedAST(), Type::checkMutConsistency(), CheckMutConsistency(), UocInfo::DoResolve(), UocInfo::DoTypeCheck(), emit_fnxn_label(), EmitGlobalInitializers(), findusedef(), generalizePat(), GenerateCoutput(), getDefs(), handlePcst(), handleSpecialPred(), InferObject(), InferStruct(), InferTypeClass(), InferUnion(), initGamma(), isAsGeneral(), matchDefDecl(), ProcessLetExprs(), PropagateMutability(), Type::propagateMutability(), UocInfo::RandT(), reprCheck(), reRandT(), resolve(), toc(), typeInfer(), TypesTOC(), unify(), Unify(), UnifyDecl(), UnifyFnArgs(), unifyPrim(), UnifyStructUnion(), and ValuesTOH().

#define FEXPR ( let   )     (let)->child(1)

Definition at line 89 of file inter-pass.hxx.

Referenced by emit_fnxn_label(), emitInitProc(), ssa(), and toc().

#define IDENT ( let   )     (let)->child(0)->child(0)

Definition at line 91 of file inter-pass.hxx.

#define IGNORE ( ast   )     ((size_t)(((ast)->astType == at_uswitch)?0:1))

Definition at line 96 of file inter-pass.hxx.

Referenced by cl_heapify(), findusedef(), LocChk(), markTail(), TopInit(), and tvarInst().


Enumeration Type Documentation

enum ResolutionMode

Mode of operation used in Symbol Resolution and Type-inference.

Bug:
EVERYTHING IN THIS FILE APPEARS TO BE UTILITY FUNCTIONS. WHY IS IT CALLED INTER-PASS?
Enumerator:
NULL_MODE  Don't care or error case.
DEF_MODE  Introducing a newly defined symbol into the environment.

This mode is used when recursing into a defining occurrence. It is currently used as the default at top-level in most cases.

USE_MODE  Checking a use-occurrence of a symbol.

This mode is used when recursing into a use occurrence context.

DECL_MODE  Introducing a newly declared symbol into the environment.

This mode is used when recursing into a declaring occurrence.

LOCAL_MODE  Local definitions, used only in closure conversion.
TYPE_MODE  Type definitions, used only in closure conversion.

Definition at line 49 of file inter-pass.hxx.


Function Documentation

void addDecl ( boost::shared_ptr< AST decl  ) 

void BitcP ( std::ostream &  out,
const boost::shared_ptr< AST ast,
bool  showTypes 
)

Referenced by doChildren().

void fatal (  ) 

Cease processing after fatal error.

Definition at line 257 of file bitcc.cxx.

Referenced by acyclic().


Generated on Sat Feb 4 23:59:29 2012 for BitC Compiler by  doxygen 1.4.7