coins.lparallel
Class LoopUtil

java.lang.Object
  extended bycoins.lparallel.LoopUtil

public class LoopUtil
extends java.lang.Object


Field Summary
 FlowResults fResults
           
 SubpFlow fSubpFlow
           
 boolean TraceFlag
           
 java.lang.String TraceString
           
 
Constructor Summary
LoopUtil(FlowResults pResults, SubpFlow pSubpFlow)
          LoopUtil:
 
Method Summary
(package private)  void BBlockListSearch(BBlockVector markBit, BBlock curr, BBlock head, BBlock tail, BBlock body)
          BBlockListSearch:
(package private)  boolean BBlockListSearchXXX(BBlockVector markBit, BBlock curr, BBlock head, BBlock tail, java.util.LinkedList addList)
           
(package private)  boolean def_check(LoopTable lTable, AssignStmt AssignNode)
          def_check:
(package private)  boolean dom_check(BBlock pBBlock, BBlock pExitBlock)
          dom_check: Dominate : true
(package private)  boolean EQVar(Exp exp, VarNode var)
          EQVar:
 void getLoopBBlockList(java.util.LinkedList blist, BBlock head, BBlock tail, BBlock body)
          getLoopBBlockList: LOOP(head,tail) = { blist(Bn, ....Bm)}
 void getLoopBBlockListXXXXX(java.util.LinkedList blist, BBlock head, BBlock tail, BBlock body)
           
(package private)  void getLoopInnerBBlockList(LoopTable pLoopTable)
          getLoopInnerBBlockList:
(package private)  LoopTable getLoopTable(LoopTable pTable, BBlock pBlock)
          getLoopTable:
(package private)  HIR getParentASSIGN(HIR pNode)
          getParentASSIGN:
(package private)  TmpVarManager getTmpVarManager()
          getTmpVarManager:
(package private)  HIR getTopVarNode(HIR pNode)
          getTopVarNode:
(package private)  boolean inner_loop_body(LoopTable lTable, HIR node)
          inner_loop_body:
(package private)  boolean IsAutoVarNode(HIR pNode)
          IsAutoVarNode: AutoVarNode true else false
(package private)  boolean IsInduction(LoopTable lTable, VarNode node)
          IsInduction:
(package private)  boolean IsLastPrivate(LoopTable pTable, Var var)
          IsLastPrivate:
(package private)  boolean IsPrivate(LoopTable pTable, Var var)
          IsPrivate:
(package private)  boolean IsReduction(LoopTable lTable, Var var)
          IsReduction:
(package private)  boolean IsScalar(HIR pNode)
          IsScalar:
(package private)  boolean IsVarNode(HIR pNode)
          IsVarNode:
(package private)  boolean loop_body(LoopTable lTable, HIR node)
          loop_body:
 BBlock LoopNextBBlock(LoopTable lTable)
          LoopNextBBlock:
(package private)  int NodeOrder(Exp Node1, Exp Node2)
          NodeOrder:
(package private)  Exp SkipCommonTag(Exp exp)
          SkipCommonTag:
(package private)  Exp SkipConv(Exp exp)
          SkipConv: ex) expression :p = (int) a; exp := (int) [node] return ; a [node] ;
(package private)  void Trace(java.lang.String s, int n)
          Trace: print basic parallelizer information.
(package private)  void TraceBBlockList(LoopTable lTable)
          TraceBBlockList:
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fResults

public final FlowResults fResults

fSubpFlow

public final SubpFlow fSubpFlow

TraceFlag

public boolean TraceFlag

TraceString

public java.lang.String TraceString
Constructor Detail

LoopUtil

public LoopUtil(FlowResults pResults,
                SubpFlow pSubpFlow)
LoopUtil:

Method Detail

dom_check

boolean dom_check(BBlock pBBlock,
                  BBlock pExitBlock)
dom_check: Dominate : true


loop_body

boolean loop_body(LoopTable lTable,
                  HIR node)
loop_body:


inner_loop_body

boolean inner_loop_body(LoopTable lTable,
                        HIR node)
inner_loop_body:


TraceBBlockList

void TraceBBlockList(LoopTable lTable)
TraceBBlockList:


getLoopTable

LoopTable getLoopTable(LoopTable pTable,
                       BBlock pBlock)
getLoopTable:


IsInduction

boolean IsInduction(LoopTable lTable,
                    VarNode node)
IsInduction:


IsPrivate

boolean IsPrivate(LoopTable pTable,
                  Var var)
IsPrivate:


IsLastPrivate

boolean IsLastPrivate(LoopTable pTable,
                      Var var)
IsLastPrivate:


IsReduction

boolean IsReduction(LoopTable lTable,
                    Var var)
IsReduction:


NodeOrder

int NodeOrder(Exp Node1,
              Exp Node2)
NodeOrder:


SkipConv

Exp SkipConv(Exp exp)
SkipConv: ex) expression :p = (int) a; exp := (int) [node] return ; a [node] ;


IsAutoVarNode

boolean IsAutoVarNode(HIR pNode)
IsAutoVarNode: AutoVarNode true else false


getParentASSIGN

HIR getParentASSIGN(HIR pNode)
getParentASSIGN:


SkipCommonTag

Exp SkipCommonTag(Exp exp)
SkipCommonTag:


getTmpVarManager

TmpVarManager getTmpVarManager()
getTmpVarManager:


getTopVarNode

HIR getTopVarNode(HIR pNode)
getTopVarNode:


IsVarNode

boolean IsVarNode(HIR pNode)
IsVarNode:


EQVar

boolean EQVar(Exp exp,
              VarNode var)
EQVar:


getLoopBBlockList

public void getLoopBBlockList(java.util.LinkedList blist,
                              BBlock head,
                              BBlock tail,
                              BBlock body)
getLoopBBlockList: LOOP(head,tail) = { blist(Bn, ....Bm)}


getLoopBBlockListXXXXX

public void getLoopBBlockListXXXXX(java.util.LinkedList blist,
                                   BBlock head,
                                   BBlock tail,
                                   BBlock body)

getLoopInnerBBlockList

void getLoopInnerBBlockList(LoopTable pLoopTable)
getLoopInnerBBlockList:


BBlockListSearch

void BBlockListSearch(BBlockVector markBit,
                      BBlock curr,
                      BBlock head,
                      BBlock tail,
                      BBlock body)
BBlockListSearch:


BBlockListSearchXXX

boolean BBlockListSearchXXX(BBlockVector markBit,
                            BBlock curr,
                            BBlock head,
                            BBlock tail,
                            java.util.LinkedList addList)

IsScalar

boolean IsScalar(HIR pNode)
IsScalar:


def_check

boolean def_check(LoopTable lTable,
                  AssignStmt AssignNode)
def_check:


LoopNextBBlock

public BBlock LoopNextBBlock(LoopTable lTable)
LoopNextBBlock:


Trace

void Trace(java.lang.String s,
           int n)
Trace: print basic parallelizer information. Driver Option : [-coins:trace=Para1.n]