Changes

Summary

  1. [mlir] Add integer range inference analysis (details)
  2. [docs] Mention LLVMContext::setOpaquePointers for C++ API (details)
  3. [ELF] Remove support for legacy .zdebug sections (details)
  4. [CaptureTracking] Increase limit and use it for all visited uses. (details)
  5. [RISCV] Add custom isel for (add X, imm) used by load/stores. (details)
  6. Support warn_unused_result on typedefs (details)
  7. cmake fill `cmake_args` when cross-compiling external project with non-clang compiler (details)
  8. [AMDGPU] Improve codegen of extractelement/insertelement in some cases (details)
  9. AMDGPU: Move SpilledReg from MFI to SIRegisterInfo (details)
  10. Revert "[mlir] Add integer range inference analysis" (details)
  11. [PS5] Ignore 'packed' on one-byte bitfields, matching PS4 (details)
  12. [Clang][OpenMP] Avoid using `IgnoreImpCasts` if possible (details)
  13. Clean "./" from __FILE__ expansion. (details)
  14. [LoopInterchange] New cost model for loop interchange (details)
  15. [clang-tidy] Add proper emplace checks to modernize-use-emplace (details)
  16. [mlir:MultiOpDriver] Quick fix the assertion position (details)
  17. [MLIR][Presburger] Simplex: remove redundant member vars nRow, nCol (details)
  18. [mlir:PDLL] Add better support for providing Constraint/Pattern/Rewrite documentation (details)
  19. [vscode-mlir] Bump to version 0.8 (details)
  20. Add a release note for the scope enum initialization bug fix in (details)
  21. [mlir][python][f16] add ctype python binding support for f16 (details)
  22. [Sema] Reject list-initialization of enumeration types from a (details)
  23. [OpenMP][NFC] update status for 'omp_all_memory' directive to 'done' (details)
  24. Revert "[LoopInterchange] New cost model for loop interchange" (details)
  25. [BOLT][DOCS] Add PACKAGE_VERSION to doxygen config (details)
  26. [Clang][OpenMP] Add the codegen support for `atomic compare capture` (details)
  27. [NFC][Doc] Finish atomic compare (details)
  28. [BOLT][NFC] Make ICP::verifyProfile static (details)
  29. [mlir][NFC] Simplify the various `parseSourceFile<T>` overloads (details)
Commit 1350c9887dca5ba80af8e3c1e61b29d6696eb240 by Krzysztof.Drewniak
[mlir] Add integer range inference analysis

This commit defines a dataflow analysis for integer ranges, which
uses a newly-added InferIntRangeInterface to compute the lower and
upper bounds on the results of an operation from the bounds on the
arguments. The range inference is a flow-insensitive dataflow analysis
that can be used to simplify code, such as by statically identifying
bounds checks that cannot fail in order to eliminate them.

The InferIntRangeInterface has one method, inferResultRanges(), which
takes a vector of inferred ranges for each argument to an op
implementing the interface and a callback allowing the implementation
to define the ranges for each result. These ranges are stored as
ConstantIntRanges, which hold the lower and upper bounds for a
value. Bounds are tracked separately for the signed and unsigned
interpretations of a value, which ensures that the impact of
arithmetic overflows is correctly tracked during the analysis.

The commit also adds a -test-int-range-inference pass to test the
analysis until it is integrated into SCCP or otherwise exposed.

Finally, this commit fixes some bugs relating to the handling of
region iteration arguments and terminators in the data flow analysis
framework.

Depends on D124020

Depends on D124021

Reviewed By: rriddle, Mogball

Differential Revision: https://reviews.llvm.org/D124023
The file was addedmlir/include/mlir/Interfaces/InferIntRangeInterface.td
The file was addedmlir/include/mlir/Analysis/IntRangeAnalysis.h
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was addedmlir/include/mlir/Interfaces/InferIntRangeInterface.h
The file was addedmlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
The file was addedmlir/unittests/Interfaces/InferIntRangeInterfaceTest.cpp
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was modifiedmlir/lib/Analysis/CMakeLists.txt
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was addedmlir/lib/Interfaces/InferIntRangeInterface.cpp
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/unittests/Interfaces/CMakeLists.txt
The file was modifiedmlir/include/mlir/Interfaces/CMakeLists.txt
The file was addedmlir/lib/Analysis/IntRangeAnalysis.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.h
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was addedmlir/test/lib/Transforms/TestIntRangeInference.cpp
The file was modifiedmlir/lib/Analysis/DataFlowAnalysis.cpp
Commit dfa9221aa7e9c8daa6ebc92fa0c99521d3c4bc56 by i
[docs] Mention LLVMContext::setOpaquePointers for C++ API
The file was modifiedllvm/docs/OpaquePointers.rst
Commit e09f77d39426dfd1a2cb05ac9de070220a3ef26f by i
[ELF] Remove support for legacy .zdebug sections

.zdebug is unlikely used any longer: gcc -gz switched from legacy
.zdebug to SHF_COMPRESSED with binutils 2.26 (2016), which has been
several years. clang 14 dropped -gz=zlib-gnu support. According to
Debian Code Search (`gz=zlib-gnu`), no project uses -gz=zlib-gnu.

Remove .zdebug support to (a) simplify code and (b) allow removal of llvm-mc's
--compress-debug-sections=zlib-gnu.

In case the old object file `a.o` uses .zdebug, run `objcopy --decompress-debug-sections a.o`

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D126793
The file was modifiedlld/test/ELF/strip-debug.s
The file was modifiedlld/ELF/InputSection.cpp
The file was removedlld/test/ELF/relocatable-compressed-input.s
The file was modifiedlld/test/ELF/compressed-debug-input.s
The file was modifiedlld/docs/ReleaseNotes.rst
The file was modifiedlld/ELF/InputSection.h
Commit 78c6b1488f3022906d5d35212eb5ebe00143bbe6 by flo
[CaptureTracking] Increase limit and use it for all visited uses.

Currently the MaxUsesToExplore limit only applies to the number of users
per value, not the total number of users to explore.

The current limit of 20 pessimizes IR with opaque pointers in some
cases. Without opaque pointers, we have deeper pointer def-use chains in
general due to extra bitcasts and geps for structs with index 0.

With opaque pointers the def-use chain is not as deep but wider, due to
bitcasts & 0-geps missing.

To improve the situation for opaque pointers, this patch does 2 things:

1. Apply the limit to the total number of uses visited. From the
    wording in the description of the option it seems like this may be
    the original intention. With the current implementation we could
    still end up walking a lot of uses.
2. Increase the limit to 100. This is quite arbitrary, but enables
    a good number of additional optimizations.

Those adjustments have a noticeable compile-time impact though. In part
that is likely due to additional transformations (and conversely
the current baseline misses optimizations after switching to opaque
pointers).

This recovers some regressions that showed up after enabling opaque
pointers.

Limit=100:

* NewPM-O3: +0.21%
* NewPM-ReleaseThinLTO: +0.87%
* NewPM-ReleaseLTO-g: +0.46%

https://llvm-compile-time-tracker.com/compare.php?from=2e50ecb2ef4e1da1aeab05bcf66380068e680991&to=7e6fbe519d958d09f32f01d5d44a622f551e2031&stat=instructions

Limit=60:

* NewPM-O3: +0.14%
* NewPM-ReleaseThinLTO: +0.41%
* NewPM-ReleaseLTO-g: +0.21%

https://llvm-compile-time-tracker.com/compare.php?from=aeb19817d66f1a15754163c7f48e01e9ebdd6d45&to=520563fdc146319aae90d06f88d87f2e9e1247b7&stat=instructions

Limit=40:
* NewPM-O3: +0.11%
* NewPM-ReleaseThinLTO: +0.12%
* NewPM-ReleaseLTO-g: +0.09%

https://llvm-compile-time-tracker.com/compare.php?from=aeb19817d66f1a15754163c7f48e01e9ebdd6d45&to=c9182576e9fe3f1c84a71479665aef91a416318c&stat=instructions

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D126236
The file was modifiedllvm/test/Transforms/GVN/capture-tracking-limit.ll
The file was modifiedllvm/lib/Analysis/CaptureTracking.cpp
Commit dbead2388b48c1730f54f9aef074a81254573797 by craig.topper
[RISCV] Add custom isel for (add X, imm) used by load/stores.

If the imm is out of range for an ADDI, we will materialize it in
a register using multiple instructions. If the ADD is used by a
load/store, doPeepholeLoadStoreADDI can try to pull an ADDI from
the constant materialization into the load/store offset. This only
works if the ADD has a single use, otherwise the peephole would have
to rebuild multiple nodes.

This patch instead tries to solve the problem when the add is selected.
We check that the add is only used by loads/stores and if it is
we will select it to (ADDI (ADD X, Imm-Lo12), Lo12). This will enable
the simple case in doPeepholeLoadStoreADDI that can bypass an ADDI
used as a pointer. As a result we can remove the more complicated
peephole from doPeepholeLoadStoreADDI.

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D126576
The file was modifiedllvm/test/CodeGen/RISCV/mem.ll
The file was modifiedllvm/test/CodeGen/RISCV/mem64.ll
The file was modifiedllvm/test/CodeGen/RISCV/split-offsets.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
Commit cb08f4aa4467cf562b62e542725f5351c5482495 by dblaikie
Support warn_unused_result on typedefs

While it's not as robust as using the attribute on enums/classes (the
type information may be lost through a function pointer, a declaration
or use of the underlying type without using the typedef, etc) but I
think there's still value in being able to attribute a typedef and have
all return types written with that typedef pick up the
warn_unused_result behavior.

Specifically I'd like to be able to annotate LLVMErrorRef (a wrapper for
llvm::Error used in the C API - the underlying type is a raw pointer, so
it can't be attributed itself) to reduce the chance of unhandled errors.

Differential Revision: https://reviews.llvm.org/D102122
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/test/SemaCXX/warn-unused-result.cpp
The file was modifiedclang/lib/Basic/Attributes.cpp
The file was modifiedclang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p1.cpp
The file was modifiedclang/test/Sema/c2x-nodiscard.c
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/test/Sema/unused-expr.c
The file was modifiedclang/include/clang/Basic/AttributeCommonInfo.h
Commit 4e1b89064f62c9df012a5c390aec861368ae8112 by Saleem Abdulrasool
cmake fill `cmake_args` when cross-compiling external project with non-clang compiler

This makes it possible to crosscompile runtimes with cl.exe on Windows.

An external project is completely misconfigured otherwise because
cmake_args is set only for native builds or builds crosscompiled with
clang.

Differential Revision: https://reviews.llvm.org/D122578
Reviewed By: beanz, compnerd
The file was modifiedllvm/cmake/modules/LLVMExternalProjectUtils.cmake
Commit 2dfe41944658a006dc3f89316b1448cfec0131c6 by julien.pages
[AMDGPU] Improve codegen of extractelement/insertelement in some cases

This patch improves the codegen of extractelement and insertelement for vector
containing 8 elements. Before, a dag combine transformation was generating a
sequence of 8 select/cmp.
This patch changes the upper limit for this transformation and the movrel
instruction will eventually be used instead. Extractlement/insertelement for
vectors containing less than 8 elements are unchanged.

Differential Revision: https://reviews.llvm.org/D126389
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.h
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_elt.ll
Commit dd7e407d81081b06bc792bc436adfcb583ed9902 by Matthew.Arsenault
AMDGPU: Move SpilledReg from MFI to SIRegisterInfo

This isn't the most natural place for it, but it avoids a circular
include dependency in an out of tree patch.
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.h
Commit 4e5ce2056e3e85f109a074e80bdd23a10ca2bed9 by joker.eph
Revert "[mlir] Add integer range inference analysis"

This reverts commit 1350c9887dca5ba80af8e3c1e61b29d6696eb240.

Shared library build is broken with undefined references.
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/lib/Analysis/DataFlowAnalysis.cpp
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was removedmlir/unittests/Interfaces/InferIntRangeInterfaceTest.cpp
The file was removedmlir/include/mlir/Analysis/IntRangeAnalysis.h
The file was removedmlir/lib/Interfaces/InferIntRangeInterface.cpp
The file was modifiedmlir/include/mlir/Interfaces/CMakeLists.txt
The file was removedmlir/lib/Analysis/IntRangeAnalysis.cpp
The file was removedmlir/include/mlir/Interfaces/InferIntRangeInterface.h
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.h
The file was removedmlir/test/lib/Transforms/TestIntRangeInference.cpp
The file was removedmlir/include/mlir/Interfaces/InferIntRangeInterface.td
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/lib/Analysis/CMakeLists.txt
The file was modifiedmlir/unittests/Interfaces/CMakeLists.txt
The file was removedmlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was modifiedmlir/test/lib/Transforms/CMakeLists.txt
Commit aa1cdf87b5a97c2476a80f3aa6ac5af3e5ec0494 by paul.robinson
[PS5] Ignore 'packed' on one-byte bitfields, matching PS4
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/test/Sema/struct-packed-align.c
Commit 3a96256b7e292de15ad57438202aeea4818956ba by i
[Clang][OpenMP] Avoid using `IgnoreImpCasts` if possible

This patch removes all `IgnoreImpCasts` in Sema, and only uses it if necessary. If the expression is not of the same type as the pointer value, a cast is inserted.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D126602
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
Commit 4ad17d2e96a382e5f595bab30920ba26762a6fa9 by ayzhao
Clean "./" from __FILE__ expansion.

This is alternative to https://reviews.llvm.org/D121733
and helps with Clang header modules in which FILE
may expand to "./foo.h" or "foo.h" depending on whether the file was
included directly or not.

Only do this when UseTargetPathSeparator is true, as we are already
changing the path in that case.

Reviewed By: ayzhao

Differential Revision: https://reviews.llvm.org/D126396
The file was modifiedclang/lib/Lex/PPMacroExpansion.cpp
Commit 006334470d8d1b5d8f630890336fcb45795749d1 by congzhecao
[LoopInterchange] New cost model for loop interchange

This patch proposed to use a new cost model for loop interchange, which
is obtained from loop cache analysis.

Given a loopnest, what loop cache analysis returns is a vector of loops
[loop0, loop1, loop2, ...] where loop0 should be replaced as the outermost
loop, loop1 should be placed one more level inside, and loop2 one more level
inside, etc. What loop cache analysis does is not only more comprehensive than
the current cost model, it is also a "one-shot" query which means that we only
need to query it once during the entire loop interchange pass, which is better
than the current cost model where we query it every time we check whether it is
profitable to interchange two loops. Thus complexity is reduced, especially after
D120386 where we do more interchanges to get the globally optimal loop access pattern.

Updates made to test cases are mostly minor changes and some corrections.
Test coverage for loop interchange is not reduced.

Currently we did not completely remove the legacy cost model, but keep it as
fall-back in case the new cost model did not run successfully. This is because
currently we have some limitations in delinearization, which sometimes makes
loop cache analysis bail out. The longer term goal is to enhance delinearization
and eventually remove the legacy cost model compeletely.

Reviewed By: bmahjour, #loopoptwg

Differential Revision: https://reviews.llvm.org/D124926
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/innermost-latch-uses-values-in-middle-header.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/vector-gep-operand.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa.ll
The file was modifiedllvm/test/Transforms/LICM/lnicm.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/currentLimitation.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/call-instructions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/debuginfo.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-no-deps.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-innerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr48212.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-dependencies-1.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/perserve-lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/update-condbranch-duplicate-successors.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/profitability.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll
Commit 987f9cb6b9708ff16980c4f8c3f8ba4674463fb5 by ivan.murashko
[clang-tidy] Add proper emplace checks to modernize-use-emplace

modernize-use-emplace only recommends going from a push_back to an
emplace_back, but does not provide a recommendation when emplace_back is
improperly used. This adds the functionality of warning the user when
an unecessary temporary is created while calling emplace_back or other "emplacy"
functions from the STL containers.

Reviewed By: kuhar, ivanmurashko

Differential Revision: https://reviews.llvm.org/D101471
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/modernize-use-emplace.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.h
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/modernize-use-emplace.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
Commit 633ad1d864c807c7904419c80394231bd5c46ddf by chiahungduan
[mlir:MultiOpDriver] Quick fix the assertion position

The assertion should come after null check
The file was modifiedmlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
Commit 8bc2cff95acd68d3e94d524b40571d978c251566 by arjunpitchanathan
[MLIR][Presburger] Simplex: remove redundant member vars nRow, nCol

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D126790
The file was modifiedmlir/lib/Analysis/Presburger/Simplex.cpp
The file was modifiedmlir/include/mlir/Analysis/Presburger/Simplex.h
Commit bf352e0b2ef9f8824a5b88d44313b5a13258350d by riddleriver
[mlir:PDLL] Add better support for providing Constraint/Pattern/Rewrite documentation

This commit enables providing long-form documentation more seamlessly to the LSP
by revamping decl documentation. For ODS imported constructs, we now also import
descriptions and attach them to decls when possible. For PDLL constructs, the LSP will
now try to provide documentation by parsing the comments directly above the decls
location within the source file. This commit also adds a new parser flag
`enableDocumentation` that gates the import and attachment of ODS documentation,
which is unnecessary in the normal build process (i.e. it should only be used/consumed
by tools).

Differential Revision: https://reviews.llvm.org/D124881
The file was modifiedmlir/test/mlir-pdll-lsp-server/hover.test
The file was modifiedmlir/lib/TableGen/Constraint.cpp
The file was modifiedmlir/include/mlir/Tools/PDLL/AST/Nodes.h
The file was modifiedmlir/lib/Tools/PDLL/Parser/Parser.cpp
The file was modifiedmlir/lib/Tools/PDLL/AST/Nodes.cpp
The file was modifiedmlir/tools/mlir-pdll/mlir-pdll.cpp
The file was modifiedmlir/lib/TableGen/Attribute.cpp
The file was modifiedmlir/include/mlir/TableGen/Constraint.h
The file was modifiedmlir/include/mlir/TableGen/Type.h
The file was modifiedmlir/include/mlir/Tools/PDLL/Parser/Parser.h
The file was modifiedmlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
The file was modifiedmlir/include/mlir/TableGen/Attribute.h
The file was modifiedmlir/lib/Tools/PDLL/ODS/Operation.cpp
The file was modifiedmlir/lib/TableGen/Type.cpp
Commit bb81b3b274d87fad70e9d920d95622d883aae7e9 by riddleriver
[vscode-mlir] Bump to version 0.8

Since version 0.7 we've added:

* Initial language support for TableGen
* Tweaked syntax highlighting for PDLL
* Added a new command to view intermediate PDLL output
The file was modifiedmlir/utils/vscode/package.json
The file was modifiedmlir/utils/vscode/package-lock.json
Commit b64f6e5722024b29f0799f2a0eae08778162dc61 by Akira
Add a release note for the scope enum initialization bug fix in
https://reviews.llvm.org/D126084
The file was modifiedclang/docs/ReleaseNotes.rst
Commit f8b692dd31d986bc5a83437fceecf80d4e90f745 by ajcbik
[mlir][python][f16] add ctype python binding support for f16

Similar to complex128/complex64, float16 has no direct support
in the ctypes implementation. This fixes the issue by using a
custom F16 type to change the view in and out of MLIR code

Reviewed By: wrengr

Differential Revision: https://reviews.llvm.org/D126928
The file was modifiedmlir/test/python/execution_engine.py
The file was modifiedmlir/python/mlir/runtime/np_to_memref.py
Commit 66e08995b0b72d28acb5e87b90292e59fabfadae by Akira
[Sema] Reject list-initialization of enumeration types from a
brace-init-list containing a single element of a different scoped
enumeration type

It is rejected because it doesn't satisfy the condition that the element
has to be implicitly convertible to the underlying type of the
enumeration.

http://eel.is/c++draft/dcl.init.list#3.8

Differential Revision: https://reviews.llvm.org/D126084
The file was modifiedclang/test/SemaCXX/enum-scoped.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
Commit 48d6a6c9add90f3684de362907d5f05a0988244a by michael.p.rice
[OpenMP][NFC] update status for 'omp_all_memory' directive to 'done'
The file was modifiedclang/docs/OpenMPSupport.rst
Commit f1940a589516d193bf89104e17988fa36fab13e1 by dsuchkov
Revert "[LoopInterchange] New cost model for loop interchange"

Reverting the commit due to numerous buildbot failures.

This reverts commit 006334470d8d1b5d8f630890336fcb45795749d1.
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
The file was modifiedllvm/test/Transforms/LICM/lnicm.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-no-deps.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-innerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/currentLimitation.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr48212.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/debuginfo.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/profitability.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-dependencies-1.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/call-instructions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/innermost-latch-uses-values-in-middle-header.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/vector-gep-operand.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/perserve-lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/update-condbranch-duplicate-successors.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchanged-loop-nest-3.ll
Commit 65a84195ca61a4d79f804e4e6ddcc1c86f415bcf by aaupov
[BOLT][DOCS] Add PACKAGE_VERSION to doxygen config

Clang's doxygen documentation specifies LLVM revision. Do the same for BOLT.

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D126912
The file was modifiedbolt/docs/doxygen.cfg.in
Commit c4a90db72064cca70c51b9c49212fa54d34b02ba by i
[Clang][OpenMP] Add the codegen support for `atomic compare capture`

This patch adds the codegen support for `atomic compare capture` in clang.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D120290
The file was modifiedclang/include/clang/AST/StmtOpenMP.h
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/lib/AST/StmtOpenMP.cpp
The file was modifiedclang/test/OpenMP/atomic_compare_codegen.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
Commit b917433835473d5a9dff5b1034e861cf5dc9e5bc by i
[NFC][Doc] Finish atomic compare
The file was modifiedclang/docs/OpenMPSupport.rst
Commit e2142ff47c72cc083a8f5261875b30c29d3cf66a by aaupov
[BOLT][NFC] Make ICP::verifyProfile static

Follow LLVM style guide suggestion to avoid function definitions in anonymous
namespaces: https://llvm.org/docs/CodingStandards.html#anonymous-namespaces

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D124896
The file was modifiedbolt/lib/Passes/IndirectCallPromotion.cpp
Commit ee1cf1f64519c815025d962bdf9c9bb3d09d7699 by riddleriver
[mlir][NFC] Simplify the various `parseSourceFile<T>` overloads

These effectively all share the same implementation, i.e. forward
to the non-templated overload and then construct the container op.
The file was modifiedmlir/include/mlir/Parser/Parser.h