SuccessChanges

Summary

  1. [PGO] Fix computation of function Hash (details)
  2. [analyzer] Improved RangeSet::Negate support of unsigned ranges (details)
  3. Re-commit "[libc++] [test] Generate static_test_env on the fly" (details)
  4. Re-commit "[cmake] Allow std::filesystem tests in CrossWinToARMLinux.cmake" (details)
  5. Make mlir::Value's bool conversion operator explicit (details)
  6. [AMDGPU][MC][GFX8+] Enabled clamp for v_add_u16, v_sub_u16 and v_subrev_u16 (details)
  7. [AIX] Add '-bcdtors:all:0:s' to linker to gather static init functions (details)
  8. [lldb/Test] Add a trace method to replace print statements. (details)
  9. Revert "[PGO] Fix computation of function Hash" (details)
  10. [gn build] Port ba92b274225 (details)
  11. [libcxx] Fix C++14 and up constexpr members in MoveOnly. (details)
  12. [X86] Teach combineTruncatedArithmetic to push truncate through subtracts where only one of the inputs is free to truncate. (details)
  13. [libc++] [LWG3201] Update status page: lerp should be marked noexcept. (details)
  14. [Transforms] Fix typos. NFC (details)
  15. [LoopUnroll] Remove dead NextBlocks argument (NFC). (details)
Commit 7c298c104bfe725d4315926a656263e8a5ac3054 by sguelton
[PGO] Fix computation of function Hash

Previous implementation was incorrectly passing an uint64_t, that got converted
to an uint8_t, to finalize the hash computation. This led to different functions
having the same hash if they only differ by the remaining statements, which is
incorrect.

Added a new test case that trivially tests that a small function change is
reflected in the hash value.

Not that as this patch fixes the hash computation, it invalidates all hashes
computed before that patch applies, which could be an issue for large build
system that pre-compute the profile data and let client download them as part of
the build process.

Differential Revision: https://reviews.llvm.org/D79961
The file was addedclang/test/Profile/c-collision.c
The file was modifiedclang/lib/CodeGen/CodeGenPGO.cpp
Commit ba92b274225fc78dc15e8dc0076f71e7a8b5d084 by dpetrov
[analyzer] Improved RangeSet::Negate support of unsigned ranges

Summary:
This fixes https://bugs.llvm.org/show_bug.cgi?id=41588
RangeSet Negate function shall handle unsigned ranges as well as signed ones.
RangeSet getRangeForMinusSymbol function shall use wider variety of ranges, not only concrete value ranges.
RangeSet Intersect functions shall not produce assertions.

Changes:
Improved safety of RangeSet::Intersect function. Added isEmpty() check to prevent an assertion.
Added support of handling unsigned ranges to RangeSet::Negate and RangeSet::getRangeForMinusSymbol.
Extended RangeSet::getRangeForMinusSymbol to return not only range sets with single value [n,n], but with wide ranges [n,m].
Added unit test for Negate function.
Added regression tests for unsigned values.

Differential Revision: https://reviews.llvm.org/D77802
The file was addedclang/unittests/StaticAnalyzer/RangeSetTest.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
The file was modifiedclang/test/Analysis/constraint_manager_negate_difference.c
The file was modifiedclang/unittests/StaticAnalyzer/CMakeLists.txt
Commit b62ce9e05d9ec95532fa131a3e47ff1d4e7ed5de by jaskiewiczs
Re-commit "[libc++] [test] Generate static_test_env on the fly"

Don't use std::filesystem APIs for CWDGuard, use POSIX functions
instead. This way the tests don't rely on the correctness of
the functionality they're testing.

Differential Revision: https://reviews.llvm.org/D78200
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/file4
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/class.directory_entry/directory_entry.obs/status.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.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.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/file2
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/bad_symlink
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/non_empty_file
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.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.exists/exists.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/empty_file
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_dir
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/class.directory_iterator/directory_iterator.members/increment.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
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/fs.op.funcs/fs.op.relative/relative.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/afile3
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/file1
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/symlink_to_dir3
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/dir3/file5
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
The file was removedlibcxx/test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_empty_file
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
Commit 3873d0b3d899bb84a5983450dd2d98006c4527e2 by jaskiewiczs
Re-commit "[cmake] Allow std::filesystem tests in CrossWinToARMLinux.cmake"

https://reviews.llvm.org/D78200 has been re-committed, so we can now
enable building std::filesystem and running tests for it.
The file was modifiedclang/cmake/caches/CrossWinToARMLinux.cmake
Commit a9b5edc5e2c4ec9d506b2c30465ee9f2dc21e5cc by benny.kra
Make mlir::Value's bool conversion operator explicit

This still allows `if (value)` while requiring an explicit cast when not
in a boolean context. This means things like `std::set<Value>` will no
longer compile.

Differential Revision: https://reviews.llvm.org/D80497
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/include/mlir/IR/Value.h
The file was modifiedmlir/include/mlir/EDSC/Builders.h
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 77aec3b4c0e63b07d98dbb1aeb693d200e769a05 by dmitry.preobrazhensky
[AMDGPU][MC][GFX8+] Enabled clamp for v_add_u16, v_sub_u16 and v_subrev_u16

See https://bugs.llvm.org/show_bug.cgi?id=45926

Reviewers: arsenm, rampitec, vpykhtin

Differential Revision: https://reviews.llvm.org/D80430
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-add.s16.mir
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_all.s
The file was modifiedllvm/test/MC/AMDGPU/vop2.s
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/vop2_vi.txt
The file was modifiedllvm/lib/Target/AMDGPU/VOP2Instructions.td
Commit 5bf2409a4e4d23018ecffe4eff39988a957e76f7 by wanyu9511
[AIX] Add '-bcdtors:all:0:s' to linker to gather static init functions

