-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Enable usage of LLVM's opaque pointer #66077
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable usage of LLVM's opaque pointer #66077
Conversation
@swift-ci test |
We will need a newer version of Xcode, the version installed on the build has a libtool/ar binary that does not support opaque pointers in bitcode. |
@swift-ci test linux |
Just to double check, as the tests are ported, should we also remove this line? |
@felipepiovezan Yes please. |
This PR will require Xcode 14.3 to pass all tests on macOS. This is due to the usage of bitcode files containing opaque pointers and tools in Xcode prior to 14.3 did not support opaque pointers. |
@swift-ci test windows |
@swift-ci test |
@swift-ci test windows |
1 similar comment
@swift-ci test windows |
a5111db
to
b09a1d8
Compare
@swift-ci test windows |
bac8fb0
to
eebc6c8
Compare
@swift-ci test windows |
eebc6c8
to
ffc4ffe
Compare
@swift-ci test windows |
ffc4ffe
to
3727381
Compare
@swift-ci test windows |
@swift-ci test macos |
@swift-ci test linux |
@swift-ci test |
56dde2d
to
384054f
Compare
384054f
to
1d3528c
Compare
Please test with following PR: |
To be able to see how far we can get disable these two tests to see whether other things break in CI. swiftlang/swift#66077 is the PR that trys to enable opaque pointers in Swift. rdar://109831415
1d3528c
to
3507409
Compare
Please test with following PR: |
This substitution can be used to run tests under the -no-opaque-pointers option.
This is necessary until the Xcode toolchain's libLTO.dylib supports opaque pointers
Based on swiftlang#66409 With the observation that the pre-opaque world was using bitcast as an indication that the storage type and the type of the variable were different. We can recover this information from the storage type of the alloca and the storage type of the type info.
0af0b52
to
0d4dec1
Compare
@swift-ci test |
This PR enables usage of LLVM's opaque pointer type
ptr
during LLVM IR code generation (instead of usage of typed pointers e.g.i64 *
).I have added a
%use_no_opaque_pointers
substitution for tests which will expand to the clang frontend flag (-Xcc -Xclang -Xcc -no-opaque-pointers
) which disables opaque pointers.Example usage:
This substitution can be used to run tests under the -no-opaque-pointers option.
All LLVM IR checking tests are moved to use this option to keep them passing. An invocation without the
%FileCheck
command was added to verify that the test does not crash.This approach should facilitate incrementally moving the test to use opaque pointers.
rdar://108891584