LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
canon Namespace Reference

Simplification of tree::Tree code. More...

Namespaces

namespace  tasks

Classes

class  BasicBlock
 A location independent piece of tree::Tree code. More...
struct  is_nop
 Return false if tree has to be run. Try to say true as much as possible. More...
struct  commute_p
 Return false if a and b cannot be swapped, try to say true as much as possible. More...
class  Canon
 Object function to canonicalize tree::Tree code. More...
struct  jump_name_p
 Is tree a JUMP(NAME())? This is a predicate. More...
struct  label_to_p
 Is tree a LABEL pointing to label? More...
class  Traces
 Object function to linearize canonicalized tree::Tree code. More...

Functions

std::ostream & operator<< (std::ostream &ostr, const BasicBlock &block)
 Report block on ostr.
void canonicalize (tree::Fragments &fragments, bool canon_trace_p=false)
 Simplify the fragments.
void make_traces (tree::Fragments &fragments, bool trace_trace_p=false)
 Normalize the CJump of fragments.

Detailed Description

Simplification of tree::Tree code.

Function Documentation

void canon::canonicalize ( tree::Fragments fragments,
bool  canon_trace_p 
)

Simplify the fragments.

References tree::ProcFrag::body_get(), and tree::ProcFrag::body_set().

Referenced by canon::tasks::canon_compute().

void canon::make_traces ( tree::Fragments fragments,
bool  trace_trace_p 
)

Normalize the CJump of fragments.

Referenced by canon::tasks::traces_compute().

std::ostream & canon::operator<< ( std::ostream &  ostr,
const BasicBlock &  block 
)
inline

Report block on ostr.

References canon::BasicBlock::dump().