FailedChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [c++20] Implement P1946R0: allow defaulted comparisons to take their (details)
  2. [cxx_status] Re-add missing cell. (details)
  3. [SanitizerCommon] Reduce wasting memory in LowLevelAllocator. (details)
  4. [ELF] Move a computeIsPreemptible() pass into ICF. NFC (details)
  5. [LegalizeTypes] Remove manual worklist management from (details)
  6. [PowerPC] Exploitate the Vector Integer Average Instructions (details)
  7. [llvm-readobj] Fix/improve printing WinEH unwind info for linked PE (details)
  8. [Alignment][NFC] Introduce Align in SROA (details)
  9. [CodeComplete] Fix a crash in preferred type and signature help (details)
  10. [DWARF5][SplitDwarf] Set default state for -fsplit-dwarf-inlining to be (details)
  11. [llvm-readelf] - Do no print an empty symbol version as "<corrupt>" (details)
  12. [LiveRegUnits] Add phys_regs_and_masks iterator range (NFC). (details)
  13. [PowerPC] [CodeGen] Use MachineBranchProbabilityInfo in (details)
  14. [AArch64][SVE] Move TableGen class definitions for gather loads (NFC) (details)
  15. [clangd] Deduplicate refs from index for cross-file rename. (details)
  16. [MCRegInfo] Add sub_and_superregs_inclusive iterator range. (details)
  17. [NFC][PowerPC] Remove the dead conditions in the if(cond) (details)
  18. [ARM][TypePromotion] Enable by default (details)
  19. [NFC] Correct the example in the comments of JSON.h to avoid mislead (details)
  20. [lldb/DWARF] Add support for DW_AT_loclists_base&DW_FORM_loclistx (details)
  21. [ARM][MVE] Add intrinsics for immediate shifts. (reland) (details)
  22. [ARM][LowOverheadLoops] Remove dead loop update instructions. (details)
  23. [lldb][NFC] Cleanup includes in FormatManagerTests.cpp (details)
  24. [Clang] Pragma vectorize_width() implies vectorize(enable) (details)
  25. [PowerPC][NFC] add test case for lwa - loop ds form prep (details)
  26. [AArch64][SVE] Implement intrinsics for non-temporal loads & stores (details)
  27. [clang-tidy] Link shared library clangTidyOpenMPModule to library (details)
  28. [Analyzer][NFC] Iterator Checkers - Separate iterator modeling and the (details)
  29. [TableGen] Add bang-operators !getop and !setop. (details)
  30. Revert "Reland [AArch64][MachineOutliner] Return address signing for (details)
  31. [llvm-readobj][llvm-readelf] - Remove excessive empty lines when (details)
  32. [ARM][MVE] Factor out an IntrinsicMX multiclass. (details)
  33. gn build: Merge afb13afcf22 (details)
  34. CodeGen: Allow annotations on globals in non-zero address space (details)
  35. [SYCL] Add support for auxiliary triple specification to Frontend (details)
  36. [AArch64][SVE] Add DAG combine rules for gather loads and sext/zext (details)
  37. [lldb][NFC] Remove ClangExternalASTSourceCommon::g_TotalSizeOfMetadata (details)
  38. [Analyzer] Iterator Modeling: Print Container Data and Iterator (details)
  39. Rollback assumeAligned in MemorySanitizer (details)
  40. [lldb][NFC] Remove dead metadata code in ClangASTSourceProxy (details)
  41. [DebugInfo] Fix printing of DW_LNS_set_isa (details)
  42. [Alignment][NFC] Introduce Align in IRBuilder (details)
  43. [test][llvm-dwarfdump] Add missing testing for some --debug-* options (details)
  44. Removing an unused selection field from a diagnostic; NFC. (details)
  45. [AArch64] Teach Load/Store optimizier to rename store operands for (details)
  46. Revert "[AArch64][SVE] Implement intrinsics for non-temporal loads & (details)
  47. [lldb] Don't search the metadata map three times when retrieving (details)
  48. [LLD][ELF][AArch64][ARM] Add missing classof to patch sections. (details)
  49. [LLD][ELF][AArch64][ARM] When errata patching, round thunk size to 4KiB. (details)
  50. AMDGPU: Fix copy-pasted test name error (details)
  51. [Analyzer] Iterator Checkers: Replace `UnknownVal` in comparison result (details)
  52. Verifier: Check frame-pointer attribute values (details)
  53. [ARM][NFC] Change test to use CHECK-NEXT (details)
  54. [Support] Add TimeTraceScope constructor without detail arg (details)
  55. [Loop] Add isRotated method to Loop class. (details)
  56. [SystemZ] Fix 128-bit strict FMA expansion pre-z14 (details)
  57. [TableGen] Remove unused target intrinsic generation logic (details)
  58. [X86] Erase dead LEA instruction after converting it to MOV in (details)
  59. [SystemZ] Add llvm.minimum / llvm.maximum tests (details)
  60. [AArch64] Skip debug ops with regsOverlap in AArch64 LD/ST opt. (details)
  61. Don't run expect based tests remotely. (details)
  62. [DA] Improve dump to show source and sink of the dependence (details)
  63. update TestThreadStepOut.py to expect correct source line on arm64. (details)
  64. [ELF][AArch64] Rename --force-bti to -z force-bti and --pac-plt to -z (details)
  65. Remove TypeValidators (NFC in terms of the testsuite) (details)
  66. [OPENMP50]Add if clause in teams distribute simd directive. (details)
  67. [VFS] Extend virtual working directory test (details)
  68. [profile] Delete stale profile in test/profile/instrprof-set-filename.c, (details)
  69. [profile] Delete stale profiles in (details)
  70. [profile] Avoid allocating a page on the stack, NFC (details)
  71. [OPENMP50]Fix capturing of if condition in target parallel for simd (details)
  72. [SDAG] remove use restriction in isNegatibleForFree() when called from (details)
  73. [StringRef] Test all default characters in unit test (details)
  74. [AArch64] Be more careful to skip debug operands in LdSt Optimizier. (details)
  75. [VFS] Disable check for ../foo on Windows (details)
  76. Add intrinsics for unary narrowing operations (details)
  77. Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=Off builds after (details)
  78. [MergeFuncs] Remove incorrect attribute copying (details)
  79. [analyzer] CStringChecker: Improve warning messages. (details)
  80. [analyzer] CStringChecker: Fix overly eager assumption that memcmp args (details)
  81. [analyzer] LocalizationChecker: Fix a crash on synthesized accessor (details)
  82. [ValueTracking] Add tests for non-null check after load/store; NFC (details)
  83. [ValueTracking] Pointer is known nonnull after load/store (details)
  84. [analyzer] Escape symbols conjured into specific regions during a (details)
  85. [InstCombine] Optimize overflow check base on uadd.with.overflow result (details)
  86. [WebAssembly] Add new `export_name` clang attribute for controlling wasm (details)
  87. return-object-by-reference ("non trivial") xfail on arm64 in (details)
  88. [OpenMP] Introduce the OpenMP-IR-Builder (details)
  89. [ADT] Fix SmallDenseMap assertion with large InlineBuckets (details)
  90. [libc++] Add fuzzing tests for parts of <random>. (details)
  91. [LegalizeTypes] In SoftenFloatRes_FP_EXTEND, move the check for input (details)
  92. [TSan] Pacify flaky test on Darwin (details)
  93. [OPENMP50]Add if clause in teams distribute parallel for simd directive. (details)
  94. [libc++] Fix fuzzing unit tests with exceptions disabled. (details)
  95. Add resurrecting Type Validators to projects.rst (details)
  96. [libc++] Fix fuzzing tests with older GCC compilers. (details)
  97. [lldb][dotest] Improve libc++ detection (details)
  98. Revert "[SDAG] remove use restriction in isNegatibleForFree() when (details)
  99. Fix detection of __attribute__((may_alias)) to properly look through (details)
  100. [lldb][dotest] Add `#include <algorithm>` to libc++ detection (details)
  101. [lldb/Host] Use Host/Config.h for LibXML2 instead of a global define (details)
  102. Don't call export_symbols.py with duplicate libs (details)
  103. Suppress false-positive -Wuninitialized warnings in the constructor of a (details)
  104. [lldb/CMake] Simplify linking against curses (details)
  105. [lit] Improve formatting of error messages. NFC (details)
  106. [clang][clang-scan-deps] Aggregate the full dependency information. (details)
  107. [OpenMP] Use the OpenMP-IR-Builder (details)
  108. Revert "[DWARF] Allow cross-CU references of subprogram definitions" (details)
  109. Revert "[clang][clang-scan-deps] Aggregate the full dependency (details)
  110. [AArch64][x86] add tests for possible infinite loops in DAGCombiner; NFC (details)
  111. [analyzer] Do not cache out on some shared implicit AST nodes (details)
  112. [libc++] Require C++14 in all cases. (details)
  113. [libc++abi] Fix non-constant initialization of default terminate (details)
  114. gn build: (manually) merge d23c61490c (details)
  115. [Remarks][Driver] Ask for line tables when remarks are enabled (details)
  116. Rename TTI::getIntImmCost for instructions and intrinsics (details)
  117. [IR] Split out target specific intrinsic enums into separate headers (details)
  118. [AArch64][SVE] Add patterns for scalable vselect (details)
  119. [llvm][MIRVRegNamerUtils] Adding hashing on memoperands. (details)
  120. gn build: (manually) merge 5d986953c8b917bacfaa1f800fc1e242559f76be (details)
