This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Ok with a small code format change below.Fixed as follows, bootstrapped and regtested on x86_64-linux and ia64-linux (without java, with one recent SRA patch reverted to unbreak bootstrap) with sel-sched enabled at -O2. OK for trunk?
Please, put else and if on the same line with a proper indentation.(a small testcase is not available at the moment, but I can try to produce one using delta before committing)
2011-09-13 Andrey Belevantsev<abel@ispras.ru>
* sel-sched-ir.c (update_target_availability): LHS register availability is not known if the unavailable LHS of the other expression is a different register.
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 4878460..b132392 100644 --- a/gcc/sel-sched-ir.c +++ b/gcc/sel-sched-ir.c @@ -1746,7 +1746,13 @@ update_target_availability (expr_t to, expr_t from, insn_t split_point) EXPR_TARGET_AVAILABLE (to) = -1; } else - EXPR_TARGET_AVAILABLE (to)&= EXPR_TARGET_AVAILABLE (from);
+ if (EXPR_TARGET_AVAILABLE (from) == 0 +&& EXPR_LHS (from) +&& REG_P (EXPR_LHS (from)) +&& REGNO (EXPR_LHS (to)) != REGNO (EXPR_LHS (from))) + EXPR_TARGET_AVAILABLE (to) = -1; + else + EXPR_TARGET_AVAILABLE (to)&= EXPR_TARGET_AVAILABLE (from); } }
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |