harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mfur...@apache.org
Subject svn commit: r553131 - in /harmony/enhanced/drlvm/trunk/vm/jitrino/src: codegenerator/ia32/Ia32CodeEmitter.cpp codegenerator/ia32/Ia32CodeLayout.cpp jet/compiler.cpp
Date Wed, 04 Jul 2007 09:01:13 GMT
Author: mfursov
Date: Wed Jul  4 02:01:12 2007
New Revision: 553131

URL: http://svn.apache.org/viewvc?view=rev&rev=553131
Log:
Fix for HARMONY-4318
Enabling lazy resolution mode in JET for 32-bit platforms by default


Modified:
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeLayout.cpp
    harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.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=553131&r1=553130&r2=553131
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeEmitter.cpp Wed
Jul  4 02:01:12 2007
@@ -377,7 +377,7 @@
     uint8 * ip = codeStreamStart;
     for( BasicBlock * bb = (BasicBlock*)irManager->getFlowGraph()->getEntryNode();
bb != NULL; bb=bb->getLayoutSucc()) {
 
-        
+        assert(bb->getFirstInst()!=NULL);
         if (alignment && lt->isLoopHeader(bb) && ((POINTER_SIZE_INT)ip
& (alignment-1))) {
             unsigned align = alignment - (unsigned)((POINTER_SIZE_INT)ip & (alignment-1));
             ip = (uint8*)EncoderBase::nops((char*)ip, align);

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeLayout.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeLayout.cpp?view=diff&rev=553131&r1=553130&r2=553131
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeLayout.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32CodeLayout.cpp Wed
Jul  4 02:01:12 2007
@@ -311,6 +311,11 @@
             Log::out() << "Layout: not edge profile found: '"<<params<<"'
using topological layout\n";;
         }
     }
+    
+    fg->purgeEmptyNodes();
+    fg->getLoopTree()->rebuild(false);
+    irManager->fixEdgeProfile();
+
     Linearizer::doLayout(type, &getIRManager());
 }
 

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp?view=diff&rev=553131&r1=553130&r2=553131
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp Wed Jul  4 02:01:12 2007
@@ -140,8 +140,12 @@
     if (!get_bool_arg("bbp", true)) {
         compile_flags &= JMF_BBPOLLING;
     }
-    
+#ifndef _EM64T_    
+    m_lazy_resolution  = get_bool_arg("lazyResolution", true);
+#else
     m_lazy_resolution  = get_bool_arg("lazyResolution", false);
+#endif
+
 #ifdef _DEBUG
     bool assertOnRecursion = get_bool_arg("assertOnRecursion", false);
     if (assertOnRecursion) {
@@ -673,11 +677,11 @@
             ji.id = id++;
         }
     }
-	// Sometimes, Eclipse's javac generates NOPs at the end of method AND in a basic 
-	// block which is [unreachable] exception handler. In this case we have an inst which 
-	// is last in the method, has fall-through, but no following block. Always set up 'OPF_DEAD_END':
-	JInst& lastInst = m_insts[bc_size-1];
-	lastInst.flags = lastInst.flags | OPF_DEAD_END;
+    // Sometimes, Eclipse's javac generates NOPs at the end of method AND in a basic 
+    // block which is [unreachable] exception handler. In this case we have an inst which

+    // is last in the method, has fall-through, but no following block. Always set up 'OPF_DEAD_END':
+    JInst& lastInst = m_insts[bc_size-1];
+    lastInst.flags = lastInst.flags | OPF_DEAD_END;
 }
 
 void Compiler::comp_alloc_regs(void)



Mime
View raw message