public class XMPcoarray
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CBLK_COARRAYS_PREFIX |
protected XobjectDef |
def |
protected XMPenv |
env |
protected FunctionBlock |
fblock |
static java.lang.String |
VAR_COARRAYCOMM_PREFIX |
static java.lang.String |
VAR_CRAYPOINTER_PREFIX |
static java.lang.String |
VAR_DESCPOINTER_PREFIX |
Constructor and Description |
---|
XMPcoarray(Ident ident,
FuncDefBlock funcDef,
XMPenv env) |
XMPcoarray(Ident ident,
FuncDefBlock funcDef,
XMPenv env,
java.lang.String homeBlockCodeName) |
XMPcoarray(Ident ident,
XMPenv env) |
XMPcoarray(Ident ident,
XobjectDef def,
FunctionBlock fblock,
XMPenv env) |
XMPcoarray(Ident ident,
XobjectDef def,
FunctionBlock fblock,
XMPenv env,
java.lang.String homeBlockCodeName) |
Modifier and Type | Method and Description |
---|---|
void |
addStmts_setCoshape(java.util.ArrayList<Xobject> list) |
void |
addStmts_setCoshape(java.util.ArrayList<Xobject> list,
XMPenv env) |
void |
addStmts_setCoshape(java.util.ArrayList<Xobject> list,
XobjList coshape) |
void |
addStmts_setCoshape(BlockList list) |
void |
addStmts_setCoshape(BlockList list,
XMPenv env) |
void |
addStmts_setCoshape(BlockList list,
XobjList coshape)
public Xobject makeStmt_setCoshape(XobjList coshape) {
int corank = getCorank();
if (corank != coshape.Nargs()) {
XMP.fatal("number of codimensions not matched with the declaration:"
+ corank + " and " + coshape.Nargs());
return null;
}
Xobject args = Xcons.List(getDescPointerId(),
Xcons.IntConstant(corank));
for (int i = 0; i < corank - 1; i++) {
args.add(_getLboundInIndexRange(coshape.getArg(i)));
args.add(_getUboundInIndexRange(coshape.getArg(i)));
}
args.add(_getLboundInIndexRange(coshape.getArg(corank - 1)));
if (args.hasNullArg())
XMP.fatal("generated null argument " + SET_COSHAPE_NAME +
" (XMPcoarray.makeStmt_setCoshape(coshape))");
Ident subr = env.findVarIdent(SET_COSHAPE_NAME, null);
if (subr == null) {
subr = env.declExternIdent(SET_COSHAPE_NAME,
BasicType.FexternalSubroutineType);
}
Xobject subrCall = subr.callSubroutine(args);
return subrCall;
}
|
void |
addStmts_setCoshape(XobjList list) |
void |
addStmts_setCoshape(XobjList list,
XMPenv env) |
void |
addStmts_setCoshapeAndName(BlockList list,
XMPenv env)
public Xobject makeStmt_setCoshape() {
return makeStmt_setCoshape(env);
}
public Xobject makeStmt_setCoshape(XMPenv env) {
int corank = getCorank();
Xobject args = Xcons.List(getDescPointerId(),
Xcons.IntConstant(corank));
for (int i = 0; i < corank - 1; i++) {
args.add(getLcobound(i));
args.add(getUcobound(i));
}
args.add(getLcobound(corank - 1));
if (args.hasNullArg())
XMP.fatal("generated null argument " + SET_COSHAPE_NAME +
"(makeStmt_setCoshape())");
Ident subr = env.findVarIdent(SET_COSHAPE_NAME, null);
if (subr == null) {
subr = env.declExternIdent(SET_COSHAPE_NAME,
BasicType.FexternalSubroutineType);
}
Xobject subrCall = subr.callSubroutine(args);
return subrCall;
}
|
static void |
analyzeCoarrayDirective(Xobject coarrayPragma,
XMPenv env,
PragmaBlock pb) |
void |
build_setMappingNodes(BlockList blist,
Block block) |
void |
errorCheck() |
static XMPcoarray |
findCoarrayInCoarrays(java.lang.String name,
java.util.ArrayList<XMPcoarray> coarrays) |
void |
genDecl_crayPointer() |
void |
genDecl_crayPointer(java.lang.Boolean saved) |
void |
genDecl_descPointer() |
Ident |
getCoarrayCommId() |
java.lang.String |
getCoarrayCommName() |
java.lang.String |
getCoarrayCommonName() |
Xobject[] |
getCodimensions() |
FindexRange |
getCoindexRange() |
int |
getCorank() |
Xobject[] |
getCoshape() |
Xobject |
getCosize(int i) |
Xobject |
getCosizeStatic(int i) |
java.lang.String |
getCrayCommonName() |
Ident |
getCrayPointerId() |
java.lang.String |
getCrayPointerName() |
XobjectDef |
getDef() |
java.lang.String |
getDescCommonName() |
Ident |
getDescPointerId() |
Xobject |
getDescPointerIdExpr(Xobject baseAddr)
No no, this may be used again in Ver.6
|
java.lang.String |
getDescPointerName() |
int |
getElementLength_atmost(Xtype type) |
int |
getElementLength() |
Xobject |
getElementLengthExpr_atmost()
public Xobject getElementLengthExpr() {
////// SELECTIVE
return getElementLengthExpr(true); // statically
}
public Xobject getElementLengthExpr(Boolean staticEvaluation) {
if (staticEvaluation)
return getElementLengthExpr_atmost();
else
return getElementLengthExpr_runtime();
}
|
Xobject |
getElementLengthExpr_runtime() |
int |
getElementLengthOrNot() |
XMPenv |
getEnv() |
FunctionBlock |
getFblock() |
Xobject |
getFkind() |
int |
getFtypeNumber() |
java.lang.String |
getFtypeString() |
java.lang.String |
getFtypeString(Xtype xtype) |
java.lang.String |
getHomeBlockCodeName() |
Ident |
getIdent() |
Xobject |
getImageIndex_default(Xobject baseAddr,
Xobject cosubscripts) |
Xobject |
getImageIndex_opt(Xobject baseAddr,
Xobject cosubscripts) |
Xobject |
getImageIndex(Xobject baseAddr,
Xobject cosubscripts) |
FindexRange |
getIndexRange() |
Xobject |
getLbound(int i) |
Xobject |
getLboundStatic(int i) |
Xobject |
getLcobound(int i) |
Xobject |
getLcoboundStatic(int i) |
java.lang.String |
getName() |
static java.lang.String |
getProp_nodes(Ident ident) |
static java.lang.String |
getProp_nodes(Xobject xobj) |
int |
getRank() |
Xobject[] |
getShape() |
Xobject |
getSizeFromIndexRange(Xobject range) |
Xobject |
getSizeFromLbUb(Xobject lb,
Xobject ub) |
Xobject |
getSizeFromTriplet(int i,
Xobject i1,
Xobject i2,
Xobject i3) |
int |
getTotalArraySize() |
int |
getTotalArraySize(FindexRange findexRange) |
int |
getTotalArraySize(Xtype type) |
Xobject |
getTotalArraySizeExpr() |
Xobject |
getTotalArraySizeExpr(FindexRange findexRange) |
Xobject |
getTotalArraySizeExpr(Xtype type) |
Xtype |
getType() |
Xobject |
getUbound(int i) |
Xobject |
getUboundStatic(int i) |
Xobject |
getUcobound(int i) |
Xobject |
getUcoboundStatic(int i) |
void |
hideCodimensions() |
java.lang.Boolean |
isAllocatable() |
java.lang.Boolean |
isAssumedShape() |
java.lang.Boolean |
isAssumedSize() |
java.lang.Boolean |
isDummyArg() |
java.lang.Boolean |
isExplicitShape() |
java.lang.Boolean |
isPointer() |
java.lang.Boolean |
isScalar() |
java.lang.Boolean |
isUseAssociated() |
Xobject |
makeStmt_allocStatic() |
Xobject |
makeStmt_allocStatic(BlockList blist) |
Xobject |
makeStmt_countCoarrays() |
Xobject |
makeStmt_countCoarrays(BlockList blist) |
Xobject |
makeStmt_regmemStatic() |
Xobject |
makeStmt_regmemStatic(BlockList blist) |
Xobject |
makeStmt_setCodimension(int dim) |
Xobject |
makeStmt_setCodimension(int dim,
XMPenv env) |
Xobject |
makeStmt_setCodimension(int dim,
XobjList coshape) |
Xobject |
makeStmt_setCorank() |
Xobject |
makeStmt_setCorank(XMPenv env) |
Xobject |
makeStmt_setCorank(XobjList coshape) |
static Xobject |
makeStmt_setImageNodes(java.lang.String nodesName,
XMPenv env) |
static Xobject |
makeStmt_setImageNodes(java.lang.String nodesName,
XMPenv env,
Block block) |
Xobject |
makeStmt_setMappingNodes(Block block) |
Xobject |
makeStmt_setVarName() |
Xobject |
makeStmt_setVarName(XMPenv env) |
void |
removeCodimensions() |
void |
resetAllocatable() |
void |
resetPointer() |
void |
resetSaveAttr() |
void |
setAllocatable() |
void |
setCodimensions(Xobject[] codimensions) |
void |
setIdentEtc(Ident ident) |
void |
setPointer() |
void |
setSaveAttr() |
void |
setSaveAttrToDescPointer() |
void |
setUseMallocWithHint(java.lang.Boolean useMalloc) |
void |
setWasMovedFromModule(java.lang.Boolean bool) |
void |
setZeroToDescPointer() |
java.lang.String |
toString() |
Ident |
unlinkIdent() |
Ident |
unlinkIdent(XobjectDef def) |
Ident |
unlinkIdent(XobjList def) |
java.lang.Boolean |
usesMalloc() |
java.lang.Boolean |
wasMovedFromModule() |
public static final java.lang.String VAR_DESCPOINTER_PREFIX
public static final java.lang.String VAR_CRAYPOINTER_PREFIX
public static final java.lang.String CBLK_COARRAYS_PREFIX
public static final java.lang.String VAR_COARRAYCOMM_PREFIX
protected XMPenv env
protected XobjectDef def
protected FunctionBlock fblock
public XMPcoarray(Ident ident, FuncDefBlock funcDef, XMPenv env)
public XMPcoarray(Ident ident, FuncDefBlock funcDef, XMPenv env, java.lang.String homeBlockCodeName)
public XMPcoarray(Ident ident, XobjectDef def, FunctionBlock fblock, XMPenv env)
public XMPcoarray(Ident ident, XobjectDef def, FunctionBlock fblock, XMPenv env, java.lang.String homeBlockCodeName)
public void setUseMallocWithHint(java.lang.Boolean useMalloc)
public java.lang.Boolean usesMalloc()
public static void analyzeCoarrayDirective(Xobject coarrayPragma, XMPenv env, PragmaBlock pb)
public static java.lang.String getProp_nodes(Ident ident)
public static java.lang.String getProp_nodes(Xobject xobj)
public void genDecl_crayPointer()
public void genDecl_crayPointer(java.lang.Boolean saved)
public void genDecl_descPointer()
public Xobject makeStmt_countCoarrays()
public Xobject makeStmt_regmemStatic()
public Xobject makeStmt_allocStatic()
public void addStmts_setCoshapeAndName(BlockList list, XMPenv env)
public void addStmts_setCoshape(BlockList list)
public void addStmts_setCoshape(java.util.ArrayList<Xobject> list)
public void addStmts_setCoshape(XobjList list)
public Xobject makeStmt_setCorank()
public Xobject makeStmt_setCodimension(int dim)
public void addStmts_setCoshape(BlockList list, XobjList coshape)
public void addStmts_setCoshape(java.util.ArrayList<Xobject> list, XobjList coshape)
public Xobject makeStmt_setVarName()
public static Xobject makeStmt_setImageNodes(java.lang.String nodesName, XMPenv env)
public static Xobject makeStmt_setImageNodes(java.lang.String nodesName, XMPenv env, Block block)
public void errorCheck()
public FindexRange getIndexRange()
public FindexRange getCoindexRange()
public int getElementLengthOrNot()
public int getElementLength()
public Xobject getElementLengthExpr_atmost()
public int getElementLength_atmost(Xtype type)
public Xobject getElementLengthExpr_runtime()
public int getTotalArraySize()
public int getTotalArraySize(Xtype type)
public int getTotalArraySize(FindexRange findexRange)
public Xobject getTotalArraySizeExpr()
public Xobject getTotalArraySizeExpr(FindexRange findexRange)
public int getRank()
public Xobject[] getShape()
public Xobject getLboundStatic(int i)
public Xobject getUboundStatic(int i)
public Xobject getLbound(int i)
public Xobject getUbound(int i)
public int getCorank()
public Xobject[] getCoshape()
public Xobject getLcoboundStatic(int i)
public Xobject getUcoboundStatic(int i)
public Xobject getCosizeStatic(int i)
public Xobject getLcobound(int i)
public Xobject getUcobound(int i)
public Xobject getCosize(int i)
public java.lang.Boolean isScalar()
public java.lang.Boolean isAllocatable()
public void setAllocatable()
public void resetAllocatable()
public void resetSaveAttr()
public void setSaveAttr()
public void setSaveAttrToDescPointer()
public void setZeroToDescPointer()
public java.lang.Boolean isPointer()
public void setPointer()
public void resetPointer()
public java.lang.Boolean isDummyArg()
public java.lang.Boolean isAssumedSize()
public java.lang.Boolean isAssumedShape()
public java.lang.Boolean isExplicitShape()
public java.lang.Boolean isUseAssociated()
public Ident getIdent()
public void setIdentEtc(Ident ident)
public XobjectDef getDef()
public FunctionBlock getFblock()
public XMPenv getEnv()
public java.lang.String getHomeBlockCodeName()
public java.lang.String getDescCommonName()
public java.lang.String getCrayCommonName()
public java.lang.String getCoarrayCommonName()
public java.lang.String getCrayPointerName()
public Ident getCrayPointerId()
public java.lang.String getDescPointerName()
public Ident getDescPointerId()
public java.lang.String getCoarrayCommName()
public Ident getCoarrayCommId()
public Xobject getDescPointerIdExpr(Xobject baseAddr)
public Xobject[] getCodimensions()
public void setCodimensions(Xobject[] codimensions)
public void removeCodimensions()
public void hideCodimensions()
public java.lang.String getName()
public Xtype getType()
public void setWasMovedFromModule(java.lang.Boolean bool)
public java.lang.Boolean wasMovedFromModule()
public static XMPcoarray findCoarrayInCoarrays(java.lang.String name, java.util.ArrayList<XMPcoarray> coarrays)
public java.lang.String toString()
toString
in class java.lang.Object
public Ident unlinkIdent()
public Ident unlinkIdent(XobjectDef def)
public int getFtypeNumber()
public Xobject getFkind()
public java.lang.String getFtypeString()
public java.lang.String getFtypeString(Xtype xtype)