diff options
author | Matt Godbolt <matt@godbolt.org> | 2021-07-22 14:12:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-22 14:12:54 -0500 |
commit | d52a1318f8481ded61c1929d1e5798972f40cc02 (patch) | |
tree | 5f5b8abf7ef841f76f18ac825a410ac15c20dc05 /lib/compilers/swift.js | |
parent | 89d629f2d76b3feaed59d653d24a23ae7787f489 (diff) | |
download | compiler-explorer-d52a1318f8481ded61c1929d1e5798972f40cc02.tar.gz compiler-explorer-d52a1318f8481ded61c1929d1e5798972f40cc02.zip |
Treat data definitions in the middle of functions as "strong" (#2792)
* Treat data definitions in the middle of functions as "strong"
Things like ARM jump tables put important data inline within a function. Such
data should be treated as a "strong" reference (e.g. a root use). For example:
```
sub r3, r0, #65
cmp r3, #19
ldrls pc, [pc, r3, asl #2]
b .L7
.word .L8
.word .L7
.word .L6
.word .L7
....etc...
.L7: some things
.L8: some other things
```
Without this change, the `.L8` label would be dropped as unused. But it's implicitly used
by the sequence of `.word`s in the middle of the function.
Closes #2788
* Keep curly bracket style of existing if-else block
Co-authored-by: RabsRincon <ruben@rinconblanco.es>
Diffstat (limited to 'lib/compilers/swift.js')
0 files changed, 0 insertions, 0 deletions