Erik Eckstein
89bba668e2
Mangling: add a closure specialization mangling for arguments which specialize for the same closure as a previous argument
...
For example:
```
%1 = partial_apply %closure
apply %f(%1, %1) // first argument: `.closure(%1)`
// second argument: `.previousArgumentIndex(0)`
```
2025-10-06 09:47:41 +02:00
Erik Eckstein
8e86b5ce3b
Optimizer: add a preserveGenericSignature flag to FunctionPassContext.createSpecializedFunctionDeclaration
2025-09-04 08:15:46 +02:00
Erik Eckstein
45b1a21e74
Optimizer: make ModulePassContext.specialize() also available in FunctionPassContext and add two argument flags
...
add `convertIndirectToDirect` and `isMandatory`
2025-09-04 08:15:45 +02:00
Erik Eckstein
1a4bd76f95
Mangling: add specialization mangling for more complex constant propagated function arguments
...
So far, constant propagated arguments could only be builtin literals.
Now we support arbitrary structs (with constant arguments), e.g. `Int`.
This requires a small addition in the mangling scheme for function specializations.
Also, the de-mangling tree now looks a bit different to support a "tree" of structs and literals.
2025-09-04 08:15:44 +02:00
Erik Eckstein
85381a580e
Optimizer: move notifyNewFunction from Context to FunctionPassContext
2025-09-04 08:15:44 +02:00
Jakub Florek
3514b2b9df
Bridge array semantics call and loop tree
2025-08-28 21:00:09 +01:00
Jakub Florek
e3140e0ae0
Add new generalized cloner.
2025-08-28 20:57:57 +01:00
Erik Eckstein
3bbba99647
SwiftCompilerSources: split the Optimizer/Context.swift file
2025-07-28 14:19:11 +02:00