Commit ffe612922cb5aa2767c79d47a1b162811a08583f by richard
[c++20] Implement P1946R0: allow defaulted comparisons to take their
arguments by value.
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/CXX/class/class.compare/class.eq/p3.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/test/CXX/class/class.compare/class.compare.default/p1.cpp
The file was modifiedclang/www/cxx_status.html
Commit f7235ac1d3154d5cd82a9a6bfdfffd050e6f5d05 by richard
[cxx_status] Re-add missing cell.
The file was modifiedclang/www/cxx_status.html
Commit 3a713ae5fa64a0b2043bd6748b87d4ba7f7c2fce by ikudrin
[SanitizerCommon] Reduce wasting memory in LowLevelAllocator.
MmapOrDie allocates memory multiple to page size. LowLevelAllocator
should use all that memory for the internal buffer because there are
chances that subsequent requests may be small enough to fit in that
space.
Differential Revision: https://reviews.llvm.org/D71275
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp
Commit 6e513a53824ffd92765360023d9ef13bdf4c1c76 by maskray
[ELF] Move a computeIsPreemptible() pass into ICF. NFC
Address post-commit review for D71163.
Reviewed By: ruiu
Differential Revision: https://reviews.llvm.org/D71326
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/ICF.cpp
Commit d4345636e678ccab8a87b09cdad9129e54c23100 by craig.topper
[LegalizeTypes] Remove manual worklist management from
SoftenFloatRes_FP_EXTEND.
I think this is no longer needed. The system should take care of
legalizing any new nodes that are added. I think this might have been
needed prior to r371709 or r307053.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
Commit f99297176cd9507393b69029406080de01ae41c7 by qshanz
[PowerPC] Exploitate the Vector Integer Average Instructions
PowerPC has instruction to do the semantics of this piece of code:
vector int foo(vector int m, vector int n) {
return (m + n + 1) >> 1;
} This patch is adding the match rule to select it.
Differential Revision: https://reviews.llvm.org/D71002
The file was modifiedllvm/test/CodeGen/PowerPC/vavg.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrAltivec.td
Commit af39708c2d48beedc6721fe25676789cc6719f7b by martin
[llvm-readobj] Fix/improve printing WinEH unwind info for linked PE
images
ARMWinEHPrinter was already designed to handle linked PE images
(since d2941b43f40d), but resolving symbols didn't consistently take the
image base into account (as linked images seldom have a symbol table,
except for in MinGW setups).
Win64EHDumper wasn't really designed to handle linked images (it would
crash if executed on such a file), but a few concepts (getSymbol, taking
a virtual address instead of a relocation, and getSectionContaining for
finding the section containing a certain virtual address) can be
borrowed from ARMWinEHPrinter.
Adjust ARMWinEHPrinter to print the address of the exception handler
routine as a VA instead of an RVA, consistently with other addresses in
the same printout, and make Win64EHDumper print addresses similarly for
image cases.
Differential Revision: https://reviews.llvm.org/D71303
The file was modifiedllvm/tools/llvm-readobj/Win64EHDumper.cpp
The file was addedllvm/test/tools/llvm-readobj/COFF/unwind-x86_64-image.yaml
The file was addedllvm/test/tools/llvm-readobj/COFF/unwind-arm64-image.yaml
The file was addedllvm/test/tools/llvm-readobj/COFF/lit.local.cfg
The file was modifiedllvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
Commit 8a7c52bc22c93747d9c8742e92d6ffc1ae17ef6c by gchatelet
[Alignment][NFC] Introduce Align in SROA
Summary: This is patch is part of a series to introduce an Alignment
type. See this thread for context:
http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this
patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71277
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
Commit f7c8ace4a52acecff7cd6ab61cbeaf677da1dd86 by ibiryukov
[CodeComplete] Fix a crash in preferred type and signature help
Summary: Null type pointers could be dereferenced in some cases.
Reviewers: kadircet, sammccall
Reviewed By: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71329
The file was modifiedclang/unittests/Sema/CodeCompleteTest.cpp
The file was modifiedclang/lib/Parse/ParseExprCXX.cpp
Commit 21bc8958668a4dc21de8328ef856ddcf38a97da7 by a.v.lapshin
[DWARF5][SplitDwarf] Set default state for -fsplit-dwarf-inlining to be
false.
    The -fsplit-dwarf-inlining option does not conform to DWARF5
standard. It creates children for Skeleton compilation unit. We need
default behavior to be DWARF5 compatible. Thus set default state for
-fsplit-dwarf-inlining into "false".
Differential Revision: https://reviews.llvm.org/D71304
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Driver/split-debug.c
Commit 445c3fdd2ae8648cd79f98d3d72ff142b4c19792 by grimar
[llvm-readelf] - Do no print an empty symbol version as "<corrupt>"
It is discussed here https://reviews.llvm.org/D71118#inline-643172
Currently when a version is empty, llvm-readelf prints:
"000:   0 (*local*)       2 (<corrupt>)"
But GNU readelf does not treat empty section as corrupt. There is no
sense in having empty versions anyways it seems, but this change is for
consistency with GNU.
Differential revision: https://reviews.llvm.org/D71243
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/verneed-invalid.test
Commit 11f311875f092e59cac2936b54f922b968e615e3 by flo
[LiveRegUnits] Add phys_regs_and_masks iterator range (NFC).
This iterator range just includes physical registers and register masks,
which are interesting when dealing with register liveness.
Reviewers: evandro, t.p.northover, paquette, MatzeB, arsenm
Reviewed By: paquette
Differential Revision: https://reviews.llvm.org/D70562
The file was modifiedllvm/include/llvm/CodeGen/LiveRegUnits.h
The file was modifiedllvm/lib/CodeGen/LivePhysRegs.cpp
The file was modifiedllvm/lib/CodeGen/LiveRegUnits.cpp
Commit 1408e7e17525287c596a8f575957aecb684fa75d by shkzhang
[PowerPC] [CodeGen] Use MachineBranchProbabilityInfo in
EarlyIfPredicator to avoid the potential bug
Summary: In the function `EarlyIfPredicator::shouldConvertIf()`, we call
`TII->isProfitableToIfCvt()` with `BranchProbability::getUnknown()`, it
may cause the potential assertion error for those hook which use
`BranchProbability` in `isProfitableToIfCvt()`, for example `SystemZ`.
`SystemZ` use `Probability < BranchProbability(1, 8))` in the function
`SystemZInstrInfo::isProfitableToIfCvt()`, if we call this function with
`BranchProbability::getUnknown()`, it will cause assertion error.
This patch is to fix the potential bug.
Reviewed By: ThomasRaoux
Differential Revision: https://reviews.llvm.org/D71273
The file was modifiedllvm/lib/CodeGen/EarlyIfConversion.cpp
Commit 1eecbda0872832da936d37c4288eaaa2645a7415 by andrzej.warzynski
[AArch64][SVE] Move TableGen class definitions for gather loads (NFC)
Move 2 intrinsic class definitions so that they're all clustered in one
place.
Patch submitted to test commit access.
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
Commit f0004aad5565d4b76d41a03549c5a80efc4212c7 by hokein.wu
[clangd] Deduplicate refs from index for cross-file rename.
Summary: If the index returns duplicated refs, it will trigger the
assertion in BuildRenameEdit (we expect the processing position is
always larger the the previous one, but it is not true if we have
duplication), and also breaks our heuristics.
This patch make the code robost enough to handle duplications, also save
some cost of redundnat llvm::sort.
Though clangd's index doesn't return duplications, our internal index
kythe will.
Reviewers: ilya-biryukov
Subscribers: MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95,
cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71300
The file was modifiedclang-tools-extra/clangd/refactor/Rename.cpp
The file was modifiedclang-tools-extra/clangd/unittests/RenameTests.cpp
The file was modifiedclang-tools-extra/clangd/refactor/Rename.h
Commit b48b4ed1a0bd81531d3aeb4e719b273751548a34 by flo
[MCRegInfo] Add sub_and_superregs_inclusive iterator range.
Reviewers: evandro, qcolombet, paquette, MatzeB, arsenm
Reviewed By: paquette
Differential Revision: https://reviews.llvm.org/D70566
The file was modifiedllvm/include/llvm/MC/MCRegisterInfo.h
Commit eba7cbd3d06b3a84a72dcb6601a667a095c32664 by qshanz
[NFC][PowerPC] Remove the dead conditions in the if(cond)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit ee7579409b7d940c4e1314d126e900db30c4edff by sam.parker
[ARM][TypePromotion] Enable by default
Enable the TypePromotion pass my default (again).
This patch was originally committed in 393dacacf7e7. This patch was
reverted in a38396939c54.
Differential Revision: https://reviews.llvm.org/D70998
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/switch.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/wrapping.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/icmps.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/clear-structures.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/signed-icmps.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/pointers.ll
The file was modifiedllvm/lib/CodeGen/TypePromotion.cpp
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/calls.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/casts.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/phis-ret.ll
The file was modifiedllvm/test/Transforms/TypePromotion/ARM/signed.ll
Commit 46822083ef9f03ceb26db80410e47f23aa9bd7ae by qshanz
[NFC] Correct the example in the comments of JSON.h to avoid mislead
user
The file was modifiedllvm/include/llvm/Support/JSON.h
Commit c8b74ee264a943aad29fd0864c610ba5504f73a8 by pavel
[lldb/DWARF] Add support for DW_AT_loclists_base&DW_FORM_loclistx
Summary: This adds support for DWARF5 location lists which are specified
indirectly, via an index into the debug_loclists offset table. This
includes parsing the DW_AT_loclists_base attribute which determines the
location of this offset table, and support for new form DW_FORM_loclistx
which is used in conjuction with DW_AT_location to refer to the location
lists in this way.
The code uses the llvm class to parse the offset information, and I've
also tried to structure it similarly to how the relevant llvm
functionality works.
Reviewers: JDevlieghere, aprantl, clayborg
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D71268
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
The file was addedlldb/test/Shell/SymbolFile/DWARF/DW_AT_loclists_base.s
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Commit bd0f271c9e55ab69b45258e4922869099ed18307 by simon.tatham
[ARM][MVE] Add intrinsics for immediate shifts. (reland)
This adds the family of `vshlq_n` and `vshrq_n` ACLE intrinsics, which
shift every lane of a vector left or right by a compile-time immediate.
They mostly work by expanding to the IR `shl`, `lshr` and
`ashr` operations, with their second operand being a vector splat of the
immediate.
There's a fiddly special case, though. ACLE specifies that the immediate
in `vshrq_n` can take values up to //and including// the bit size of the
vector lane. But LLVM IR thinks that shifting right by the full size of
the lane is UB, and feels free to replace the `lshr` with an `undef`
half way through the optimization pipeline. Hence, to keep this legal in
source code, I have to detect it at codegen time. Logical (unsigned)
right shifts by the element size are handled by simply emitting the zero
vector; arithmetic ones are converted into a shift of one bit less,
which will always give the same output.
In order to do that check, I also had to enhance the tablegen MveEmitter
so that it can cope with converting a builtin function's operand into a
bare integer to pass to a code-generating subfunction. Previously the
only bare integers it knew how to handle were flags generated from
within `arm_mve.td`.
Reviewers: dmgreen, miyuki, MarkMurrayARM, ostannard
Reviewed By: dmgreen, MarkMurrayARM
Subscribers: echristo, hokein, rdhindsa, kristof.beyls, hiraditya,
cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D71065
The file was modifiedclang/include/clang/Basic/arm_mve_defs.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsARM.td
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was modifiedclang/utils/TableGen/MveEmitter.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/include/clang/Basic/arm_mve.td
The file was addedllvm/test/CodeGen/Thumb2/mve-intrinsics/vector-shift-imm.ll
The file was addedclang/test/CodeGen/arm-mve-intrinsics/vector-shift-imm.c
Commit d97cf1f88902026b6ebe7fb9d844a285c3b113c5 by sjoerd.meijer
[ARM][LowOverheadLoops] Remove dead loop update instructions.
After creating a low-overhead loop, the loop update instruction was
still lingering around hurting performance. This removes dead loop
update instructions, which in our case are mostly SUBS instructions.
To support this, some helper functions were added to MachineLoopUtils
and ReachingDefAnalysis to analyse live-ins of loop exit blocks and find
uses before a particular loop instruction, respectively.
This is a first version that removes a SUBS instruction when there are
no other uses inside and outside the loop block, but there are some more
interesting cases in
test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll which shows
that there is room for improvement. For example, we can't handle this
case yet:
    ..
   dlstp.32  lr, r2
.LBB0_1:
   mov r3, r2
   subs  r2, #4
   vldrh.u32 q2, [r1], #8
   vmov  q1, q0
   vmla.u32  q0, q2, r0
   letp  lr, .LBB0_1
@ %bb.2:
   vctp.32 r3
   ..
