Changes

Summary

  1. [MachineCombine] add a hook for resource length limit (details)
  2. Fix strict aliasing warning in msan.cpp (details)
  3. Improve SmallPtrSetImpl::count implementation (details)
  4. [ASTMatchers] Force c++ unittests to specify correct language standard (details)
  5. [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:' (details)
  6. AArch64: materialize large stack offset into xzr correctly. (details)
  7. [llvm-readobj] - Improve error reporting for hash tables. (details)
  8. [StructurizeCFG] Fix region nodes ordering (details)
  9. [llvm-readelf] - Add explicit braces. NFC. (details)
  10. [llvm-readelf] - Add explicit braces again. NFC. (details)
  11. [DebugInfo] Separate fields with commas in headers of .debug_pub* tables (1/3). (details)
  12. [DebugInfo] Separate fields with commas in headers of compile units (2/3). (details)
  13. [DebugInfo] Separate fields with commas in headers of type units (3/3). (details)
Commit 2a24d350dbeacb131af91e8c438fed2bd81698c0 by czhengsz
[MachineCombine] add a hook for resource length limit
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/CodeGen/MachineCombiner.cpp
Commit af38074874c605f9e598ae3f7e5d4befa3fe92bb by sguelton
Fix strict aliasing warning in msan.cpp

Use internal_memcpy instead.

Differential Revision: https://reviews.llvm.org/D80732
The file was modifiedcompiler-rt/lib/msan/msan.cpp
Commit 11efb0837c897c709ae162eb5ebabb460fc537ff by sguelton
Improve SmallPtrSetImpl::count implementation

Relying on the find method implies a roundtrip to the iterator world, which is
not costless because iterator creation involves a few check to ensure the
iterator is in a valid position (through the SmallPtrSetIteratorImpl::AdvanceIfNotValid
method). It turns out that the result of SmallPtrSetImpl::find_imp is either
valid or the EndPointer, so there's no need to go through that abstraction,
and the compiler cannot guess it.

Differential Revision: https://reviews.llvm.org/D80708
The file was modifiedllvm/include/llvm/ADT/SmallPtrSet.h
Commit b6d23f2efc64c226d30094bcc4258e0b63029da8 by n.james93
[ASTMatchers] Force c++ unittests to specify correct language standard

Force the unittests on c++ code for matchers to specify the correct standard.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D80884
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTest.h
Commit 40a3fcb05c83c41862038277aa667c956e7cac82 by djordje.todorovic
[DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'

After the D70350, the retainedTypes: isn't being used for the purpose
of call site debug info for extern calls, so it is safe to delete it
from IR representation.
We are also adding a test to ensure the subprogram isn't stored within
the retainedTypes: from corresponding DICompileUnit.

Differential Revision: https://reviews.llvm.org/D80369
The file was modifiedclang/test/CodeGen/debug-info-extern-call.c
The file was modifiedclang/test/Modules/ModuleDebugInfo.cpp
The file was modifiedclang/test/Modules/ModuleDebugInfo.m
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/test/Modules/DebugInfoTransitiveImport.m
Commit dace8224f38a31636a02fe9c2af742222831f70c by Tim Northover
AArch64: materialize large stack offset into xzr correctly.

When a stack offset was too big to materialize in a single instruction, we were
trying to do it in stages:

    adds xD, sp, #imm
    adds xD, xD, #imm

Unfortunately, if xD is xzr then the second instruction doesn't exist and
wouldn't do what was needed if it did. Instead we can use a temporary register
for all but the last addition.
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was addedllvm/test/CodeGen/AArch64/large-stack-cmp.ll
Commit e75efcc3c1af068a145ea83deb0435b195a44162 by grimar
[llvm-readobj] - Improve error reporting for hash tables.

This improves the next points for broken hash tables:

1) Use reportUniqueWarning to prevent duplication when
   --hash-table and --elf-hash-histogram are used together.

2) Dump nbuckets and nchain fields. It is often possible
   to dump them even when the table itself goes past the EOF etc.

Differential revision: https://reviews.llvm.org/D80373
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-table.test
Commit 85c308804966e52a14bc98874a6cc6e42cbb1d40 by ehudkatz
[StructurizeCFG] Fix region nodes ordering

This is a reimplementation of the `orderNodes` function, as the old
implementation didn't take into account all cases.
The new implementation uses SCCs instead of Loops to take account of
irreducible loops.

Fix PR41509

Differential Revision: https://reviews.llvm.org/D79037
The file was addedllvm/test/Transforms/StructurizeCFG/nested-loop-subregion.ll
The file was addedllvm/test/Transforms/StructurizeCFG/interleaved-loop-order.ll
The file was modifiedllvm/lib/Transforms/Scalar/StructurizeCFG.cpp
Commit feee98645dde4be31a70cc6660d2fc4d4b9d32d8 by grimar
[llvm-readelf] - Add explicit braces. NFC.

Should fix the BB (http://lab.llvm.org:8011/builders/clang-ppc64le-rhel/builds/3907/steps/build%20stage%201/logs/stdio):

llvm-readobj/ELFDumper.cpp:4708:5: error: add explicit braces to avoid dangling else [-Werror,-Wdangling-else]
    else
    ^
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit b21f32fcecd012fa2c2f8c61d7259079a7f1865e by grimar
[llvm-readelf] - Add explicit braces again. NFC.

Partially reverts feee98645dde4be31a70cc6660d2fc4d4b9d32d8.

Add explicit braces to a different place to fix
"error: add explicit braces to avoid dangling else [-Werror,-Wdangling-else]"
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit 937403d68430cb59ff7ccba7b2a13b3a815c12fa by ikudrin
[DebugInfo] Separate fields with commas in headers of .debug_pub* tables (1/3).

For most tables, we already use commas in headers. This set of patches
unifies dumping the remaining ones.

Differential Revision: https://reviews.llvm.org/D80806
The file was modifiedllvm/test/DebugInfo/dwarfdump-pubnames.test
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp
The file was modifiedllvm/test/DebugInfo/X86/gnu-public-names-tu.ll
The file was modifiedllvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
The file was modifiedllvm/test/tools/dsymutil/ARM/obfuscated.test
The file was modifiedllvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test
The file was modifiedllvm/test/DebugInfo/X86/gnu-public-names.ll
The file was modifiedllvm/test/tools/dsymutil/X86/basic-linking-x86.test
The file was modifiedllvm/test/DebugInfo/X86/gnu-public-names-gmlt.ll
Commit 2a7af304823d4bb60efbbfea97d35030f0732748 by ikudrin
[DebugInfo] Separate fields with commas in headers of compile units (2/3).

For most tables, we already use commas in headers. This set of patches
unifies dumping the remaining ones.

Differential Revision: https://reviews.llvm.org/D80806
The file was modifiedllvm/test/DebugInfo/dwarfdump-zlib.test
The file was modifiedllvm/test/tools/dsymutil/X86/generate-empty-CU.test
The file was modifiedllvm/test/tools/dsymutil/X86/empty-CU.test
The file was modifiedllvm/test/tools/llvm-dwp/X86/simple.test
The file was modifiedllvm/test/tools/llvm-dwp/X86/info-v5.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-header-64.s
The file was modifiedllvm/test/DebugInfo/Generic/version.ll
The file was modifiedllvm/test/CodeGen/X86/dwarf-headers.ll
The file was modifiedllvm/test/tools/llvm-dwp/X86/dwos_list_from_exec_simple.test
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/debug_loclists_nouse.s
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-header.s
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/lookup.s
The file was modifiedllvm/test/MC/WebAssembly/dwarfdump.ll
The file was modifiedllvm/test/tools/llvm-dwp/X86/merge.test
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp
Commit cbec419b3ebba3fe5551540cfd3e484dfa253a3a by ikudrin
[DebugInfo] Separate fields with commas in headers of type units (3/3).

For most tables, we already use commas in headers. This set of patches
unifies dumping the remaining ones.

Differential Revision: https://reviews.llvm.org/D80806
The file was modifiedllvm/test/CodeGen/X86/dwarf-headers.ll
The file was modifiedllvm/test/tools/llvm-dwp/X86/type_dedup.test
The file was modifiedllvm/test/CodeGen/X86/dwarf-split-line-1.ll
The file was modifiedllvm/test/DebugInfo/typeunit-header.test
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-header.s
The file was modifiedllvm/test/DebugInfo/dwarfdump-type-units.test
The file was modifiedllvm/test/tools/llvm-dwp/X86/simple.test