harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Kuksenko" <sergey.kukse...@gmail.com>
Subject Huge performance regression commit: svn commit: r602061
Date Sat, 08 Dec 2007 09:15:04 GMT
Hi All,

I have to notify you that this commit causes -10% performance regression on
some benchmarks.
>From my point of view it is not accectable.


On 12/7/07, mfursov@apache.org <mfursov@apache.org> wrote:
>
> 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;
>     }
> }
>
>
>
>


-- 
Best regards,
---
Sergey Kuksenko.
Intel Enterprise Solutions Software Division.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message