SuccessChanges

Summary

  1. [ASTImporter] Modifying ImportDeclContext(...) to ensure that we also handle the case when the FieldDecl is an ArrayType whose ElementType is a RecordDecl (details)
  2. [NFC][regalloc] Use reverse iterator ranges for improved readability (details)
  3. Don't build a StringLiteral expression with reference type when (details)
  4. [AArch64][GlobalISel] Make <4 x s16> G_ASHR and G_LSHR legal. (details)
  5. [mlir] Add tutorial index.md pages (details)
  6. [AArch64][GlobalISel] Add a post-legalize combine for lowering vector-immediate G_ASHR/G_LSHR. (details)
  7. [AArch64][GlobalISel] Merge selection of vector-vector G_ASHR/G_LSHR and support more cases. (details)
  8. Fix comment typos. NFC. (details)
  9. [lldb/test] Clean up version checking. (details)
  10. [llvm] Fix comment typos.  NFC. (details)
  11. [RISCV] Do not mandate scheduling for CSR instructions (details)
  12. [SimplifyCFG] Override options in default constructor (details)
  13. [MLIR][Affine][VectorOps] Utility to vectorize loop nest using strategy (details)
  14. [NewPM] Support -disable-simplify-libcall/-disable-builtin in NPM opt (details)
  15. [EarlyCSE] Handle masked loads and stores (details)
  16. [docs] Update ExtendingLLVM.rst (details)
  17. Add a "Trace" plug-in to LLDB to add process trace support in stages. (details)
  18. NFC: Add whitespace-changing revisions to .git-blame-ignore-revs (details)
  19. [libc++] Fix failures when running the test suite without RTTI (details)
Commit 6807f244fa67bb75ef09fb3db54743b5b358a7fa by shafik
[ASTImporter] Modifying ImportDeclContext(...) to ensure that we also handle the case when the FieldDecl is an ArrayType whose ElementType is a RecordDecl

When we fixed ImportDeclContext(...) in D71378 to make sure we complete each
FieldDecl of a RecordDecl when we are importing the definition we missed the
case where a FeildDecl was an ArrayType whose ElementType is a record.

This fix was motivated by a codegen crash during LLDB expression parsing. Since
we were not importing the definition we were crashing during layout which
required all the records be defined.

Differential Revision: https://reviews.llvm.org/D86660
The file was addedlldb/test/API/commands/expression/codegen-crash-import-def-arraytype-element/TestImportDefinitionArrayType.py
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was addedlldb/test/API/commands/expression/codegen-crash-import-def-arraytype-element/main.cpp
The file was addedlldb/test/API/commands/expression/codegen-crash-import-def-arraytype-element/Makefile
Commit 6a6b06f5262bb96523eceef4a42fe8e60ae2a630 by mtrofin
[NFC][regalloc] Use reverse iterator ranges for improved readability

Differential Revision: https://reviews.llvm.org/D88047
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp
Commit 0f6facca9701f6df87d13e55d70bd7111a0472aa by richard
Don't build a StringLiteral expression with reference type when
performing list-initialization of a char array reference from a braced
string literal of a smaller size.
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/test/CodeGenCXX/cxx0x-initializer-references.cpp
Commit 825203daae7ffea0326757fdbb819682dfbef4f9 by Amara Emerson
[AArch64][GlobalISel] Make <4 x s16> G_ASHR and G_LSHR legal.

Selection support for these is coming up.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-shift.mir
Commit 3a799deed72963d124cc9ab8141fb32976cfc846 by jpienaar
[mlir] Add tutorial index.md pages

Sets the content for the section entry pages Hugo side.

Differential Revision: https://reviews.llvm.org/D87969
The file was addedmlir/docs/Tutorials/Toy/_index.md
The file was addedmlir/docs/Tutorials/_index.md
The file was modifiedmlir/docs/Tutorials/Toy/Ch-2.md
The file was modifiedmlir/docs/Tutorials/Toy/Ch-1.md
Commit a513fdec90de6b0719e8dc4f079bbdd78eb9aaf1 by Amara Emerson
[AArch64][GlobalISel] Add a post-legalize combine for lowering vector-immediate G_ASHR/G_LSHR.

In order to select the immediate forms using the imported patterns, we need to
lower them into new G_VASHR/G_VLSHR target generic ops. Add a combine to do this
matching build_vector of constant operands.

With this, we get selection for free.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-vector-shift.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64Combine.td
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-vashr-vlshr.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrGISel.td
Commit e3f5046e44772d41632796389716930bafa96b74 by Amara Emerson
[AArch64][GlobalISel] Merge selection of vector-vector G_ASHR/G_LSHR and support more cases.

The vector-immediate cases are handled elsewhere in an earlier commit.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-vector-shift.mir
Commit ca8321574d62cdccc85cf222ae43e0b48c3dfe96 by kazu
Fix comment typos. NFC.
The file was modifiedllvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
The file was modifiedllvm/test/Analysis/BlockFrequencyInfo/irreducible.ll
Commit 307b7a1d665898d0e980461919996b6a670a4847 by rupprecht
[lldb/test] Clean up version checking.

A few fixes while trying to figure out why tests are being skipped for arsenm:

- We check `$compiler -v`, but `-v` is `--verbose`, not `--version`. Use the long flag name.
- We check all lines matching `version ...`, but we should exit early for the first version string we see (which should be the main one). I'm not sure if this is the issue, but perhaps this is causing some users to skip some tests if another "version ..." is showing up later.
- Having `\.` in a python string is triggering pylint warnings, because it should be escaped as a regex string, e.g. `r'\.' However, `.` in a character class does not need to be escaped, as it matches only a literal `.` in that context.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D88051
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 161159888b430dad90605563259cd28b1ad25b14 by kazu
[llvm] Fix comment typos.  NFC.
The file was modifiedllvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
Commit 394d02016705e4b0fdfaa34c53be695f3f61922d by ebahapo
[RISCV] Do not mandate scheduling for CSR instructions

Scheduling information is of little value when they may disrupt the
pipeline.  This patch allows omitting the scheduling information for CSR
instructions while still setting `SchedMachineModel::CompleteModel`.  For
specific cases, any scheduling information added will be used by the
scheduler.

Differential revision: https://reviews.llvm.org/D85366
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.td
Commit 1747f7776403626b23ef0389264643fe4d6bec17 by aeubanks
[SimplifyCFG] Override options in default constructor

SimplifyCFG's options should always be overridden by command line flags,
but they mistakenly weren't in the default constructor.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D87718
The file was modifiedllvm/include/llvm/Transforms/Scalar/SimplifyCFG.h
The file was modifiedllvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/HoistCode.ll
Commit 14d0735d3453fb6403da916d7aee6a9f25af4147 by diego.caballero
[MLIR][Affine][VectorOps] Utility to vectorize loop nest using strategy

This patch adds a utility based on SuperVectorizer to vectorize an
affine loop nest using a given vectorization strategy. This strategy allows
targeting specific loops for vectorization instead of relying of the
SuperVectorizer analysis to choose the right loops to vectorize.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D85869
The file was modifiedmlir/test/Dialect/Affine/SuperVectorize/vectorize_1d.mlir
The file was modifiedmlir/test/Dialect/Affine/SuperVectorize/vectorize_2d.mlir
The file was modifiedmlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
The file was modifiedmlir/include/mlir/Dialect/Affine/Utils.h
Commit 44b1643d17753fb2f35ef1d42420a4578bb8d55d by aeubanks
[NewPM] Support -disable-simplify-libcall/-disable-builtin in NPM opt

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D87932
The file was modifiedllvm/test/Transforms/InstCombine/disable-simplify-libcalls.ll
The file was modifiedllvm/tools/opt/NewPMDriver.cpp
The file was modifiedllvm/tools/opt/opt.cpp
The file was modifiedllvm/tools/opt/NewPMDriver.h
Commit ae3f54c1e909743a89d48a8a05e18d2c8fd652ba by kparzysz
[EarlyCSE] Handle masked loads and stores

Extend the handling of memory intrinsics to also include non-
target-specific intrinsics, in particular masked loads and stores.

Invent "isHandledNonTargetIntrinsic" to distinguish between intrin-
sics that should be handled natively from intrinsics that can be
passed to TTI.

Add code that handles masked loads and stores and update the
testcase to reflect the results.

Differential Revision: https://reviews.llvm.org/D87340
The file was modifiedllvm/test/Transforms/EarlyCSE/masked-intrinsics.ll
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/masked-intrinsics-unequal-masks.ll
Commit c82c0f99a5c12eabdfc099f6e24c789deff05f94 by ncv
[docs] Update ExtendingLLVM.rst

Updated file paths and function signatures in section
"Adding a new type".

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D88049
The file was modifiedllvm/docs/ExtendingLLVM.rst
Commit 74c93956e1c1f1054dfb040ce26830016e0f3095 by walter erquinigo
Add a "Trace" plug-in to LLDB to add process trace support in stages.

This is the first in a series of patches that will adds a new processor trace plug-in to LLDB.

The idea for this first patch to to add the plug-in interface with simple commands for the trace files that can "load" and "dump" the trace information. We can test the functionality and ensure people are happy with the way things are done and how things are organized before moving on to adding more functionality.

Processor trace information can be view in a few different ways:
- post mortem where a trace is saved off that can be viewed later in the debugger
- gathered while a process is running and allow the user to step back in time (with no variables, memory or registers) to see how each thread arrived at where it is currently stopped.

This patch attempts to start with the first solution of loading a trace file after the fact. The idea is that we will use a JSON file to load the trace information. JSON allows us to specify information about the trace like:
- plug-in name in LLDB
- path to trace file
- shared library load information so we can re-create a target and symbolicate the information in the trace
- any other info that the trace plug-in will need to be able to successfully parse the trace information
  - cpu type
  - version info
  - ???

A new "trace" command was added at the top level of the LLDB commmands:
- "trace load"
- "trace dump"

I did this because if we load trace information we don't need to have a process and we might end up creating a new target for the trace information that will become active. If anyone has any input on where this would be better suited, please let me know. Walter Erquinigo will end up filling in the Intel PT specific plug-in so that it works and is tested once we can agree that the direction of this patch is the correct one, so please feel free to chime in with ideas on comments!

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D85705
The file was modifiedlldb/include/lldb/lldb-forward.h
The file was modifiedlldb/source/Commands/Options.td
The file was addedlldb/test/API/commands/trace/TestTraceLoad.py
The file was addedlldb/test/API/commands/trace/intelpt-trace/a.out
The file was addedlldb/source/Plugins/Trace/CMakeLists.txt
The file was modifiedlldb/source/Target/CMakeLists.txt
The file was addedlldb/source/Target/Trace.cpp
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace_bad.json
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace_bad3.json
The file was addedlldb/test/API/commands/trace/TestTraceSchema.py
The file was addedlldb/source/Commands/CommandObjectTrace.cpp
The file was modifiedlldb/source/Core/PluginManager.cpp
The file was modifiedlldb/source/Plugins/CMakeLists.txt
The file was modifiedlldb/include/lldb/lldb-private-interfaces.h
The file was addedlldb/test/API/commands/trace/intelpt-trace/3842849.trace
The file was addedlldb/include/lldb/Target/TraceSettingsParser.h
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace.json
The file was addedlldb/source/Target/TraceSettingsParser.cpp
The file was addedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h
The file was modifiedlldb/source/Commands/CMakeLists.txt
The file was modifiedlldb/source/Utility/StructuredData.cpp
The file was modifiedlldb/include/lldb/Core/PluginManager.h
The file was addedlldb/source/Commands/CommandObjectTrace.h
The file was addedlldb/source/Plugins/Trace/intel-pt/CMakeLists.txt
The file was addedlldb/test/API/commands/trace/intelpt-trace/main.cpp
The file was addedlldb/include/lldb/Target/Trace.h
The file was addedlldb/test/API/commands/trace/intelpt-trace/trace_bad2.json
The file was modifiedlldb/source/Interpreter/CommandInterpreter.cpp
The file was addedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSettingsParser.cpp
The file was addedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.cpp
The file was addedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSettingsParser.h
Commit 8e4bb9e2d85794ef3e5e424caf1e16e797b41ea3 by Louis Dionne
NFC: Add whitespace-changing revisions to .git-blame-ignore-revs
The file was modified.git-blame-ignore-revs
Commit bb09ef959811ec4dc68f5a0b4bb6105a090c3919 by Louis Dionne
[libc++] Fix failures when running the test suite without RTTI
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.members/lt.pass.cpp
The file was removedlibcxx/test/support/demangle.h
The file was modifiedlibcxx/test/libcxx/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/move_reentrant.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
The file was modifiedlibcxx/include/any
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.overview/copy_assign.pass.cpp
The file was modifiedlibcxx/test/std/utilities/utility/utility.inplace/inplace.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.members/name.pass.cpp
The file was addedlibcxx/test/support/test.support/test_macros_header.exceptions.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/reset_pointer_deleter_allocator.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.targ/target_type.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/reset_pointer_deleter.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.hash/hash.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.rtti/type.info/type_info_hash.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.members/hash_code.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_allocator.pass.cpp
The file was modifiedlibcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_nullptr.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.obs/op_bool.pass.cpp
The file was removedlibcxx/test/support/test.support/test_macros_header_exceptions.fail.cpp
The file was modifiedlibcxx/test/std/language.support/support.rtti/type.info/type_info.pass.cpp
The file was modifiedlibcxx/test/support/type_id.h
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter.pass.cpp
The file was addedlibcxx/test/support/test.support/test_macros_header.no_exceptions.verify.cpp
The file was modifiedlibcxx/test/libcxx/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign_reentrant.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.cast/dynamic_pointer_cast.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.members/eq.pass.cpp
The file was modifiedlibcxx/test/libcxx/utilities/function.objects/func.blocks.sh.cpp
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.getdeleter/get_deleter.pass.cpp
The file was addedlibcxx/test/support/test.support/test_macros_header.no_rtti.verify.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.members/ctor.pass.cpp
The file was removedlibcxx/test/support/test.support/test_macros_header_rtti.fail.cpp
The file was modifiedlibcxx/test/support/test_macros.h
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp
The file was removedlibcxx/test/support/test.support/test_macros_header_rtti.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.pass.cpp
The file was modifiedlibcxx/test/std/utilities/type.index/type.index.overview/copy_ctor.pass.cpp
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
The file was modifiedlibcxx/test/support/experimental_any_helpers.h
The file was modifiedlibcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.targ/target.pass.cpp
The file was removedlibcxx/test/support/test.support/test_demangle.pass.cpp
The file was removedlibcxx/test/support/test.support/test_macros_header_exceptions.pass.cpp
The file was addedlibcxx/test/support/test.support/test_macros_header.rtti.pass.cpp

Summary

  1. [testsuite] Allow a (custom) linker to be specified. (details)
Commit f95eba922b0a1b07e2c68734c9cc7d6c1754d744 by ditaliano
[testsuite] Allow a (custom) linker to be specified.

Differential Revision:  https://reviews.llvm.org/D88061
The file was modifiedCMakeLists.txt (diff)