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

Multiple target support. More...

Namespaces

namespace  ia32
namespace  mips
namespace  tasks

Classes

class  Assembly
 An assembly language comes with its syntax, its runtime library, and its layout of fragments. More...
class  Codegen
 Abstract a Code Generator. More...
class  CpuLimits
 A set of restriction over a Cpu. More...
class  Cpu
 A Cpu mainly describes target machine's registers. More...
class  Target
 A Target is the union of a Cpu and a Codegen. More...

Functions

std::ostream & operator<< (std::ostream &ostr, const Cpu &cpu)
 Output cpu on ostr.
assem::Fragmentslir_to_assem (const tree::Fragments &fragments, Target &target)
 Produce architecture-dependent assembly instructions.
void runtime_dump (const Target &target, bool gc, std::ostream &str)
void instructions_dump (assem::Fragments &fragments, Target &target, std::ostream &ostr=std::cout)
 Print the instructions.
void instructions_dump (assem::Fragments &fragments, Target &target, temp::TempMap &tempmap, std::ostream &ostr, bool instructions_debug_p)
void frame_allocate (assem::Fragments &fragments, const Target &target)
 Prepare Nolimips display.
std::ostream & operator<< (std::ostream &ostr, const Target &t)
 Output t on ostr.

Detailed Description

Multiple target support.

Function Documentation

void target::frame_allocate ( assem::Fragments fragments,
const Target &  target 
)

Prepare Nolimips display.

References target::Target::codegen_get().

Referenced by regalloc::tasks::asm_compute(), and target::tasks::nolimips_display().

void target::instructions_dump ( assem::Fragments fragments,
Target &  target,
std::ostream &  ostr 
)
void target::instructions_dump ( assem::Fragments fragments,
Target &  target,
temp::TempMap tempmap,
std::ostream &  ostr = std::cout,
bool  instruction_debug_p = false 
)

Print the instructions, and replaces temporary with actual registers using tempmap.

References assem::Instr::debug, instructions_dump(), temp::Identifier< Traits_ >::map, misc::xalloc< StoredType >::swap(), and temp::tasks::tempmap.

assem::Fragments * target::lir_to_assem ( const tree::Fragments frags,
Target &  target 
)

Produce architecture-dependent assembly instructions.

References tree::ProcFrag::body_get(), and target::Target::codegen_get().

Referenced by target::tasks::inst_compute().

std::ostream & target::operator<< ( std::ostream &  ostr,
const Target &  t 
)

Output t on ostr.

References target::Target::dump().

std::ostream & target::operator<< ( std::ostream &  ostr,
const Cpu &  cpu 
)

Output cpu on ostr.

References target::Cpu::dump().

void target::runtime_dump ( const Target &  target,
bool  gc = false,
std::ostream &  str = std::cout 
)

Dump the runtime.

Parameters
targettarget machine.
gcenable garbage collection (meaningful on IA-32 only yet).
stroutput stream on which to dump the runtime.

References target::Target::assembly_get(), and target::Assembly::runtime().

Referenced by target::tasks::runtime_display().