-
Notifications
You must be signed in to change notification settings - Fork 10.6k
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 |
2 similar comments
|
@swift-ci test |
|
@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
ptrduring LLVM IR code generation (instead of usage of typed pointers e.g.i64 *).I have added a
%use_no_opaque_pointerssubstitution 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
%FileCheckcommand was added to verify that the test does not crash.This approach should facilitate incrementally moving the test to use opaque pointers.
rdar://108891584