[VPlan] Improve code around canConstantBeExtended (NFC) (#161652)
Follow up on 7c4f188 ([LV] Support multiplies by constants when forming
scaled reductions), introducing m_APInt, and improving code around
canConstantBeExtended: we change canConstantBeExtended to take an APInt.
[flang][OpenMP] Emit requirements in module files (#163449)
For each program unit, collect the set of requirements from REQUIRES
directives in the source, and modules used by the program unit, and add
them to the details of the program unit symbol.
The requirements in the symbol details as now stored as clauses. Since
requirements need to be emitted in the module files as OpenMP
directives, this makes the clause emission straightforward via
getOpenMPClauseName.
Each program unit, including modules, the corresponding symbol will have
the transitive closure of the requirements for everything contained or
used in that program unit.
[flang][OpenMP] Format check-omp-structure.cpp, NFC (#163750)
Only a couple of changes, including adding two empty comments to resolve
differences between different versions of clang-format.
[VPlan] Clarify legality check in licm (NFC) (#162486)
Recipes in licm are safe to hoist if the legality check passes, and the
recipe is guaranteed to execute; the single successor of the vector
preheader is the vector loop region. Clarify this in the code structure
and comments.
[flang][OpenMP] Set REQUIRES flags on program unit symbol (#163448)
REQUIRES clauses apply to the compilation unit, which the OpenMP spec
defines as the program unit in Fortran.
Don't set REQUIRES flags on all containing scopes, only on the containng
program unit, where flags coming from different directives are gathered.
If we wanted to set the flags on subprograms, we would need to first
accummulate all of them, then propagate them down to all subprograms.
That is not done as it is not necessary (the containing program unit is
always available).
[llvm][utils] Remove Python2 comaptaible import in unicode-case-fold.py
These imports got moved around in Python 3.0
(https://docs.python.org/3/whatsnew/3.0.html#library-changes).
LLVM requires Python >= 3.8 so we can assume the Python3 names
are available.
[X86] rem-seteq-illegal-types.ll - remove unnecessary X64 RUN (#163742)
X64 triples include SSE2 by default, which we already test this, and it was causing check prefix clash warnings in update_llc_test_checks.py
fix clang_cmake_builddir (#161220)
When building llvm from a subdirectory (like clspv does)
`CMAKE_BINARY_DIR` is at the top of the build directory.
When building runtimes (libclc for example), the build fails looking for
clang (through `find_package` looking at `LLVM_BINARY_DIR` with
`NO_DEFAULT_PATH` & `NO_CMAKE_FIND_ROOT_PATH`) because clang is not in
`LLVM_BINARY_DIR`.
Fix that issue by setting `clang_cmake_builddir` the same way we set
`llvm_cmake_builddir` from `LLVM_BINARY_DIR`.
For default llvm build (using llvm as the main cmake project), it should
not change anything.
For standalone clang build, keep the actual value as libclc cannot be
built that way.
[lld][utils] Remove Python2 compatible imports in benchmark.py
These imports were moved around in Python 3.0
(https://docs.python.org/3/whatsnew/3.0.html#library-changes).
LLVM requires Python >= 3.8 so we can expect the Python3 names
to exist.
[flang][OpenMP] Format check-omp-structure.cpp, NFC
Only a couple of changes, including adding two empty comments to resolve
differences between different versions of clang-format.
[llvm][utils] Run 2to3 on zkill script
This updates Python2 print statements to Python3 print functions,
and makes lists out of some things that are iterators in Python3.
The latter we could not bother with as some code is fine with
iterators, but it does keep the script behaving exactly as it was
in case anyone does try to use this.
(and it's clear it was purely 2to3 changes, no hand editing)
[AArch64][llvm] Remove FeatureMPAM guards for parity with gcc
Remove `AArch64::FeatureMPAM` guards from some MPAM system registers,
since these system registers are not any under feature guard for gcc.