SuccessChanges

Summary

  1. [ORC-RT] Add equality/inequality comparison to string_view. (details)
  2. [ORC-RT] Rename C-API functions to use __orc_rt_ prefix (instead of OrcRT). (details)
  3. [ORC-RT] Add WrapperFunctionResult, Simple Packed Serialization (SPS) system. (details)
  4. [flang][openacc] Enforce restriction on attach and detach variables (details)
  5. [clang] RecursiveASTVisitor visits ObjCPropertyRefExpr's class receiver (details)
  6. [OpenMP] Add L2-Tile equivalence for KNL (details)
  7. [SLPVectorizer] Ignore unreachable blocks (details)
  8. [AMDGPU][NFC] Remove author's name from codebase (details)
  9. [lld/mac] Don't write mtimes to N_OSO entries if ZERO_AR_DATE is set. (details)
  10. [lld/mac] Don't load DylibFiles from the DylibFile constructor (details)
  11. [libcxx] Implement view.interface. (details)
  12. [gn build] Port 5671ff20d92b (details)
  13. [clang] Fix ICE with typeid & polymorphic class (pr50497) (details)
  14. [SystemZ][z/OS] Stricter condition for HLASM class instantiation (details)
  15. [InstCombine] add tests for cast folding; NFC (details)
  16. WindowsSupport.h: do not depend on private config header (details)
  17. [lld/mac] Implement removal of unused dylibs (details)
  18. [NFC][OpaquePtr] Explicitly pass GEP source type to IRBuilder in more places (details)
  19. Convert TableGen assert to error (details)
  20. [globalisel][legalizer] Separate the deprecated LegalizerInfo from the current one (details)
  21. [mlir] Updated depthwise conv to support kernel dilation (details)
  22. [gn build] Port aaac268285ff (details)
  23. [libc++] Fix the std_include.sh.cpp test that has been failing since c9385297ce (details)
  24. [lld/mac] fix test failure after 24979e111 (details)
  25. fixup: Missing operator in [globalisel][legalizer] Separate the deprecated LegalizerInfo from the current one (details)
  26. Fix a Clang diagnostic to start with a lowercase letter; NFC (details)
  27. [libcxx][ranges] Add `default_sentinel` and `default_sentinel_t`. (details)
  28. [gn build] Port 065cf3f9d703 (details)
  29. [lld][WebAssemlby] Fix for string merging of -dwarf-5 sections (details)
Commit d791f0c2199e47e63e1dd95da2e78518d574bad2 by Lang Hames
[ORC-RT] Add equality/inequality comparison to string_view.
The file was modifiedcompiler-rt/lib/orc/adt.h
Commit 28c3e9c0d150591105511d4aa8064e9366da0df7 by Lang Hames
[ORC-RT] Rename C-API functions to use __orc_rt_ prefix (instead of OrcRT).

This matches the C++ namespace name, and is consistent with other C linkage
functions (e.g. __orc_rt_jit_dispatch).
The file was modifiedcompiler-rt/lib/orc/unittests/c_api_test.cpp
The file was modifiedcompiler-rt/lib/orc/c_api.h
The file was modifiedcompiler-rt/lib/orc/common.h
Commit da5924132771576bcb0d46aeb63777b42b898265 by Lang Hames
[ORC-RT] Add WrapperFunctionResult, Simple Packed Serialization (SPS) system.

WrapperFunctionResult is a C++ wrapper for __orc_rt_CWrapperFunctionResult
that automatically manages the underlying struct.

The Simple Packed Serialization (SPS) utilities support a simple serialization
scheme for wrapper function argument and result buffers:

Primitive typess (bool, char, int8_t, and uint8_t, int16_t, uint16_t, int32_t,
uint32_t, int64_t, uint64_t) are serialized in little-endian form.

SPSTuples are serialized by serializing each of the tuple members in order
without padding.

SPSSequences are serialized by serializing a sequence length (as a uint64_t)
followed by each of the elements of the sequence in order without padding.

Serialization/deserialization always involves a pair of SPS type tag (a tag
representing the serialized format to use, e.g. uint32_t, or
SPSTuple<bool, SPSString>) and a concrete type to be serialized from or
deserialized to (uint32_t, std::pair<bool, std::string>). Serialization for new
types can be implemented by specializing the SPSSerializationTraits type.
The file was modifiedcompiler-rt/lib/orc/CMakeLists.txt
The file was addedcompiler-rt/lib/orc/unittests/wrapper_function_utils_test.cpp
The file was addedcompiler-rt/lib/orc/wrapper_function_utils.h
The file was modifiedcompiler-rt/lib/orc/unittests/CMakeLists.txt
Commit 6b8bf9494c4601da44f432b13c644615a91edce5 by clementval
[flang][openacc] Enforce restriction on attach and detach variables

