diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-05-12 14:05:28 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-05-12 14:05:28 +0000 |
commit | 94e6e3591e3deb7f88b040a7f39d7acdb39e6c20 (patch) | |
tree | 63fd58b98168fb3c755ec6145a978b20b41a8e2a /gcc/tree-inline.h | |
parent | d6b07704ce320035dcb03a7f7eda260a67b5d506 (diff) | |
download | gcc-94e6e3591e3deb7f88b040a7f39d7acdb39e6c20.tar.gz |
* gcc.dg/tree-ssa/loop-36.c: Reduce amount of iterations to 2 so unrolling
still happens.
* gcc.dg/ipa/ipacost-1.c: Prevent inlining
* gcc.dg/ipa/ipacost-2.c: Likewise.
* gcc.dg/vect/slp-3.c: Loop is no longer unrolled.
* tree-inline.c (estimate_operator_cost): Add operands;
when division happens by constant, it is cheap.
(estimate_num_insns): Loads and stores are not having cost of 0;
EH magic stuff is cheap; when computing runtime cost of switch,
use log2 base of amount of its cases; builtin_expect has cost of 0;
compute cost for moving return value of call.
(init_inline_once): Initialize time_based flags.
* tree-inline.h (eni_weights_d): Add time_based flag.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147436 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.h')
-rw-r--r-- | gcc/tree-inline.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h index 1214c95dd0b..37e60bfd360 100644 --- a/gcc/tree-inline.h +++ b/gcc/tree-inline.h @@ -130,6 +130,11 @@ typedef struct eni_weights_d /* Cost for omp construct. */ unsigned omp_cost; + + /* True when time of statemnt should be estimated. Thus i.e + cost of switch statement is logarithmic rather than linear in number + of cases. */ + bool time_based; } eni_weights; /* Weights that estimate_num_insns uses for heuristics in inlining. */ |