which is a lot more tricky because r2 is not only used by the subs, but
also by the mov to r3, which is used outside the low-overhead loop by
the vctp instruction, and that requires a bit of a different approach,
and I will follow up on this.
Differential Revision: https://reviews.llvm.org/D71007
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
The file was modifiedllvm/lib/CodeGen/MachineLoopUtils.cpp
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update2.mir
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/vector-arith-codegen.ll
The file was modifiedllvm/include/llvm/CodeGen/ReachingDefAnalysis.h
The file was modifiedllvm/lib/CodeGen/ReachingDefAnalysis.cpp
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update3.mir
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
The file was modifiedllvm/include/llvm/CodeGen/MachineLoopUtils.h
Commit 987e7323fb53f968d5878483610fcf2319cdde86 by Raphael Isemann
[lldb][NFC] Cleanup includes in FormatManagerTests.cpp
The file was modifiedlldb/unittests/DataFormatter/FormatManagerTests.cpp
Commit 021685491727e023aeae9ca272a2d6cd727e20e4 by sjoerd.meijer
[Clang] Pragma vectorize_width() implies vectorize(enable)
Let's try this again; this has been reverted/recommited a few times.
Last time this got reverted because for this loop:
  void a() {
   #pragma clang loop vectorize(disable)
   for (;;)
     ;
}
vectorisation was incorrectly enabled and the vectorize.enable metadata
was set due to a logic error. But with this fixed, we now imply
vectorisation when:
1) vectorisation is enabled, which means: VectorizeWidth > 1, 2) and
don't want to add it when it is disabled or enabled, otherwise we would
  be incorrectly setting it or duplicating the metadata, respectively.
This should fix PR27643.
Differential Revision: https://reviews.llvm.org/D69628
The file was addedclang/test/CodeGenCXX/pragma-loop-pr27643.cpp
The file was modifiedclang/lib/CodeGen/CGLoopInfo.cpp
The file was modifiedclang/test/CodeGenCXX/pragma-loop.cpp
Commit bf4580b7e740a9deeba2608e4c2772181f33a67b by czhengsz
[PowerPC][NFC] add test case for lwa - loop ds form prep
The file was modifiedllvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll
Commit 3f5bf35f868d1e33cd02a5825d33ed4675be8cb1 by kerry.mclaughlin
[AArch64][SVE] Implement intrinsics for non-temporal loads & stores
Summary: Adds the following intrinsics:
- llvm.aarch64.sve.ldnt1
- llvm.aarch64.sve.stnt1
This patch creates masked loads and stores with the MONonTemporal flag
set when used with the intrinsics above.
Reviewers: sdesmalen, paulwalker-arm, dancgr, mgudim, efriedma, rengolin
Reviewed By: efriedma
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl,
cfe-commits, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71000
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
The file was addedllvm/test/CodeGen/AArch64/sve-intrinsics-stores.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Commit 170ee645f4d147103f93927c37a304c759c669dd by adam.balogh
[clang-tidy] Link shared library clangTidyOpenMPModule to library
LLVMFrontendOpenMP
Building shared libs was broken, it is fixed now.
The file was modifiedclang-tools-extra/clang-tidy/openmp/CMakeLists.txt
Commit afb13afcf2232c81fe8097832e5b6a2bde6bb3a5 by adam.balogh
[Analyzer][NFC] Iterator Checkers - Separate iterator modeling and the
actual checkers
A monolithic checker class is hard to maintain. This patch splits it up
into a modeling part, the three checkers and a debug checker. The common
functions are moved into a library.
Differential Revision: https://reviews.llvm.org/D70320
The file was addedclang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp
The file was removedclang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/Iterator.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/Iterator.h
The file was addedclang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
Commit 1fed9a0c0c3e74c21dfbd1edf18411a33b742f52 by simon.tatham
[TableGen] Add bang-operators !getop and !setop.
Summary: These allow you to get and set the operator of a dag node,
without affecting its list of arguments.
`!getop` is slightly fiddly because in many contexts you need its return
value to have a static type more specific than 'any record'. It works to
say `!cast<BaseClass>(!getop(...))`, but it's cumbersome, so I made
`!getop` take an optional type suffix itself, so that can be written as
the shorter `!getop<BaseClass>(...)`.
Reviewers: hfinkel, nhaehnle
Reviewed By: nhaehnle
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71191
The file was modifiedllvm/docs/TableGen/LangIntro.rst
The file was modifiedllvm/lib/TableGen/Record.cpp
The file was modifiedllvm/docs/TableGen/LangRef.rst
The file was modifiedllvm/lib/TableGen/TGLexer.h
The file was addedllvm/test/TableGen/getsetop.td
The file was modifiedllvm/lib/TableGen/TGParser.cpp
The file was modifiedllvm/lib/TableGen/TGLexer.cpp
The file was modifiedllvm/include/llvm/TableGen/Record.h
Commit 6ae3d310bd94a338f2c121b19e7995dc72ca46dc by oliver.stannard
Revert "Reland [AArch64][MachineOutliner] Return address signing for
outlined functions"
This reverts commit cec2d5c17457722113580251c8a045fa9aca9b1b.
Reverting because this is still creating outlined functions with return
address signing instructions with mismatches SP values. For example:
  int *volatile v;
  void foo(int x) {
   int a[x];
   v = &a[0];
   v = &a[0];
   v = &a[0];
   v = &a[0];
   v = &a[0];
   v = &a[0];
}
  void bar(int x) {
   int a[x];
   v = 0;
   v = &a[0];
   v = &a[0];
   v = &a[0];
   v = &a[0];
   v = &a[0];
}
This generates these two outlined functions, both of which modify SP
between the paciasp and retaa instructions:
  $ clang --target=aarch64-arm-none-eabi -march=armv8.3-a -c test2.c -o
- -S -Oz -mbranch-protection=pac-ret+leaf
...
OUTLINED_FUNCTION_0:                    // @OUTLINED_FUNCTION_0
         .cfi_sections .debug_frame
         .cfi_startproc
// %bb.0:
         paciasp
         .cfi_negate_ra_state
         mov     w8, w0
         lsl     x8, x8, #2
         add     x8, x8, #15             // =15
         mov     x9, sp
         and     x8, x8, #0x7fffffff0
         sub     x8, x9, x8
         mov     x29, sp
         mov     sp, x8
         adrp    x9, v
         retaa
...
OUTLINED_FUNCTION_1:                    // @OUTLINED_FUNCTION_1
         .cfi_startproc
// %bb.0:
         paciasp
         .cfi_negate_ra_state
         str     x8, [x9, :lo12:v]
         str     x8, [x9, :lo12:v]
         str     x8, [x9, :lo12:v]
         str     x8, [x9, :lo12:v]
         str     x8, [x9, :lo12:v]
         mov     sp, x29
         retaa
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-diff-scope-same-key.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-regsave.mir
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-thunk.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-diff-key.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-same-key-b.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-subtarget.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-non-leaf.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-v8-3.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-same-scope-same-key-a.ll
The file was removedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-sp-mod.mir
Commit 9a5c849991fd4088b90c56cb402e6e9fa6e9141d by grimar
[llvm-readobj][llvm-readelf] - Remove excessive empty lines when
reporting errors and warnings.
After recent changes it is now seems possible to get rid of printing
'\n' before each error and warning. This makes the output cleaner.
Differential revision: https://reviews.llvm.org/D71246
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dependent-libraries.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/versym-invalid.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/verdef-invalid.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/addrsig.test
The file was modifiedllvm/tools/llvm-readobj/llvm-readobj.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/broken-dynamic-reloc-name.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/linker-options.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/invalid-shstrndx.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/verneed-invalid.test
Commit d290424731ede31fd5fd75b929df8fe0adb547c7 by simon.tatham
[ARM][MVE] Factor out an IntrinsicMX multiclass.
Summary: The ACLE intrinsics for MVE contain a lot of pairs of functions
with
`_m` and `_x` in the name, wrapping a predicated MVE instruction which
only partially overwrites its output register. They have the common
pattern that the `_m` variant takes an initial argument called
'inactive', of the same type as the return value, supplying the input
value of the output register, so that lanes disabled by the predication
will be taken from that parameter; the `_x` variant omits that initial
argument, and simply sets it to undef.
That common pattern is simple enough to wrap into a multiclass, which
should save a lot of effort in setting up all the rest of the `_x`
variants. In this commit I introduce `multiclass IntrinsicMX` in
`arm_mve_defs.td`, and convert existing generation of m/x pairs to use
it.
This allows me to remove the `PredicatedImmediateVectorShift` multiclass
(from D71065) completely, because the new multiclass makes it so much
simpler that it's not worth bothering to define it at all.
Reviewers: MarkMurrayARM, miyuki
Reviewed By: MarkMurrayARM, miyuki
Subscribers: kristof.beyls, dmgreen, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71335
The file was modifiedclang/include/clang/Basic/arm_mve.td
The file was modifiedclang/include/clang/Basic/arm_mve_defs.td
Commit 5ceb36b21248273b774d88bc7eff56cde252aceb by llvmgnsyncbot
gn build: Merge afb13afcf22
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
Commit f21c081b78ec7a83a79137c65edd58874b262761 by nhaehnle
CodeGen: Allow annotations on globals in non-zero address space
Summary: Attribute annotations are recorded in a special global
composite variable that points to annotation strings and the annotated
objects.
As a restriction of the LLVM IR type system, those pointers are all
pointers to address space 0, so let's insert an addrspacecast when the
annotated global is in a non-0 address space.
Since this addrspacecast is only reachable from the global annotations
object, this should allow us to represent annotations on all globals
regardless of which addrspacecasts are usually legal for the target.
Reviewers: rjmccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71208
The file was modifiedclang/test/CodeGen/annotations-global.c
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
Commit cb30ad728f0b7666691c72a6a1399f36ebc60ad5 by alexey.bader
[SYCL] Add support for auxiliary triple specification to Frontend
Summary: Add host predefined macros to compilation for SYCL device,
which is required for pre-processing host specific includes (e.g. system
headers).
Reviewers: ABataev, jdoerfert
Subscribers: ebevhan, Anastasia, cfe-commits, keryell, Naghasan,
Fznamznon
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71286
Signed-off-by: Alexey Bader <alexey.bader@intel.com>
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was addedclang/test/Frontend/sycl-aux-triple.cpp
The file was modifiedclang/lib/Frontend/InitPreprocessor.cpp
Commit 65651f197a2c5a7b62f67619c169d2af616a81c6 by andrzej.warzynski
[AArch64][SVE] Add DAG combine rules for gather loads and sext/zext
Summary: These changes allow us to support sign-extending gather loads
with the exisiting intrinsics (i.e. @llvm.aarch64.sve.ld1.gather.*).
Reviewers: sdesmalen, huntergr, kmclaughlin, efriedma, rengolin, rovka,
dancgr, mgudim
Reviewed By: sdesmalen
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl,
llvm-commits
Tags: #llvm
Differential revision: https://reviews.llvm.org/D70812
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-32bit-scaled-offsets.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-32bit-unscaled-offsets.ll
The file was addedllvm/test/CodeGen/AArch64/sve-gather-scatter-dag-combine.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-64bit-unscaled-offset.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-vector-base.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-64bit-scaled-offset.ll
Commit 3bf8558fbb2f3e9348bf1f5aafb64d8095ad6420 by Raphael Isemann
[lldb][NFC] Remove ClangExternalASTSourceCommon::g_TotalSizeOfMetadata
Turns out this counter is doing literally nothing beside counting.
The file was modifiedlldb/source/Symbol/ClangExternalASTSourceCommon.cpp
Commit 6e9c58946eeeebfe8eed7308a3b57611e225ad67 by adam.balogh
[Analyzer] Iterator Modeling: Print Container Data and Iterator
Positions when printing the Program State
Debugging the Iterator Modeling checker or any of the iterator checkers
is difficult without being able to see the relations between the
iterator variables and their abstract positions, as well as the abstract
symbols denoting the begin and the end of the container.
This patch adds the checker-specific part of the Program State printing
to the Iterator Modeling checker.
The file was modifiedclang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
The file was modifiedclang/test/Analysis/iterator-modelling.cpp
Commit 3491109587146c987e5f2530cbbf609543c53206 by gchatelet
Rollback assumeAligned in MemorySanitizer
Summary: Rollback of parts of D71213. After digging more into the code I
think we should leave 0 when creating the instructions (CreateMemcpy,
CreateMaskedStore, CreateMaskedLoad). It's probably fine for
MemorySanitizer because Alignement is resolved but I'm having a hard
time convincing myself it has no impact at all (although tests are
passing).
Reviewers: courbet
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71332
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Commit f95ef6a548211ffa6723e4ec923d37359a3bb9e1 by Raphael Isemann
[lldb][NFC] Remove dead metadata code in ClangASTSourceProxy
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
Commit 2f8155023ad49ca88151d954c1a6d6069b072ca3 by jh7370
[DebugInfo] Fix printing of DW_LNS_set_isa
The Isa register is a uint8_t, but at least on Windows this is
internally an unsigned char, which meant that prior to this patch it got
formatted as an ASCII character, rather than a decimal number. This
patch fixes this by casting it to a uint64_t before printing. I did it
this way instead of using a uint8_t formatter because a) it is simpler,
and b) it allows us to change the internal type of Isa in the future
without this code breaking.
I also took the opportunity to test the printing of the other standard
opcodes.
Reviewed by: probinson
Differential Revision: https://reviews.llvm.org/D71274
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
Commit 0a0d54b3579146bec66267a456059dae1b851889 by gchatelet
[Alignment][NFC] Introduce Align in IRBuilder
Summary: This is patch is part of a series to introduce an Alignment
type. See this thread for context:
http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this
patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71343
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
Commit 5224feb7caeec9c7dcf511004856f9a0b770b532 by jh7370
[test][llvm-dwarfdump] Add missing testing for some --debug-* options
A number of the --debug-* options in llvm-dwarfdump are not particularly
well tested. In some cases, the option is only tested as part of testing
another feature, or a specific part of the section that the options
dump. This change adds four new tests to address some of these holes. It
is not aiming to address every hole however.
I kept the --debug-line switch test separate to X86/brief.s because the
latter only considers the parts of the line table that are affected by
verbose printing, thus missing out things like the header and different
values for things like the Line, Column etc registers.
Reviewed by: JDevlieghere
Differential Revision: https://reviews.llvm.org/D71276
The file was addedllvm/test/tools/llvm-dwarfdump/X86/debug-line.s
The file was addedllvm/test/tools/llvm-dwarfdump/debug-frame-dumps-eh-frame-and-debug-frame.yaml
The file was addedllvm/test/tools/llvm-dwarfdump/debug-str.yaml
The file was addedllvm/test/tools/llvm-dwarfdump/X86/debug-abbrev.s
Commit bb9254c00757ec376cde435676d27b14ee0c582f by aaron
Removing an unused selection field from a diagnostic; NFC.
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
Commit 17554b89617e084848784dfd9ac58e2718d8f8f7 by flo
[AArch64] Teach Load/Store optimizier to rename store operands for
pairing.
In some cases, we can rename a store operand, in order to enable pairing
of stores.  For store pairs, that cannot be merged because the first
tored register is defined in between the second store, we try to find
suitable rename register.
First, we check if we can rename the given register:
1. The first store register must be killed at the store, which means we
  do not have to rename instructions after the first store. 2. We scan
