You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by mf...@apache.org on 2008/06/05 11:24:00 UTC
svn commit: r663509 - in /harmony/enhanced/drlvm/trunk/vm/jitrino/src:
codegenerator/ codegenerator/ia32/ optimizer/
Author: mfursov
Date: Thu Jun 5 02:23:56 2008
New Revision: 663509
URL: http://svn.apache.org/viewvc?rev=663509&view=rev
Log:
Fix for HARMONY-5867 [drlvm][jit][opt] Removal of unused opcodes in Jitrino.OPT compiler
Modified:
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/CodeGenIntfc.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/CodeSelectors.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/codelowerer.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escanalyzer.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escapeanalyzer.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/hashvaluenumberer.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/lazyexceptionopt.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/memoryopt.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifytaus.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/CodeGenIntfc.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/CodeGenIntfc.h?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/CodeGenIntfc.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/CodeGenIntfc.h Thu Jun 5 02:23:56 2008
@@ -244,7 +244,6 @@
Type* dstType, CG_OpndHandle* src) = 0;
virtual CG_OpndHandle* convToFp(ConvertToFpOp::Types, Type* dstType, CG_OpndHandle* src) = 0;
- virtual void endCatch() {}
virtual CG_OpndHandle* ldFunAddr(Type* dstType, MethodDesc *desc) = 0;
virtual CG_OpndHandle* tau_ldVirtFunAddr(Type* dstType, CG_OpndHandle* vtableAddr,
MethodDesc *desc,
@@ -405,7 +404,6 @@
virtual CG_OpndHandle* newArray(ArrayType* arrayType, CG_OpndHandle* numElems) = 0;
virtual CG_OpndHandle* newMultiArray(ArrayType* arrayType, U_32 numDims, CG_OpndHandle** dims) = 0;
virtual CG_OpndHandle* ldRef(Type* type,MethodDesc* enclosingMethod,U_32 stringToken, bool autouncompress) = 0;
- virtual CG_OpndHandle* ldToken(Type *dstType,MethodDesc* enclosingMethod,U_32 token) = 0;
virtual void incCounter(Type *counterType,U_32 counter) = 0;
virtual void ret() = 0;
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.cpp Thu Jun 5 02:23:56 2008
@@ -2443,15 +2443,6 @@
}
//_______________________________________________________________________________________________________________
-// Load token
-
-CG_OpndHandle * InstCodeSelector::ldToken(Type *dstType,MethodDesc* enclosingMethod,U_32 token)
-{
- ICS_ASSERT(0);
- return 0;
-}
-
-//_______________________________________________________________________________________________________________
// Increment counter for the program instrumentation
void InstCodeSelector::incCounter(Type *counterType,U_32 key)
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.h?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32InstCodeSelector.h Thu Jun 5 02:23:56 2008
@@ -192,8 +192,7 @@
CG_OpndHandle* newArray(ArrayType* arrayType, CG_OpndHandle* numElems);
CG_OpndHandle* newMultiArray(ArrayType* arrayType, U_32 numDims, CG_OpndHandle** dims);
CG_OpndHandle* ldRef(Type *dstType, MethodDesc* enclosingMethod,U_32 stringToken, bool uncompress);
- CG_OpndHandle* ldToken(Type *dstType,MethodDesc* enclosingMethod,U_32 token);
-
+
void incCounter(Type *counterType,U_32 counter);
void ret();
void ret(CG_OpndHandle* returnValue);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/CodeSelectors.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/CodeSelectors.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/CodeSelectors.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/CodeSelectors.cpp Thu Jun 5 02:23:56 2008
@@ -886,12 +886,6 @@
}
}
break;
- case Op_Leave:
- {
- assert(0);
- instructionCallback.jump();
- }
- break;
case Op_Throw:
{
instructionCallback.throwException(getCGInst(inst->getSrc(0)), inst->getThrowModifier() == Throw_CreateStackTrace);
@@ -921,15 +915,6 @@
case Op_Catch:
cgInst = instructionCallback.catchException(inst->getDst()->getType());
break;
- case Op_EndFinally:
- assert(0);
- break;
- case Op_EndFilter:
- assert(0);
- break;
- case Op_EndCatch:
- instructionCallback.endCatch();
- break;
case Op_Copy:
{
cgInst = instructionCallback.copy(getCGInst(inst->getSrc(0)));
@@ -1777,97 +1762,6 @@
ret_val);
}
break; // nothing to do
- case Op_SourceLineNumber:
- {
- break; // nothing to do
- }
- case Op_LdObj:
- {
- assert(inst->getNumSrcOperands() == 1);
- cgInst = instructionCallback.ldValueObj(inst->getDst()->getType(),
- getCGInst(inst->getSrc(0)));
- }
- break;
- case Op_StObj:
- {
- assert(inst->getNumSrcOperands() == 2);
- instructionCallback.stValueObj(getCGInst(inst->getSrc(0)),
- getCGInst(inst->getSrc(1)));
- }
- break;
- case Op_CopyObj:
- {
- assert(inst->getNumSrcOperands() == 2);
- TypeInst *typeInst = (TypeInst *)inst;
- instructionCallback.copyValueObj(typeInst->getTypeInfo(),
- getCGInst(inst->getSrc(0)),
- getCGInst(inst->getSrc(1)));
- }
- break;
- case Op_InitObj:
- {
- assert(inst->getNumSrcOperands() == 1);
- TypeInst * typeInst = (TypeInst *)inst;
- instructionCallback.initValueObj(typeInst->getTypeInfo(),
- getCGInst(inst->getSrc(0)));
- }
- break;
- case Op_Sizeof:
- {
- Type* type = inst->asTypeInst()->getTypeInfo();
- assert(type->isValueType());
- U_32 size = ((UserValueType*) type)->getUnboxedSize();
- instructionCallback.ldc_i4(size);
- }
- break;
- case Op_Box:
- {
- assert(inst->getNumSrcOperands() == 1);
- Type * boxedType = inst->getDst()->getType();
- assert(boxedType->isObject());
- cgInst = instructionCallback.box((ObjectType *)boxedType,
- getCGInst(inst->getSrc(0)));
- }
- break;
- case Op_Unbox:
- {
- assert(inst->getNumSrcOperands() == 1);
- cgInst = instructionCallback.unbox(inst->getDst()->getType(),
- getCGInst(inst->getSrc(0)));
- }
- break;
- case Op_LdToken:
- {
- assert(inst->getNumSrcOperands() == 0);
- if (!genConsts) break;
- TokenInst *tokenInst = (TokenInst *)inst;
- U_32 token = tokenInst->getToken();
- cgInst = instructionCallback.ldToken(inst->getDst()->getType(),
- tokenInst->getEnclosingMethod(), token);
- isConstant = true;
- }
- break;
- case Op_MkRefAny:
- assert(0);
- break;
- case Op_RefAnyVal:
- assert(0);
- break;
- case Op_RefAnyType:
- assert(0);
- break;
- case Op_InitBlock:
- assert(0);
- break;
- case Op_CopyBlock:
- assert(0);
- break;
- case Op_Alloca:
- assert(0);
- break;
- case Op_ArgList:
- assert(0);
- break;
case Op_Phi:
{
assert(0); // Phi nodes should be eliminated by deSSAing
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp Thu Jun 5 02:23:56 2008
@@ -751,20 +751,13 @@
return;
}
node->setTraversalNum(fg.getTraversalNum());
- Inst *last = (Inst*)node->getLastInst();
- if (last->isEndFinally()) {
- // remove the 'ret' instruction
- last->unlink();
- // add edge from the new node to the target
- fg.addEdge(node,retTarget);
- } else {
- const Edges& outEdges = node->getOutEdges();
- Edges::const_iterator eiter;
- for(eiter = outEdges.begin(); eiter != outEdges.end(); ++eiter) {
- Edge* edge = *eiter;
- _fixFinally(fg, edge->getTargetNode(),retTarget);
- }
+ const Edges& outEdges = node->getOutEdges();
+ Edges::const_iterator eiter;
+ for(eiter = outEdges.begin(); eiter != outEdges.end(); ++eiter) {
+ Edge* edge = *eiter;
+ _fixFinally(fg, edge->getTargetNode(),retTarget);
}
+
}
@@ -812,23 +805,14 @@
newto = duplicateNode(irm, to, to, opndRenameTable);
fg.addEdge(from,newto);
nodeRenameTable->setMapping(to,newto);
- if (((Inst*)to->getLastInst())->isEndFinally()) {
- // remove the duplicate 'end finally'
- Inst *endInst =(Inst*)newto->getLastInst();
- endInst->unlink();
- // add edge from the new node to the target
- fg.addEdge(newto,retTarget);
- } else {
- Log::out() << "LONG FINALLY\n";
- const Edges& outEdges = to->getOutEdges();
- Edges::const_iterator eiter;
- for(eiter = outEdges.begin(); eiter != outEdges.end(); ++eiter) {
- Edge* edge = *eiter;
- _inlineFinally(irm, newto,edge->getTargetNode(),retTarget,nodeRenameTable,opndRenameTable);
- }
- _fixBranchTargets((Inst*)newto->getLastInst(),nodeRenameTable);
+ const Edges& outEdges = to->getOutEdges();
+ Edges::const_iterator eiter;
+ for(eiter = outEdges.begin(); eiter != outEdges.end(); ++eiter) {
+ Edge* edge = *eiter;
+ _inlineFinally(irm, newto,edge->getTargetNode(),retTarget,nodeRenameTable,opndRenameTable);
}
+ _fixBranchTargets((Inst*)newto->getLastInst(),nodeRenameTable);
return true;
}
@@ -935,10 +919,7 @@
}
Inst *last = (Inst*)node->getLastInst();
if (last->isBranch()) {
- if (last->isLeave()) {
- // Inline Finally - only necessary after translation
- inlineFinally(irm, node);
- } else if (last->isConditionalBranch()) { // loop peeling for conditional branches
+ if (last->isConditionalBranch()) { // loop peeling for conditional branches
Node *target = ((BranchInst*)last)->getTargetLabel()->getNode();
if (((LabelInst*)target->getFirstInst())->getLabelId() > ((LabelInst*)node->getFirstInst())->getLabelId())
{
@@ -1182,9 +1163,7 @@
// The IR does not contain explicit GOTOs, so for IR printing purposes
// we should print a GOTO if required, extracted from the CFG.
inst = (Inst*)node->getLastInst();
- if (!inst->isReturn() && !inst->isLeave() &&
- !inst->isThrow() &&
- !inst->isEndFinally() && !inst->isRet()) {
+ if (!inst->isReturn() && !inst->isThrow() && !inst->isRet()) {
Node *target = NULL;
if (inst->isConditionalBranch()) {
target = ((BranchInst*)inst)->getTakenEdge(false)->getTargetNode();
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.cpp Thu Jun 5 02:23:56 2008
@@ -1225,25 +1225,7 @@
return dst;
}
-void
-IRBuilder::genEndFinally() {
- appendInst(instFactory->makeEndFinally());
-}
-
-void
-IRBuilder::genEndFilter() {
- appendInst(instFactory->makeEndFilter());
-}
-
-void
-IRBuilder::genEndCatch() {
- appendInst(instFactory->makeEndCatch());
-}
-void
-IRBuilder::genLeave(LabelInst* label) {
- appendInst(instFactory->makeLeave(label));
-}
void
IRBuilder::genPrefetch(Opnd *addr) {
@@ -1729,13 +1711,6 @@
}
Opnd*
-IRBuilder::genLdToken(MethodDesc* enclosingMethod, U_32 metadataToken) {
- Opnd* dst = createOpnd(typeManager->getSystemObjectType());
- appendInst(instFactory->makeLdToken(dst, enclosingMethod, metadataToken));
- return dst;
-}
-
-Opnd*
IRBuilder::genLdVar(Type* dstType, VarOpnd* var) {
if (!var->isAddrTaken()) {
Opnd *dst = lookupHash(Op_LdVar, var);
@@ -3085,95 +3060,6 @@
}
-Opnd*
-IRBuilder::genSizeOf(Type* type) {
- Opnd* dst = createOpnd(typeManager->getUInt32Type());
- appendInst(instFactory->makeSizeof(dst, type));
- return dst;
-}
-
-Opnd*
-IRBuilder::genUnbox(Type* type, Opnd* obj) {
- assert(type->isValue());
- Opnd *src = propagateCopy(obj);
- genTauCheckNull(obj);
- Opnd *two = genCast(src, typeManager->getObjectType(((NamedType*)type)->getVMTypeHandle()));
- Opnd* dst = createOpnd(typeManager->getManagedPtrType(type));
- appendInst(instFactory->makeUnbox(dst, two, type));
- return dst;
-}
-
-Opnd*
-IRBuilder::genBox(Type* type, Opnd* val) {
- assert(type->isValue());
- val = propagateCopy(val);
- Opnd* dst = createOpnd(typeManager->getObjectType(((NamedType*)type)->getVMTypeHandle()));
- appendInst(instFactory->makeBox(dst, val, type));
- return dst;
-}
-
-void
-IRBuilder::genCopyObj(Type* type, Opnd* dstValPtr, Opnd* srcValPtr) {
- appendInst(instFactory->makeCopyObj(dstValPtr, srcValPtr, type));
-}
-
-void
-IRBuilder::genInitObj(Type* type, Opnd* valPtr) {
- appendInst(instFactory->makeInitObj(valPtr, type));
-}
-
-Opnd*
-IRBuilder::genLdObj(Type* type, Opnd* addrOfValObj) {
- Opnd* dst = createOpnd(type);
- appendInst(instFactory->makeLdObj(dst, addrOfValObj, type));
- return dst;
-}
-
-void
-IRBuilder::genStObj(Opnd* addrOfDstVal, Opnd* srcVal, Type* type) {
- appendInst(instFactory->makeStObj(addrOfDstVal, srcVal, type));
-}
-
-void
-IRBuilder::genCopyBlock(Opnd* dstAddr, Opnd* srcAddr, Opnd* size) {
- assert(0);
-}
-
-void
-IRBuilder::genInitBlock(Opnd* dstAddr, Opnd* srcAddr, Opnd* size) {
- assert(0);
-}
-
-Opnd*
-IRBuilder::genLocAlloc(Opnd* size) {
- assert(0);
- return NULL;;
-}
-
-Opnd*
-IRBuilder::genArgList() {
- assert(0);
- return NULL;
-}
-
-Opnd*
-IRBuilder::genMkRefAny(Type* type, Opnd* ptr) {
- assert(0);
- return NULL;
-}
-
-Opnd*
-IRBuilder::genRefAnyType(Opnd* typedRef) {
- assert(0);
- return NULL;
-}
-
-Opnd*
-IRBuilder::genRefAnyVal(Type* type, Opnd* typedRef) {
- assert(0);
- return NULL;
-}
-
//-----------------------------------------------------------------------------
//
// Private helper methods for generating instructions
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.h?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/IRBuilder.h Thu Jun 5 02:23:56 2008
@@ -180,10 +180,6 @@
void genPseudoThrow();//TR
void genThrowSystemException(CompilationInterface::SystemExceptionId);//SI
void genThrowLinkingException(Class_Handle encClass, U_32 CPIndex, U_32 operation);//SI
- void genLeave(LabelInst* label);//TR
- void genEndFinally(); // TR
- void genEndFilter(); // TR
- void genEndCatch(); // TR
void genJSR(LabelInst* label); //TR
void genRet(Opnd *src);//TR
Opnd* genSaveRet();//TR
@@ -268,24 +264,7 @@
void genFallThroughLabel(LabelInst* labelInst); //TR
// method entry/exit
LabelInst* genMethodEntryLabel(MethodDesc* methodDesc);//TR
- // value object instructions
- Opnd* genLdObj(Type* type, Opnd* addrOfValObj);//TR
- void genStObj(Opnd* addrOfDstVal, Opnd* srcVal, Type* type);//TR
- void genCopyObj(Type* type, Opnd* dstValPtr, Opnd* srcValPtr); // TR
- void genInitObj(Type* type, Opnd* valPtr); //TR
- Opnd* genSizeOf(Type* type);//TR
- Opnd* genMkRefAny(Type* type, Opnd* ptr);//TR
- Opnd* genRefAnyType(Opnd* typedRef);//TR
- Opnd* genRefAnyVal(Type* type, Opnd* typedRef);//TR
- Opnd* genUnbox(Type* type, Opnd* obj);//TR
- Opnd* genBox(Type* type, Opnd* val); // TR
- Opnd* genLdToken(MethodDesc* enclosingMethod, U_32 metadataToken);//TR
- // block instructions
- void genCopyBlock(Opnd* dstAddr, Opnd* srcAddr, Opnd* size); // TR
- void genInitBlock(Opnd* dstAddr, Opnd* val, Opnd* size); //TR
- Opnd* genLocAlloc(Opnd* size);//TR
- Opnd* genArgList(); // TR
-
+
void genTauTypeCompare(Opnd *arg0, MethodDesc* methodDesc, LabelInst *target,
Opnd *tauNullChecked);//TR
@@ -389,9 +368,7 @@
void genOptimisticBalancedMonitorExit(Opnd* src, Opnd *lockAddr, Opnd *oldValue);
void genMonitorEnterFence(Opnd *src);
void genMonitorExitFence(Opnd *src);
- // checks
- void genSourceLineNumber(U_32 fileId, U_32 lineNumber);
-
+
private:
void readFlagsFromCommandLine(SessionAction* argSource, const char* argPrefix);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.cpp Thu Jun 5 02:23:56 2008
@@ -1893,9 +1893,6 @@
return makeInst(Op_Ret, Modifier(), src->getType()->tag, OpndManager::getNullOpnd(), src);
}
-Inst* InstFactory::makeLeave(LabelInst* labelInst) {
- return makeBranchInst(Op_Leave, labelInst);
-}
Inst* InstFactory::makeThrow(ThrowModifier mod, Opnd* exceptionObj) {
return makeInst(Op_Throw, Modifier(mod), Type::Void, OpndManager::getNullOpnd(), exceptionObj);
@@ -1916,18 +1913,7 @@
OpndManager::getNullOpnd(), encClass, CPIndex, operation);
}
-Inst* InstFactory::makeEndFinally() {
- return makeInst(Op_EndFinally, Modifier(), Type::Void, OpndManager::getNullOpnd());
-}
-
-Inst* InstFactory::makeEndFilter() {
- assert(0);
- return NULL;
-}
-Inst* InstFactory::makeEndCatch() {
- return makeInst(Op_EndCatch, Modifier(), Type::Void, OpndManager::getNullOpnd());
-}
Inst* InstFactory::makePrefetch(Opnd* addr) {
return makeInst(Op_Prefetch, Modifier(), Type::Void, OpndManager::getNullOpnd(), addr);
}
@@ -2438,10 +2424,6 @@
return makeInst(Op_MonitorExitFence, Modifier(), Type::Void, OpndManager::getNullOpnd(), src);
}
-Inst* InstFactory::makeLdToken(Opnd* dst, MethodDesc* enclosingMethod, U_32 metadataToken) {
- return makeTokenInst(Op_LdToken, Modifier(), Type::Object, dst, metadataToken, enclosingMethod);
-}
-
Inst* InstFactory::makeLdRef(Modifier mod, Opnd* dst, MethodDesc* enclosingMethod, U_32 token) {
return makeTokenInst(Op_LdRef, mod, dst->getType()->tag, dst, token, enclosingMethod);
}
@@ -2460,10 +2442,6 @@
dst->getType()->tag, dst, src, tauCheckedNull, type);
}
-Inst* InstFactory::makeSizeof(Opnd* dst, Type* type) {
- return makeTypeInst(Op_Sizeof, Modifier(), dst->getType()->tag, dst, type);
-}
-
Inst* InstFactory::makeTauAsType(Opnd* dst, Opnd* src, Opnd *tauNullChecked, Type* type) {
assert(tauNullChecked->getType()->tag == Type::Tau);
return makeTypeInst(Op_TauAsType, Modifier(), dst->getType()->tag, dst, src, tauNullChecked, type);
@@ -2481,31 +2459,6 @@
Type::Void, OpndManager::getNullOpnd(), type);
}
-// value type instructions
-Inst* InstFactory::makeLdObj(Opnd* dst, Opnd* addrOfSrcValObj, Type* type) {
- return makeTypeInst(Op_LdObj, Modifier(), type->tag, dst, addrOfSrcValObj, type);
-}
-
-Inst* InstFactory::makeStObj(Opnd* addrOfDstVal, Opnd* srcVal, Type* type) {
- return makeTypeInst(Op_StObj, Modifier(), type->tag, OpndManager::getNullOpnd(), addrOfDstVal, srcVal, type);
-}
-
-Inst* InstFactory::makeCopyObj(Opnd* dstValPtr, Opnd* srcValPtr, Type* type) {
- return makeTypeInst(Op_CopyObj, Modifier(), type->tag, OpndManager::getNullOpnd(), dstValPtr, srcValPtr, type);
-}
-
-Inst* InstFactory::makeInitObj(Opnd* valPtr, Type* type) {
- return makeTypeInst(Op_InitObj, Modifier(), type->tag, OpndManager::getNullOpnd(), valPtr, type);
-}
-
-Inst* InstFactory::makeBox(Opnd* dst, Opnd* val, Type* type) {
- return makeTypeInst(Op_Box, Modifier(), dst->getType()->tag, dst, val, type);
-}
-
-Inst* InstFactory::makeUnbox(Opnd* dst, Opnd* obj, Type* type) {
- return makeTypeInst(Op_Unbox, Modifier(), dst->getType()->tag, dst, obj, type);
-}
-
// lowered instructions
Inst* InstFactory::makeTauCheckBounds(Opnd *dst, Opnd* arrayLen, Opnd* index) {
return makeInst(Op_TauCheckBounds, Modifier(Exception_Sometimes)|Modifier(Overflow_Unsigned),
@@ -2682,10 +2635,6 @@
case Op_PseudoThrow: return casePseudoThrow(inst);
case Op_ThrowSystemException: return caseThrowSystemException(inst);
case Op_ThrowLinkingException: return caseThrowLinkingException(inst);
- case Op_Leave: return caseLeave(inst);
- case Op_EndFinally: return caseEndFinally(inst);
- case Op_EndFilter: return caseEndFilter(inst);
- case Op_EndCatch: return caseEndCatch(inst);
case Op_JSR: return caseJSR(inst);
case Op_Ret: return caseRet(inst);
case Op_SaveRet: return caseSaveRet(inst);
@@ -2750,22 +2699,6 @@
case Op_Label: return caseLabel(inst);
case Op_MethodEntry: return caseMethodEntry(inst);
case Op_MethodEnd: return caseMethodEnd(inst);
- case Op_SourceLineNumber: return caseSourceLineNumber(inst);
- case Op_LdObj: return caseLdObj(inst->asTypeInst());
- case Op_StObj: return caseStObj(inst->asTypeInst());
- case Op_CopyObj: return caseCopyObj(inst->asTypeInst());
- case Op_InitObj: return caseInitObj(inst->asTypeInst());
- case Op_Sizeof: return caseSizeof(inst->asTypeInst());
- case Op_Box: return caseBox(inst->asTypeInst());
- case Op_Unbox: return caseUnbox(inst->asTypeInst());
- case Op_LdToken: return caseLdToken(inst->asTokenInst());
- case Op_MkRefAny: return caseMkRefAny(inst);
- case Op_RefAnyVal: return caseRefAnyVal(inst);
- case Op_RefAnyType: return caseRefAnyType(inst);
- case Op_InitBlock: return caseInitBlock(inst);
- case Op_CopyBlock: return caseCopyBlock(inst);
- case Op_Alloca: return caseAlloca(inst);
- case Op_ArgList: return caseArgList(inst);
case Op_Phi: return casePhi(inst);
case Op_TauPi: return caseTauPi(inst->asTauPiInst());
case Op_IncCounter: return caseIncCounter(inst);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.h?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Inst.h Thu Jun 5 02:23:56 2008
@@ -265,8 +265,6 @@
virtual bool isType() const { return false; };
virtual bool isVarAccess() const { return false; };
- bool isLeave() const {return getOpcode() == Op_Leave; }
- bool isEndFinally() const {return getOpcode() == Op_EndFinally;}
bool isThrow() const ;
bool isReturn() const {return getOpcode() == Op_Return; }
bool isLdVar() const {return getOpcode() == Op_LdVar; }
@@ -1110,9 +1108,6 @@
Inst* makeThrowSystemException(CompilationInterface::SystemExceptionId exceptionId);
Inst* makeThrowLinkingException(Class_Handle encClass, U_32 CPIndex, U_32 operation);
Inst* makeLeave(LabelInst* labelInst);
- Inst* makeEndFinally();
- Inst* makeEndFilter();
- Inst* makeEndCatch();
Inst* makeJSR(LabelInst* labelInst);
Inst* makeRet(Opnd *src); // JSR-RET pair
Inst* makeSaveRet(Opnd *dst); // JSR-RET pair
@@ -1217,17 +1212,6 @@
Inst* makeMethodMarker(MethodMarkerInst::Kind kind, MethodDesc* methodDesc);
- // value type instructions
- Inst* makeLdObj(Opnd* dst, Opnd* addrOfSrcValObj, Type* type);
- Inst* makeStObj(Opnd* addrOfDstVal, Opnd* srcVal, Type* type);
- Inst* makeCopyObj(Opnd* dstValPtr, Opnd* srcValPtr, Type* type);
- Inst* makeInitObj(Opnd* valPtr, Type* type);
- Inst* makeSizeof(Opnd* dst, Type* type);
- Inst* makeBox(Opnd* dst, Opnd* val, Type* type);
- Inst* makeUnbox(Opnd* dst, Opnd* obj, Type* type);
- Inst* makeLdToken(Opnd* dst, MethodDesc* enclosingMethod, U_32 metadataToken);
-
-
// SSA
Inst* makePhi(Opnd* dst, U_32 numOpnds, Opnd** opnds); // array is copied
Inst* makeTauPi(Opnd* dst, Opnd* src, Opnd *tau, PiCondition *cond);
@@ -1633,15 +1617,6 @@
caseLeave(Inst* inst)=0;// {return caseDefault(inst);}
virtual Inst*
- caseEndFinally(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseEndFilter(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseEndCatch(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
caseJSR(Inst* inst)=0;// {return caseDefault(inst);}
virtual Inst*
@@ -1856,58 +1831,10 @@
virtual Inst*
caseMethodEnd(Inst* inst)=0;// {return caseDefault(inst);}
- virtual Inst*
- caseSourceLineNumber(Inst* inst)=0;// {return caseDefault(inst);}
-
// source markers
virtual Inst*
caseMethodMarker(Inst* inst)=0;// {return caseDefault(inst);}
- // value type instructions
- virtual Inst*
- caseLdObj(TypeInst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseStObj(TypeInst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseCopyObj(TypeInst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseInitObj(TypeInst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseBox(TypeInst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseUnbox(TypeInst* inst)=0;// {return caseDefault(inst);}
-
- // checks
- virtual Inst*
- caseLdToken(TokenInst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseMkRefAny(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseRefAnyVal(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseRefAnyType(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseInitBlock(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseCopyBlock(Inst* inst)=0;// {return caseDefault(inst);}
-
- virtual Inst*
- caseAlloca(Inst* inst)=0;// {return caseDefault(inst);}
-
- // makeGetType is not used
- virtual Inst*
- caseArgList(Inst* inst)=0;// {return caseDefault(inst);}
-
virtual Inst*
casePhi(Inst* inst)=0;// {return caseDefault(inst);}
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.cpp Thu Jun 5 02:23:56 2008
@@ -114,10 +114,6 @@
{ Op_PseudoThrow, true, MB::Exception, MK::Exception, "pseudoThrow ", "pseudoThrow %b", },
{ Op_ThrowSystemException, true, MB::Exception, MK::None, "throwsys ", "throwsys %d %b", },
{ Op_ThrowLinkingException, true, MB::Exception, MK::None, "throwLink ", "throwLink", },
- { Op_Leave, true, MB::ControlFlow, MK::None, "leave ", "leave %l", }, // CLI only -- DELETE
- { Op_EndFinally, true, MB::ControlFlow, MK::None, "endfinally", "endfinally", }, // CLI only -- DELETE
- { Op_EndFilter, true, MB::ControlFlow, MK::None, "endfilter", "endfilter", }, // CLI only -- DELETE
- { Op_EndCatch, true, MB::Call, MK::None, "endcatch", "endcatch", }, // CLI only -- DELETE
{ Op_JSR, true, MB::Call, MK::None, "jsr", "jsr %l", }, // Java only, JSR's -- DELETE
{ Op_Ret, true, MB::ControlFlow, MK::None, "ret", "ret %s", }, // Java only, JSR's -- DELETE
{ Op_SaveRet, true, MB::ControlFlow, MK::None, "saveret", "saveret -) %l", }, // Java only, JSR's -- DELETE
@@ -184,25 +180,8 @@
{ Op_Label, true, MB::None, MK::None, "label ", "%l: %b", }, // special label instructions for branch labels, finally, catch
{ Op_MethodEntry, true, MB::None, MK::None, "methodentry", "--- MethodEntry(%d): (%s) %b",}, // method entry label
{ Op_MethodEnd, true, MB::None, MK::None, "methodend", "+++ MethodEnd(%d) (%s)", }, // end of a method
- { Op_SourceLineNumber, true, MB::None, MK::None, "lineno", "???", }, // change to source position
- { Op_LdObj, false, MB::Load, MK::None, "ldobj ", "ldobj [%0] -) %l", }, // load a value type to the stack
- { Op_StObj, true, MB::StoreOrSync, MK::None, "stobj ", "stobj %1 -) [%0] -- %d", }, // store a value type from the stack
- { Op_CopyObj, true, MB::StoreOrSync, MK::None, "cpobj ", "cpobj [%1] -) [%0] -- %d", }, // copy a value type
- { Op_InitObj, true, MB::StoreOrSync, MK::None, "initobj", "initobj [%0]", }, // initialize a value type
- { Op_Sizeof, false, MB::Movable, MK::None, "sizeof", "sizeof %d -) %l", }, // Pushes the size of a value type as a U4
- { Op_Box, false, MB::Exception, MK::None, "box ", "box %0,%d -) %l", },
- { Op_Unbox, false, MB::CSEable, MK::None, "unbox ", "unbox %0,%d -) %l", },
- { Op_LdToken, true , MB::None, MK::None, "ldtok ", "ldtok -) %l", },
- { Op_MkRefAny, false, MB::CSEable, MK::None, "mkrefany", "mkrefany", }, // transforms a pointer to a typed reference
- { Op_RefAnyVal, false, MB::CSEable, MK::None, "refanyval", "refanyval", }, // ??? Pushes a pointer to the typed reference ???
- { Op_RefAnyType, false, MB::CSEable, MK::None, "refanytype", "refanytype", }, // Pushes the type token in a typed reference - same as obj.getClass()?
-
+
// Memory instructions
- { Op_InitBlock, true, MB::StoreOrSync, MK::None, "initblk", "initblk", }, // memset
- { Op_CopyBlock, true, MB::StoreOrSync, MK::None, "cpblk ", "cpblk ", }, // memcopy
- { Op_Alloca, true, MB::StoreOrSync, MK::None, "alloca", "alloca", }, // allocations memory from the stack, },not verifiable
- { Op_ArgList, true, MB::None, MK::None, "arglist", "arglist", }, // for implementing varargs, use is private to CLI System.ArgIterator
-
// Special SSA nodes
{ Op_Phi, false, MB::None, MK::None, "phi ", "phi(%s) -) %l", }, // merge point
{ Op_TauPi, false, MB::Movable, MK::None, "pi ", "pi(%0 : %d) ((%1)) -) %l", }, // liverange split based on condition
@@ -809,7 +788,6 @@
case Op_LdArrayBaseOffsetPlusHeapbase:
case Op_LdArrayLenOffset:
case Op_LdArrayLenOffsetPlusHeapbase:
- case Op_LdToken:
return true;
default:
return false;
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.h?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/Opcode.h Thu Jun 5 02:23:56 2008
@@ -330,11 +330,7 @@
Op_PseudoThrow, // pseudo instruction to break infinte loops
Op_ThrowSystemException, // takes a CompilationInterface::SystemExceptionId parameter
Op_ThrowLinkingException, // generate a call to Helper_Throw_LinkingException
- Op_Leave,
- Op_EndFinally,
- Op_EndFilter,
- Op_EndCatch,
Op_JSR,
Op_Ret,
@@ -420,32 +416,7 @@
Op_Label, // special label instructions for branch labels, finally, catch
Op_MethodEntry, // method entry label
Op_MethodEnd, // end of a method
- Op_SourceLineNumber, // change to source position
-
- // Instructions for manipulating value objects in CIL
- Op_LdObj, // load a value type to the stack
- Op_StObj, // store a value type from the stack
- Op_CopyObj, // copy a value type
- Op_InitObj, // initialize a value type
- Op_Sizeof, // Pushes the size of a value type as a U4
- Op_Box,
- Op_Unbox,
-
- // Pushes a RuntimeMethodHandle, RuntimeTypeHandle, or RuntimeFieldHandle for
- // passing to the Reflection methods in the system class library.
- Op_LdToken,
-
- // Instruction for manipulating typed references
- Op_MkRefAny, // transforms a pointer to a typed reference
- Op_RefAnyVal,
- Op_RefAnyType,
-
- // Memory instructions
- Op_InitBlock, // memset
- Op_CopyBlock, // memcopy
- Op_Alloca, // allocations memory from the stack, not verifiable
- Op_ArgList, // for implementing varargs; use is private to CLI System.ArgIterator
-
+
// Special SSA nodes
Op_Phi, // merge point
Op_TauPi, // leverage split based on condition
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/codelowerer.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/codelowerer.h?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/codelowerer.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/codelowerer.h Thu Jun 5 02:23:56 2008
@@ -156,12 +156,6 @@
Inst* caseLeave(Inst* inst) {return caseDefault(inst);}
- Inst* caseEndFinally(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseEndFilter(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseEndCatch(Inst* inst) {return caseDefault(inst);}
-
Inst* caseJSR(Inst* inst) {return caseDefault(inst);}
Inst* caseRet(Inst* inst) {return caseDefault(inst);}
@@ -278,40 +272,9 @@
Inst* caseMethodEnd(Inst* inst) {return caseDefault(inst);}
- Inst* caseSourceLineNumber(Inst* inst) {return caseDefault(inst);}
-
// source markers
Inst* caseMethodMarker(Inst* inst) {return caseDefault(inst);}
- // value type instructions
- Inst* caseLdObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseStObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseCopyObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseInitObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseBox(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseUnbox(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseLdToken(TokenInst* inst) {return caseDefault(inst);}
-
- Inst* caseMkRefAny(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseRefAnyVal(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseRefAnyType(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseInitBlock(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseCopyBlock(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseAlloca(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseArgList(Inst* inst) {return caseDefault(inst);}
-
Inst* casePhi(Inst* inst) {return caseDefault(inst);}
Inst* caseTauPi(TauPiInst* inst) {return caseDefault(inst);}
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escanalyzer.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escanalyzer.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escanalyzer.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escanalyzer.cpp Thu Jun 5 02:23:56 2008
@@ -613,7 +613,6 @@
case Op_Prefetch:
case Op_TauStStatic:
case Op_Copy:
- case Op_Box:
break;
default:
@@ -4648,12 +4647,6 @@
Inst *headInst = (Inst*)node->getFirstInst();
Opnd* opnd;
for (Inst* inst=headInst->getNextInst();inst!=NULL;inst=inst->getNextInst()) {
- if (inst->getOpcode() == Op_InitObj) {
- if (verboseLog) {
- os_sc << " Op_InitObj: ";
- inst->print(os_sc); os_sc << std::endl;
- }
- }
U_32 nsrc = inst->getNumSrcOperands();
for (U_32 i=0; i<nsrc; i++) {
if (!(opnd=inst->getSrc(i))->isSsaOpnd()) // check ssa operands
@@ -4716,12 +4709,6 @@
Inst *headInst = (Inst*)node->getFirstInst();
Opnd* opnd;
for (Inst* inst=headInst->getNextInst();inst!=NULL;inst=inst->getNextInst()) {
- if (inst->getOpcode() == Op_InitObj) {
- if (verboseLog) {
- os_sc << " Op_InitObj: ";
- inst->print(os_sc); os_sc << std::endl;
- }
- }
U_32 nsrc = inst->getNumSrcOperands();
for (U_32 i=0; i<nsrc; i++) {
if (!(opnd=inst->getSrc(i))->isSsaOpnd()) // check ssa operands
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escapeanalyzer.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escapeanalyzer.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escapeanalyzer.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/escapeanalyzer.cpp Thu Jun 5 02:23:56 2008
@@ -45,7 +45,6 @@
case Op_LdRef: case Op_NewObj: case Op_NewArray:
return true;
case Op_NewMultiArray:
- case Op_Box:
return true;
case Op_LdConstant:
//
@@ -171,7 +170,6 @@
// no src operands to mark
break;
case Op_NewMultiArray:
- case Op_Box:
break;
//
// sources of loads do not escape further
@@ -196,7 +194,6 @@
break;
case Op_LdStaticAddr: case Op_LdVarAddr:
break;
- case Op_Unbox: case Op_LdObj:
default:
::std::cerr << "ERROR: unknown escaping ref opcode: "
<< inst->getOperation().getOpcodeString()
@@ -281,7 +278,6 @@
case Op_TauLdField: case Op_TauLdElem: case Op_TauLdInd:
case Op_LdArrayBaseAddr: case Op_AddScaledIndex:
case Op_LdFieldAddr: case Op_LdElemAddr:
- case Op_Unbox:
case Op_AddOffset:
// create a def-use to base address computation
defUseBuilder.addDefUse(inst->getSrc(0)->getInst(),inst,0);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/hashvaluenumberer.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/hashvaluenumberer.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/hashvaluenumberer.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/hashvaluenumberer.cpp Thu Jun 5 02:23:56 2008
@@ -228,12 +228,6 @@
Inst* caseLeave(Inst* inst) { return caseDefault(inst); }
- Inst* caseEndFinally(Inst* inst) { return caseDefault(inst); }
-
- Inst* caseEndFilter(Inst* inst) { return caseDefault(inst); }
-
- Inst* caseEndCatch(Inst* inst) { return caseDefault(inst); }
-
Inst* caseJSR(Inst* inst) { return caseDefault(inst); }
Inst* caseRet(Inst* inst) { return caseDefault(inst); }
@@ -860,55 +854,10 @@
virtual Inst*
caseMethodEnd(Inst* inst) { return caseDefault(inst); }
- virtual Inst*
- caseSourceLineNumber(Inst* inst) { return caseDefault(inst); }
-
// source markers
virtual Inst*
caseMethodMarker(Inst* inst) { return caseDefault(inst); }
- // value type instructions
- virtual Inst*
- caseLdObj(TypeInst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseStObj(TypeInst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseCopyObj(TypeInst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseInitObj(TypeInst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseBox(TypeInst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseUnbox(TypeInst* inst) { return caseDefault(inst); }
-
- Inst* caseLdToken(TokenInst* inst) { return hashInst(inst); }
-
- virtual Inst*
- caseMkRefAny(Inst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseRefAnyVal(Inst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseRefAnyType(Inst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseInitBlock(Inst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseCopyBlock(Inst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseAlloca(Inst* inst) { return caseDefault(inst); }
-
- virtual Inst*
- caseArgList(Inst* inst) { return caseDefault(inst); }
-
virtual Inst*
casePhi(Inst* inst) { return caseDefault(inst); }
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/lazyexceptionopt.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/lazyexceptionopt.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/lazyexceptionopt.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/lazyexceptionopt.cpp Thu Jun 5 02:23:56 2008
@@ -904,11 +904,6 @@
case Op_ThrowSystemException:
case Op_ThrowLinkingException:
return true;
- case Op_Leave: // deleted
- case Op_EndFinally:
- case Op_EndFilter:
- case Op_EndCatch:
- return true;
case Op_JSR: // deleted
case Op_Ret:
case Op_SaveRet:
@@ -1051,24 +1046,7 @@
case Op_Label:
case Op_MethodEntry:
case Op_MethodEnd:
- case Op_SourceLineNumber:
return false;
- case Op_LdObj:
- case Op_StObj:
- case Op_CopyObj:
- case Op_InitObj:
- case Op_Sizeof:
- case Op_Box:
- case Op_Unbox:
- case Op_LdToken:
- case Op_MkRefAny:
- case Op_RefAnyVal:
- case Op_RefAnyType:
- case Op_InitBlock:
- case Op_CopyBlock:
- case Op_Alloca:
- case Op_ArgList:
- return true;
case Op_Phi:
case Op_TauPi:
return false;
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/memoryopt.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/memoryopt.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/memoryopt.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/memoryopt.cpp Thu Jun 5 02:23:56 2008
@@ -660,9 +660,6 @@
case Op_Throw:
case Op_ThrowSystemException:
case Op_ThrowLinkingException:
- case Op_Leave:
- case Op_EndFinally:
- case Op_EndFilter:
thePass->effectExit(n, i);
break;
case Op_Catch:
@@ -872,22 +869,6 @@
break;
- case Op_LdObj:
-
- case Op_StObj:
- case Op_CopyObj:
-
- case Op_InitObj:
- case Op_Box:
- case Op_Unbox:
- case Op_LdToken:
- case Op_InitBlock:
- case Op_CopyBlock:
- case Op_Alloca:
- assert(0);
- break;
-
-
// loads vtable from object, depends on object initialization
case Op_TauLdVTableAddr:
@@ -937,14 +918,7 @@
case Op_TauCheckFinite:
case Op_TauStaticCast: // just a compile-time assertion
- case Op_Label: case Op_SourceLineNumber:
- case Op_Sizeof:
-
- case Op_MkRefAny: // these may allow pointers to escape or something
- case Op_RefAnyVal:
- case Op_RefAnyType:
-
- case Op_ArgList:
+ case Op_Label:
case Op_Phi:
case Op_TauPi:
case Op_TauPoint:
@@ -1385,7 +1359,6 @@
}
}
- case Op_Alloca:
case Op_LdVarAddr:
case Op_Phi:
case Op_DefArg: //magic as method param
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.cpp Thu Jun 5 02:23:56 2008
@@ -126,7 +126,7 @@
Inst* inst = opnd->getInst();
switch (inst->getOpcode()) {
case Op_NewObj: case Op_NewArray: case Op_NewMultiArray:
- case Op_Box: case Op_LdRef: case Op_Catch:
+ case Op_LdRef: case Op_Catch:
return true;
default:
return false;
@@ -156,7 +156,7 @@
Inst* inst = opnd->getInst();
switch (inst->getOpcode()) {
case Op_NewObj: case Op_NewArray: case Op_NewMultiArray:
- case Op_Box: case Op_LdRef:
+ case Op_LdRef:
return true;
case Op_DefArg:
return (inst->getDefArgModifier() == SpecializedToExactType);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.h?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifier.h Thu Jun 5 02:23:56 2008
@@ -511,11 +511,6 @@
Inst* caseLeave(Inst* inst) {return caseDefault(inst);}
- Inst* caseEndFinally(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseEndFilter(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseEndCatch(Inst* inst) {return caseDefault(inst);}
Inst* caseJSR(Inst* inst) {return caseDefault(inst);}
@@ -825,41 +820,10 @@
Inst* caseMethodEntry(Inst* inst) {return caseDefault(inst);}
Inst* caseMethodEnd(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseSourceLineNumber(Inst* inst) {return caseDefault(inst);}
-
+
// source markers
Inst* caseMethodMarker(Inst* inst) {return caseDefault(inst);}
- // value type instructions
- Inst* caseLdObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseStObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseCopyObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseInitObj(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseBox(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseUnbox(TypeInst* inst) {return caseDefault(inst);}
-
- Inst* caseLdToken(TokenInst* inst) {return caseDefault(inst);}
-
- Inst* caseMkRefAny(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseRefAnyVal(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseRefAnyType(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseInitBlock(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseCopyBlock(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseAlloca(Inst* inst) {return caseDefault(inst);}
-
- Inst* caseArgList(Inst* inst) {return caseDefault(inst);}
-
Inst* casePhi(Inst* inst){return caseDefault(inst);}
Inst* caseTauPi(TauPiInst* inst){return caseDefault(inst);}
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifytaus.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifytaus.cpp?rev=663509&r1=663508&r2=663509&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifytaus.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/simplifytaus.cpp Thu Jun 5 02:23:56 2008
@@ -496,10 +496,6 @@
case Op_Throw:
case Op_PseudoThrow:
- case Op_Leave:
- case Op_EndFinally:
- case Op_EndFilter:
- case Op_EndCatch:
assert(0);
case Op_JSR:
@@ -647,27 +643,8 @@
case Op_Label:
case Op_MethodEntry:
case Op_MethodEnd:
- case Op_SourceLineNumber:
assert(0); // no dstOpnd
- case Op_LdObj:
- case Op_StObj:
- case Op_CopyObj:
- case Op_InitObj:
- case Op_Sizeof:
- case Op_Box:
- case Op_Unbox:
- case Op_LdToken:
- case Op_MkRefAny:
- case Op_RefAnyVal:
- case Op_RefAnyType:
- case Op_InitBlock:
- case Op_CopyBlock:
- case Op_Alloca:
- case Op_ArgList:
- assert(0); // do not know what to do with these
- break;
-
case Op_Phi:
assert(0); // should be a ldvar instead
break;