Commit d09973b
committed
[clang][deps][modules] Allocate input file paths lazily (llvm#114457)
This PR builds on top of llvm#113984 and attempts to avoid allocating input
file paths eagerly. Instead, the `InputFileInfo` type used by
`ASTReader` now only holds `StringRef`s that point into the PCM file
buffer, and the full input file paths get resolved on demand.
The dependency scanner makes use of this in a bit of a roundabout way:
`ModuleDeps` now only holds (an owning copy of) the short unresolved
input file paths, which get resolved lazily. This can be a big win, I'm
seeing up to a 5% speedup.
(cherry picked from commit 9d4837f)1 parent e3f0c0d commit d09973b
File tree
29 files changed
+161
-151
lines changed- clang
- include/clang
- Serialization
- Tooling/DependencyScanning
- lib
- Serialization
- Tooling/DependencyScanning
- test/ClangScanDeps
- tools/clang-scan-deps
29 files changed
+161
-151
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
66 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
73 | 74 | | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
74 | 79 | | |
75 | 80 | | |
76 | 81 | | |
| |||
Lines changed: 12 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | 126 | | |
131 | 127 | | |
132 | 128 | | |
| |||
155 | 151 | | |
156 | 152 | | |
157 | 153 | | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| 163 | + | |
163 | 164 | | |
164 | 165 | | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
165 | 173 | | |
166 | 174 | | |
167 | 175 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2454 | 2454 | | |
2455 | 2455 | | |
2456 | 2456 | | |
2457 | | - | |
| 2457 | + | |
2458 | 2458 | | |
2459 | 2459 | | |
2460 | 2460 | | |
| |||
2491 | 2491 | | |
2492 | 2492 | | |
2493 | 2493 | | |
2494 | | - | |
2495 | | - | |
2496 | | - | |
2497 | | - | |
2498 | | - | |
2499 | | - | |
2500 | | - | |
2501 | | - | |
2502 | | - | |
2503 | | - | |
2504 | | - | |
2505 | | - | |
2506 | | - | |
2507 | | - | |
2508 | | - | |
| 2494 | + | |
| 2495 | + | |
| 2496 | + | |
| 2497 | + | |
| 2498 | + | |
2509 | 2499 | | |
2510 | 2500 | | |
2511 | 2501 | | |
| |||
2557 | 2547 | | |
2558 | 2548 | | |
2559 | 2549 | | |
2560 | | - | |
| 2550 | + | |
| 2551 | + | |
2561 | 2552 | | |
2562 | 2553 | | |
2563 | 2554 | | |
| |||
2573 | 2564 | | |
2574 | 2565 | | |
2575 | 2566 | | |
2576 | | - | |
| 2567 | + | |
2577 | 2568 | | |
2578 | 2569 | | |
2579 | 2570 | | |
2580 | 2571 | | |
2581 | | - | |
| 2572 | + | |
2582 | 2573 | | |
2583 | 2574 | | |
2584 | 2575 | | |
2585 | 2576 | | |
2586 | | - | |
| 2577 | + | |
2587 | 2578 | | |
2588 | 2579 | | |
2589 | 2580 | | |
| |||
2603 | 2594 | | |
2604 | 2595 | | |
2605 | 2596 | | |
2606 | | - | |
| 2597 | + | |
2607 | 2598 | | |
2608 | 2599 | | |
2609 | 2600 | | |
| |||
2699 | 2690 | | |
2700 | 2691 | | |
2701 | 2692 | | |
2702 | | - | |
| 2693 | + | |
2703 | 2694 | | |
2704 | 2695 | | |
2705 | 2696 | | |
| |||
2708 | 2699 | | |
2709 | 2700 | | |
2710 | 2701 | | |
2711 | | - | |
| 2702 | + | |
2712 | 2703 | | |
2713 | 2704 | | |
2714 | 2705 | | |
| |||
2948 | 2939 | | |
2949 | 2940 | | |
2950 | 2941 | | |
| 2942 | + | |
| 2943 | + | |
2951 | 2944 | | |
2952 | | - | |
| 2945 | + | |
2953 | 2946 | | |
2954 | 2947 | | |
2955 | 2948 | | |
| |||
Lines changed: 25 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
29 | 39 | | |
30 | 40 | | |
31 | 41 | | |
| |||
665 | 675 | | |
666 | 676 | | |
667 | 677 | | |
| 678 | + | |
668 | 679 | | |
669 | 680 | | |
670 | 681 | | |
| |||
673 | 684 | | |
674 | 685 | | |
675 | 686 | | |
676 | | - | |
| 687 | + | |
677 | 688 | | |
678 | | - | |
| 689 | + | |
679 | 690 | | |
680 | 691 | | |
681 | 692 | | |
682 | 693 | | |
683 | 694 | | |
684 | 695 | | |
685 | 696 | | |
| 697 | + | |
| 698 | + | |
686 | 699 | | |
687 | 700 | | |
688 | 701 | | |
689 | 702 | | |
690 | 703 | | |
691 | | - | |
692 | | - | |
| 704 | + | |
| 705 | + | |
693 | 706 | | |
694 | | - | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
695 | 711 | | |
696 | 712 | | |
697 | 713 | | |
| |||
883 | 899 | | |
884 | 900 | | |
885 | 901 | | |
886 | | - | |
887 | | - | |
| 902 | + | |
| 903 | + | |
888 | 904 | | |
889 | 905 | | |
890 | 906 | | |
891 | 907 | | |
892 | 908 | | |
893 | | - | |
| 909 | + | |
894 | 910 | | |
895 | 911 | | |
896 | 912 | | |
897 | | - | |
898 | | - | |
899 | | - | |
900 | | - | |
901 | | - | |
902 | | - | |
903 | | - | |
904 | | - | |
| 913 | + | |
905 | 914 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | | - | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
Lines changed: 9 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
76 | | - | |
| 75 | + | |
| 76 | + | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| 88 | + | |
88 | 89 | | |
89 | | - | |
90 | 90 | | |
91 | | - | |
92 | | - | |
| 91 | + | |
| 92 | + | |
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
132 | | - | |
| 131 | + | |
| 132 | + | |
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| 144 | + | |
144 | 145 | | |
145 | 146 | | |
146 | | - | |
147 | | - | |
| 147 | + | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
47 | 48 | | |
48 | | - | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
70 | 71 | | |
71 | | - | |
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
92 | 95 | | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
| 107 | + | |
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
| 75 | + | |
76 | 76 | | |
77 | | - | |
| 77 | + | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
62 | | - | |
| 61 | + | |
| 62 | + | |
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| |||
0 commit comments