[DAG] Use known-bits when creating umulh/smulh. (#160916)
This extends the creation of umulh/smulh instructions to handle cases
where one operand is a zext/sext and the other has enough known-zero or
sign bits to create a mulh. This can be useful when one of the operands
is hoisted out of a loop.
[lldb][NFC] Stop using ConstStrings with BroadcastEventSpec (#190660)
BroadcastEventSpec owns the broadcaster class its configured to listen
for. Broadcasters usually advertise their broadcast class name with
StringRefs so there's no need to put them in the string pool.
The only exception here is SBListener. There are 2 methods that take
`const char *` values. However, that's handled when converting them to
StringRefs.
[CIR] Implement 'zero attr' creation of method (#190819)
This appears quite a bit in some benchmarks, and is seemingly something
we missed at one point. This patch just implements a 'zero-init' of a
pmf.
[lldb] Fix ARM STR T1 encoding using subtract instead of add, add test (#188614)
The STR Thumb T1 encoding had add=false instead of add=true, causing the
emulator to compute the store address as Rn - imm rather than Rn + imm.
This contradicts the ARM spec comment directly above.
Add a unit test that verifies the STR T1 encoding stores to the correct
address (base + offset).
[TestingTools] Add new llvm-testing-tools package (#188888)
This allows for packaging split-file and FileCheck for distribution on
PyPI which will support libc++ wanting to use FileCheck/split-file for
more thorough testing.
[mlir][OpenMP] Rename omp.taskloop to omp.taskloop.wrapper (#188071)
Rename the loop wrapper operation to better distinguish it from the
context op (omp.taskloop.context), which handles outlining and runtime
calls. The new name makes the role of each operation clearer at a
glance.
RFC:
https://discourse.llvm.org/t/rfc-openmp-alloca-placement-for-openmp-loop-wrappers/89512/7
Patch 3/3
Assisted-by: Copilot, Claude Sonnet 4.6
[lldb][test] Fix dsym-auto-load-modules-multiple.test (#190826)
We were compiling without debug-info causing the test to fail on macOS.
This was a silly oversight because I was mainly working on Linux when
working on the last iterations of the patch that added this test.
[mlir][OpenMP] Don't allow loop bounds/step from inside the task
The omp.taskloop.context region represents what goes inside the outlined
task function. The loop bounds must be passed to the OpenMP runtime call
for taskloop and so this cannot be supported in general.
In a follow up patch I will re-allow pure operations because sinking
constants inside of the tasklooop context will be useful for something
else I am prototyping.
Assisted-by: codex
[mlir][OpenMP] Rename taskLoopOp/taskloopOp variables to taskLoopWrapperOp/taskloopWrapperOp
Rename local variables for clarity to better reflect the type they hold.
Assisted-by: Copilot, Claude Sonnet 4.6
[mlir][OpenMP] Rename TaskloopOp/omp.taskloop to TaskloopWrapperOp/omp.taskloop.wrapper
Rename the loop wrapper operation to better distinguish it from the
context op (omp.taskloop.context), which handles outlining and runtime calls.
The new name makes the role of each operation clearer at a glance.
RFC: https://discourse.llvm.org/t/rfc-openmp-alloca-placement-for-openmp-loop-wrappers/89512/7
Patch 3/3
Assisted-by: Copilot, Claude Sonnet 4.6
[mlir][OpenMP] Move taskloop clauses to the context op (#188070)
The clauses are implemented when lowering the context op (which
generates the runtime calls, and handles the outlining of the task
function: including privatization etc). Therefore I thought it made more
sense to put the clauses on this operation rather than on the wrapped
loop.
RFC:
https://discourse.llvm.org/t/rfc-openmp-alloca-placement-for-openmp-loop-wrappers/89512/7
Patch 2/3
[DA] Add overflow check in BanerjeeMIVtest (#190469)
Add an overflow check in BanerjeeMIVtest.
Fix the related test case added in #190468.
Signed-off-by: Ruoyu Qiu <cabbaken at outlook.com>
[mlir][spirv] Add OpTypeSampler and OpSampledImage support (#189891)
Add missing `!spirv.sampler` type (`OpTypeSampler`, opcode 26) and
`spirv.SampledImage` op (`OpSampledImage`, opcode 86) to the SPIR-V
dialect.
The existing sampling ops (e.g. `spirv.ImageSampleImplicitLod`) consume
`!spirv.sampled_image<...>` values, but there was previously no way to
construct one from a separate image and sampler which is the standard
Vulkan pattern for combined image samplers.
[flang][cuda] Remove __nv_ binding names from rounding-mode intrinsics in cudadevice (#190722)
Remove name='__nv_...' from bind(c) declarations for 48 rounding-mode
functions in cudadevice.f90, allowing host,device functions to link
against the unprefixed host symbols. The __nv_ prefix for device code is
handled by a downstream pass.
Address review comments: mark unused param and move var decl
- Mark the unused 'clauses' parameter in TaskloopOp::build with
[[maybe_unused]]
- Move the declaration of 'wrapperClauseOps' in genStandaloneTaskloop
to immediately before its first use
Assisted-by: Copilot, Claude Sonnet 4.6
[mlir][OpenMP] Move taskloop clauses to the context op
The clauses are implemented when lowering the context op (which
generates the runtime calls, and handles the outlining of the task
function: including privatization etc). Therefore I thought it made more
sense to put the clauses on this operation rather than on the wrapped
loop.
RFC: https://discourse.llvm.org/t/rfc-openmp-alloca-placement-for-openmp-loop-wrappers/89512/7
Patch 2/3
[sanitizer_common] Fix memory leak in ListOfModules (#190104)
I found a rather old leak in `ListOfModules`. `ListOfModules` has a
member
```
InternalMmapVectorNoCtor<LoadedModule> modules_;
```
Which has neither a constructor nor destructor. As a consequence, we
need to call `Destroy` on it when ListOfModules is destroyed, so that
the memory is released to the OS (via munmap).
rdar://173906291