Summary: On AIX, add '-bcdtors:all:0:s' to the linker implicitly through the driver so that we can collect all static constructor and destructor functions.

Reviewers: hubert.reinterpretcast, Xiangling_L, ZarkoCA, daltenty

Reviewed By: hubert.reinterpretcast

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D80415
The file was modifiedclang/lib/Driver/ToolChains/AIX.cpp
The file was modifiedclang/test/Driver/aix-ld.c
Commit b321b429416ec51691a3c5372cb59912bded5f08 by Jonas Devlieghere
[lldb/Test] Add a trace method to replace print statements.

Many tests use (commented out) print statement for debugging the test
itself. This patch adds a new trace method to lldbtest to reuse the
existing tracing infrastructure and replace these print statements.

Differential revision: https://reviews.llvm.org/D80448
The file was modifiedlldb/test/API/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
The file was modifiedlldb/test/API/commands/target/basic/TestTargetCommand.py
The file was modifiedlldb/test/API/lang/c/register_variables/TestRegisterVariables.py
The file was modifiedlldb/test/API/python_api/function_symbol/TestDisasmAPI.py
The file was modifiedlldb/test/API/lang/objc/foundation/TestSymbolTable.py
The file was modifiedlldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py
The file was modifiedlldb/test/API/python_api/breakpoint/TestBreakpointAPI.py
The file was modifiedlldb/test/API/benchmarks/stepping/TestSteppingSpeed.py
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py
The file was modifiedlldb/test/API/python_api/frame/inlines/TestInlinedFrame.py
The file was modifiedlldb/test/API/python_api/thread/TestThreadAPI.py
The file was modifiedlldb/test/API/tools/lldb-server/TestLldbGdbServer.py
The file was modifiedlldb/test/API/lang/objc/blocks/TestObjCIvarsInBlocks.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
The file was modifiedlldb/test/API/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
The file was modifiedlldb/test/API/tools/lldb-server/TestGdbRemoteAuxvSupport.py
The file was modifiedlldb/test/API/functionalities/load_unload/TestLoadUnload.py
The file was modifiedlldb/test/API/lang/cpp/class_types/TestClassTypesDisassembly.py
The file was modifiedlldb/test/API/python_api/frame/TestFrames.py
The file was modifiedlldb/test/API/python_api/event/TestEvents.py
The file was modifiedlldb/test/API/tools/lldb-server/TestGdbRemoteRegisterState.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
The file was modifiedlldb/test/API/python_api/function_symbol/TestSymbolAPI.py
Commit 2b8d6fa0acacba4dee31ed618a5596414b2279d5 by benny.kra
Revert "[PGO] Fix computation of function Hash"

This reverts commit 7c298c104bfe725d4315926a656263e8a5ac3054.
Fails make check-clang.

Failing Tests (8):
Clang :: Profile/c-counter-overflows.c
Clang :: Profile/c-general.c
Clang :: Profile/c-unprofiled-blocks.c
Clang :: Profile/cxx-rangefor.cpp
Clang :: Profile/cxx-throws.cpp
Clang :: Profile/misexpect-switch-default.c
Clang :: Profile/misexpect-switch-nonconst.c
Clang :: Profile/misexpect-switch.c
The file was removedclang/test/Profile/c-collision.c
The file was modifiedclang/lib/CodeGen/CodeGenPGO.cpp
Commit e0aefaedb617766f4667118911fccb4a14abfb94 by llvmgnsyncbot
[gn build] Port ba92b274225
The file was modifiedllvm/utils/gn/secondary/clang/unittests/StaticAnalyzer/BUILD.gn
Commit 37ef15143a5d77a0fba0ece4c26a72cfb9e050a0 by zoecarver
[libcxx] Fix C++14 and up constexpr members in MoveOnly.

Summary: a4b8ee6 made all MoveOnly members constexpr but, some members and constructors contain expressions that are only valid in C++14 and later. This patch prefixes those methods and constructors with TEST_CONSTEXPR_CXX14.

Reviewers: ldionne, #libc!

Subscribers: dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D80482
The file was modifiedlibcxx/test/support/MoveOnly.h
Commit 51a276c759c90c844bbabf5066195aaf42fb0c6e by craig.topper
[X86] Teach combineTruncatedArithmetic to push truncate through subtracts where only one of the inputs is free to truncate.

Fix combineSubToSubus to handle the new DAG to avoid a regression.

There are still regressions in test14/test15/test16. Where it
looks like were trying to set up cases we could match to
umin+trunc+subus but the handling was never finished. The
regression here isn't unique to sub. Its a lost opportunity for
taking an AND with two truncated inputs and producing a larger
AND with a single truncate. The same thing could happen with
any other node we handle in combineTruncatedArithmetic since we
are moving the truncate up the DAG.

Differential Revision: https://reviews.llvm.org/D80483
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
Commit d1dbda10cefeaa124e28eb289cdc92c049c3d973 by marek
[libc++] [LWG3201] Update status page: lerp should be marked noexcept.

Summary: Update status page and test synopsis. Add synopsis in <cmath>.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D80456
The file was modifiedlibcxx/test/std/numerics/c.math/c.math.lerp/c.math.lerp.pass.cpp
The file was modifiedlibcxx/include/cmath
The file was modifiedlibcxx/www/cxx2a_status.html
Commit bc93c2d72e84c38fc86e64c9c26aafcf2c61457a by marek
[Transforms] Fix typos. NFC
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/PoisonChecking.cpp
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedllvm/test/Transforms/RewriteStatepointsForGC/preprocess.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/CallGraphUpdater.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopPredication.cpp
Commit 179c80117c91fc3ba3079740a91de40d98b18916 by flo
[LoopUnroll] Remove dead NextBlocks argument (NFC).
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp