CACAO
Macros | Functions
typecheck-typeinferer.cpp File Reference

Go to the source code of this file.

Macros

#define TYPECHECK_NO_STATISTICS
 
#define EXCEPTION   do { return false; } while (0)
 
#define VERIFY_ERROR(msg)   assert(false)
 
#define CHECK_LOCAL_TYPE(index, t)   assert(jd->var[(index)].type == (t));
 
#define STORE_LOCAL(t, index)
 
#define STORE_LOCAL_2_WORD(t, index)
 
#define REACH_BLOCK(target)
 
#define REACH(target)   REACH_BLOCK((target).block)
 
#define TYPECHECK_INT(v)   assert(jd->var[(v)].type == TYPE_INT)
 
#define TYPECHECK_ADR(v)   assert(jd->var[(v)].type == TYPE_ADR)
 
#define TYPECHECK_TYPEINFERER
 
#define TYPECHECK_TYPEINFERER
 
#define OP1   VAR(state->iptr->sx.s23.s2.args[0])
 
#define TYPECHECK_TYPEINFERER
 
#define OP1   state->iptr->sx.s23.s2.args[0]
 
#define TYPECHECK_TYPEINFERER
 
#define TYPECHECK_TYPEINFERER
 
#define STATE   state
 
#define METHOD   (state->m)
 
#define IPTR   iptr
 
#define BPTR   (state->bptr)
 

Functions

static bool handle_fieldaccess (verifier_state *state, varinfo *instance, varinfo *value)
 
static bool handle_invocation (verifier_state *state)
 
static bool handle_builtin (verifier_state *state)
 
static bool handle_multianewarray (verifier_state *state)
 
static bool handle_basic_block (verifier_state *state)
 
bool typecheck_infer_types (jitdata *jd)
 

Macro Definition Documentation

#define BPTR   (state->bptr)
#define CHECK_LOCAL_TYPE (   index,
 
)    assert(jd->var[(index)].type == (t));

Definition at line 66 of file typecheck-typeinferer.cpp.

#define EXCEPTION   do { return false; } while (0)

Definition at line 63 of file typecheck-typeinferer.cpp.

#define IPTR   iptr
#define METHOD   (state->m)
#define OP1   VAR(state->iptr->sx.s23.s2.args[0])
#define OP1   state->iptr->sx.s23.s2.args[0]
#define REACH (   target)    REACH_BLOCK((target).block)

Definition at line 87 of file typecheck-typeinferer.cpp.

#define REACH_BLOCK (   target)
Value:
do { \
if (!typestate_reach(state, (target), \
state->bptr->outvars, jd->var, \
state->bptr->outdepth)) \
return false; \
} while (0)
#define return
BeginInst * target
bool typestate_reach(verifier_state *state, basicblock *destblock, s4 *srcvars, varinfo *srclocals, s4 n)

Definition at line 79 of file typecheck-typeinferer.cpp.

#define STATE   state
#define STORE_LOCAL (   t,
  index 
)
Value:
do { \
typevector_store(jd->var, (index), (t), NULL); \
} while (0)
std::size_t index
void typevector_store(varinfo *vec, int index, Type type, typeinfo_t *info)
Definition: typeinfo.cpp:195

Definition at line 69 of file typecheck-typeinferer.cpp.

#define STORE_LOCAL_2_WORD (   t,
  index 
)
Value:
do { \
typevector_store(jd->var, (index), (t), NULL); \
} while (0)
std::size_t index
void typevector_store(varinfo *vec, int index, Type type, typeinfo_t *info)
Definition: typeinfo.cpp:195

Definition at line 74 of file typecheck-typeinferer.cpp.

#define TYPECHECK_ADR (   v)    assert(jd->var[(v)].type == TYPE_ADR)

Definition at line 90 of file typecheck-typeinferer.cpp.

#define TYPECHECK_INT (   v)    assert(jd->var[(v)].type == TYPE_INT)

Definition at line 89 of file typecheck-typeinferer.cpp.

#define TYPECHECK_NO_STATISTICS

Definition at line 57 of file typecheck-typeinferer.cpp.

#define TYPECHECK_TYPEINFERER
#define TYPECHECK_TYPEINFERER
#define TYPECHECK_TYPEINFERER
#define TYPECHECK_TYPEINFERER
#define TYPECHECK_TYPEINFERER
#define VERIFY_ERROR (   msg)    assert(false)

Definition at line 64 of file typecheck-typeinferer.cpp.

Function Documentation

static bool handle_basic_block ( verifier_state state)
static

Definition at line 230 of file typecheck-typeinferer.cpp.

static bool handle_builtin ( verifier_state state)
static

Definition at line 169 of file typecheck-typeinferer.cpp.

static bool handle_fieldaccess ( verifier_state state,
varinfo instance,
varinfo value 
)
static

Definition at line 107 of file typecheck-typeinferer.cpp.

static bool handle_invocation ( verifier_state state)
static

Definition at line 137 of file typecheck-typeinferer.cpp.

static bool handle_multianewarray ( verifier_state state)
static

Definition at line 200 of file typecheck-typeinferer.cpp.

bool typecheck_infer_types ( jitdata jd)

Definition at line 357 of file typecheck-typeinferer.cpp.