Commit ba14908
committed
[ARM] Optimise non-ABI frame pointers
With -fomit-frame-pointer, even if we set up a frame pointer for other
reasons (e.g. variable-sized or over-aligned stack allocations), we
don't need to create an ABI-compliant frame record. This means that we
can save all of the general-purpose registers in one push, instead of
splitting it to ensure that the frame pointer and link register are
adjacent on the stack, saving two instructions per function.1 parent 9596ae7 commit ba14908
File tree
14 files changed
+523
-333
lines changed- llvm
- lib/Target/ARM
- test/CodeGen/Thumb2
14 files changed
+523
-333
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2964 | 2964 | | |
2965 | 2965 | | |
2966 | 2966 | | |
| 2967 | + | |
| 2968 | + | |
| 2969 | + | |
| 2970 | + | |
| 2971 | + | |
| 2972 | + | |
| 2973 | + | |
| 2974 | + | |
| 2975 | + | |
| 2976 | + | |
| 2977 | + | |
2967 | 2978 | | |
2968 | 2979 | | |
2969 | 2980 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
492 | 492 | | |
493 | 493 | | |
494 | 494 | | |
495 | | - | |
496 | | - | |
497 | | - | |
498 | | - | |
499 | | - | |
500 | | - | |
501 | | - | |
502 | | - | |
503 | | - | |
504 | | - | |
505 | | - | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
506 | 505 | | |
507 | 506 | | |
508 | 507 | | |
| |||
515 | 514 | | |
516 | 515 | | |
517 | 516 | | |
518 | | - | |
519 | | - | |
520 | | - | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
521 | 520 | | |
522 | | - | |
| 521 | + | |
| 522 | + | |
523 | 523 | | |
524 | 524 | | |
525 | 525 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
98 | 102 | | |
99 | 103 | | |
100 | 104 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 14 | + | |
| 15 | + | |
21 | 16 | | |
22 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
23 | 20 | | |
24 | 21 | | |
25 | 22 | | |
26 | 23 | | |
27 | 24 | | |
28 | 25 | | |
29 | 26 | | |
30 | | - | |
31 | | - | |
| 27 | + | |
32 | 28 | | |
33 | 29 | | |
34 | 30 | | |
| |||
42 | 38 | | |
43 | 39 | | |
44 | 40 | | |
| 41 | + | |
45 | 42 | | |
46 | | - | |
47 | | - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
| 25 | + | |
| 26 | + | |
32 | 27 | | |
33 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
34 | 31 | | |
35 | 32 | | |
36 | 33 | | |
37 | 34 | | |
38 | 35 | | |
39 | 36 | | |
40 | 37 | | |
41 | | - | |
42 | | - | |
| 38 | + | |
43 | 39 | | |
44 | 40 | | |
45 | 41 | | |
| |||
56 | 52 | | |
57 | 53 | | |
58 | 54 | | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
| 55 | + | |
| 56 | + | |
66 | 57 | | |
67 | | - | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
68 | 61 | | |
69 | 62 | | |
70 | 63 | | |
71 | | - | |
72 | | - | |
| 64 | + | |
73 | 65 | | |
74 | 66 | | |
75 | 67 | | |
| |||
87 | 79 | | |
88 | 80 | | |
89 | 81 | | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
| 82 | + | |
| 83 | + | |
97 | 84 | | |
98 | | - | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
99 | 88 | | |
100 | 89 | | |
101 | 90 | | |
102 | 91 | | |
103 | 92 | | |
104 | 93 | | |
105 | 94 | | |
106 | | - | |
107 | | - | |
| 95 | + | |
108 | 96 | | |
109 | 97 | | |
110 | 98 | | |
| |||
149 | 137 | | |
150 | 138 | | |
151 | 139 | | |
| 140 | + | |
152 | 141 | | |
153 | | - | |
154 | | - | |
155 | | - | |
| 142 | + | |
| 143 | + | |
156 | 144 | | |
157 | | - | |
158 | | - | |
159 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
160 | 149 | | |
161 | | - | |
| 150 | + | |
162 | 151 | | |
| 152 | + | |
163 | 153 | | |
164 | | - | |
165 | | - | |
166 | | - | |
| 154 | + | |
167 | 155 | | |
168 | 156 | | |
169 | | - | |
170 | | - | |
| 157 | + | |
| 158 | + | |
0 commit comments