Each var argument to an attach or detach clause must be a
Fortran variable or array with the pointer or allocatable attribute.
This patch enforce this restruction.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D103279
The file was modifiedflang/test/Semantics/OpenACC/acc-parallel.f90
The file was modifiedflang/test/Semantics/OpenACC/acc-serial.f90
The file was modifiedflang/lib/Semantics/resolve-directives.cpp
The file was modifiedflang/test/Semantics/OpenACC/acc-data.f90
The file was modifiedflang/test/Semantics/OpenACC/acc-kernels.f90
The file was modifiedflang/test/Semantics/OpenACC/acc-kernels-loop.f90
Commit 13a8aa3ee15a67048deeb193fe8b86005fdf9d10 by davg
[clang] RecursiveASTVisitor visits ObjCPropertyRefExpr's class receiver

We now make up a TypeLoc for the class receiver to simplify visiting,
notably for indexing, availability, and clangd.

Differential Revision: https://reviews.llvm.org/D101645
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
The file was modifiedclang/test/Index/Core/index-source.m
The file was modifiedclang/lib/Sema/SemaAvailability.cpp
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
The file was modifiedclang/lib/Index/IndexBody.cpp
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
Commit 2020c981faa0e8807ad6b091495930664d4db175 by jonathan.l.peyton
[OpenMP] Add L2-Tile equivalence for KNL

When on KNL and L2 or Tile layer is detected, manually add
the corresponding layer which is equivalent.

Differential Revision: https://reviews.llvm.org/D102865
The file was modifiedopenmp/runtime/src/kmp_affinity.cpp
Commit f126e8ec2873ceedde53d2ccee1a66a83620e9a6 by harald
[SLPVectorizer] Ignore unreachable blocks

As the existing test unreachable.ll shows, we should be doing more
work to avoid entering unreachable blocks: we should not stop
vectorization just because a PHI incoming value from an unreachable
block cannot be vectorized. We know that particular value will never
be used so we can just replace it with poison.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/unreachable.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit 3c874ce4271cf24b431443252f1e6c52a3ccb65c by Madhur.Amilkanthwar
[AMDGPU][NFC] Remove author's name from codebase

This must have made to code by accident.

Differential Revision: https://reviews.llvm.org/D103484
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
Commit 0b39f055d8879eca308d5c41641f2f47ff0a3925 by thakis
[lld/mac] Don't write mtimes to N_OSO entries if ZERO_AR_DATE is set.

This is important for build determinism. This matches ld64.

Differential Revision: https://reviews.llvm.org/D103446
The file was modifiedlld/MachO/Config.h
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/DriverUtils.cpp
The file was modifiedlld/test/MachO/stabs.s
Commit 24979e1113adf077572fcc1022ee4e3a534a8a4d by thakis
[lld/mac] Don't load DylibFiles from the DylibFile constructor

loadDylib() keeps a name->DylibFile cache, but it only writes
to the cache once the DylibFile constructor has completed.
So dylib loads done recursively from the DylibFile constructor
wouldn't use the cache.

Now, we load additional dylibs after writing to the cache,
which means the cache now gets used for dylibs loaded because
they're referenced from other dylibs.

Related to PR49514 and PR50101, but no dramatic behavior change in itself.
(Technically we no longer crash when a tbd file reexports itself,
but that doesn't happen in practice. We now accept it silently instead
of crashing; ld64 has a diag for the reexport cycle.)

Differential Revision: https://reviews.llvm.org/D103423
The file was modifiedlld/MachO/DriverUtils.cpp
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/InputFiles.cpp
Commit 5671ff20d92b17d9b95cb5c9e08cc109fe77844e by zoecarver
[libcxx] Implement view.interface.

This will unblock work on ranges::view. Based on D101396.

Refs http://eel.is/c++draft/view.interface.

Differential Revision: https://reviews.llvm.org/D101737
The file was modifiedlibcxx/docs/OneRangesProposalStatus.csv
The file was addedlibcxx/test/std/ranges/range.utility/view.interface/view.interface.pass.cpp
The file was modifiedlibcxx/include/ranges
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/include/__ranges/view_interface.h
Commit e9f82e9e1b6851ff66010a0e500346379b1ef572 by llvmgnsyncbot
[gn build] Port 5671ff20d92b
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit c138f3ce5c70ff87a35d77e11f77a77d9d539b49 by nathan
[clang] Fix ICE with typeid & polymorphic class (pr50497)

This addresses pr50497. The argument of a typeid expression is
unevaluated, *except* when it's a polymorphic type. We handle this by
parsing as unevaluated and then transforming to evaluated if we
discover it should have been an evaluated context.

We do the same in TreeTransform<Derived>::TransformCXXTypeidExpr,
entering unevaluated context before transforming and rebuilding the
typeid. But that's incorrect and can lead us to converting to
evaluated context twice -- and hitting an assert.

During normal template instantiation we're always cloning the
expression, but during generic lambda processing we do not necessarily
AlwaysRebuild, and end up with TransformDeclRefExpr unconditionally
calling MarkDeclRefReferenced around line 10226. That triggers the
assert.

// Mark it referenced in the new context regardless.
// FIXME: this is a bit instantiation-specific.
SemaRef.MarkDeclRefReferenced(E);

This patch makes 2 changes.

a) TreeTransform<Derived>::TransformCXXTypeidExpr only enters
unevaluated context if the typeid's operand is not a polymorphic
glvalue. If it is, it keeps the same evaluation context.

b) Sema::BuildCXXTypeId is altered to only transform to evaluated, if
the current context is unevaluated.

Differential Revision: https://reviews.llvm.org/D103258
The file was addedclang/test/SemaCXX/pr50497-crash-typeid.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/lib/Sema/TreeTransform.h
Commit e52007cac4faf07ad2776136015fcbfc076ddd84 by anirudh_prasad
[SystemZ][z/OS] Stricter condition for HLASM class instantiation

- A lot of lit tests simply specify the arch minus the triple. On z/OS, this could result in a scenario of some-other-triple-unknown-ibm-zos. This points to an incorrect triple + arch combo.
- To prevent this, isOSzOS change is switched in favour of isOSBinFormatGOFF.
- This is because, the GOFF format is set only if the triple is systemz and if the operating system is GOFF. And currently, there are no other architectures/os's using the GOFF file format.
- An argument could be made that the problematic tests be fixed to explicitly specify the arch-vendor-triple string, but there's a large number of these tests, and adding this stricter scope ensures that we aren't instantiating the incorrect instance of the AsmParser for other platforms when run on z/OS.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D103343
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp
Commit 337854270023c95401b7718f586b9759891caa06 by spatel
[InstCombine] add tests for cast folding; NFC

https://llvm.org/PR49543
The file was modifiedllvm/test/Transforms/InstCombine/sext-of-trunc-nsw.ll
Commit 936ca1e21a91843c76b20c6c857aaddd5fa3d42a by martin
WindowsSupport.h: do not depend on private config header

WindowsSupport.h is a public header, however if it gets included, will cause a compile error indicating that llvm/Config/config.h cannot be found, because config.h is a private header. However there is no actual dependency on the private things in this header, so it can be changed to the public config header.

Reviewed By: amccarth

Differential Revision: https://reviews.llvm.org/D103370
The file was modifiedllvm/include/llvm/Support/Windows/WindowsSupport.h
Commit 2c1903412b0a73ed65e9feb272af9c07f32970d0 by thakis
[lld/mac] Implement removal of unused dylibs

This omits load commands for unreferenced dylibs if:
- the dylib was loaded implicitly,
- it is marked MH_DEAD_STRIPPABLE_DYLIB
- or -dead_strip_dylibs is passed

This matches ld64.

Currently, the "is dylib referenced" state is computed before dead code
stripping and is not updated after dead code stripping. This too matches ld64.
We should do better here.

With this, clang-format linked with lld (like with ld64) no longer has
libobjc.A.dylib in `otool -L` output. (It was implicitly loaded as a reexport
of CoreFoundation.framework, but it's not needed.)

Differential Revision: https://reviews.llvm.org/D103430
The file was addedlld/test/MachO/dead-strip-dylibs.s
The file was modifiedlld/MachO/Symbols.h
The file was modifiedlld/test/MachO/implicit-dylibs.s
The file was modifiedlld/test/MachO/lc-linker-option.ll
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/Config.h
The file was modifiedlld/MachO/Options.td
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/SymbolTable.cpp
The file was modifiedlld/MachO/SyntheticSections.cpp
Commit 2983053d23d30b408122abf772bd50638f4ded2c by aeubanks
[NFC][OpaquePtr] Explicitly pass GEP source type to IRBuilder in more places
The file was modifiedllvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was modifiedllvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
Commit bbd399954b8913293176ad61db74c4d3675ad0bc by stephen.neuendorffer
Convert TableGen assert to error

This gives a nice message about the location of errors in a large
tablegen file, which is much more useful for users

Differential Revision: https://reviews.llvm.org/D102740
The file was modifiedllvm/utils/TableGen/CodeGenDAGPatterns.cpp
Commit aaac268285ff596b4cbffbb1ce8dbe516811eda8 by daniel_l_sanders
[globalisel][legalizer] Separate the deprecated LegalizerInfo from the current one

It's still in use in a few places so we can't delete it yet but there's not
many at this point.

Differential Revision: https://reviews.llvm.org/D103352
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
The file was addedllvm/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86LegalizerInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVLegalizerInfo.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CMakeLists.txt
The file was modifiedllvm/lib/Target/PowerPC/GISel/PPCLegalizerInfo.cpp
The file was addedllvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMLegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/GISelMITest.h
Commit 422c7036d5fae8e9a6a30ebe4074a0cf08da1208 by rob.suderman
[mlir] Updated depthwise conv to support kernel dilation

Depthwise convolution should support kernel dilation and non-dilation should
not be a special case. Updated op definition to include a dilation attribute.

This also adds a tosa.depthwise_conv2d lowering to linalg to support the new
linalg behavior.

Differential Revision: https://reviews.llvm.org/D103219
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOpsSpec.tc
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
The file was modifiedmlir/test/Dialect/Linalg/named-ops.mlir
The file was modifiedmlir/test/Dialect/Linalg/generalize-named-ops.mlir
Commit bebb802a2527e5c254ed8f80eed677995fbe09f2 by llvmgnsyncbot
[gn build] Port aaac268285ff
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/GlobalISel/BUILD.gn
Commit ba95fa03ce267fbd59113ae20a4ac251e251be3f by Louis Dionne
[libc++] Fix the std_include.sh.cpp test that has been failing since c9385297ce

The compiler used on Apple bots doesn't know about -std=c++20 yet, so
we can't use that just yet.

Differential Revision: https://reviews.llvm.org/D103475
The file was modifiedlibcxx/test/libcxx/modules/stds_include.sh.cpp
Commit 8d80139cccf449a3227e0614098cf713ad1b0e73 by thakis
[lld/mac] fix test failure after 24979e111

If there is an error reading the dylib, we shouldn't try
to load its reexports.

Caught e.g. by https://lab.llvm.org/buildbot/#/builders/36/builds/8946
The file was modifiedlld/MachO/InputFiles.h
The file was modifiedlld/MachO/DriverUtils.cpp
Commit 937266205026052c413acee73da7be5e254cc2c9 by daniel_l_sanders
fixup: Missing operator in [globalisel][legalizer] Separate the deprecated LegalizerInfo from the current one

My local compiler was fine with it but the bots complain about ambiguous types.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h
Commit d7f846fc6be14539fb0f5223eb08cb2235759897 by aaron
Fix a Clang diagnostic to start with a lowercase letter; NFC
The file was modifiedclang/test/Sema/ms-inline-asm-invalid-arch.c
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
Commit 065cf3f9d70374d0a02f1e15be32eaaa59f01466 by zoecarver
[libcxx][ranges] Add `default_sentinel` and `default_sentinel_t`.

Refs https://eel.is/c++draft/default.sentinel and https://eel.is/c++draft/iterator.synopsis

Differential Revision: https://reviews.llvm.org/D103487
The file was addedlibcxx/test/std/iterators/predef.iterators/default.sentinel/default.sentinel.pass.cpp
The file was addedlibcxx/include/__iterator/default_sentinel.h
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/docs/OneRangesProposalStatus.csv
The file was modifiedlibcxx/include/CMakeLists.txt
Commit 8ae7fe24c1837590fc623133f9dbc9ff683f9e85 by llvmgnsyncbot
[gn build] Port 065cf3f9d703
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit c1a59fa550818c6d3c229b43918b5045d7df83e6 by sbc
[lld][WebAssemlby] Fix for string merging of -dwarf-5 sections

We were mistakenly treating `.debug_str_offsets` as a string mergable
section when it is not (it contains integers not strings).  This is an
indication that we really should find a way to store flags for custom
sections.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=48828
Fixes: https://bugs.chromium.org/p/chromium/issues/detail?id=1172217

Differential Revision: https://reviews.llvm.org/D103486
The file was modifiedlld/test/wasm/merge-string-debug.s
The file was modifiedlld/wasm/InputFiles.cpp