Branch: refs/heads/master Home: http://github.com/penberg/jato
Commit: 87449e2786a026efcd1716b2dd4ee30437a954a8 http://github.com/penberg/jato/commit/87449e2786a026efcd1716b2dd4ee30437a954a8 Author: Tomek Grabiec <tgrab...@gmail.com> Date: 2009-08-20 (Thu, 20 Aug 2009) Changed paths: M include/jit/basic-block.h A include/jit/instruction.h M jit/basic-block.c M jit/spill-reload.c Log Message: ----------- jit: fix data flow resolution code in presence of empty basic blocks. Data flow resolution code assumed that basic blocks always contain some struct insn, before which spill/reload instructions can be put. When data flow resolution was run on empty basic block, it worked on invalid struct insn pointer and entered infinite loop. This patch also fixes another bug. Data flow resolution didn't work correctly when basic block in which spill occurs was not ended by a branch. That's because in this case spill was inserted after the last instruction, which is correct, but the corresponding spill slot moves (push+pop) were inserted before last instruction - before the slot was assigned a correct value. Empty basic blocks can be a result of the following bytecode: iconst_0 iconst_1 ifeq lab pop // This and the next instruction generate no iconst_1 // LIR instructions. lab: .... Cc: Arthur HUILLET <arthur.huil...@free.fr> Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> Signed-off-by: Pekka Enberg <penb...@cs.helsinki.fi> ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel