On Fri, 2009-07-31 at 18:12 +0200, Vegard Nossum wrote:
> All registers that were defined in the basic block were subtracted from the
> use set. This is right if the order is "define, use", but it's wrong if the
> order is "use, define". Fix this by checking if the register has already
> been used/defined.
> 
> Signed-off-by: Vegard Nossum <vegard.nos...@gmail.com>
> ---
>  jit/liveness.c |   18 +++++++++---------
>  1 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/jit/liveness.c b/jit/liveness.c
> index b73d96b..f2edfe7 100644
> --- a/jit/liveness.c
> +++ b/jit/liveness.c
> @@ -147,18 +147,18 @@ static void __analyze_use_def(struct basic_block *bb, 
> struct insn *insn)
>       struct var_info *var;
>  
>       for_each_variable(var, bb->b_parent->var_infos) {
> +             if (insn_uses(insn, var)) {
> +                     /*
> +                      * It's in the use set if and only if it has not
> +                      * _already_ been defined by insn basic block.
> +                      */
> +                     if (!test_bit(bb->def_set->bits, var->vreg))
> +                             set_bit(bb->use_set->bits, var->vreg);
> +             }
> +
>               if (insn_defs(insn, var))
>                       set_bit(bb->def_set->bits, var->vreg);
> -
> -             if (insn_uses(insn, var))
> -                     set_bit(bb->use_set->bits, var->vreg);
>       }
> -
> -     /*
> -      * It's in the use set if and only if it has not been defined
> -      * by insn basic block.
> -      */
> -     bitset_sub(bb->def_set, bb->use_set);
>  }
>  
>  static void analyze_use_def(struct compilation_unit *cu)

OK, so Arthur convinced me that the patch is correct but just before
pushing, I noticed that "make test" bombs in the spill/reload tests so
I'm not applying this.

                        Pekka


------------------------------------------------------------------------------
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

Reply via email to