backwards from the first store, to find the definition of the
  stored register and check all uses in between are renamable. Along
  they way, we collect the minimal register classes of the uses for
  overlapping (sub/super)registers.
Second, we try to find an available register from the minimal physical
register class of the original register. A suitable register must not be
1. defined before FirstMI 2. between the previous definition of the
register to rename 3. a callee saved register.
We use KILL flags to clear defined registers while scanning from the
beginning to the end of the block.
This triggers quite often, here are the top changes for MultiSource,
SPEC2000, SPEC2006 compiled with -O3 for iOS:
Metric: aarch64-ldst-opt.NumPairCreated
Program                                        base     patch    diff
test-suite...nch/fourinarow/fourinarow.test     2.00    39.00   1850.0%
test-suite...s/ASC_Sequoia/IRSmk/IRSmk.test    46.00    80.00   73.9%
test-suite...chmarks/Olden/power/power.test    70.00    96.00   37.1%
test-suite...cations/hexxagon/hexxagon.test    29.00    39.00   34.5%
test-suite...nchmarks/McCat/05-eks/eks.test   100.00   132.00   32.0%
test-suite.../Trimaran/enc-rc4/enc-rc4.test    46.00    59.00   28.3%
test-suite...T2006/473.astar/473.astar.test   160.00   200.00   25.0%
test-suite.../Trimaran/enc-md5/enc-md5.test     8.00    10.00   25.0%
test-suite...telecomm-gsm/telecomm-gsm.test   113.00   139.00   23.0%
test-suite...ediabench/gsm/toast/toast.test   113.00   139.00   23.0%
test-suite...Source/Benchmarks/sim/sim.test    91.00   111.00   22.0%
test-suite...C/CFP2000/179.art/179.art.test    41.00    49.00   19.5%
test-suite...peg2/mpeg2dec/mpeg2decode.test   245.00   279.00   13.9%
test-suite...marks/Olden/health/health.test    16.00    18.00   12.5%
test-suite...ks/Prolangs-C/cdecl/cdecl.test    90.00   101.00   12.2%
test-suite...fice-ispell/office-ispell.test    91.00   100.00    9.9%
test-suite...oxyApps-C/miniGMG/miniGMG.test   430.00   465.00    8.1%
test-suite...lowfish/security-blowfish.test    39.00    42.00    7.7%
test-suite.../Applications/spiff/spiff.test    42.00    45.00    7.1%
test-suite...arks/mafft/pairlocalalign.test   2473.00  2646.00   7.0%
test-suite.../VersaBench/ecbdes/ecbdes.test    29.00    31.00    6.9%
test-suite...nch/beamformer/beamformer.test   220.00   235.00    6.8%
test-suite...CFP2000/177.mesa/177.mesa.test   2110.00  2252.00   6.7%
test-suite...ve-susan/automotive-susan.test   109.00   116.00    6.4%
test-suite...s-C/unix-smail/unix-smail.test    65.00    69.00    6.2%
test-suite...CI_Purple/SMG2000/smg2000.test   1194.00  1265.00   5.9%
test-suite.../Benchmarks/nbench/nbench.test   472.00   500.00    5.9%
test-suite...oxyApps-C/miniAMR/miniAMR.test   248.00   262.00    5.6%
test-suite...quoia/CrystalMk/CrystalMk.test    18.00    19.00    5.6%
test-suite...rks/tramp3d-v4/tramp3d-v4.test   7331.00  7710.00   5.2%
test-suite.../Benchmarks/Bullet/bullet.test   5651.00  5938.00   5.1%
test-suite...ternal/HMMER/hmmcalibrate.test   750.00   788.00    5.1%
test-suite...T2006/456.hmmer/456.hmmer.test   764.00   802.00    5.0%
test-suite...ications/JM/ldecod/ldecod.test   1028.00  1079.00   5.0%
test-suite...CFP2006/444.namd/444.namd.test   1368.00  1434.00   4.8%
test-suite...marks/7zip/7zip-benchmark.test   4471.00  4685.00   4.8%
test-suite...6/464.h264ref/464.h264ref.test   3122.00  3271.00   4.8%
test-suite...pplications/oggenc/oggenc.test   1497.00  1565.00   4.5%
test-suite...T2000/300.twolf/300.twolf.test   742.00   774.00    4.3%
test-suite.../Prolangs-C/loader/loader.test    24.00    25.00    4.2%
test-suite...0.perlbench/400.perlbench.test   1983.00  2058.00   3.8%
test-suite...ications/JM/lencod/lencod.test   4612.00  4785.00   3.8%
test-suite...yApps-C++/PENNANT/PENNANT.test   995.00   1032.00   3.7%
test-suite...arks/VersaBench/dbms/dbms.test    54.00    56.00    3.7%
Reviewers: efriedma, thegameg, samparker, dmgreen, paquette, evandro
Reviewed By: paquette
Differential Revision: https://reviews.llvm.org/D70450
The file was modifiedllvm/test/CodeGen/AArch64/arm64-variadic-aapcs.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-remarks.ll
The file was addedllvm/test/CodeGen/AArch64/stp-opt-with-renaming.mir
The file was modifiedllvm/test/CodeGen/AArch64/arm64-abi_align.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-abi-varargs.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
Commit c0a3ab365514e126b694e009503d537d0e67eb01 by kerry.mclaughlin
Revert "[AArch64][SVE] Implement intrinsics for non-temporal loads &
stores"
This reverts commit 3f5bf35f868d1e33cd02a5825d33ed4675be8cb1 as it was
causing build failures in llvm-clang-x86_64-expensive-checks:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-debian/builds/392
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-ubuntu/builds/1045
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was removedllvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was removedllvm/test/CodeGen/AArch64/sve-intrinsics-stores.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit c7738cca7efda9d1a78569b69ba4ac735c0f2212 by Raphael Isemann
[lldb] Don't search the metadata map three times when retrieving
metadata
HasMetadata checks if our metadata map knows the given object.
GetMetadata also does this check and then does another search to
actually retrieve the value. This can all just be one lookup.
The file was modifiedlldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
The file was modifiedlldb/source/Symbol/ClangExternalASTSourceCommon.cpp
Commit 247b2ce11cf0b9efeb3c1b0394dcc87ccab7be41 by peter.smith
[LLD][ELF][AArch64][ARM] Add missing classof to patch sections.
The code to insert patch section merges them with a comparison function
that uses logic of the form: return (isa<PatchSection>(a) &&
!isa<PatchSection>(b)); If the PatchSections don't implement classof
this check fails if b is also a SyntheticSection. This can result in the
patches being out of range if the SyntheticSection is big, for example a
ThunkSection with lots of thunks.
Differential Revision: https://reviews.llvm.org/D71242
fixes (part of) pr44071
The file was modifiedlld/ELF/AArch64ErrataFix.cpp
The file was modifiedlld/ELF/ARMErrataFix.cpp
The file was addedlld/test/ELF/aarch64-cortex-a53-843419-thunk-range.s
Commit 86d24193a9eb45d7bf3745fc2de96cd4e197b08a by peter.smith
[LLD][ELF][AArch64][ARM] When errata patching, round thunk size to 4KiB.
On some edge cases such as Chromium compiled with full instrumentation
we have a .text section over twice the size of the maximum branch range
and the instrumented code generation containing many examples of the
erratum sequence. The combination of Thunks and many erratum sequences
causes finalizeAddressDependentContent() to not converge. We end up
with: start
- Thunk Creation (disturbs addresses after thunks, creating more
patches)
- Patch Creation (disturbs addresses after patches, creating more
thunks)
- goto start
In most images with few thunks and patches the mutual disturbance does
not cause convergence problems. As the .text size and number of patches
go up the risk increases.
A way to prevent the thunk creation from interfering with patch creation
is to round up the size of the thunks to a 4KiB boundary when the
erratum patch is enabled. As the erratum sequence only triggers when an
instruction sequence starts at 0xff8 or 0xffc modulo (4 KiB) by making
the thunks not affect addresses modulo (4 KiB) we prevent thunks from
interfering with the patch.
The patches themselves could be aggregated in the same way that Thunks
are within ThunkSections and we could round up the size in the same way.
This would reduce the number of patches created in a .text section size
> 128 MiB but would not likely help convergence problems.
Differential Revision: https://reviews.llvm.org/D71281
fixes (remaining part of) pr44071, other part in D71242
The file was modifiedlld/ELF/SyntheticSections.h
The file was modifiedlld/ELF/SyntheticSections.cpp
The file was modifiedlld/test/ELF/aarch64-cortex-a53-843419-thunk.s
The file was modifiedlld/test/ELF/arm-fix-cortex-a8-thunk.s
Commit 32137699f7f7d6df6157d47eb33faf96dfd257f3 by arsenm2
AMDGPU: Fix copy-pasted test name error
The file was modifiedllvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fsub.ll
Commit 855d21a03ae841b7c6c980e92f67bd5b65287fa6 by adam.balogh
[Analyzer] Iterator Checkers: Replace `UnknownVal` in comparison result
by a conjured value
Sometimes the return value of a comparison operator call is
`UnkownVal`. Since no assumptions can be made on `UnknownVal`, this
leeds to keeping impossible execution paths in the exploded graph
resulting in poor performance and false positives. To overcome this we
replace unknown results of iterator comparisons by conjured symbols.
Differential Revision: https://reviews.llvm.org/D70244
The file was modifiedclang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
The file was modifiedclang/test/Analysis/invalidated-iterator.cpp
The file was modifiedclang/test/Analysis/iterator-modelling.cpp
Commit 49d731b5e0ec643ed47dc49c4cffcf974e5af5ad by arsenm2
Verifier: Check frame-pointer attribute values
There are a few places that check specific string attributes have
particular values, and assert if they are something else. The verifier
should catch these kinds of cases.
The file was addedllvm/test/Verifier/invalid-frame-pointer-attr.ll
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was addedllvm/test/Verifier/invalid-frame-pointer-attr-empty.ll
The file was addedllvm/test/Verifier/invalid-frame-pointer-attr-no-value.ll
Commit ee219345881bdf2c144d40731f055e7b36bc8bce by diogo.sampaio
[ARM][NFC] Change test to use CHECK-NEXT
The file was modifiedllvm/test/CodeGen/Thumb2/mve-stacksplot.mir
Commit df494f7512b0ecebdf3d7be97695a1b6278c0336 by russell.gallop
[Support] Add TimeTraceScope constructor without detail arg
This simplifies code where no extra details are required Also don't
write out detail when it is empty.
Differential Revision: https://reviews.llvm.org/D71347
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedclang/lib/CodeGen/CodeGenAction.cpp
The file was modifiedclang/tools/driver/cc1_main.cpp
The file was modifiedclang/lib/Serialization/GlobalModuleIndex.cpp
The file was modifiedllvm/include/llvm/Support/TimeProfiler.h
The file was modifiedllvm/lib/Support/TimeProfiler.cpp
The file was modifiedclang/lib/Parse/ParseAST.cpp
Commit 942c9946cc2fba6acd3805cfeaca90007f532f1f by kbarton
[Loop] Add isRotated method to Loop class.
Summary: This patch adds a method to determine if a loop is in rotated
form (the latch is an exiting block). It also modifies the
getLoopGuardBranch method to use this new method. This method can also
be used in Loopfusion. Once this patch lands I will make the
corresponding changes there.
Reviewers: jdoerfert, Meinersbur, dmgreen, etiotto, Whitney, fhahn,
hfinkel
Reviewed By: Meinersbur
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65958
The file was modifiedllvm/include/llvm/Analysis/LoopInfo.h
The file was modifiedllvm/lib/Analysis/LoopInfo.cpp
The file was modifiedllvm/unittests/Analysis/LoopInfoTest.cpp
Commit ac473394ff04ac3e33c15b8358b68a78834b8424 by ulrich.weigand
[SystemZ] Fix 128-bit strict FMA expansion pre-z14
Before z14, we did not have any FMA instruction for 128-bit
floating-point, so the @llvm.fma.f128 intrinsic needs to be expanded to
a libcall on those platforms.
This worked correctly for regular FMA, but was implemented incorrectly
for the strict version.  This was not noticed because we did not have
test coverage for this case.
This patch fixes that incorrect expansion and adds the missing test
cases.
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was addedllvm/test/CodeGen/SystemZ/fp-mul-13.ll
The file was addedllvm/test/CodeGen/SystemZ/fp-strict-mul-12.ll
The file was addedllvm/test/CodeGen/SystemZ/fp-strict-mul-13.ll
Commit 72c68f1352baa77a763a516765dd466890babcaa by rnk
[TableGen] Remove unused target intrinsic generation logic
AMDGPU was the last in tree target to use this tablegen mode. I plan to
split up the global intrinsic enum similar to the way that clang
diagnostics are split up today. I don't plan to build on this mode.
Reviewers: arsenm, echristo, efriedma
Reviewed By: echristo
Differential Revision: https://reviews.llvm.org/D71318
The file was modifiedllvm/utils/TableGen/CodeGenDAGPatterns.cpp
The file was modifiedllvm/utils/TableGen/CodeGenDAGPatterns.h
The file was modifiedllvm/utils/TableGen/CodeGenTarget.cpp
The file was modifiedllvm/utils/TableGen/TableGen.cpp
The file was modifiedllvm/utils/TableGen/TableGenBackends.h
The file was modifiedllvm/utils/TableGen/IntrinsicEmitter.cpp
The file was modifiedllvm/utils/TableGen/CodeGenIntrinsics.h
Commit 3adc819b7a074f101924e12a08d0aaeb8b16b9a1 by craig.topper
[X86] Erase dead LEA instruction after converting it to MOV in
FixupLEAPass::processInstrForSlow3OpLEA.
The file was modifiedllvm/test/CodeGen/X86/leaFixup64.mir
The file was modifiedllvm/lib/Target/X86/X86FixupLEAs.cpp
The file was modifiedllvm/test/CodeGen/X86/leaFixup32.mir
Commit 5ad67df988f12f38b50f720c0fc4f1fa3b94a311 by ulrich.weigand
[SystemZ] Add llvm.minimum / llvm.maximum tests
The backend already supports the @llvm.minimum and @llvm.maximum
intrinsics, but we had no test cases for those.  Add tests.
The file was modifiedllvm/test/CodeGen/SystemZ/vec-max-05.ll
The file was modifiedllvm/test/CodeGen/SystemZ/vec-min-05.ll
Commit 4fe92abceb9a43fffc1c14a8f5150f1057020bf4 by flo
[AArch64] Skip debug ops with regsOverlap in AArch64 LD/ST opt.
This fixes a crash when debug instructions are in between 2 stores.
The file was addedllvm/test/CodeGen/AArch64/stp-opt-with-renaming-debug.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
Commit 24a4d27acd38d7d7e3c78a8ddf1410f046891b70 by Jason Molenda
Don't run expect based tests remotely.
The file was modifiedlldb/packages/Python/lldbsuite/test/commands/expression/multiline-completion/TestMultilineCompletion.py
The file was modifiedlldb/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py
Commit 916d37a2bc53903b8b8da5fa226bced79cc5da69 by bmahjour
[DA] Improve dump to show source and sink of the dependence
Summary: The current da printer shows the dependence without indicating
which instructions are being considered as the src vs dst. It also
silently ignores call instructions, despite the fact that they create
confused dependence edges to other memory instructions. This patch
addresses these two issues plus a couple of minor non-functional
improvements.
Authored By: bmahjour
Reviewer: dmgreen, fhahn, philip.pfaffe, chandlerc
Reviewed By: dmgreen, fhahn
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71088
The file was addedllvm/test/Analysis/DependenceAnalysis/Dump.ll
The file was modifiedllvm/lib/Analysis/DependenceAnalysis.cpp
Commit 52c5342ebcc173b25c1644335cba7aef8ec73b92 by Jason Molenda
update TestThreadStepOut.py to expect correct source line on arm64.
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/thread/step_out/main.cpp
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/thread/step_out/TestThreadStepOut.py
Commit 5a3a9e9927b714e94e1c1b839e17429806272052 by maskray
[ELF][AArch64] Rename --force-bti to -z force-bti and --pac-plt to -z
pac-plt
Summary: The original design used --foo but the upstream complained that
ELF only options should be -z foo. See
https://sourceware.org/ml/binutils/2019-04/msg00151.html
https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=8bf6d176b0a442a8091d338d4af971591d19922c
made the rename.
Our --force-bti and --pac-plt implement the same functionality, so it
seems wise to be consistent with GNU ld.
Reviewed By: peter.smith
Subscribers: emaste, arichardson, kristof.beyls, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71327
The file was modifiedlld/test/ELF/aarch64-feature-pac.s
The file was modifiedlld/test/ELF/aarch64-bti-pac-cli-error.s
The file was modifiedlld/test/ELF/aarch64-feature-bti.s
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/docs/ld.lld.1
The file was modifiedlld/test/ELF/aarch64-feature-btipac.s
The file was modifiedlld/ELF/Options.td
Commit ee64dfd953f89a9d3df3c13a28b1bce33f33f4cb by Adrian Prantl
Remove TypeValidators (NFC in terms of the testsuite)
This is a half-implemented feature that as far as we can tell was never
used by anything since its original inclusion in 2014. This patch
removes it to make remaining the code easier to understand.
Differential Revision: https://reviews.llvm.org/D71310
The file was modifiedlldb/include/lldb/lldb-forward.h
The file was modifiedlldb/source/Target/Language.cpp
The file was removedlldb/include/lldb/DataFormatters/TypeValidator.h
The file was modifiedlldb/include/lldb/DataFormatters/FormattersContainer.h
The file was modifiedlldb/source/DataFormatters/LanguageCategory.cpp
The file was modifiedlldb/include/lldb/DataFormatters/FormatCache.h
The file was modifiedlldb/include/lldb/DataFormatters/FormatManager.h
The file was modifiedlldb/include/lldb/DataFormatters/TypeCategory.h
The file was modifiedlldb/scripts/interface/SBValue.i
The file was modifiedlldb/source/Core/ValueObject.cpp
The file was modifiedlldb/source/DataFormatters/CMakeLists.txt
The file was modifiedlldb/include/lldb/DataFormatters/ValueObjectPrinter.h
The file was modifiedlldb/include/lldb/DataFormatters/LanguageCategory.h
The file was modifiedlldb/source/DataFormatters/FormatManager.cpp
The file was modifiedlldb/source/DataFormatters/ValueObjectPrinter.cpp
The file was modifiedlldb/include/lldb/Core/ValueObject.h
The file was removedlldb/source/DataFormatters/TypeValidator.cpp
The file was modifiedlldb/source/API/SBValue.cpp
The file was modifiedlldb/source/DataFormatters/TypeCategory.cpp
The file was modifiedlldb/source/DataFormatters/TypeCategoryMap.cpp
The file was modifiedlldb/source/DataFormatters/DataVisualization.cpp
The file was modifiedlldb/include/lldb/DataFormatters/FormatClasses.h
The file was modifiedlldb/include/lldb/Target/Language.h
The file was modifiedlldb/source/DataFormatters/FormatCache.cpp
The file was modifiedlldb/include/lldb/API/SBValue.h
The file was modifiedlldb/include/lldb/DataFormatters/DataVisualization.h
Commit 7b774b7cd48562e3af3405b1e5c54ea58bd142a6 by a.bataev
[OPENMP50]Add if clause in teams distribute simd directive.
According to OpenMP 5.0, if clause can be used in for simd directive. If
condition in the if clause if false, the non-vectorized version of the
loop must be executed.
The file was modifiedclang/lib/Basic/OpenMPKinds.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_simd_ast_print.cpp
The file was addedclang/test/OpenMP/teams_distribute_simd_if_messages.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/include/clang/Basic/OpenMPKinds.def
Commit f2f774997357cc6690d8a2446140d0c4df83e828 by Jonas Devlieghere
[VFS] Extend virtual working directory test
Extend the virtual working directory test with a few edge cases that are
not currently tested.
The file was modifiedllvm/unittests/Support/VirtualFileSystemTest.cpp
Commit 13a517445f79a3b30d7457597afdd4cf753dd0e2 by Vedant Kumar
[profile] Delete stale profile in test/profile/instrprof-set-filename.c,
NFC
The file was modifiedcompiler-rt/test/profile/instrprof-set-filename.c
Commit d25437e957549bdab46f1a052bad4f330d31a9e1 by Vedant Kumar
[profile] Delete stale profiles in
test/profile/instrprof-value-prof.test, NFC
The file was modifiedcompiler-rt/test/profile/instrprof-value-prof.test
Commit 5a486e0f156ce62b445ccf7b3ea15dd45394ea1c by Vedant Kumar
[profile] Avoid allocating a page on the stack, NFC
When writing out a profile, avoid allocating a page on the stack for the
purpose of writing out zeroes, as some embedded environments do not have
enough stack space to accomodate this.
Instead, use a small, fixed-size zero buffer that can be written
repeatedly.
For a synthetic file with >100,000 functions, I did not measure a
significant difference in profile write times. We are removing a
page-length zero-fill `memset()` in favor of several smaller buffered
`fwrite()` calls: in practice, I am not sure there is much of a
difference. The performance impact is only expected to affect the
continuous sync mode (%c) -- zero padding is less than 8 bytes in all
other cases.
rdar://57810014
Differential Revision: https://reviews.llvm.org/D71323
The file was modifiedcompiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c
The file was modifiedcompiler-rt/lib/profile/InstrProfilingFile.c
The file was modifiedcompiler-rt/lib/profile/InstrProfilingWriter.c
The file was modifiedcompiler-rt/lib/profile/InstrProfilingInternal.h
Commit d8c31d41989b0748e2e5b8d7fa9cf7e7023bcbff by a.bataev
[OPENMP50]Fix capturing of if condition in target parallel for simd
directive.
Fixed capturing of the if condition if no modifer was specified in this
condition. Previously could capture it only in outer region and it could
lead to a compiler crash.
The file was modifiedclang/test/OpenMP/target_parallel_for_simd_codegen.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
Commit d1f0bdf2d2df9bdf11ee2ddfff3df50e53f2f042 by spatel
[SDAG] remove use restriction in isNegatibleForFree() when called from
getNegatedExpression()
This is an alternate fix for the bug discussed in D70595. This also
includes minimal tests for other in-tree targets to show the problem
more generally.
We check the number of uses as a predicate for whether some value is
free to negate, but that use count can change as we rewrite the
expression in getNegatedExpression(). So something that was marked free
to negate during the cost evaluation phase becomes not free to negate
during the rewrite phase (or the inverse - something that was not free
becomes free). This can lead to a crash/assert because we expect that
everything in an expression that is negatible to be handled in the
corresponding code within getNegatedExpression().
This patch skips the use check during the rewrite phase. So we determine
that some expression isNegatibleForFree
(identically to without this patch), but during the rewrite, don't rely
on use counts to decide how to create the optimal expression.
Differential Revision: https://reviews.llvm.org/D70975
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was modifiedllvm/test/CodeGen/X86/fma-fneg-combine-2.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fmadd.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit db76588964ee255da1f32b06565a2cd899a82947 by Jonas Devlieghere
[StringRef] Test all default characters in unit test
The default characters for trim, ltrim and rtrim are " \t\n\v\f\r" but
only spaces were tested. Test that the others are trimmed as well.
The file was modifiedllvm/unittests/ADT/StringRefTest.cpp
Commit 2675a3c8806a0995f204efe999db6001f6e700cf by flo
[AArch64] Be more careful to skip debug operands in LdSt Optimizier.
This fixes crashes with $noreg operands.
The file was modifiedllvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
The file was modifiedllvm/test/CodeGen/AArch64/stp-opt-with-renaming-debug.mir
Commit e59f0af7d54bc6c7a7a284cb5906958d9ce007fe by Jonas Devlieghere
[VFS] Disable check for ../foo on Windows
I'm not sure how .. is resolved on Windows. Disable it for now to make
the bots happy again.
The file was modifiedllvm/unittests/Support/VirtualFileSystemTest.cpp
Commit a75463c4717269dcf17a3aae0fd609c5ecc75f9a by andrzej.warzynski
Add intrinsics for unary narrowing operations
Summary: The following intrinsics for unary narrowing operations are
added:
* @llvm.aarch64.sve.sqxtnb
* @llvm.aarch64.sve.uqxtnb
* @llvm.aarch64.sve.sqxtunb
* @llvm.aarch64.sve.sqxtnt
* @llvm.aarch64.sve.uqxtnt
* @llvm.aarch64.sve.sqxtunt
Reviewers: sdesmalen, rengolin, efriedma
Reviewed By: efriedma
Subscribers: tschuett, kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71270
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was addedllvm/test/CodeGen/AArch64/sve2-intrinsics-unary-narrowing.ll
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
Commit 25e21a09b3f6e9ce747555e61e7d1fbaa161056f by maskray
Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=Off builds after
D65958 and D70450
The file was modifiedllvm/lib/Analysis/LoopInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
Commit b361d3bbcd85647c9f6640a5f57932c43fdb7a1a by nikita.ppv
[MergeFuncs] Remove incorrect attribute copying
Fix for https://bugs.llvm.org/show_bug.cgi?id=44236. This code was
originally introduced in rG36512330041201e10f5429361bbd79b1afac1ea1.
However, the attribute copying was done in the wrong place (in general
call replacement, not thunk generation) and a proper fix was implemented
in D12581.
Previously this code was just unnecessary but harmless (because
FunctionComparator ensured that the attributes of the two functions are
exactly the same), but since byval was changed to accept a type this
copying is actively wrong and may result in malformed IR.
Differential Revision: https://reviews.llvm.org/D71173
The file was modifiedllvm/lib/Transforms/IPO/MergeFunctions.cpp
The file was addedllvm/test/Transforms/MergeFunc/byval-attr-congruent-type.ll
Commit 134faae04259b0412a067c73069f61905fc451d7 by Artem Dergachev
[analyzer] CStringChecker: Improve warning messages.
Differential Revision: https://reviews.llvm.org/D71321
The file was modifiedclang/test/Analysis/cstring-ranges.c
The file was modifiedclang/test/Analysis/null-deref-path-notes.c
The file was modifiedclang/test/Analysis/null-deref-ps-region.c
The file was modifiedclang/test/Analysis/bsd-string.c
The file was modifiedclang/test/Analysis/string.c
The file was modifiedclang/test/Analysis/bstring.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
Commit 2b3f2071ec6561c3f10e5291289c47bb3629e354 by Artem Dergachev
[analyzer] CStringChecker: Fix overly eager assumption that memcmp args
overlap.
While analyzing code `memcmp(a, NULL, n);', where `a' has an
unconstrained symbolic value, the analyzer was emitting a warning about
the *first* argument being a null pointer, even though we'd rather have
it warn about the *second* argument.
This happens because CStringChecker first checks whether the two
argument buffers are in fact the same buffer, in order to take the fast
path. This boils down to assuming `a == NULL' to true. Then the
subsequent check for null pointer argument "discovers" that `a' is null.
Don't take the fast path unless we are *sure* that the buffers are the
same. Otherwise proceed as normal.
Differential Revision: https://reviews.llvm.org/D71322
The file was modifiedclang/test/Analysis/string.c
The file was modifiedclang/test/Analysis/bstring.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
Commit b01012b7c8a547c0c4f34734a432ee9ba780a6c8 by Artem Dergachev
[analyzer] LocalizationChecker: Fix a crash on synthesized accessor
stubs.
The checker was trying to analyze the body of every method in
Objective-C
@implementation clause but the sythesized accessor stubs that were
introduced into it by 2073dd2d have no bodies.
The file was modifiedclang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
The file was modifiedclang/test/Analysis/localization-aggressive.m
Commit fc765698e0c23c18732255fc7cc0f98160b66a90 by nikita.ppv
[ValueTracking] Add tests for non-null check after load/store; NFC
Tests for D71177.
The file was modifiedllvm/test/Analysis/ValueTracking/known-nonnull-at.ll
Commit 19e83a9b4cd4b0c2918d975f52bdfc6ba82d839f by nikita.ppv
[ValueTracking] Pointer is known nonnull after load/store
If the pointer was loaded/stored before the null check, the check is
redundant and can be removed. For now the optimizers do not remove the
nullptr check, see https://gcc.godbolt.org/z/H2r5GG. The patch allows to
use more nonnull constraints. Also, it found one more optimization in
some PowerPC test. This is my first llvm review, I am free to any
comments.
Differential Revision: https://reviews.llvm.org/D71177
The file was modifiedllvm/test/CodeGen/PowerPC/pr39815.ll
The file was modifiedllvm/test/Transforms/InstCombine/element-atomic-memintrins.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-swifterror.ll
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/test/Transforms/InstCombine/phi-equal-incoming-pointers.ll
The file was modifiedllvm/test/Analysis/ValueTracking/known-nonnull-at.ll
The file was modifiedllvm/test/Transforms/InstCombine/sink-alloca.ll
Commit 5882e6f36fd9bfc7382e6763c5591b3497428d83 by xazax
[analyzer] Escape symbols conjured into specific regions during a
conservative EvalCall
This patch introduced additional PointerEscape callbacks after
conservative calls for output parameters. This should not really affect
the current checkers but the upcoming FuchsiaHandleChecker relies on
this heavily.
Differential Revision: https://reviews.llvm.org/D71224
The file was modifiedclang/test/Analysis/analyzer-config.c
The file was modifiedclang/test/Analysis/expr-inspection.c
The file was addedclang/test/Analysis/pointer-escape-on-conservative-calls.c
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/CheckerManager.h
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
Commit 8db5143b1a1521915c842ebef23cb9fe8fe607ce by nikita.ppv
[InstCombine] Optimize overflow check base on uadd.with.overflow result
Fix for https://bugs.llvm.org/show_bug.cgi?id=40846.
This adds a combine for cases where a (a + b) < a style overflow check
is performed, but with a + b being the result of uadd.with.overflow, so
the overflow result is also already available and we can just use it.
Subsequently GVN/CSE will deduplicate the extracts.
We can run into this situation if you have both a uadd.with.overflow and
a manual add + overflow check in the same function (on the same
operands), in which case GVN will rewrite the add to the with.overflow
result and leave you with this pattern.
The implementation is a bit ugly because I'm handling the various
canonicalization edge cases.
This does not yet handle the negated version of this pattern.
Differential Revision: https://reviews.llvm.org/D58644
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/test/Transforms/InstCombine/with_overflow.ll
Commit 881d877846e2904c731d616731969421ce8cc825 by sbc
[WebAssembly] Add new `export_name` clang attribute for controlling wasm
export names
This is equivalent to the existing `import_name` and `import_module`
attributes which control the import names in the final wasm binary
produced by lld.
This maps the existing
This attribute currently requires a string rather than using the symbol
name for a couple of reasons:
1. Avoid confusion with static and dynamic linking which is
  based on symbol name.  Exporting a function from a wasm module using
  this directive is orthogonal to both static and dynamic linking. 2.
Avoids name mangling.
Differential Revision: https://reviews.llvm.org/D70520
The file was modifiedlld/wasm/InputChunks.h
The file was modifiedllvm/include/llvm/BinaryFormat/Wasm.h
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modifiedllvm/lib/MC/WasmObjectWriter.cpp
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedlld/docs/WebAssembly.rst
The file was addedllvm/test/MC/WebAssembly/export-name.s
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedlld/wasm/Writer.cpp
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedllvm/include/llvm/Object/Wasm.h
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
The file was modifiedllvm/lib/Object/WasmObjectFile.cpp
The file was modifiedclang/include/clang/Basic/Attr.td
The file was addedlld/test/wasm/export-name.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
The file was addedllvm/test/CodeGen/WebAssembly/export-name.ll
The file was addedclang/test/CodeGen/wasm-export-name.c
The file was modifiedllvm/include/llvm/MC/MCSymbolWasm.h
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
Commit 6d64162a2d0df2230faf02ff7ee677c448faf4af by Jason Molenda
return-object-by-reference ("non trivial") xfail on arm64 in
TestTrivialABI.py
I don't think this test case can be handled correctly on AAPCS64. The
ABI says that the caller passes the address of the return object in x8.
x8 is a caller-spilled (aka "volatile") register, and the function is
not required to preserve x8 or to copy the address back into x8 on
function exit like the SysV x86_64 ABI does with rax.
(from aapcs64: "there is no requirement for the callee to preserve the
value stored in x8")
From my quick reading of ABISysV_arm64, I worry that it may actually be
using the value in x8 at function exit, assuming it still has the
address of the return object -
    if (is_return_value) {
     // We are assuming we are decoding this immediately after returning
from
     // a function call and that the address of the structure is in x8
     reg_info = reg_ctx->GetRegisterInfoByName("x8", 0);
This will work on trivial test programs / examples, but if the function
does another function call, or overwrites x8 as a scratch register, lldb
will provide incorrect values to the user.
ABIMacOSX_arm64 doesn't do this, but it also doesn't flag the value as
unavailable so we're providing incorrect values to the user all the
time.  I expect my fix will be to make ABIMacOSX_arm64 flag the return
value as unretrievable, unless I've misread the ABI.
The file was modifiedlldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/main.cpp
The file was modifiedlldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp
The file was modifiedlldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py
Commit d23c61490c282a7a8f29aaa5c021cbfdaf87fb6f by johannes
[OpenMP] Introduce the OpenMP-IR-Builder
This is the initial patch for the OpenMP-IR-Builder, as discussed on the
mailing list ([1] and later) and at the US Dev Meeting'19.
The design is similar to D61953 but:
- in a non-WIP status, with proper documentation and working.
- using a OpenMPKinds.def file to manage lists of directives, runtime
   functions, types, ..., similar to the current Clang implementation.
- restricted to handle only (simple) barriers, to implement most
   `#pragma omp barrier` directives and most implicit barriers.
- properly hooked into Clang to be used if possible (D69922).
- compatible with the remaining code generation.
Parts have been extracted into D69853.
The plan is to have multiple people working on moving logic from Clang
here once the initial scaffolding (=this patch) landed.
[1]
http://lists.flang-compiler.org/pipermail/flang-dev_lists.flang-compiler.org/2019-May/000197.html
Reviewers: kiranchandramohan, ABataev, RaviNarayanaswamy, gtbercea,
grokos, sdmitriev, JonChesterfield, hfinkel, fghanim
Subscribers: mgorny, hiraditya, bollu, guansong, jfb, cfe-commits,
llvm-commits, penzn, ppenzin
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D69785
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPKinds.def
The file was addedllvm/unittests/Frontend/CMakeLists.txt
The file was addedllvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
The file was modifiedllvm/lib/Frontend/OpenMP/CMakeLists.txt
The file was modifiedllvm/lib/Frontend/OpenMP/OMPConstants.cpp
The file was addedllvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
The file was addedllvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
The file was modifiedllvm/unittests/CMakeLists.txt
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPConstants.h
Commit fe593fe15f780517a703c4c108fc162028f180bb by nikita.ppv
[ADT] Fix SmallDenseMap assertion with large InlineBuckets
Fixes issue encountered in D56362, where I tried to use a
SmallSetVector<Instruction*, 128> with an excessively large number of
inline elements. This triggers an "Must allocate more buckets than are
inline" assertion inside allocateBuckets() under certain usage patterns.
The issue is as follows: The grow() method is used either to grow the
map, or to rehash it and remove tombstones. The latter is done if the
fraction of empty (non-used, non-tombstone) elements is below 1/8. In
this case grow() is invoked with the current number of buckets.
This is currently incorrectly handled for dense maps using the small
rep. The current implementation will switch them over to the large rep,
which violates the invariant that the large rep is only used if there
are more than InlineBuckets buckets.
This patch fixes the issue by staying in the small rep and only moving
the buckets. An alternative, if we do want to switch to the large rep in
this case, would be to relax the assertion in allocateBuckets().
Differential Revision: https://reviews.llvm.org/D56455
The file was modifiedllvm/unittests/ADT/DenseMapTest.cpp
The file was modifiedllvm/include/llvm/ADT/DenseMap.h
Commit daacf57032450079b44b8a7f9b976700d3bc38f8 by eric
[libc++] Add fuzzing tests for parts of <random>.
This patch also re-names the existing fuzzing unit tests so they
actually run.
The file was addedlibcxx/fuzzing/fuzz_test_template.cpp
The file was addedlibcxx/test/libcxx/fuzzing/regex_grep.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/stable_sort.cpp
The file was removedlibcxx/test/libcxx/fuzzing/partition.cpp
The file was addedlibcxx/test/libcxx/fuzzing/unique.pass.cpp
The file was modifiedlibcxx/fuzzing/fuzzing.cpp
The file was removedlibcxx/test/libcxx/fuzzing/unique.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_awk.cpp
The file was addedlibcxx/test/libcxx/fuzzing/nth_element.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/partition_copy.cpp
The file was addedlibcxx/test/libcxx/fuzzing/stable_sort.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/partial_sort.pass.cpp
The file was modifiedlibcxx/fuzzing/fuzzing.h
The file was removedlibcxx/test/libcxx/fuzzing/nth_element.cpp
The file was addedlibcxx/test/libcxx/fuzzing/stable_partition.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/partial_sort.cpp
The file was addedlibcxx/test/libcxx/fuzzing/partial_sort_copy.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/partial_sort_copy.cpp
The file was addedlibcxx/test/libcxx/fuzzing/regex_egrep.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/stable_partition.cpp
The file was removedlibcxx/test/libcxx/fuzzing/unique_copy.cpp
The file was removedlibcxx/test/libcxx/fuzzing/sort.cpp
The file was addedlibcxx/test/libcxx/fuzzing/partition_copy.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/regex_ECMAScript.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/regex_POSIX.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/partition.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/fuzzer_test.h
The file was modifiedlibcxx/fuzzing/RoutineNames.txt
The file was removedlibcxx/test/libcxx/fuzzing/regex_ECMAScript.cpp
The file was addedlibcxx/test/libcxx/fuzzing/regex_extended.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/geometric_distribution.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_POSIX.cpp
The file was addedlibcxx/test/libcxx/fuzzing/sort.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_egrep.cpp
The file was addedlibcxx/test/libcxx/fuzzing/unique_copy.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_extended.cpp
The file was addedlibcxx/test/libcxx/fuzzing/regex_awk.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_grep.cpp
Commit 4b452952fed75b87c6768bfc1f558d312c645b02 by craig.topper
[LegalizeTypes] In SoftenFloatRes_FP_EXTEND, move the check for input
already being promoted above the check for fp16 converting to something
other than fp32.
The fp16 to larger than fp32 inserts an extend that need to re-legalized
if fp16 is promoted. But if we check for fp16 promotion first, then we
can avoid emiting the fp_extend all together.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
Commit 6e3b60625bfc5745f3b4382050ed6d66b43951bb by julian.lettner
[TSan] Pacify flaky test on Darwin
This flaky test that I added really gives our CI a lot of headaches.
Although I was never able to reproduce this locally, it sporadically
hangs/fails on our bots.  I decided to silently pass the test whenever
we are unable to setup the proper test condition after 10 retries.  This
is of course suboptimal and a last recourse.  Please let me know if you
know how to test this better.
rdar://57844626
The file was modifiedcompiler-rt/test/tsan/Darwin/mach_vm_allocate.c
Commit 0b9789456b616863ab4dd045a977758f527bab8b by a.bataev
[OPENMP50]Add if clause in teams distribute parallel for simd directive.
According to OpenMP 5.0, if clause can be used in for simd directive. If
condition in the if clause if false, the non-vectorized version of the
loop must be executed.
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_ast_print.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_if_messages.cpp
The file was modifiedclang/test/OpenMP/teams_distribute_parallel_for_simd_if_codegen.cpp
Commit 29b2f64ddb8b7ab7ca7215e8701386b9c4da1865 by eric
[libc++] Fix fuzzing unit tests with exceptions disabled.
We simply turn off the parts of the tests that require exceptions.
The file was modifiedlibcxx/fuzzing/fuzzing.cpp
Commit 0ca0fba94d48959a8c5d1e074c8242e46b263d59 by Adrian Prantl
Add resurrecting Type Validators to projects.rst
The file was modifiedlldb/docs/status/projects.rst
Commit 5c9816b84e94dd380e7b07ac15f619513a7911a8 by eric
[libc++] Fix fuzzing tests with older GCC compilers.
GCC 5 doesn't support `if constexpr`, so we need to do old-style tag
dispatching.
The file was modifiedlibcxx/fuzzing/fuzzing.cpp
Commit 34ef51b5f97933ba12d857d2da8b0d7c133320ce by rupprecht
[lldb][dotest] Improve libc++ detection
Summary: The test logic for running libc++ tests only looks to see if
`/usr/include/c++/v1` exists. This adds a fallback for including libc++
tests as long as `$(CC) -stdlib=libc++` works.
Reviewers: labath, EricWF
Subscribers: ldionne, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D71319
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
Commit cdf5cfea8e5204e5d2facd6663c4b49b9e0378e9 by spatel
Revert "[SDAG] remove use restriction in isNegatibleForFree() when
called from getNegatedExpression()"
This reverts commit d1f0bdf2d2df9bdf11ee2ddfff3df50e53f2f042. The patch
can cause infinite loops in DAGCombiner.
The file was modifiedllvm/test/CodeGen/X86/fma-fneg-combine-2.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fmadd.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Commit e0e07a7e414e818788144511de0c6328285c43cd by richard
Fix detection of __attribute__((may_alias)) to properly look through
type sugar.
We previously missed the attribute in a lot of cases in C++, because
there's often other type sugar there (eg, ElaboratedType).
The file was addedclang/test/CodeGenCXX/may_alias.cpp
The file was modifiedclang/lib/CodeGen/CodeGenTBAA.cpp
Commit 786b6db8e6fd87fb82f2ad3e94e20c5c9cf9c4e4 by rupprecht
[lldb][dotest] Add `#include <algorithm>` to libc++ detection
Summary: Speculative fix after 34ef51b5f979 broke the lldb buildbot on
libc++ tests.
Reviewers: echristo, EricWF
Subscribers: ldionne, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D71376
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
Commit bf68bcb920ffdac5da8b82cd06535cec5dc5a56b by Jonas Devlieghere
[lldb/Host] Use Host/Config.h for LibXML2 instead of a global define
Rename LIBXML2_DEFINED to LLDB_ENABLE_LIBXML2 and pass it through
Config.h instead of a global define.
The file was modifiedlldb/cmake/modules/LLDBConfig.cmake
The file was modifiedlldb/include/lldb/Host/XML.h
The file was modifiedlldb/include/lldb/Host/Config.h.cmake
The file was modifiedlldb/source/Host/common/XML.cpp
Commit 70d14255dfcd9c4849deff9e9f2912c8ec030d11 by daltenty
Don't call export_symbols.py with duplicate libs
Summary: export_symbols.py discards duplicate symbols, assuming they
have public definitions, so if we end up calling it with duplicate
libraries we will end up with an inaccurate export list.
Reviewers: jasonliu, stevewan, john.brawn
Reviewed By: john.brawn
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70918
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit db4c7adfa365282e8cb9a067c509fa711c4b96fe by richard
Suppress false-positive -Wuninitialized warnings in the constructor of a
templated but non-template class.
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/test/SemaCXX/uninitialized.cpp
Commit ff82315d4ec0fc96a8c581e1c9252a15bc0adaf3 by Jonas Devlieghere
[lldb/CMake] Simplify linking against curses
Centralize the logic to determine what libraries to link against for
curses in the CMake file where it is actually being used. Use
target_include_directories instead of include_directories.
The file was modifiedlldb/cmake/modules/LLDBConfig.cmake
The file was modifiedlldb/source/Core/CMakeLists.txt
Commit f38b543b97de150f3d6b6db395403e0e8b058595 by julian.lettner
[lit] Improve formatting of error messages. NFC
The file was modifiedllvm/utils/lit/tests/selecting.py
The file was modifiedllvm/utils/lit/lit/main.py
Commit f978ea498309adaebab8fbf1cd6e520e7e0e11f1 by bigcheesegs
[clang][clang-scan-deps] Aggregate the full dependency information.
Differential Revision: https://reviews.llvm.org/D70268
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
The file was modifiedclang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
The file was modifiedclang/test/ClangScanDeps/modules-full.cpp
The file was modifiedclang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
The file was modifiedclang/tools/clang-scan-deps/ClangScanDeps.cpp
The file was modifiedclang/test/ClangScanDeps/Inputs/modules_cdb.json
The file was modifiedclang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
Commit b3c06db45611152f4ec22670bd83f4354078e6a7 by johannes
[OpenMP] Use the OpenMP-IR-Builder
This is a follow up patch to use the OpenMP-IR-Builder, as discussed on
the mailing list ([1] and later) and at the US Dev Meeting'19.
[1]
http://lists.flang-compiler.org/pipermail/flang-dev_lists.flang-compiler.org/2019-May/000197.html
Reviewers: kiranchandramohan, ABataev, RaviNarayanaswamy, gtbercea,
grokos, sdmitriev, JonChesterfield, hfinkel, fghanim
Subscribers: ppenzin, penzn, llvm-commits, cfe-commits, jfb, guansong,
bollu, hiraditya, mgorny
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69922
The file was modifiedclang/lib/CodeGen/CMakeLists.txt
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.h
The file was modifiedclang/test/OpenMP/barrier_codegen.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/OpenMP/cancel_codegen.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedclang/test/Driver/fopenmp.c
The file was modifiedclang/include/clang/Basic/LangOptions.def
Commit 56232f950d34b6c04a86ce916d456e599d77ec27 by Vedant Kumar
Revert "[DWARF] Allow cross-CU references of subprogram definitions"
This reverts commit 30038da15b18ac4e34b9ea7a648382ae481e4770. It causes
the stage2 thinLTO bot to fail with:
Assertion failed: (CU.getDIE(CalleeSP) && "Expected declaration
subprogram DIE for callee")
rdar://57840415
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was removedllvm/test/DebugInfo/X86/lto-cross-cu-call-origin-ref.ll
Commit 5bcd34a03ff343674c106b9a6a0406bf249b9b31 by bigcheesegs
Revert "[clang][clang-scan-deps] Aggregate the full dependency
information."
This reverts commit f978ea498309adaebab8fbf1cd6e520e7e0e11f1.
It broke clang-ppc64be-linux, but not sure why yet.
The file was modifiedclang/tools/clang-scan-deps/ClangScanDeps.cpp
The file was modifiedclang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
The file was modifiedclang/test/ClangScanDeps/modules-full.cpp
The file was modifiedclang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
The file was modifiedclang/test/ClangScanDeps/Inputs/modules_cdb.json
The file was modifiedclang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
Commit 83e1bd36be988ffce4732f400ff6f06442c34011 by spatel
[AArch64][x86] add tests for possible infinite loops in DAGCombiner; NFC
This is a reduction of a test that failed (infinite looped) with
rGd1f0bdf2d2df (subsequently reverted). I've duplicated it for 2 targets
to increase coverage - everything down here is wobbly.
The file was modifiedllvm/test/CodeGen/AArch64/arm64-fp.ll
The file was modifiedllvm/test/CodeGen/X86/neg_fp.ll
Commit 9fdcae7c81f5ff92ad694f5d993a042a525fd6bc by xazax
[analyzer] Do not cache out on some shared implicit AST nodes
Some AST nodes which stands for implicit initialization is shared. The
analyzer will do the same evaluation on the same nodes resulting in the
same state. The analyzer will "cache out", i.e. it thinks that it
visited an already existing node in the exploded graph. This is not true
in this case and we lose coverage. Since these nodes do not really
require any processing from the analyzer we just omit them from the CFG.
Differential Revision: https://reviews.llvm.org/D71371
The file was modifiedclang/include/clang/Analysis/CFG.h
The file was modifiedclang/lib/Analysis/CFG.cpp
The file was modifiedclang/test/Analysis/initializers-cfg-output.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp
The file was modifiedclang/test/Analysis/designated-initializer.c
The file was addedclang/test/Analysis/designated-initializer-values.c
The file was modifiedclang/test/Analysis/temp-obj-dtors-cfg-output.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/AnalysisManager.cpp
Commit 72b41e6e2d560aee6f52b2f1db385972053bc7d1 by eric
[libc++] Require C++14 in all cases.
LLVM has moved to C++14, and the libc++ build should too. C++14 is
needed to provide constant initialization for certain global objects.
I suspect this change may break some older GCC buildbots, and I'll clean
those up as they fall.
The file was modifiedlibcxx/CMakeLists.txt
Commit a9245e4f86165ac38a297138fff08cd4eb7255a7 by eric
[libc++abi] Fix non-constant initialization of default terminate
handlers.
The file was modifiedlibcxxabi/src/cxa_default_handlers.cpp
Commit d5a43ce6889e0b96f8175b5235c586aa34c7661b by thakis
gn build: (manually) merge d23c61490c
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Frontend/OpenMP/BUILD.gn
The file was addedllvm/utils/gn/secondary/llvm/unittests/Frontend/BUILD.gn
Commit 60590b149b33eb80d0b52c1c6723fe35817ee897 by francisvm
[Remarks][Driver] Ask for line tables when remarks are enabled
Serialized remarks contain debug locations for each remark, by storing a
file path, a line, and a column.
Also, remarks support being embedded in a .dSYM bundle using a separate
section in object files, that is found by `dsymutil` through the debug
map.
In order for tools to map addresses to source and display remarks in the
source, we need line tables, and in order for `dsymutil` to find the
object files containing the remark section, we need to keep the debug
map around.
Differential Revision: https://reviews.llvm.org/D71325
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Driver/debug-options.c
Commit 85ba5f637af83336151d31f83708128372a232c9 by rnk
Rename TTI::getIntImmCost for instructions and intrinsics
Soon Intrinsic::ID will be a plain integer, so this overload will not be
possible.
Rename both overloads to ensure that downstream targets observe this as
a build failure instead of a runtime failure.
Split off from D71320
Reviewers: efriedma
Differential Revision: https://reviews.llvm.org/D71381
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.h
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
The file was modifiedllvm/lib/Transforms/Scalar/ConstantHoisting.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
The file was modifiedllvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
Commit 5d986953c8b917bacfaa1f800fc1e242559f76be by rnk
[IR] Split out target specific intrinsic enums into separate headers
This has two main effects:
- Optimizes debug info size by saving 221.86 MB of obj file size in a
Windows optimized+debug build of 'all'. This is 3.03% of 7,332.7MB of
object file size.
- Incremental step towards decoupling target intrinsics.
The enums are still compact, so adding and removing a single
target-specific intrinsic will trigger a rebuild of all of LLVM.
Assigning distinct target id spaces is potential future work.
Part of PR34259
Reviewers: efriedma, echristo, MaskRay
Reviewed By: echristo, MaskRay
Differential Revision: https://reviews.llvm.org/D71320
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVVMIntrRange.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonGenExtract.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/R600ISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstructionSelector.cpp
The file was modifiedllvm/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
The file was modifiedllvm/test/TableGen/intrinsic-long-name.td
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
The file was modifiedllvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
The file was modifiedllvm/include/llvm/IR/Function.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/TypePromotion.cpp
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
The file was modifiedllvm/include/llvm/IR/GlobalValue.h
The file was modifiedllvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
The file was modifiedllvm/include/llvm/IR/CallSite.h
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/ARM/ARMParallelDSP.cpp
The file was modifiedllvm/lib/Target/X86/X86InstructionSelector.cpp
The file was modifiedllvm/lib/Target/Mips/MipsInstructionSelector.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86WinEHState.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedllvm/lib/IR/Function.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/unittests/IR/IRBuilderTest.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Analysis/MemoryLocation.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/lib/Target/AArch64/AArch64StackTagging.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZTDC.cpp
The file was modifiedllvm/test/TableGen/intrinsic-struct.td
The file was modifiedllvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86IntrinsicsInfo.h
The file was modifiedllvm/utils/TableGen/IntrinsicEmitter.cpp
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Target/XCore/XCoreISelLowering.cpp
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modifiedllvm/include/llvm/IR/CMakeLists.txt
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.h
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was modifiedclang/lib/CodeGen/CGException.cpp
The file was modifiedllvm/lib/Target/Mips/MipsSEISelLowering.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVVMReflect.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp
The file was modifiedllvm/lib/Target/BPF/BPFISelDAGToDAG.cpp
The file was modifiedllvm/include/llvm/IR/Intrinsics.h
The file was modifiedllvm/lib/CodeGen/WasmEHPrepare.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
Commit 7aa5c160885c92c95ad84216de9b9b02dbc95936 by mcinally
[AArch64][SVE] Add patterns for scalable vselect
This patch matches scalable vector selects to predicated move
instructions.
Differential Revision: https://reviews.llvm.org/D71298
The file was addedllvm/test/CodeGen/AArch64/sve-select.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
Commit f5b7a468375ddeaa555a90fccc50098e4ca1e2b1 by puyan
[llvm][MIRVRegNamerUtils] Adding hashing on memoperands.
No more hash collisions for memoperands. Now the MIRCanonicalization
pass shouldn't hit hash collisions when dealing with nearly identical
memory accessing instructions when their memoperands are in fact
different.
Differential Revision: https://reviews.llvm.org/D71328
The file was addedllvm/test/CodeGen/MIR/AMDGPU/mircanon-memoperands.mir
The file was modifiedllvm/lib/CodeGen/MIRVRegNamerUtils.cpp
Commit 3e34c3f4b6b533adeeee772c25562572a5d87b13 by thakis
gn build: (manually) merge 5d986953c8b917bacfaa1f800fc1e242559f76be
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/IR/BUILD.gn