Skip to content

Merge rebranch and get next building #74371

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

Closed
wants to merge 49 commits into from

Conversation

bnbarham
Copy link
Contributor

Merges all the rebranch changes + extra on top for the new changes since rebranch branched.

bnbarham added 30 commits June 12, 2024 15:44
`OptTable` was a source of consistent churn due to new arguments to the
`OPTION` macro. LLVM 3f092f37b7362447cbb13f5502dae4bdd5762afd extracted
the handling of the common option parts (eg. an ID and an info) out into
separate macros to reduce this - use those here (since unsurprisingly,
more arguments were added).
LLVM is gearing up to move to `std::endianness` and as part of that has
moved `llvm::support::endianness` to `llvm::endianness`
(bbdbcd83e6702f314d147a680247058a899ba261). Rename our uses.
A bunch of enums were moved to enum classes and slightly renamed. Fix up
their references.
`ThreadPool` was split up in LLVM
6594f428de91e333c1cbea4f55e79b18d31024c4.
`erase_value` is now deprecated.
Ananas/CloudABI/Contiki/Minix have all been removed from LLVM (in
various commits).

Also adds minimal (ie. necessary for compiling) support for the new
triples.
`CommandSetVector::takeVector` returns a `SmallVector` now.
The varargs method was removed in
af74f06322410e867294ea3587e5884342564e5c (claimed NFC) and the
`AddAllArgs` taking an `ArrayRef` was renamed to `addAllArgs` in
4eecfda50a4e7a05f448a59885d2572d0ea2f4a1. But the other `AddAllArgs` was
left as is.
Two new unhandled types: `PackIndexingType` and `CountAttributedType`.
LLVM 9c89b29555a7ccfc3942340f558c3bbea8d10532 changed `mangleTypeName`
to instead mangle the canonical type name and thus also changed the
method name.
Presumably this was previously transitively included, who knows from
where.
The constructor takes a new arg which `Create` now handles. Use it
instead.
Removed in LLVM 3a3b84b180278207731451dfac24f47d02b50e84.
142f270c279f2576e4618fc0d1121181c7531fdf fixed a memory leak involving
`APSInt`. It is now returned by value in `getInitVal`.
Renamed in LLVM e90e43fb9cd1d305f7196cd526aa503374e0f616.
Moved from `Sema` to `Token` in LLVM
a8279a8bc541b6027087dd497daa63b6602b7f4b.
…nAttr`

Renamed in our LLVM fork 628ee3b842b1fcc93afdebc646220e8ae6302ed6.
Add corresponding `readTypeCoupledDeclRefInfo` and `writeTypeCoupledDeclRefInfo`.
This was refactored in LLVM 90893a3b3f71524947cb041b2a25d0a02a8956d7,
with `InstrProfiling` becoming implementation details.
LLVM did a bunch of opaque pointer cleanup. Migrate IRGen off the
removed APIs.
Typed pointers are slowly being removed. There's a lot more cleanup to
do here, since really all `IRGenModule::.*PtrTy` should just be `PtrTy`,
but this at least gets us compiling for now.
The various `DIBuilder` inserts now return a `DbgInsertPtr`, update
`DbgIntrinsicEmitter` to as well.
Added in 9434c083475e42f47383f3067fe2a155db5c6a30, seems to be HLSL
specific.
There was a type overload added to these in LLVM
25bc999d1fb2efccc3ece398550af738aea7d310.
These were consolidated in LLVM in 64da0be1fc06ee2199bd27c980736986e0eccd9d.
This would be done automatically if the module was passed into
`Function::Create`, but we're quite specific about its insert location,
so just set it manually instead.
… list

Originally added in LLVM in 088d272e83259a5d8e577a3d2e62012c42a9f9db
behind a flag, but then the flag was removed in
92eaf036bf22ecc276146cd073208e6a867af8d4.
bnbarham and others added 19 commits June 12, 2024 16:08
a3eeef82da8be7f2cfa6dc7bed0fe4c11d585180 modified FileCheck such that
`{{{{}}` now has to be `{{\{\{}}`.
…Info handlers

CountAttributedType and TypeCoupledDeclRefInfo are new Clang type
and type metadata created for types with the 'counted_by' attribute
that shouldn't be accessible from Swift right now. Hence, marking
them unreachable.
Clang fixed a bug that was masking the fact that these macros aren't
always defined in cases we care about.  Just define our own version of
them for these tests.

rdar://127427660
rdar://128431000

Made the matcher more robust for potential future added modifiers.
…Loc`

This was changed in upstream LLVM 142c3f394e1b34dcefcaf0887a6fd4711b78eeb3.
`getSelector` now takes a `const clang::IdentifierInfo *` `ArrayRef`.
Sprinkle a bunch of `const`s in.
`Sema` was split up in LLVM upstream 31a203fa8af47a8b2e8e357857b114cf90638b2eq.
Use `FeatureName` rather than `first`.
There were a number of upstream LLVM changes to `DeclID` in order to
separate "local" and "global" IDs:
llvm/llvm-project@07b1177
llvm/llvm-project@b8e3b2a
llvm/llvm-project@b467c6b
llvm/llvm-project#89873
llvm/llvm-project@d86cc73

This likely needs further cleaning up to not use `DeclID` at all.
@bnbarham
Copy link
Contributor Author

swiftlang/llvm-project#8888

@swift-ci please test

2 similar comments
@bnbarham
Copy link
Contributor Author

swiftlang/llvm-project#8888

@swift-ci please test

@bnbarham
Copy link
Contributor Author

swiftlang/llvm-project#8888

@swift-ci please test

@bnbarham
Copy link
Contributor Author

Cherry-picked these over to rebranch (#74851)

@bnbarham bnbarham closed this Jun 30, 2024
@bnbarham bnbarham deleted the now-do-next branch June 30, 2024 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants