1 |
|
2005-04-12 Paul D. Smith <psmith@gnu.org> |
2 |
|
|
3 |
|
The second expansion feature causes significant slowdown. Timing |
4 |
|
a complex makefile (GCC 4.1) shows a slowdown from .25s to just |
5 |
|
read the makefile before the feature, to 11+s to do the same |
6 |
|
operations after the feature. Additionally, memory usage |
7 |
|
increased drastically. To fix this I added some intelligence that |
8 |
|
avoids the overhead of the second expansion unless it's required. |
9 |
|
|
10 |
|
* dep.h: Add a new boolean field, need_2nd_expansion. |
11 |
|
|
12 |
|
* read.c (eval): When creating the struct dep for the target, |
13 |
|
check if the name contains a "$"; if so set need_2nd_expansion to 1. |
14 |
|
(record_files): If there's a "%" in a static pattern rule, it gets |
15 |
|
converted to "$*" so set need_2nd_expansion to 1. |
16 |
|
|
17 |
|
* file.c (expand_deps): Rework to be more efficient. Only perform |
18 |
|
initialize_file_variables(), set_file_variables(), and |
19 |
|
variable_expand_for_file() if the need_2nd_expansion is set. |
20 |
|
|
21 |
|
* implicit.c (pattern_search): Default need_2nd_expansion to 0. |
22 |
|
(pattern_search): Ditto. |
23 |
|
* main.c (handle_non_switch_argument): Ditto. |
24 |
|
(main): Ditto. |
25 |
|
* read.c (read_all_makefiles): Ditto. |
26 |
|
(eval_makefile): Ditto. |
27 |
|
|
28 |
2005-04-07 Paul D. Smith <psmith@gnu.org> |
2005-04-07 Paul D. Smith <psmith@gnu.org> |
29 |
|
|
30 |
* main.c (main) [WINDOWS32]: Export PATH to sub-shells, not Path. |
* main.c (main) [WINDOWS32]: Export PATH to sub-shells, not Path. |