Arnold Schwaighofer
787c996394
LargeTypesReg2Mem: Add a new heuristic that trys harder to keep large
...
values on the stack
This heuristic can be enabled by passing -Xfrontend
-enable-aggressive-reg2mem.
rdar://123916109
2024-10-31 13:22:06 -07:00
Kuba Mracek
4b164798ab
Avoid return-less switch expression (doesn't compile on old Swift compilers)
2024-09-17 09:35:06 -07:00
Kuba Mracek
50fa83b237
Fix flipped 0/1 values in SimplifyBuiltin.optimizeAssertConfig
2024-08-22 14:46:02 -07:00
Erik Eckstein
773d6b179d
SwiftCompilerSources: remove the redundant BridgedPassContext.Feature enum
...
And replace it with the existing BridgedFeature
2023-12-13 13:28:17 +01:00
Erik Eckstein
ca20ebc158
SwiftCompilerSources: add bridging to hasFeature
2023-12-09 18:49:57 +01:00
zoecarver
52cea4250e
[embedded] 🚀 add Embedded expiremental feature.
...
Optimize all functions in embedded mode. Diagnose any uses of existentials or witness tables.
2023-09-06 10:48:17 -07:00
Erik Eckstein
b9169064c6
Swift SIL: add some APIs
...
* `Options.assertConfiguration`
* `Argument.isIndirectResult`
* in `Function`: `selfArgument`, `isTransparent`, `performanceConstraints` and `inlineStrategy`
* `BuiltinInst.substitutionMap`
* `SubstitutionMap.replacementTypes`
* `Type.canBeClass`
2023-05-11 08:11:44 +02:00
Erik Eckstein
010efc1ca6
Swift Bridging: use C++ instead of C bridging for the optimizer
2023-03-21 15:33:09 +01:00
Erik Eckstein
3645becada
PassManager: infrastructure to disable or enable a specific instruction simplification
...
* for testing: add the option `-simplify-instruction=<instruction-name>` to only run simplification passes for that instruction type
* on the swift side, add `Options.enableSimplification`
2023-01-16 19:00:09 +01:00
Erik Eckstein
ef302ce4ac
SILOptimizer: enable stack protection by default
...
The pass to decide which functions should get stack protection was added in https://github.com/apple/swift/pull/60933 , but was disabled by default.
This PR enables stack protection by default, but not the possibility to move arguments into temporaries - to keep the risk low.
Moving to temporaries can be enabled with the new frontend option `-enable-move-inout-stack-protector`.
rdar://93677524
2022-11-11 17:14:08 +01:00
Erik Eckstein
3e1ff0a5b7
IRGen: move the EnableStackProtector option from IRGenOptions to SILOptions.
...
... because we need it in the SIL pass pipeline, too.
Also, add Swift bridging for that option.
2022-09-08 08:42:24 +02:00
Erik Eckstein
9795f4b944
Swift Optimizer: add bridging for command line options
2022-09-02 07:11:49 +02:00