You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2007/04/13 11:55:22 UTC
svn commit: r528412 - in
/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32:
Ia32CodeEmitter.cpp Ia32GCMap.cpp Ia32IRManager.h Ia32Printer.cpp
Ia32StackInfo.cpp Ia32StackLayout.cpp
Author: varlax
Date: Fri Apr 13 02:55:21 2007
New Revision: 528412
URL: http://svn.apache.org/viewvc?view=rev&rev=528412
Log:
Applied HARMONY-3322 [drlvm][jit][opt] assertion failure while printing dot files on jitrino built in debug mode
Modified:
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.h
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Printer.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackLayout.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp?view=diff&rev=528412&r1=528411&r2=528412
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp Fri Apr 13 02:55:21 2007
@@ -294,7 +294,7 @@
bc2LIRMapHandler = new(memoryManager) VectorHandler(bcOffset2LIRHandlerName, meth);
}
- irManager->setInfo("inlineInfo", new(irManager->getMemoryManager()) InlineInfoMap(irManager->getMemoryManager()));
+ irManager->setInfo(INLINE_INFO_KEY, new(irManager->getMemoryManager()) InlineInfoMap(irManager->getMemoryManager()));
constantAreaLayout.doLayout(irManager);
irManager->resolveRuntimeInfo();
emitCode();
@@ -310,7 +310,7 @@
//________________________________________________________________________________________
void CodeEmitter::registerInlineInfoOffsets()
{
- InlineInfoMap * inlineMap = (InlineInfoMap *)irManager->getInfo("inlineInfo");
+ InlineInfoMap * inlineMap = (InlineInfoMap *)irManager->getInfo(INLINE_INFO_KEY);
const Nodes& nodes = irManager->getFlowGraph()->getNodes();
for (Nodes::const_iterator it = nodes.begin(), end = nodes.end(); it!=end; ++it) {
Node* node = *it;
@@ -498,7 +498,7 @@
MemoryManager& irmm = irManager->getMemoryManager();
bool isBcRequired = irManager->getCompilationInterface().isBCMapInfoRequired();
BcMap* bcMap = new(irmm) BcMap(irmm);
- irManager->setInfo("bcMap", bcMap);
+ irManager->setInfo(BCMAP_INFO_KEY, bcMap);
bool newOpndsCreated = false;
for( BasicBlock * bb = (BasicBlock*)irManager->getFlowGraph()->getEntryNode(); bb != NULL; bb=bb->getLayoutSucc()) {
for (Inst* inst = (Inst*)bb->getFirstInst(); inst!=NULL; inst = inst->getNextInst()) {
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp?view=diff&rev=528412&r1=528411&r2=528412
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCMap.cpp Fri Apr 13 02:55:21 2007
@@ -469,7 +469,7 @@
GCMap * gcMap=new(mm) GCMap(mm);
irManager->calculateOpndStatistics();
gcMap->registerInsts(*irManager);
- irManager->setInfo("gcMap", gcMap);
+ irManager->setInfo(GCMAP_INFO_KEY, gcMap);
if (Log::isEnabled()) {
gcMap->getGCSafePointsInfo()->dump(getTagName());
@@ -532,13 +532,13 @@
void InfoBlockWriter::runImpl() {
- StackInfo * stackInfo = (StackInfo*)irManager->getInfo("stackInfo");
+ StackInfo * stackInfo = (StackInfo*)irManager->getInfo(STACK_INFO_KEY);
assert(stackInfo != NULL);
- GCMap * gcMap = (GCMap*)irManager->getInfo("gcMap");
+ GCMap * gcMap = (GCMap*)irManager->getInfo(GCMAP_INFO_KEY);
assert(gcMap != NULL);
- BcMap *bcMap = (BcMap*)irManager->getInfo("bcMap");
+ BcMap *bcMap = (BcMap*)irManager->getInfo(BCMAP_INFO_KEY);
assert(bcMap != NULL);
- InlineInfoMap * inlineInfo = (InlineInfoMap*)irManager->getInfo("inlineInfo");
+ InlineInfoMap * inlineInfo = (InlineInfoMap*)irManager->getInfo(INLINE_INFO_KEY);
assert(inlineInfo !=NULL);
CompilationInterface& compIntf = irManager->getCompilationInterface();
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.h?view=diff&rev=528412&r1=528411&r2=528412
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32IRManager.h Fri Apr 13 02:55:21 2007
@@ -41,6 +41,12 @@
#include "LoopTree.h"
+
+#define STACK_INFO_KEY "stackInfo"
+#define INLINE_INFO_KEY "inlineInfo"
+#define BCMAP_INFO_KEY "bcMap"
+#define GCMAP_INFO_KEY "gcMap"
+
namespace Jitrino
{
namespace Ia32
@@ -117,7 +123,7 @@
void setInfo(const char * key, void * info)
{ infoMap[newInternalString(key)]=info; }
- const void * getInfo(const char * key)
+ const void * getInfo(const char * key) const
{ ConstCharStringToVoidPtrMap::const_iterator it=infoMap.find(key); return it!=infoMap.end()?it->second:NULL; }
//-------------------------------------------------------------------------------------
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Printer.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Printer.cpp?view=diff&rev=528412&r1=528411&r2=528412
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Printer.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32Printer.cpp Fri Apr 13 02:55:21 2007
@@ -1185,7 +1185,17 @@
#ifdef _DEBUG
BitSet* entrySet = irManager->getLiveAtEntry(node);
- assert(entrySet->isEqual(*lsCurrent));
+ if (!entrySet->isEqual(*lsCurrent)) {
+ if (node == irManager->getFlowGraph()->getEntryNode()
+ && ((POINTER_SIZE_INT*)irManager->getInfo(STACK_INFO_KEY))!=NULL)
+ {
+ //DETAILS: callee save regs has no defs. See IRManager.verifyLiveness for details.
+ //This is why we skip liveness verification for entry node here after stacklayouter pass.
+ //TODO: we can add pseudo-defs for callee save regs to EntryPointPseudoInst
+ } else {
+ assert(false);
+ }
+ }
#endif
StlVector<Opnd *> opndsAll(mm);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp?view=diff&rev=528412&r1=528411&r2=528412
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackInfo.cpp Fri Apr 13 02:55:21 2007
@@ -47,7 +47,7 @@
class StackInfoInstRegistrar : public SessionAction {
void runImpl()
{
- StackInfo * stackInfo = (StackInfo*)irManager->getInfo("stackInfo");
+ StackInfo * stackInfo = (StackInfo*)irManager->getInfo(STACK_INFO_KEY);
assert(stackInfo!=NULL);
stackInfo->registerInsts(*irManager);
stackInfo->setMethodExitString(*irManager);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackLayout.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackLayout.cpp?view=diff&rev=528412&r1=528411&r2=528412
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackLayout.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32StackLayout.cpp Fri Apr 13 02:55:21 2007
@@ -171,7 +171,7 @@
IRManager & irm=getIRManager();
stackInfo = new(irm.getMemoryManager()) StackInfo(irm.getMemoryManager());
- irm.setInfo("stackInfo", stackInfo);
+ irm.setInfo(STACK_INFO_KEY, stackInfo);
irm.calculateOpndStatistics();
#ifdef _DEBUG