[Dexter][NFC] Fixup test line numbers (#203360)
A previous commit (78ae864) added a test that contained off-by-1 errors
in the line numbers used in the Dexter script; this patch adjusts these
to the correct line number.
[CIR] NFC: Drop redundant llvm:: qualifiers in sret lowering
Restore `using namespace mlir;` in CIRABIRewriteContext.cpp so the LLVM
ADT names re-exported into the mlir namespace (SmallVector, ArrayRef,
StringRef, SmallPtrSet, function_ref) are in scope without an explicit
llvm:: qualifier. An earlier review fixup had removed the directive and
qualified every ADT type with llvm::, over-applying the qualifier to
unambiguous names.
llvm:: is kept on the free functions mlir does not re-export (enumerate,
any_of, append_range), and mlir:: stays explicit on MLIR types. No
functional change.
[Dexter] Add support for nested state nodes (#201395)
This patch adds support for nested state nodes, !where and a new !and
node. Nested state nodes are evaluated only at a frame relative to the
frame that their parent matched to:
- `!where` can only match the frame immediately called from/leafwards
from their parent frame.
- `!and` can only match the same frame as their parent frame.
[LICM] Allow hoisting of InsertElementInst's past non-hoistable InsertElementInsts (#200532)
When building vectors from multiple scalars in a loop, allow the
insertions using invariant data to be hoisted, even if blocked by the
variant insertions.
In the SLP vectorizer, c1b37eacbf makes the assumption that these build
vectors will properly be hoisted, when they are not leads to regressions
such as #195497.
Assisted By: Codex
---------
Co-authored-by: Luke Lau <luke_lau at icloud.com>
Co-authored-by: Nikita Popov <github at npopov.com>
[flang][OpenMP] Add type-param-inquiry checks for non-list clauses (#203059)
Clauses that take lists of objects have these objects checked in a
single place. There are still several clauses that take variables, but
not via a list. Those clauses still need individual checks for
type-param inquiries.
[Dexter] Add for_hit_count for state nodes
This patch adds the ability for state nodes to use a `for_hit_count: <int>`
field to limit the number of times that a given state node will be active.
graphics/nvidia-drm-*-kmod*: Bump PORTREVISION after e50c876e295af951485b605b8cb9bf567b6c23e1
I should have done it as part of the update.
Reported by: Tomoaki Aoki <junchoon_dec.sakura.ne.jp>
compiler-rt: Stop using APPLE cmake variable
Use a variable derived from the target triple instead.
This is a partial fix for cross compiling the GPU runtimes
on macos. Previously on mac hosts, the build system would go
down completely wrong paths. This improves the situation by
moving the failures to compilation pulling in host flags which
shouldn't be forwarded.
Despite the cmake documentation claiming the APPLE constant
is "Set to True when the target system is an Apple platform",
this appears to be true when the host is apple. Not sure if this
is worth reporting as a cmake bug, or if it's an artifact of some
runtimes build specifics. Change to using a new variable computed
from the target triple. Presumably the same bug exists for the various
WIN32 and ANDROID checks around, there are just fewer of them.
Forcefully require new attributes to be documented (#203296)
Several years ago we began to require all new attributes be documented,
but we never had anything enforcing the requirement. However, despite
reviewers requesting this documentation, it's been missed often enough
that enforcement makes sense in order to reduce maintenance burden.
This adds a new tablegen option to spit out the list of undocumented
attributes, and a test which lists all of the existing undocumented
ones. If a new attribute is added, this test should catch the failure.
[RISCV][CHERIoT] Define ABI_CHERIOT. (#192929)
These correspond to the CHERIoT ABI, documented here:
https://github.com/CHERIoT-Platform/cheriot-sail/releases/download/v1.0/cheriot-architecture-v1.0.pdf
In particular, CHERIoT is an RV32E-based architecture extended with
CHERI support that is not binary compatible with the proposed RV Y base.
Amongst other changes, it has customized calling conventions, such as
passing f64 in capability registers.
devel/py-b2: Update to 4.7.1
Changes since 4.7.0:
- Fix b2:// URI parsing to accept bucket names containing periods.
- Bump urllib3 from 2.6.3 to 2.7.0.
Reported by: github
[libc][math] Adding LIBC_MATH_ASSUME_ROUND_NEAREST_ONLY option (#201154)
This PR adds a new option ~~`LIBC_MATH_ALWAYS_ROUND_NEAREST`~~
`LIBC_MATH_ASSUME_ROUND_NEAREST_ONLY` to LLVM libm.
There are some UBs that I kept as-is from the original code to keep the
changes non-disruptive (which I've marked with TODO comments)
Benchmarks (from `files.zip` in the comment
https://github.com/llvm/llvm-project/issues/198276#issue-4468816457):
- System libm:
```
overflow (>710) 1.55 ns/call (644M ops/sec)
underflow to 0 (<-746) 1.34 ns/call (747M ops/sec)
normal [-10,10] 4.41 ns/call (227M ops/sec)
denormals [-740,-735] 2.25 ns/call (444M ops/sec)
near-uflow [-700,-690] 2.25 ns/call (444M ops/sec)
```
- LLVM libm (without the option being set):
[20 lines not shown]