monit: remove duplication from these strange test types
tests.xml doesn't list the field so none of this is ever shown
and most could probably be removed, but I have no idea how this
is supposed to work. The default type is pinned to Custom.
[AIX][clang][compiler_rt] rename libatomic archive to libclang_rt (#197485)
This PR implements the following on AIX to avoid conflicts between LLVM
libatomic and the GNU libatomic in the AIX toolbox as they share the
same library name:
- Updates the clang driver to use `-lcompiler_rt` instead of `-latomic`
- Renames the compiler-rt archive from `libatomic.a` to
`libcompiler_rt.a`
Only the archive and not the shared object (`libatomic.so.1`) is renamed
because renaming one component is enough to distinguish between the LLVM
and GNU libatomic libraries. This also allows us to add additional
shared objects to the `libcompiler_rt.a` archive in the future if
needed.
[flang] Canonicalize sliced array access by fir.array_coor. (#197845)
This patch adds a canonicalization pattern for pulling rank-reducing
slices into `fir.array_coor`. This is helpful to preserve the original
rank of the array in `fir.array_coor`, which then helps representing
slice accesses in memref dialect as accesses to the original array.
This way, further conversion to affine dialect has benefits of
exposing the math applied to indices of all array dimensions.
For example, if a non-scalar slice depends on a loop IV, pulling
this into the original array access allows building access maps
enabling affine dependency analysis.
I considered the following three models for the addressing used
in `fir.array_coor` with rank reducing slices:
1) Mixed model:
- Encoding
* Scalar-sliced dims: index is slice_lb
[38 lines not shown]
[Instrumentor] Improve the config wizard script
This makes the config wizard script more generic as we grow
instrumentation opportunities. Better output, e.g., clear paths, are
also displayed now.
[clang] implement CWG2064: ignore value dependence for decltype
The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.
This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.
This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.
Fixes #8740
Fixes #61818
Fixes #190388
[flang][OpenMP][NFC] Share declare mapper helpers for iterator modifier lowering
Move mapper lookup and implicit default mapper creation into reusable
OpenMP lowering helpers so regular map lowering and iterator-generated
map entries 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.
[Clang][AST] Fix ExplicitInstantiationDecl accessors for variable templates with tag types (#197856)
Several `ExplicitInstantiationDecl` accessors assumed that
`TypeSourceInfo` always encodes a class entity, but for variable
templates the `TypeSourceInfo` holds the *declared type* (e.g. `Plain`,
`Color`, `Wrap<int>`). When that declared type happened to be a
`TagType` or `TemplateSpecializationType`, the accessors would
misinterpret it:
- `getTypeAsWritten()` returned `nullptr` → crash in `DeclPrinter`
- `getQualifierLoc()` leaked the type's qualifier into the variable name
- `getTagKWLoc()` returned the type's elaborated keyword
- `getNumTemplateArgs` / angle-loc getters extracted from the type
instead of the variable's template arguments
Add a private `getClassTypeLoc()` helper that returns the entity
`TypeLoc` only for class-like instantiations
(`isa<RecordDecl>(getSpecialization())`), and guard all `TypeSourceInfo`
fallback paths with it. For non-class entities the accessors now
[10 lines not shown]
[SLP] Treat ExtractElement from terminator results as gather
When canReuseExtract sees an ExtractElement bundle whose source vector
is produced by a terminator instruction (invoke or callbr), the SLP
vectorizer used to mark the bundle as Vectorize and reuse the
terminator result as the bundle's vectorized value. For external uses
of the bundle, vectorizeTree later sets the IRBuilder insertion point
to next(VecI), which lands past the terminator and produces an invalid
CFG (a new extractelement is inserted after the terminator in the
predecessor block).
Fixes #199021
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/199089
[PowerPC] Change arguments of PPCEmitTimePseudo
Like #198861 but for PPCEmitTimePseudo.
This is not NFC. The asm name of LDtocBA was set to #LDtocCPT,
which is the name of the instruction before. This looks like a
cut`n`paste error, and I changed the asm name.
loosen a number of constraints to dependencies.
Since switch to openvox, some of the functionality doesn't work anymore,
but still good for basic scaffolding and module creation and maintenance.
[flang][FIRToMemRef] Fixed array_coor with box/shape/slice. (#198933)
A `fir.array_coor` with box input, a slice and a shape without
a shift, should also be converted using dimensions information
stored in the input box (case (c) in the updated code).