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

Encapsulate an instruction fragment in assembly language. More...

#include <fragment.hh>

Inheritance diagram for assem::ProcFrag:
Collaboration diagram for assem::ProcFrag:

Public Member Functions

 ProcFrag (const tree::ProcFrag &frag)
 ~ProcFrag ()
virtual std::ostream & dump (std::ostream &ostr) const override
frame::Frameframe_get ()
 The frame.
const misc::symbolname_get () const
 Original name of the function (for debugging).
temp::Label label_get () const
 Unique label in the output.
std::string file_name (const std::string &p="", const std::string &s="") const
void instrs_set (assem::Instrs &instrs)
 Set the instructions of this to instrs.
assem::Instrsinstrs_get ()
 The instructions.
const assem::Instrsinstrs_get () const
 The instructions.
Visitors entry point.
virtual void accept (Visitor &v) override
 Accept a Visitor v.
virtual void accept (ConstVisitor &v) const override

Protected Attributes

frame::Frame frame_
 The frame.
misc::symbol name_
 Original name.
temp::Label label_
 Unique label.
assem::Instrs instrs_
 Instructions computed by codegen.

Detailed Description

Encapsulate an instruction fragment in assembly language.

Constructor & Destructor Documentation

assem::ProcFrag::ProcFrag ( const tree::ProcFrag frag)
inline
assem::ProcFrag::~ProcFrag ( )

Member Function Documentation

void assem::ProcFrag::accept ( Visitor v)
overridevirtual

Accept a Visitor v.

Implements assem::Fragment.

void assem::ProcFrag::accept ( ConstVisitor v) const
overridevirtual

Implements assem::Fragment.

std::ostream & assem::ProcFrag::dump ( std::ostream &  ostr) const
overridevirtual

Implements assem::Fragment.

References instrs_, and name_.

std::string assem::ProcFrag::file_name ( const std::string &  p = "",
const std::string &  s = "" 
) const

A (unique) file name for this fragment.

Parameters
pa prefix
sa suffix

References label_, name_, misc::symbol::name_get(), and temp::Identifier< Traits_ >::string_get().

Referenced by liveness::flowgraph_dump(), liveness::interference_dump(), and liveness::liveness_dump().

frame::Frame & assem::ProcFrag::frame_get ( )
inline
const assem::Instrs & assem::ProcFrag::instrs_get ( ) const
inline

The instructions.

References instrs_.

void assem::ProcFrag::instrs_set ( assem::Instrs instrs)
inline

Set the instructions of this to instrs.

Warning
: instrs is emptied, its content is stolen.

References instrs_, and precondition.

temp::Label assem::ProcFrag::label_get ( ) const
inline

Unique label in the output.

References label_.

Referenced by target::Codegen::fragment_entry_exit_build(), and target::ia32::GasLayout::operator()().

const misc::symbol & assem::ProcFrag::name_get ( ) const
inline

Original name of the function (for debugging).

References name_.

Referenced by target::ia32::GasLayout::operator()(), and target::mips::SpimLayout::operator()().

Member Data Documentation

frame::Frame assem::ProcFrag::frame_
protected

The frame.

Referenced by frame_get().

assem::Instrs assem::ProcFrag::instrs_
protected

Instructions computed by codegen.

Referenced by dump(), instrs_get(), and instrs_set().

temp::Label assem::ProcFrag::label_
protected

Unique label.

Referenced by file_name(), and label_get().

misc::symbol assem::ProcFrag::name_
protected

Original name.

Referenced by dump(), file_name(), and name_get().


The documentation for this class was generated from the following files: