Changes

Summary

  1. [CodeGen] Call ConvertTypeForMem instead of ConvertType (details)
  2. [scudo][standalone] Compact pointers for Caches/Batches (details)
  3. [clang,NFC] Fix typos in file headers (details)
  4. Rewrite MSVC toolchain discovery with VFS (details)
  5. [OpenMP] libomp: fix ittnotify stack stitching for teams construct (details)
  6. [NFC] Switch to auto marshalling infrastructure for `-fsanitize-address-destructor-kind=` flag. (details)
  7. [lldb/Core] Change large function threshold variable into a setting. (details)
  8. [OpenMP] libomp minor cleanup (details)
  9. [PM] Show the pass argument in pre/post-pass IR dumps (details)
  10. [libcxx] [test] Use string().c_str() to convert a std::filesystem::path to a const char* (details)
  11. [libcxx] [test] Ifdef out uses of create_fifo on windows (details)
  12. [libcxx] [cmake] Add asm to the runtimes build languages (details)
  13. [libcxx] [test] Add a MinGW target (details)
  14. [libcxx] Use the allocating form of getcwd() on Glibc and Apple platforms (details)
  15. Fix constructor declarations that are invalid in C++20 onwards. (details)
Commit ec4408ad692b20a01cca8b5d86f359f6f16bae87 by Akira
[CodeGen] Call ConvertTypeForMem instead of ConvertType

This fixes a crash that occurs when the type passed to the method is
`_Bool`.

rdar://74493389
The file was modifiedclang/test/CodeGenObjC/strong-in-c-struct.m
The file was modifiedclang/lib/CodeGen/CGNonTrivialStruct.cpp
Commit 2c56776a319edf33505ca6c7f9be59657cdaf52b by kostyak
[scudo][standalone] Compact pointers for Caches/Batches

This CL introduces configuration options to allow pointers to be
compacted in the thread-specific caches and transfer batches. This
offers the possibility to have them use 32-bit of space instead of
64-bit for the 64-bit Primary, thus cutting the size of the caches
and batches by nearly half (and as such the memory used in size
class 0). The cost is an additional read from the region information
in the fast path.

This is not a new idea, as it's being used in the sanitizer_common
64-bit primary. The difference here is that it is configurable via
the allocator config, with the possibility of not compacting at all.

This CL enables compacting pointers in the Android and Fuchsia default
configurations.

Differential Revision: https://reviews.llvm.org/D96435
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/combined_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/release.h
The file was modifiedcompiler-rt/lib/scudo/standalone/size_class_map.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/release_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h
The file was modifiedcompiler-rt/lib/scudo/standalone/allocator_config.h
The file was modifiedcompiler-rt/lib/scudo/standalone/local_cache.h
Commit 9a887f652c2e87019d2a0dfaa2e03a447b056270 by Vitaly Buka
[clang,NFC] Fix typos in file headers
The file was modifiedclang/lib/CodeGen/VarBypassDetector.cpp
The file was modifiedclang/lib/CodeGen/VarBypassDetector.h
Commit 6d52c4819294dafb2c072011d72bb523092248a2 by aeubanks
Rewrite MSVC toolchain discovery with VFS

This fixes an issue where the toolchain discovery doesn't respect the
VFS's current working directory, specifically clangd not respecting a
relative /winsysroot.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D97437
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp
Commit 493210117785c348dcbbf7fc3615020ee81d2c9d by Andrey.Churbanov
[OpenMP] libomp: fix ittnotify stack stitching for teams construct

Stitching id could be overridden causing reference of destroyed object
when number of teams is 1. The patch separates stitching id store
location for teams and parallel nested in teams.

Differential Revision: https://reviews.llvm.org/D96562
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp
Commit 7b1d2a2891d812ffc1bb08712143c79e457acbd4 by Dan Liew
[NFC] Switch to auto marshalling infrastructure for `-fsanitize-address-destructor-kind=` flag.

This change simplifies `clang/lib/Frontend/CompilerInvocation.cpp`
because we no longer need to manually parse the flag and set codegen
options in the frontend. However, we still need to manually parse the
flag in the driver because:

* The marshalling infrastructure doesn't operate there.
* We need to do some platform specific checks in the driver
  that will likely never be supported by any kind of marshalling
  infrastructure.

rdar://71609176

Differential Revision: https://reviews.llvm.org/D97327
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/test/CodeGen/asan-destructor-kind.cpp
Commit b889ef4214bc6dc8880fdd4badc0dcd9a3197753 by medismail.bennani
[lldb/Core] Change large function threshold variable into a setting.

This patch replaces the static large function threshold variable with a
global debugger setting (`stop-disassembly-max-size`).

The default threshold is now set to 32KB (instead of 8KB) and can be modified.

rdar://74726362

Differential Revision: https://reviews.llvm.org/D97486

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
The file was modifiedlldb/source/Core/Debugger.cpp
The file was modifiedlldb/test/Shell/Commands/command-disassemble-process.yaml
The file was modifiedlldb/include/lldb/Core/Debugger.h
The file was modifiedlldb/source/Core/CoreProperties.td
The file was modifiedlldb/test/Shell/Commands/command-disassemble.s
The file was modifiedlldb/source/Commands/CommandObjectDisassemble.cpp
Commit 1df6e58e55a33991054f4041d87200bf1b217197 by Andrey.Churbanov
[OpenMP] libomp minor cleanup

Cleanup changes:
- check value read from file;
- remove dead code;
- make unsigned variable to read hexadecimal number to;
- add debug assertion to check ref count.

Differential Revision: https://reviews.llvm.org/D96893
The file was modifiedopenmp/runtime/src/kmp_taskdeps.h
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp
The file was modifiedopenmp/runtime/src/kmp_affinity.cpp
Commit 3573a90b8aec082b8d7a1e2fc35f7103a0df7cb6 by nguillemot
[PM] Show the pass argument in pre/post-pass IR dumps

This patch adds each pass' pass argument in the header for IR dumps.
For example:

Before:

```
    *** IR Dump Before InstructionSelect ***
```

After:

```
    *** IR Dump Before InstructionSelect (instruction-select) ***
```

The goal is to make it easier to know what argument to pass to
command line options like `debug-only` or `run-pass` to further
investigate a given pass.
The file was modifiedllvm/test/CodeGen/SystemZ/frame-26.mir
The file was modifiedllvm/lib/IR/LegacyPassManager.cpp
The file was modifiedllvm/test/Transforms/Inline/null-function.ll
The file was modifiedclang/test/Misc/pr32207.c
Commit f15377084c3094ad47eca8738f15d397f558df7b by martin
[libcxx] [test] Use string().c_str() to convert a std::filesystem::path to a const char*

On Windows, path::value_type is wchar_t, so one can't pass the return
value of path::c_str() directly to std::remove().

This matches what was done for tests under std/input.output/filesystems
in 81db3c31aafec72f1cfec2a9da4381ece7f97a29 and
3784bdf2176f38cc30134fab776efb43506c0c54.

Differential Revision: https://reviews.llvm.org/D97458
The file was modifiedlibcxx/test/std/input.output/file.streams/fstreams/filebuf.members/open_path.pass.cpp
The file was modifiedlibcxx/test/std/input.output/file.streams/fstreams/ofstream.members/open_path.pass.cpp
The file was modifiedlibcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
The file was modifiedlibcxx/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
The file was modifiedlibcxx/test/std/input.output/file.streams/fstreams/fstream.members/open_path.pass.cpp
Commit 3be7968c36c313b0de1baca0a87be2b98cb7f7c1 by martin
[libcxx] [test] Ifdef out uses of create_fifo on windows

Restructure code in directory_entry.obs/file_type_obs.pass.cpp
and directory_entry.obs/hard_link_count.pass.cpp to reduce the
amount of ifdeffery needed.

In file_type_obs.pass.cpp, we can't inline the calls to
env.create_* into the lambda calls (e.g. "test_path(env.create_*())"),
because the lambda removes the referenced file, and the hardlink
must be created while the earlier test file exists.

In hard_link_count.pass.cpp, move restoration of the original
directory permissions to the end of the lambda, so that new
directory entries can be created after the lambda has run once.

Differential Revision: https://reviews.llvm.org/D89948
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
Commit 72fe14d40a527465deb76c9b2241297635fd45bf by martin
[libcxx] [cmake] Add asm to the runtimes build languages

This fixes building libunwind with a new enough version of cmake.

(libunwind treats its asm sources as C depending on the cmake version
on some platforms; this fixes builds when such workarounds aren't used,
when cmake treats asm correctly on its own.)

Differential Revision: https://reviews.llvm.org/D97399
The file was modifiedlibcxx/utils/ci/runtimes/CMakeLists.txt
Commit fb2e4f5401d3ec2507ac3b2c4f86d4bfa07c01ec by martin
[libcxx] [test] Add a MinGW target

This can't easily be autodetected (unless LIBCXX_TARGET_TRIPLE is
specified, or unless we query what the compiler's default target is,
which only is supported by clang), but can be chosen manually via
LIBCXX_TARGET_INFO.

This chooses mingw style lib naming, and uses -nostdlibc++ instead
of -nodefaultlib -nostdlib (as the latter requires specifying a lot of
details manually - this is done in the cmake config though).

Differential Revision: https://reviews.llvm.org/D97294
The file was modifiedlibcxx/utils/libcxx/test/target_info.py
The file was modifiedlibcxx/utils/libcxx/test/config.py
Commit c7d46f221e829411b0f0dec41409ed626646cdd2 by martin
[libcxx] Use the allocating form of getcwd() on Glibc and Apple platforms

This avoids having to query pathconf for a max size for
preallocating a buffer for the return value.

This is an extension to the POSIX getcwd() spec.

Differential Revision: https://reviews.llvm.org/D97460
The file was modifiedlibcxx/src/filesystem/operations.cpp
Commit 95d0d8e9e9d10da3cfa503fbba405e740aea3cc1 by richard
Fix constructor declarations that are invalid in C++20 onwards.

Under C++ CWG DR 2237, the constructor for a class template C must be
written as 'C(...)' not as 'C<T>(...)'. This fixes a build failure with
GCC in C++20 mode.

In passing, remove some other redundant '<T>' qualification from the
affected classes.
The file was modifiedllvm/include/llvm/ADT/STLExtras.h