Commit Graph

8 Commits

Author SHA1 Message Date
Erik Eckstein
38d1bc9ad4 DeadFunctionElimination: consider globals which are referenced by global_value instructions in static initializers 2024-05-16 21:34:36 +02:00
Erik Eckstein
bbcc9f5943 DeadFunctionElimination: keep global variables alive which are referenced from another global
Fixes a compiler crash in case a private global is only reference from another global variable, for example:

```
private var g1 = 27
let g2 = UnsafePointer(&g1)
```

rdar://117189962
2023-10-19 20:29:30 +02:00
Erik Eckstein
f381e422ca DeadFunctionElimination: an alloc_global instruction keeps the referenced global alive
Fixes a crash caused by a deleted global variable which is still referenced by an `alloc_global` instruction.

rdar://109093730
2023-05-09 16:24:21 +02:00
Erik Eckstein
ee8cdac501 DeadFunctionElimination: Also eliminate dead global variables.
It makes sense to to this in a single pass, because there might be dead cycles for globals and functions, e.g. if a global references a function in its static initializer and the function references that global.

Another improvement: eliminate dead global-initializers. Before we had an explicit SIL representation of statically initialized globals, we had to keep them alive.

rdar://32956923
2021-02-09 19:56:43 +01:00
Michael Gottesman
fd4828e40a Eliminate -assume-parsing-unqualified-ownership-sil from tests.
I am doing this separately from the actual change to eliminate the option to
make it easier to review.
2018-12-19 12:54:13 -08:00
Michael Gottesman
20dd563efb [semantic-arc] Update tests for qualified/unqualified ownership and SILGen emission of copy_value, destroy_value. 2016-10-29 20:11:09 -07:00
Dmitri Gribenko
d175b3b66d Migrate FileCheck to %FileCheck in tests 2016-08-10 23:52:02 -07:00
Andrew Trick
bd35b4789c Move test/SILOptimizer files to reflect lib/SILOptimizer. 2015-12-11 15:53:22 -08:00