Erik Eckstein
799bd0a5f5
Swift Optimizer: some reformatting in the optimization passes
...
Use tail closures for all optimization passes.
NFC.
2023-08-04 10:33:52 +02:00
Erik Eckstein
a4225a9088
Swift SIL: add a few SIL instructions and instruction APIs
2023-05-22 15:34:26 +02:00
Erik Eckstein
cc68bd98c9
Swift Optimizer: rework pass context types and instruction passes
...
* split the `PassContext` into multiple protocols and structs: `Context`, `MutatingContext`, `FunctionPassContext` and `SimplifyContext`
* change how instruction passes work: implement the `simplify` function in conformance to `SILCombineSimplifyable`
* add a mechanism to add a callback for inserted instructions
2023-01-16 15:11:34 +01:00
Erik Eckstein
6c35258f83
Swift SIL: rename parent accessors to parentX, e.g. Instruction.parentBlock
...
It makes it easier to read
2023-01-16 15:11:34 +01:00
Erik Eckstein
4554939dc4
SwiftCompilerSources: consistently use assert instead of precondition
...
It's better to use the new assert implementation (defined in the "Basic" module) than Swift's `precondition`
2022-09-14 14:16:26 +02:00
Erik Eckstein
c2ef10661a
Swift Optimizer: move function passes which are only used for unit testing to their own TestPasses directory.
2022-08-24 17:54:46 +02:00