diff options
author | Felipe de Azevedo Piovezan <fpiovezan@apple.com> | 2023-11-13 08:27:29 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-13 08:27:29 -0800 |
commit | 83729e6716591421e4452bc31741a485861fb229 (patch) | |
tree | 2ba80f5013a9b6272013d08ee6fce8136e912b53 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 9aefa5cb679a6f42a0d343c93a25a66b0374b3c6 (diff) | |
download | llvm-83729e6716591421e4452bc31741a485861fb229.zip llvm-83729e6716591421e4452bc31741a485861fb229.tar.gz llvm-83729e6716591421e4452bc31741a485861fb229.tar.bz2 |
[SelectionDAG] Disable FastISel for swiftasync functions (#70741)
Most (x86) swiftasync functions tend to use both SelectionDAGISel and
FastISel lowering:
* FastISel argument lowering can only handle C calling convention.
* FastISel fails mid-BB in a number of ways, including in simple `ret
void` instructions under certain circumstances.
This dance of SelectionDAG (argument) -> FastISel (some instructions) ->
SelectionDAG(remaining instructions) is lossy; in particular, Argument
information lowering is cleared after that first SelectionDAG run.
Since swiftasync functions rely heavily on proper Argument lowering for
debug information, this patch disables the use of FastISel in such
functions.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions