SuccessChanges

Summary

  1. [docs] Replace "constexpr expressions" with "constant expressions". (details)
  2. [DAGCombiner] clean up merge of truncated stores; NFC (details)
  3. [InstCombine] canonicalize 'not' ops before logical shifts (details)
  4. Enable constexpr on ROTATELEFT/ROTATERIGHT builtin intrinsics (PR47249) (details)
  5. Enable constexpr on BITREVERSE builtin intrinsics (PR47249) (details)
  6. [LiveDebugValues] Install an implementation-picking LiveDebugValues pass (details)
  7. [gn build] Port 20bb9fe565a (details)
  8. Fix some builds after 20bb9fe565a (details)
  9. [X86] ia32intrin.h - pull out common attributes used in cast helpers into define. NFCI. (details)
  10. GlobalISel: Merge FewerElements for G_BUILD_VECTOR/G_CONCAT_VECTORS (details)
  11. [Polly] Fix use-after-free. (details)
  12. [Polly] Ensure consistent Scop::InstStmtMap. NFC. (details)
  13. [lldb] Extract reproducer providers & co into their own header. (details)
  14. [flang] Fix assert on bad character kind (details)
  15. [flang][msvc] Disambiguate injected class name. (details)
  16. [llvm-reduce] make llvm-reduce save the best reduction it has when it crashes (details)
  17. [LiveDebugValues] Add instruction-referencing LDV implementation (details)
  18. [gn build] Port ae6f7882403 (details)
  19. Move Py_buffer_RAII to .h file so SWIG 2 doesnt have to parse it (details)
  20. [LiveDebugValues] Delete unneeded copy constructor after D83047 (details)
  21. Follow-up build fix for rGae6f78824031 (details)
  22. [AArch64] add tests for store merge of truncs; NFC (details)
  23. [libunwind] Ensure enough alignment for unw_cursor_t for SEH build configurations (details)
  24. [flang][msvc] Split class declaration and constexpr variable definition. NFC. (details)
  25. [LLD][COFF] Reset outputSections for successive runs (details)
  26. Revert "[Polly] Ensure consistent Scop::InstStmtMap. NFC." (details)
  27. [DAGCombiner] add early exit for store merging of truncs (details)
  28. [llvm-dwarfdump] --statistics: break lines and indent by 2 (details)
  29. [DebugInfo][test] Fix dwarf-callsite-related-attrs.ll after llvm-dwarfdump --statistics change (details)
  30. [X86] Allow 32-bit mode only CPUs with -mtune on 64-bit targets (details)
  31. [libunwind] Make findUnwindSectionsByPhdr static (details)
  32. Use TranslateFromMLIRRegistration for SPIRV roundtrip (NFC) (details)
  33. Refactor `mlir-translate` to extract the `main()` logic in a helper on the model of `MlirOptMain()` (NFC) (details)
  34. Add a `dialect_registration` callback for "translations" registered with mlir-translate (details)
Commit 436a35a77313598eedad867a0f086aeb1b5b6eb2 by llvm-dev
[docs] Replace "constexpr expressions" with "constant expressions".

Based off comment from @rsmith on D86339
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 2fc7c852018ab0d59101f98a29bab7050596a0f0 by spatel
[DAGCombiner] clean up merge of truncated stores; NFC

This code handles the special-case of i8 stores,
but it could be generalized to deal with other types.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit ec06b381304140b2553cfdfae5a063f39c5c59ff by spatel
[InstCombine] canonicalize 'not' ops before logical shifts

This reverses the existing transform that would uniformly canonicalize any 'xor' after any shift. In the case of logical shifts, that turns a 'not' into an arbitrary 'xor' with constant, and that's probably not as good for analysis, SCEV, or codegen.

The SCEV motivating case is discussed in:
http://bugs.llvm.org/PR47136

There's an analysis motivating case at:
http://bugs.llvm.org/PR38781

I did draft a patch that would do the same for 'ashr' but that's questionable because it's just swapping the position of a 'not' and uncovers at least 2 missing folds that we would probably need to deal with as preliminary steps.

Alive proofs:
https://rise4fun.com/Alive/BBV

  Name: shift right of 'not'
  Pre: C2 == (-1 u>> C1)
  %a = lshr i8 %x, C1
  %r = xor i8 %a, C2
  =>
  %n = xor i8 %x, -1
  %r = lshr i8 %n, C1

  Name: shift left of 'not'
  Pre: C2 == (-1 << C1)
  %a = shl i8 %x, C1
  %r = xor i8 %a, C2
  =>
  %n = xor i8 %x, -1
  %r = shl i8 %n, C1

  Name: ashr of 'not'
  %a = ashr i8 %x, C1
  %r = xor i8 %a, -1
  =>
  %n = xor i8 %x, -1
  %r = ashr i8 %n, C1

Differential Revision: https://reviews.llvm.org/D86243
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/2010-11-01-lshr-mask.ll
The file was modifiedllvm/test/Transforms/InstCombine/and-xor-merge.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/compare-signs.ll
The file was modifiedllvm/test/Transforms/InstCombine/xor.ll
Commit 2ceac91ec0fc186ff503402e7b88e4576a69008d by llvm-dev
Enable constexpr on ROTATELEFT/ROTATERIGHT builtin intrinsics (PR47249)

This enables us to use the __builtin_rotateleft / __builtin_rotateright 8/16/32/64 intrinsics inside constexpr code.

Differential Revision: https://reviews.llvm.org/D86342
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/docs/LanguageExtensions.rst
The file was modifiedclang/test/Sema/constant-builtins-2.c
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit e7d9182a666a2a8f903bd330c82d7c623b783371 by llvm-dev
Enable constexpr on BITREVERSE builtin intrinsics (PR47249)

This enables us to use the __builtin_bitreverse 8/16/32/64 intrinsics inside constexpr code.

Differential Revision: https://reviews.llvm.org/D86339
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/test/Sema/constant-builtins-2.c
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/docs/LanguageExtensions.rst
Commit 20bb9fe565ab2c70b768d829d42bbbaea2be85cc by jeremy.morse
[LiveDebugValues] Install an implementation-picking LiveDebugValues pass

This patch renames the current LiveDebugValues class to "VarLocBasedLDV"
and removes the pass-registration code from it. It creates a separate
LiveDebugValues class that deals with pass registration and management,
that calls through to VarLocBasedLDV::ExtendRanges when
runOnMachineFunction is called. This is done through the "LDVImpl"
abstract class, so that a future patch can install the new
instruction-referencing LiveDebugValues implementation and have it
picked at runtime.

No functional change is intended, just shuffling responsibilities.

Differential Revision: https://reviews.llvm.org/D83046
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
The file was addedllvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
The file was addedllvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.h
Commit eeb46367720a56f06ac64fda6f60727ae8a5b5ea by llvmgnsyncbot
[gn build] Port 20bb9fe565a
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 2d9be9e31852866b21da93a04dba003099f21caa by jeremy.morse
Fix some builds after 20bb9fe565a

-Wsuggest-override indicates this VarLocBasedLDV method needs the
override keyword.
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
Commit 42b993d97d31d7810fa3c1f7f2e79f72baa02416 by llvm-dev
[X86] ia32intrin.h - pull out common attributes used in cast helpers into define. NFCI.
The file was modifiedclang/lib/Headers/ia32intrin.h
Commit 901e3317fe7c88405b232b090896ae0d111c8c93 by Matthew.Arsenault
GlobalISel: Merge FewerElements for G_BUILD_VECTOR/G_CONCAT_VECTORS

This switches from using G_EXTRACT in odd cases to widen with undef
and unmerge.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-phi.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smax.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sshlsat.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uaddo.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sext-inreg.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcmp.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.load.2d.d16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-smin.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umax.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ushlsat.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-intrinsic-round.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usubsat.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-uaddsat.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-usubo.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-build-vector.s16.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddsat.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubo.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fmaxnum.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fcos.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-umin.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fminnum.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fsin.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubsat.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ffloor.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fdiv.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddo.mir
Commit 6983741eaa84e76802feca9145e39293cc6d15b4 by llvm-project
[Polly] Fix use-after-free.

VirtualUse of type UseKind::Inter expects the definition of a
llvm::Value to be represented in another statement. In the bug report
that statement has been removed due to its domain being empty.
Scop::InstStmtMap for the llvm::Value's defintion still pointed to the
removed statement, which resulted in the use-after-free.

The defintion statement was removed by Simplify because it was
considered to not be reachable by other uses; trivially because it is
never executed due to its empty domain. However, no such thing happend
to the using statement using the value altough its domain is also empty.

Fix by always removing statements with empty domains in Simplify since
these are not properly analyzable. A UseKind::Inter should always have a
statement with its defintion due to LLVM's SSA form.
Scop::removeStmtNotInDomainMap() also removes statements with empty
domains but does so without considering the context as used by
Simplify's analyzes.

In another angle, InstStmtMap pointing to removed statements should not
happen either and ForwardOpTree would have bailed out if the llvm::Value
definition was not represented by a statement. This will be corrected in
a followup-commit.

This fixes llvm.org/PR47098
The file was addedpolly/test/Simplify/func-b320a7.ll
The file was modifiedpolly/include/polly/ScopInfo.h
The file was modifiedpolly/lib/Transform/Simplify.cpp
Commit 8e06bf6b3a2e8d25e56cd52dca0cf3ff1b37b5d1 by llvm-project
[Polly] Ensure consistent Scop::InstStmtMap. NFC.

InstStmtMap became inconsistent with ScopStmt::getInstructions() after
the statement's instructions is modified, e.g. by being considered
unused by the Simplify pass or being moved by ForwardOpTree.

Change ScopStmt::setInstructions() to also update its parent's
InstStmtMap. Also add assertions checking the consistency.
The file was modifiedpolly/include/polly/ScopInfo.h
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp
Commit bb894b97821a1c970ce0c3243aaebbfa94add15c by Jonas Devlieghere
[lldb] Extract reproducer providers & co into their own header.

Extract all the provider related logic from Reproducer.h and move it
into its own header ReproducerProvider.h. These classes are seeing most
of the development these days and this reorganization reduces
incremental compilation from ~520 to ~110 files when making changes to
the new header.
The file was addedlldb/source/Utility/ReproducerProvider.cpp
The file was modifiedlldb/unittests/Utility/ReproducerTest.cpp
The file was modifiedlldb/source/Core/IOHandler.cpp
The file was modifiedlldb/source/Host/common/Host.cpp
The file was modifiedlldb/source/Utility/CMakeLists.txt
The file was addedlldb/include/lldb/Utility/ReproducerProvider.h
The file was modifiedlldb/include/lldb/Core/IOHandler.h
The file was modifiedlldb/source/Utility/ProcessInfo.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
The file was modifiedlldb/include/lldb/Utility/Reproducer.h
The file was modifiedlldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
The file was modifiedlldb/source/API/SBReproducerPrivate.h
The file was modifiedlldb/source/Initialization/SystemInitializerCommon.cpp
The file was modifiedlldb/include/lldb/Utility/GDBRemote.h
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
The file was modifiedlldb/include/lldb/Utility/ProcessInfo.h
The file was modifiedlldb/source/Interpreter/CommandInterpreter.cpp
The file was modifiedlldb/source/Utility/Reproducer.cpp
Commit c0c3cafa2bdaaf878a6b544837073d3d92fbb797 by tkeith
[flang] Fix assert on bad character kind

When we report an error for a bad character kind, don't keep it in the
`DeclTypeSpec`. Otherwise there could be further problems. In this case,
`ComputeOffsets()` got an assertion error because we didn't recognize
`CHARACTER(*,8)` as needing a descriptor because of the bad kind.

Fixes https://bugs.llvm.org/show_bug.cgi?id=47173

Differential Revision: https://reviews.llvm.org/D86357
The file was modifiedflang/test/Semantics/kinds02.f90
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit 2aaa5a546ea016b8e2092ced1bd7147db51d483a by llvm-project
[flang][msvc] Disambiguate injected class name.

The identifier `Expr` within the scope of the Expr class (including its temple specializations) refers to the current template/instantiation (see https://en.cppreference.com/w/cpp/language/injected-class-name for details). The `MapTemplate` template expect a non-instantiated template as the first template argument, not the concrete instantiation of `Expr`.

At least msvc interprets `Expr` as the injected class name, whereas gcc and clang use the global `flang::evaluate::Expr` template. Disambiguate by explicitly using the namespace.

This patch is part of the series to [[ http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html | make flang compilable with MS Visual Studio ]].

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D85646
The file was modifiedflang/include/flang/Evaluate/expression.h
Commit 7fef40d83cbb1be376f58b5763cf362e517b5e8d by tyker
[llvm-reduce] make llvm-reduce save the best reduction it has when it crashes

This helps with both debugging llvm-reduce and sometimes getting usefull result even if llvm-reduce crashes

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D85996
The file was modifiedllvm/tools/llvm-reduce/deltas/Delta.cpp
The file was modifiedllvm/tools/llvm-reduce/llvm-reduce.cpp
Commit ae6f788240310e50f912f67353bc0a845a104d97 by jeremy.morse
[LiveDebugValues] Add instruction-referencing LDV implementation

This patch imports the instruction-referencing implementation of
LiveDebugValues proposed here:

  http://lists.llvm.org/pipermail/llvm-dev/2020-June/142368.html

The new implementation is unreachable in this patch, it's the next patch
that enables it behind a command line switch. Briefly, rather than
tracking variable locations by just their location as the 'VarLoc'
implementation does, this implementation does it by value:
* Each value defined in a function is numbered, and propagated through
   dataflow,
* Each DBG_VALUE reads a machine value number from a machine location,
* Variable _values_ are propagated through dataflow,
* Variable values are translated back into locations, DBG_VALUEs
   inserted to specify where those locations are.

The ultimate aim of this is to enable referring to variable values
throughout post-isel code, rather than locations. Those patches will
build on top of this new LiveDebugValues implementation in later patches
-- it can't be done with the VarLoc implementation as we don't have
value information, only locations.

Differential Revision: https://reviews.llvm.org/D83047
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.h
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was addedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Commit 21ad3c4738cb69bd2974a1d9d820b768024406da by llvmgnsyncbot
[gn build] Port ae6f7882403
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 5d8eedee917de2d39d1c485d07a30f8649bc6866 by antonio.afonso
Move Py_buffer_RAII to .h file so SWIG 2 doesnt have to parse it

`struct Py_buffer_RAII` definition uses explicit deleted functions which are not supported by SWIG 2 (only 3).
To get around this I moved this struct to an .h file that is included to avoid being parsed by swig.

Reviewed By: lawrence_danna

Differential Revision: https://reviews.llvm.org/D86381
The file was modifiedlldb/bindings/python/python-typemaps.swig
The file was addedlldb/bindings/python/python-typemaps.h
Commit 60bcec4eead73996877c389d439af337f186c3ae by maskray
[LiveDebugValues] Delete unneeded copy constructor after D83047

It will suppress the implicitly-declared copy assignment operator in C++20.
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Commit 93af37043b9c1a8ea47890ad2bcf277f9b36c47d by jeremy.morse
Follow-up build fix for rGae6f78824031

One of the bots objects to brace-initializing a tuple:

  http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/43595/steps/build%20stage%201/logs/stdio

As the tuple constructor is apparently explicit. Fall back to the (not
as pretty) explicit construction of a tuple. I'd thought this was
permitted behaviour; will investigate why this fails later.
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
Commit c1dc44f914e250979cf95dd486a3b87d2d692bd4 by spatel
[AArch64] add tests for store merge of truncs; NFC
The file was addedllvm/test/CodeGen/AArch64/merge-trunc-store.ll
Commit 542db87f1ac67087aeb5cf572b1f9744d482da69 by martin
[libunwind] Ensure enough alignment for unw_cursor_t for SEH build configurations

When built in SEH mode, UnwindCursor contains a CONTEXT struct,
which is aligned to 16 bytes in most configurations, causing the
whole UnwindCursor object to have 16 byte alignment.

This fixes backtraces using _Unwind_Backtrace on x86_64 mingw,
where an unw_cursor_t allocated on the stack was misaligned before.

This is an ABI break for this struct for this configuration, but very
few callers call libunwind directly (and even fewer directly allocate
an unw_cursor_t anyway).

Differential Revision: https://reviews.llvm.org/D86102
The file was modifiedlibunwind/src/UnwindCursor.hpp
The file was modifiedlibunwind/include/libunwind.h
Commit 207d4499dfab050b0535c7361527d3c37cf6488a by llvm-project
[flang][msvc] Split class declaration and constexpr variable definition. NFC.

Msvc has trouble defining a struct/class and defining a constexpr symbol in the same declarator. It reports the following error:
```
basic-parsers.h(809): error C2131: expression did not evaluate to a constant
basic-parsers.h(809): note: failure was caused by call of undefined function or one not declared 'constexpr'
basic-parsers.h(809): note: see usage of 'Fortran::parser::OkParser::OkParser'
```

Fix the msvc compilation by splitting the two definitions into two separate declarators.

This patch is part of the series to [[ http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html | make flang compilable with MS Visual Studio ]].

Reviewed By: DavidTruby, klausler

Differential Revision: https://reviews.llvm.org/D85937
The file was modifiedflang/lib/Parser/basic-parsers.h
The file was modifiedflang/lib/Parser/token-parsers.h
The file was modifiedflang/lib/Parser/expr-parsers.cpp
Commit 54f5a4ea4c859cf7f34f0d4955abc3a2f44bd0dc by martin
[LLD][COFF] Reset outputSections for successive runs

The global variable outputSections in the COFF writer was not
cleared between runs which caused successive calls to lld::coff::link
to generate invalid binaries. These binaries when loaded would result
in "invalid win32 applications" and/or "bad image" errors.

Differential Revision: https://reviews.llvm.org/D86401
The file was modifiedlld/COFF/Writer.cpp
Commit 8b14db636dec8afa904366a0d5499b80d7dc7034 by llvm-project
Revert "[Polly] Ensure consistent Scop::InstStmtMap. NFC."

This reverts commit 8e06bf6b3a2e8d25e56cd52dca0cf3ff1b37b5d1.

It broke the polly-x86_64-linux-test-suite and
aosp-O3-polly-before-vectorizer-unprofitable buildbots.
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp
The file was modifiedpolly/include/polly/ScopInfo.h
Commit 79cb289a95e5fee838c90cd029100393025029d2 by spatel
[DAGCombiner] add early exit for store merging of truncs

This should be NFC in terms of output because the endian
check further down would bail out too, but we are wasting
time by waiting to that point to give up. If we generalize
that function to deal with more than i8 types, we should
not have to deal with the degenerate case.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 481c3b8c941c8c9fb2003e8f1f691e3c7774083a by maskray
[llvm-dwarfdump] --statistics: break lines and indent by 2

so that the user does not have to pipe the output to `jq` or `python -m json.tool`.
This change makes testing more convenient because `-NEXT` patterns can be used.
The "prettify by default" is a good tradeoff to make. The output size increases a bit.

Differential Revision: https://reviews.llvm.org/D86318
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/stats-multiple-cu-same-name.ll
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/statistics-base-address.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/statistics.ll
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/stats-mulitple-cu-out-of-line.ll
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/stats-inlining-multi-cu.ll
The file was modifiedllvm/tools/llvm-dwarfdump/Statistics.cpp
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/stats-inlining-single-cu.ll
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/statistics-v3.test
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/statistics-dwo.test
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/stats-multiple-cu-members.ll
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/locstats.ll
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/stats-dbg-callsite-info.ll
Commit ba93844d114e3ad36a8ca22abc7fce8cb83c1cb8 by maskray
[DebugInfo][test] Fix dwarf-callsite-related-attrs.ll after llvm-dwarfdump --statistics change
The file was modifiedllvm/test/DebugInfo/X86/dwarf-callsite-related-attrs.ll
Commit cc7bf9bcbfbc8d8188d9fe540c2bc1aee23824af by craig.topper
[X86] Allow 32-bit mode only CPUs with -mtune on 64-bit targets

gcc errors on this, but I'm nervous that since -mtune has been
ignored by clang for so long that there may be code bases out
there that pass 32-bit cpus to clang.
The file was modifiedclang/lib/Basic/Targets.cpp
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c
The file was modifiedclang/lib/Basic/Targets/X86.cpp
The file was modifiedclang/include/clang/Basic/TargetInfo.h
The file was modifiedclang/test/Driver/x86-mtune.c
The file was modifiedclang/lib/Basic/Targets/X86.h
The file was modifiedllvm/include/llvm/Support/X86TargetParser.h
Commit 3c1b2e338dfdf4f305b1cb40e2ebcb93a7e470c3 by rprichard
[libunwind] Make findUnwindSectionsByPhdr static

Currently, this function is present in the dynsym table of
libunwind.so (on ELF targets). Make the function static instead.

In the previous release (LLVM 10.x), this function was instead a lambda
function inside LocalAddressSpace::findUnwindSections, and because
LocalAddressSpace was marked with _LIBUNWIND_HIDDEN, the lambda
function was also a hidden symbol.

Differential Revision: https://reviews.llvm.org/D86372
The file was modifiedlibunwind/src/AddressSpace.hpp
Commit 12541b5ed59d00c6a2ac90ccaf7aa8ff37d8d84b by joker.eph
Use TranslateFromMLIRRegistration for SPIRV roundtrip (NFC)

This is aligning it with the other "translation" which operates on a MLIR input.
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp
Commit 96cb8cdeb0f31201c14f87a883cecb7725a87b36 by joker.eph
Refactor `mlir-translate` to extract the `main()` logic in a helper on the model of `MlirOptMain()` (NFC)

Differential Revision: https://reviews.llvm.org/D86408
The file was modifiedmlir/lib/Translation/Translation.cpp
The file was modifiedmlir/tools/mlir-translate/mlir-translate.cpp
The file was modifiedmlir/include/mlir/Translation.h
Commit f164534ca8e042ab7bbc25516f88adf027ebe12d by joker.eph
Add a `dialect_registration` callback for "translations" registered with mlir-translate

This will allow out-of-tree translation to register the dialects they expect
to see in their input, on the model of getDependentDialects() for passes.

Differential Revision: https://reviews.llvm.org/D86409
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToNVVMIR.cpp
The file was modifiedmlir/lib/Target/LLVMIR/LLVMAVX512Intr.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp
The file was modifiedmlir/tools/mlir-translate/mlir-translate.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp
The file was modifiedmlir/include/mlir/Translation.h
The file was modifiedmlir/lib/Translation/Translation.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp