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 2007/12/07 11:32:40 UTC
svn commit: r602061 - in /harmony/enhanced/drlvm/trunk:
src/test/regression/H4785/ vm/jitrino/config/em64t/ vm/jitrino/config/ia32/
vm/jitrino/src/codegenerator/ia32/ vm/jitrino/src/optimizer/
vm/jitrino/src/shared/
Author: mfursov
Date: Fri Dec 7 02:32:39 2007
New Revision: 602061
URL: http://svn.apache.org/viewvc?rev=602061&view=rev
Log:
Fix for HARMONY-4785 [drlvm][jit][opt] EHWA asserts in server_static mode
+Regression tests
+OSR optimization was disabled in all modes. It will be reenabled after M4 release.
Added:
harmony/enhanced/drlvm/trunk/src/test/regression/H4785/
harmony/enhanced/drlvm/trunk/src/test/regression/H4785/Test.java (with props)
harmony/enhanced/drlvm/trunk/src/test/regression/H4785/run.test.xml (with props)
Modified:
harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf
harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf
harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf
harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf
harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf
harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf
harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/inliner.cpp
harmony/enhanced/drlvm/trunk/vm/jitrino/src/shared/BitSet.cpp
Added: harmony/enhanced/drlvm/trunk/src/test/regression/H4785/Test.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/H4785/Test.java?rev=602061&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/H4785/Test.java (added)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/H4785/Test.java Fri Dec 7 02:32:39 2007
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.harmony.drlvm.tests.regression.h4785;
+
+import junit.framework.TestCase;
+
+public class Test extends TestCase {
+
+
+
+ public void test() {
+ blit(1, null);
+ }
+
+ static boolean f = true;
+ static void blit(int destX, byte[] destData) {
+ if (f) return;
+ int dx = destX;
+ int indexq = 0;
+ int dtype=1;
+ for(; dx > 0; ) {
+ switch(dtype) {
+ default:
+ break;
+ case 10: // '\n'
+ indexq = destData[0];
+ break;
+ }
+ }
+ }
+
+}
Propchange: harmony/enhanced/drlvm/trunk/src/test/regression/H4785/Test.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: harmony/enhanced/drlvm/trunk/src/test/regression/H4785/run.test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/src/test/regression/H4785/run.test.xml?rev=602061&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/src/test/regression/H4785/run.test.xml (added)
+++ harmony/enhanced/drlvm/trunk/src/test/regression/H4785/run.test.xml Fri Dec 7 02:32:39 2007
@@ -0,0 +1,31 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. -->
+
+<project name="RUN HARMONY-4785 Regression Test">
+ <target name="run-test">
+ <run-junit-test
+ test="org.apache.harmony.drlvm.tests.regression.h4785.Test"
+ vmarg="-Xem:opt">
+ </run-junit-test>
+
+ <run-junit-test
+ test="org.apache.harmony.drlvm.tests.regression.h4785.Test"
+ vmarg="-Xem:server_static">
+ </run-junit-test>
+
+ </target>
+</project>
+
Propchange: harmony/enhanced/drlvm/trunk/src/test/regression/H4785/run.test.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf Fri Dec 7 02:32:39 2007
@@ -24,7 +24,7 @@
-XX:jit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--XX:jit.CS_OPT.path.optimizer=ssa,devirt,hlo_api_magic,inline,purge,osr_path,escape_path,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof
+-XX:jit.CS_OPT.path.optimizer=ssa,devirt,hlo_api_magic,inline,purge,osr_path-,escape_path,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof
-XX:jit.CS_OPT.path.osr_path=simplify,dce,uce,gcm,osr
-XX:jit.CS_OPT.path.escape_path=hvn,simplify,dce,uce,escape
-XX:jit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,api_magic,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf Fri Dec 7 02:32:39 2007
@@ -69,7 +69,7 @@
-XX:jit.SD1_OPT.arg.optimizer.vp_instrument.profile_abstract=true
--XX:jit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,hlo_api_magic,inline,purge,osr_path,escape_path,dce,uce,hvn,dce,uce,inline_helpers,purge,simplify,uce,dce,uce,abce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,gcm,dessa,statprof
+-XX:jit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,hlo_api_magic,inline,purge,osr_path-,escape_path,dce,uce,hvn,dce,uce,inline_helpers,purge,simplify,uce,dce,uce,abce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,gcm,dessa,statprof
-XX:jit.SD2_OPT.path.osr_path=simplify,dce,uce,gcm,osr
-XX:jit.SD2_OPT.path.escape_path=hvn,simplify,dce,uce,escape
-XX:jit.SD2_OPT.path.abce=classic_abcd,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,memopt,dce,uce,dessa,fastArrayFill,ssa,statprof,dabce,dce,uce
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf Fri Dec 7 02:32:39 2007
@@ -24,7 +24,7 @@
-XX:jit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--XX:jit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,hlo_api_magic,inline,purge,osr_path,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,classic_abcd,dce,uce,gcm,dessa,statprof
+-XX:jit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,hlo_api_magic,inline,purge,osr_path-,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,classic_abcd,dce,uce,gcm,dessa,statprof
-XX:jit.SS_OPT.path.osr_path=simplify,dce,uce,gcm,osr
-XX:jit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,api_magic,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
-XX:jit.SS_OPT.path.dce1=cg_dce
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf Fri Dec 7 02:32:39 2007
@@ -24,7 +24,7 @@
-XX:jit.CS_OPT.path=opt_init,lock_method,translator,optimizer,hir2lir,codegen,unlock_method
--XX:jit.CS_OPT.path.optimizer=ssa,devirt,hlo_api_magic,inline,purge,osr_path,simplify,dce,uce,lazyexc,throwopt,escape_path,dce,uce,memopt,simplify,dce,uce,lower,statprof,unroll,ssa,simplify,dce,uce,dessa,statprof
+-XX:jit.CS_OPT.path.optimizer=ssa,devirt,hlo_api_magic,inline,purge,osr_path-,simplify,dce,uce,lazyexc,throwopt,escape_path,dce,uce,memopt,simplify,dce,uce,lower,statprof,unroll,ssa,simplify,dce,uce,dessa,statprof
-XX:jit.CS_OPT.path.osr_path=simplify,dce,uce,gcm,osr
-XX:jit.CS_OPT.path.escape_path=hvn,simplify,dce,uce,escape
-XX:jit.CS_OPT.path.codegen=bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,copy,i586,layout,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf Fri Dec 7 02:32:39 2007
@@ -71,7 +71,7 @@
-XX:jit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--XX:jit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,hlo_api_magic,inline,purge,osr_path,simplify,dce,uce,lazyexc,throwopt,escape_path,inline_helpers,purge,simplify,uce,dce,uce,abce,lower,dce,uce,statprof,unroll,ssa,simplify,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,gcm,dessa,statprof
+-XX:jit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,devirt_virtual,edge_annotate,unguard,devirt_intf,hlo_api_magic,inline,purge,osr_path-,simplify,dce,uce,lazyexc,throwopt,escape_path,inline_helpers,purge,simplify,uce,dce,uce,abce,lower,dce,uce,statprof,unroll,ssa,simplify,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,gcm,dessa,statprof
-XX:jit.SD2_OPT.path.osr_path=simplify,dce,uce,gcm,osr
-XX:jit.SD2_OPT.path.escape_path=hvn,simplify,dce,uce,escape
-XX:jit.SD2_OPT.path.abce=classic_abcd,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,memopt,dce,uce,dessa,fastArrayFill,ssa,statprof,dabce,dce,uce
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf Fri Dec 7 02:32:39 2007
@@ -24,7 +24,7 @@
-XX:jit.SS_OPT.path=opt_init,lock_method,translator,optimizer,hir2lir,codegen,unlock_method
--XX:jit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,hlo_api_magic,inline,purge,osr_path,simplify,dce,uce,lazyexc,throwopt,statprof,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,unroll,ssa,simplify,dce,uce,memopt,reassoc,dce,uce,hvn,simplify,dce,uce,classic_abcd,dce,uce,gcm,dessa,statprof
+-XX:jit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,hlo_api_magic,inline,purge,osr_path-,simplify,dce,uce,lazyexc,throwopt,statprof,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,unroll,ssa,simplify,dce,uce,memopt,reassoc,dce,uce,hvn,simplify,dce,uce,classic_abcd,dce,uce,gcm,dessa,statprof
-XX:jit.SS_OPT.path.osr_path=simplify,dce,uce,gcm,osr
-XX:jit.SS_OPT.path.codegen=bbp,btr,gcpoints,cafl,dce1,i8l,api_magic,early_prop,peephole,itrace-,native,constraints,dce2,regalloc,spillgen,copy,i586,layout,rce+,stack,break-,iprof-,peephole,emitter!,si_insts,gcmap,info
-XX:jit.SS_OPT.path.dce1=cg_dce
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/codegenerator/ia32/Ia32GCSafePoints.cpp Fri Dec 7 02:32:39 2007
@@ -181,7 +181,9 @@
for (Inst* inst = (Inst*)node->getLastInst(); inst!=NULL; inst = inst->getPrevInst()) {
if (inst->getOpndCount() == 0 && ((inst->getKind() == Inst::Kind_MethodEndPseudoInst)
|| (inst->getKind() == Inst::Kind_MethodEntryPseudoInst))
- || (inst->getMnemonic() == Mnemonic_NOP) ) {
+ || (inst->getMnemonic() == Mnemonic_NOP
+ || inst->getKind() == Inst::Kind_EmptyPseudoInst) )
+ {
continue;
}
Opnd* opnd = inst->getOpnd(0); // VSH: 0 - ????
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=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/FlowGraph.cpp Fri Dec 7 02:32:39 2007
@@ -891,6 +891,82 @@
#endif
}
+static void normalizePseudoThrow(IRManager& irm) {
+//the main idea of the method:
+//1. normalize loops -> make sure there is only one backedge
+//2. move pseudothrows to the source node of backedge
+
+ OptPass::computeLoops(irm, true);
+ LoopTree* lt = irm.getLoopTree();
+ if (!lt->hasLoops()) {
+ return;
+ }
+ ControlFlowGraph& cfg = irm.getFlowGraph();
+ const Nodes& nodes = cfg.getNodes();
+ MemoryManager tmpMM("normalizePseudoThrow");
+ StlMap<Node*, Node*> loopHeadToDispatchMap(tmpMM);
+ Edges backedges(tmpMM);
+ Edges edgesToRemove(tmpMM);
+ for (Nodes::const_iterator it = nodes.begin(), end = nodes.end(); it!=end; ++it) {
+ Node* node = *it;
+ Node* head = lt->getLoopHeader(node, false);
+ if (head == NULL) {
+ continue;
+ }
+ const Edges& edges = node->getOutEdges();
+ bool isBackedgeSrc = false;
+ for (Edges::const_iterator ite = edges.begin(), ende = edges.end(); ite!=ende; ++ite) {
+ Edge* e = *ite;
+ if (lt->isBackEdge(e)) {
+ backedges.push_back(e);
+ isBackedgeSrc = true;
+ break;
+ }
+ }
+ Inst* i = (Inst*)node->getLastInst();
+ bool isPseudoThrow = i->getOpcode() == Op_PseudoThrow;
+ if (!isBackedgeSrc && isPseudoThrow) {
+ i->unlink();
+ Edge* exceptionEdge = node->getExceptionEdge();
+ Node* dispatch = exceptionEdge->getTargetNode();
+ while (lt->getLoopHeader(dispatch, false) == head) { //select dispatch that is out of the loop. Otherwise loop structure will be invalid
+ dispatch = dispatch->getExceptionEdgeTarget();
+ assert(dispatch);
+ }
+ loopHeadToDispatchMap[head] = dispatch;
+ edgesToRemove.push_back(exceptionEdge);
+ }
+ }
+
+ for (Edges::const_iterator it = edgesToRemove.begin(), end = edgesToRemove.end(); it!=end; ++it) {
+ Edge* e = *it;
+ cfg.removeEdge(e);
+ }
+
+ for (Edges::const_iterator it = backedges.begin(), end = backedges.end(); it!=end; ++it) {
+ Edge* backedge = *it;
+ Node* node = backedge->getSourceNode();
+ Node* head = backedge->getTargetNode();
+ Inst* i = (Inst*)node->getLastInst();
+ bool isPseudoThrow = i->getOpcode() == Op_PseudoThrow;
+ if (isPseudoThrow || node->isCatchBlock()) {
+ continue;
+ }
+ Node* dispatch = node->getExceptionEdgeTarget();
+ if (!dispatch) {
+ StlMap<Node*, Node*>::const_iterator it2 = loopHeadToDispatchMap.find(head);
+ assert(it2!=loopHeadToDispatchMap.end());
+ dispatch = it2->second;
+ } else {
+ node = cfg.spliceBlockOnEdge(backedge, irm.getInstFactory().makeLabel());
+ }
+ Inst* pi = irm.getInstFactory().makePseudoThrow();
+ pi->setBCOffset(head->getLabelInst()->getBCOffset());
+ node->appendInst(pi);
+ cfg.addEdge(node, dispatch);
+ }
+}
+
void FlowGraph::doTranslatorCleanupPhase(IRManager& irm) {
uint32 id = irm.getCompilationContext()->getCurrentSessionNum();
const char* stage = "trans_cleanup";
@@ -1073,15 +1149,16 @@
}
}
// Remove extra PseudoThrow insts
- DeadCodeEliminator dce(irm);
- dce.removeExtraPseudoThrow();
+ normalizePseudoThrow(irm);
+// DeadCodeEliminator dce(irm);
+// dce.removeExtraPseudoThrow();
//
// a quick cleanup of unreachable and empty basic blocks
//
fg.purgeUnreachableNodes();
fg.purgeEmptyNodes(false);
-
+
if (Log::isLogEnabled(LogStream::IRDUMP)) {
LogStream& irdump = Log::log(LogStream::IRDUMP);
Log::printStageEnd(irdump.out(), id, "TRANS", stage, stage);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/inliner.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/inliner.cpp?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/inliner.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/inliner.cpp Fri Dec 7 02:32:39 2007
@@ -1181,9 +1181,9 @@
dce.eliminateUnreachableCode();
assert(_toplevelIRM.getInSsa());
OptPass::fixupSsa(_toplevelIRM);
- if (isPseudoThrowInserted) {
+ /*if (isPseudoThrowInserted) {
dce.removeExtraPseudoThrow();
- }
+ }*/
}
void Inliner::compileAndConnectRegion(InlineNode* inlineNode, CompilationContext& inlineCC) {
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/shared/BitSet.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/shared/BitSet.cpp?rev=602061&r1=602060&r2=602061&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/shared/BitSet.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/shared/BitSet.cpp Fri Dec 7 02:32:39 2007
@@ -58,6 +58,7 @@
// Constructors
//
+static uint32* stub=(uint32*)0xDEADBEEF;
BitSet::BitSet(MemoryManager& memManager, uint32 size)
:words(0), setSize(0), wordsCapacity(0), mm(memManager)
@@ -66,6 +67,8 @@
{
alloc(size);
clear();
+ } else {
+ words = stub;
}
}