クラス Onikiri::RegDepPredBase

#include <RegDepPredBase.h>

Onikiri::RegDepPredBaseに対する継承グラフ

Inheritance graph
[凡例]
Onikiri::RegDepPredBaseのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public メソッド

virtual void Allocate (OpIterator op)
virtual void Commit (OpIterator op)
virtual void Flush (OpIterator op)
 RegDepPredBase ()
virtual void Resolve (OpIterator op)
virtual ~RegDepPredBase ()

説明

RegDepPredBase.h44 行で定義されています。


コンストラクタとデストラクタ

RegDepPredBase::RegDepPredBase (  ) 

RegDepPredBase.cpp39 行で定義されています。

00040 {
00041 }

RegDepPredBase::~RegDepPredBase (  )  [virtual]

RegDepPredBase.cpp43 行で定義されています。

00044 {
00045 }


関数

void RegDepPredBase::Allocate ( OpIterator  op  )  [virtual]

Onikiri::DepPredIFを実装しています。

RegDepPredBase.cpp68 行で定義されています。

参照先 Onikiri::RegDepPredIF::AllocateReg()Onikiri::OpInfo::GetDstNum()Onikiri::OpInfo::GetDstOperand().

00069 {
00070     OpInfo* opInfo = op->GetOpInfo();
00071     int dstNum = opInfo->GetDstNum();
00072     for(int i = 0; i < dstNum; ++i) {
00073         int operand = opInfo->GetDstOperand(i);
00074         
00075         if( operand == -1 ) {
00076             continue;
00077         }
00078 
00079         int phyRegNo = AllocateReg(op,operand);
00080         op->SetDstReg(i, phyRegNo);
00081     }
00082 }

関数の呼び出しグラフ:

void RegDepPredBase::Commit ( OpIterator  op  )  [virtual]

Onikiri::DepPredIFを実装しています。

RegDepPredBase.cpp85 行で定義されています。

参照先 Onikiri::OpInfo::GetDstNum()Onikiri::OpInfo::GetDstOperand()Onikiri::RegDepPredIF::ReleaseReg().

00086 {
00087     OpInfo* opInfo = op->GetOpInfo();
00088     int dstNum = opInfo->GetDstNum();
00089     for(int i = 0; i < dstNum; ++i) {
00090         int operand = opInfo->GetDstOperand(i);
00091         ReleaseReg(op, operand, op->GetDstReg(i));
00092     }
00093 }

関数の呼び出しグラフ:

void RegDepPredBase::Flush ( OpIterator  op  )  [virtual]

Onikiri::DepPredIFを実装しています。

RegDepPredBase.cpp96 行で定義されています。

参照先 Onikiri::RegDepPredIF::DeallocateReg()Onikiri::OpInfo::GetDstNum()Onikiri::OpInfo::GetDstOperand()Onikiri::OpStatus::OS_FETCH.

00097 {
00098     if( op->GetStatus() == OpStatus::OS_FETCH ){
00099         return;
00100     }
00101     OpInfo* opInfo = op->GetOpInfo();
00102     int dstNum = opInfo->GetDstNum();
00103     for(int i = 0; i < dstNum; ++i) {
00104         int operand = opInfo->GetDstOperand(i);
00105         DeallocateReg(op, operand, op->GetDstReg(i));
00106     }
00107 }

関数の呼び出しグラフ:

void RegDepPredBase::Resolve ( OpIterator  op  )  [virtual]

Onikiri::DepPredIFを実装しています。

RegDepPredBase.cpp50 行で定義されています。

参照先 Onikiri::OpInfo::GetSrcNum()Onikiri::OpInfo::GetSrcOperand()Onikiri::RegDepPredIF::ResolveReg().

00051 {
00052     OpInfo* opInfo = op->GetOpInfo();
00053     int srcNum = opInfo->GetSrcNum();
00054     for(int i = 0; i < srcNum; ++i) {
00055         int operand = opInfo->GetSrcOperand(i);
00056         
00057         if( operand == -1 ) {
00058             continue;
00059         }
00060 
00061         int phyRegNo = ResolveReg(operand);
00062         op->SetSrcReg(i, phyRegNo);
00063     }
00064 }

関数の呼び出しグラフ:


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 15:16:41 2013に生成されました。  doxygen 1.4.7