diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-09 15:33:19 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-09 15:33:19 +0000 |
commit | 4b3aba76018311cf1d7d011f7299cb5fcc84a78a (patch) | |
tree | f14e41b290294aa5a04024274f1bf3d8c67bf745 /gcc/lra-int.h | |
parent | 72d65da995cf1ec78d6cfc1de6a2895715120f8f (diff) | |
download | gcc-4b3aba76018311cf1d7d011f7299cb5fcc84a78a.tar.gz |
2012-11-09 Vladimir Makarov <vmakarov@redhat.com>
PR tree-optimization/55154
* lra-int.h (LRA_LOSER_COST_FACTOR, LRA_MAX_REJECT): New macros.
* lra.c (setup_operand_alternative): Use them.
* lra-constraints.c (LOSER_COST_FACTOR, MAX_OVERALL_COST_BOUND):
Remove.
(process_alt_operands): Use LRA_LOSER_COST_FACTOR and
LRA_MAX_REJECT. Accumulate reject instead of setting for
non-const.
(curr_insn_transform): Initialize best_losers and best_overall by
INT_MAX.
2012-11-09 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/55154
* gcc.target/i386/pr55154.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193364 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lra-int.h')
-rw-r--r-- | gcc/lra-int.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/lra-int.h b/gcc/lra-int.h index abb6d7176bf..04d55287d75 100644 --- a/gcc/lra-int.h +++ b/gcc/lra-int.h @@ -243,6 +243,12 @@ typedef struct lra_insn_recog_data *lra_insn_recog_data_t; #define LRA_TEMP_CLOBBER_P(x) \ (RTL_FLAG_CHECK1 ("TEMP_CLOBBER_P", (x), CLOBBER)->unchanging) +/* Cost factor for each additional reload and maximal cost reject for + insn reloads. One might ask about such strange numbers. Their + values occurred historically from former reload pass. */ +#define LRA_LOSER_COST_FACTOR 6 +#define LRA_MAX_REJECT 600 + /* lra.c: */ extern FILE *lra_dump_file; |