[scudo] Remove locks from getTSDAndLockSlow (#201960)
Change the name of getTSDAndLockSlow to getTSDLockSlow and remove all
locks in favor of using atomic variables. Continue to lock when changing
the number of shared TSDs.
This change will remove thread contention and avoid blocking between
threads when this function is called.
[Clang] Fixed an assertion when ``__attribute__((alloc_size))`` is ued with an argument type wider than the target's pointer width (#202381)
Replace `zext()` with `extOrTrunc()` when normalizing the `APInt` value
to `BitsInSizeT`.
fixes #190445
[VPlan] Add LLVM_ABI_FOR_TEST to classes/structs used by tests (NFC). (#202400)
Add LLVM_ABI_FOR_TEST to classes that are used in unittests, either
directly or by one of their subclasses.
Should hopefully fix visability issue in
https://lab.llvm.org/buildbot/#/builders/160/builds/39088
[flang][OpenMP][NFC] Share declare mapper helpers for iterator modifier lowering (#197752)
Move mapper lookup and implicit default mapper creation into reusable
OpenMP lowering helpers so regular map lowering and iterator-generated
map entries (#197757) can use the same resolution path.
This prepares Flang iterator modifier lowering for map and motion
clauses
without changing the generated IR for existing non-iterator maps.
[VPlan] Use RUN_VPLAN_PASS for more VPlan transforms. (#202399)
Convert additional VPlan transform invocations to use RUN_VPLAN_PASS:
replaceWideCanonicalIVWithWideIV, materializeAliasMaskCheckBlock,
narrowInterleaveGroups, tryToConvertVPInstructionsToVPRecipes and
optimizeInductionLiveOutUsers. This enables more accurate transform
printing as well as extra verification.
The transforms in executePlan after dissolveLoopRegions are left as-is,
as the verifier does not yet handle the intermediate dissolved states.
[Dexter] Add !then node
In order to exercise more control over stepping in Dexter tests, this patch
adds the `!then` node which can be used to step out of a function or exit
the current test. Unlike expect nodes, !then nodes appear as direct singular
children of a state node:
!where {lines: 10}: !then finish
The two currently available commands are "step_out" and "finish". step_out
performs a debugger "step out" command, skipping over all !wheres in the
current frame and not stepping into any lower !wheres. The finish command
ends the debugger session immediately after finishing the current step.
[AMDGPU] Fix fmed3 constant-fold sign-of-zero miscompile (#201896)
[AMDGPU] Fix fmed3 constant-fold sign-of-zero miscompile
fmed3AMDGCN identifies the maximum of three operands via
APFloat::compare,
then returns maxnum of the remaining two as the median. APFloat::compare
treats +0 and -0 as equal (cmpEqual), so for inputs like fmed3(-0, -0,
+0)
Max3=+0 incorrectly compares equal to Src0=-0, causing the wrong arm to
fire and returning +0 instead of the correct median -0.
Hardware v_med3_f32 sorts with -0 < +0 uniformly across all generations,
so fmed3(-0, -0, +0) must return -0.
Fix by replacing APFloat::compare equality checks with
APFloat::bitwiseIsEqual,
which distinguishes +0 from -0 by bit pattern. This is strictly correct:
the only case where compare returns cmpEqual but bitwiseIsEqual returns
[7 lines not shown]
[lldb] Add a "plugin" log category to the gdb-remote channel (#202359)
Add a GDBRLog::Plugin category (enabled with `log enable gdb-remote
plugin`) for logging lldb-server plugin activity, such as the
accelerator plugins.