[gn] port 749d82099196 (#236771)
Uses len(), which needs GN version 2281 or newer, so bump the
minimum GN version to that.
(Run `llvm/utils/gn/get.py` to update your GN binary.)
[mlir][OpenACC] Fold constant-false host_data with an empty region (#236052)
`RemoveConstantIfConditionWithRegion` replaces a construct whose `if`
condition is constant false with the contents of its region. The helper
it uses asserts that the region has exactly one block, but
`acc.host_data` accepts an empty region, so canonicalizing one crashed.
An empty region has nothing to inline, so the op is now simply erased in
that case, which matches what happens for a non-empty region.
Multi-block regions now bail out instead of asserting.
Fixes #231828
[SLP]Keep original order of poisonous values in logical reductions
Logical and/or ops mask the poison of a reduced value by all preceding
values. Repeated values, constants and leftovers were combined out of
order, and an operand-0 leaf was assumed unconditional. Combine only
non-poisonous parts out of order; emit poisonous scalars after them,
sorted by original position, with repeated values dropped.
Fixes #236181
Assisted-by: Cursor
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/236778
[mlir][LLVMIR] Decouple ModuleTranslation from the OpenMP dialect
`ModuleTranslation.h` included `OpenMPDialect.h` and owned OpenMP-specific
state. Every consumer of the LLVM IR export, and every dialect whose
header includes `ModuleTranslation.h` (NVVM, XeVM), therefore depended on
the OpenMP dialect, and `MLIRNVVMDialect`, `MLIRXeVMDialect` and
`MLIRLLVMIRTransforms` linked `MLIROpenMPDialect` for that reason only.
This PR decouples this by adding a TypeID-keyed
`ModuleTranslation::Extension` mechanism (similar to ones seen in
bufferization or the transform dialect) for state that lives as long as
the translation and move the OpenMP state into an extension owned by
the OpenMP translation.
[lldb] Record the value type and mutability of Wasm globals (#236586)
ParseGlobals read both and discarded them. Keep them in WasmGlobal, in
preparation for telling which exported globals hold the address of a
variable in linear memory.
[SystemZ][z/OS] Alias for a function needs reference to ADA (#236546)
When emitting function aliases, the current code misses to set the
reference to the ADA. Thus, the ADA register is 0 in the called
function, causing a crash e.g. when another function is called. Fix is
to set the references to the ADA.
Assisted by: IBM Bob
[DebugInfo][FLMD] Add core FLMD context + node classes
This patch starts implementing the core FLMD context and node classes,
which serve to replace the existing DILocation-based source location model.
Most of the additions of this patch are in FunctionLocalMetadata.h, which
defines the context class MDFunctionLocalContext and the data types that it
stores, and also includes verifier changes to test some of the basic
semantics of these classes.
The contents of FunctionLocalMetadata.h are largely unmodified in later
patches, meaning this is a complete implementation of the basic class
interfaces, not including support functions, e.g. IR/Bitcode, value
mapping, or updating the contents through transformations such as inlining.
This patch also does not include FLDebugLoc, the class that replaces
DebugLoc as the main source location storage mechanism; these will all be
added in followup patches.