FailedChanges

Summary

  1. [libObject][NFC] Include filename in error message
  2. [LICM/MSSA] Add promotion to scalars by building an AliasSetTracker with MemorySSA. Summary: Experimentally we found that promotion to scalars carries less benefits than sinking and hoisting in LICM. When using MemorySSA, we build an AliasSetTracker on demand in order to reuse the current infrastructure. We only build it if less than AccessCapForMSSAPromotion exist in the loop, a cap that is by default set to 250. This value ensures there are no runtime regressions, and there are small compile time gains for pathological cases. A much lower value (20) was found to yield a single regression in the llvm-test-suite and much higher benefits for compile times. Conservatively we set the current cap to a high value, but we will explore lowering it when MemorySSA is enabled by default. Reviewers: sanjoy, chandlerc Subscribers: nemanjai, jlebar, Prazek, george.burgess.iv, jfb, jsji, llvm-commits Differential Revision: https://reviews.llvm.org/D56625
  3. [DAG] Immediately cleanup unused nodes from extend-based combines.
  4. [COFF, ARM64] Add ARM64 support for MS intrinsic _fastfail The MSDN document was also updated to reflect this, but it probably will take a few days to show in below link. https://docs.microsoft.com/en-us/cpp/intrinsics/fastfail Differential Revision: https://reviews.llvm.org/D57631
  5. Move IR flag handling directly into builder calls for cases translated from Instructions in GlobalIsel Reviewers: aditya_nandakumar, volkan Reviewed By: aditya_nandakumar Subscribers: rovka, kristof.beyls, volkan, Petar.Avramovic Differential Revision: https://reviews.llvm.org/D57630
  6. [AliasSetTracker] Pass MustAlias to addPointer more often. Summary: Pass the alias info to addPointer when available. Will save an alias() call for must sets when adding a known Must or May alias. [Part of a series of cleanup patches] Reviewers: reames, mkazantsev Subscribers: sanjoy, jlebar, llvm-commits Differential Revision: https://reviews.llvm.org/D56613
  7. [X86] Change the CPU on the test case for pr40529.ll to really show the bug. NFC
  8. [X86][DAG] Avoid creating dangling bitcast. combineExtractWithShuffle may leave a dangling bitcast which may prevent further optimization in later passes. Avoid constructing it unless it is used.
  9. [x86] add tests for horizontal ops (PR38971, PR33758); NFC
  10. [SystemZ] Improved handling of the @llvm.ctlz intrinsic. Since SystemZ supports counting of leading zeros with the FLOGR instruction, isCheapToSpeculateCtlz() should return true, which it now does. ISD::CTLZ_ZERO_UNDEF i32 is now handled the same way as ISD::CTLZ is, which is needed since promotion to i64 is required and CTLZ_ZERO_UNDEF is only expanded to CTLZ if it is Legal or Custom. Review: Ulrich Weigand https://reviews.llvm.org/D57710
  11. build: Remove the cmake check for malloc.h. As far as I can tell, malloc.h is only being used here to provide a definition of mallinfo (malloc itself is declared in stdlib.h via cstdlib). We already have a macro for whether mallinfo is available, so switch to using that instead. Differential Revision: https://reviews.llvm.org/D57807
  12. [clang-tidy] modernize-avoid-c-arrays: avoid main function (PR40604) Summary: The check should ignore the main function, the program entry point. It is not possible to use `std::array<>` for the `argv`. The alternative is to use `char** argv`. Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40604 | PR40604 ]] Reviewers: JonasToth, aaron.ballman Reviewed By: aaron.ballman Subscribers: xazax.hun, hans, cfe-commits Tags: #clang-tools-extra, #clang Differential Revision: https://reviews.llvm.org/D57787
  13. [SystemZ] Wait with VGBM selection until after DAGCombine2. Don't lower BUILD_VECTORs to BYTE_MASK, but instead expose the BUILD_VECTORs to the DAGCombiner and select them to VGBM in Select(). This allows the DAGCombiner to understand the constant vector values. For floating point, only all-zeros vectors are now generated with VGBM, as it turned out to be somewhat complicated to handle any arbitrary constants, while in practice this is very rare and hardly needed. The SystemZ ISD opcodes z_byte_mask, z_vzero and z_vones have been removed. Review: Ulrich Weigand https://reviews.llvm.org/D57152
  14. [opt-viewer] Add --filter option to select remarks for displaying. This allows limiting the displayed remarks to the ones with names matching the filter (regular) expression. Generating html pages for a larger project with optimization remarks can result in a huge HTML documents and using --filter allows to focus on a set of interesting remarks. Reviewers: hfinkel, anemet, thegameg, serge-sans-paille Reviewed By: anemet Differential Revision: https://reviews.llvm.org/D57827
  15. Revert "[libc++] Only add dylib-related features when using the system's libc++" This reverts r353319, which broke our internal CI.
  16. Test commit. NFC
  17. [libc++] Only add dylib-related features when using the system's libc++ Otherwise, when testing trunk libc++ on an older system, lit will think that the dylib features are disabled. Ideally, we'd have a notion of running the tests with/without a deployment target (or, equivalently, a deployment target representing trunk where everything is as recent as can be). Since we always have a deployment target right now (which defaults to the current system), we only enable those features when we're going to also be testing with the system libc++.
  18. Switch to cantFail(), since it does the same assertion. Reviewers: cfe-commits, lhames Reviewed By: lhames Subscribers: hintonda, klimek, pirama Differential Revision: https://reviews.llvm.org/D36806
  19. [SelectionDAG] Cleanup some code comments. NFC Don't repeat the function name in some doxygen comments. (Just a minor cleanup, while testing to push from the git monorepo setup.)
  20. [GlobalISel][NFC] Gardening: Factor out code for simple unary intrinsics There was a lot of repeated code wrt unary math intrinsics in translateKnownIntrinsic. This factors out the repeated MIRBuilder code into two functions: translateSimpleUnaryIntrinsic and getSimpleUnaryIntrinsicOpcode. This simplifies adding simple unary intrinsics, since after this, all you have to do is add the mapping to SimpleUnaryIntrinsicOpcodes. Differential Revision: https://reviews.llvm.org/D57774
  21. [yaml2obj]Allow number for ELF symbol type yaml2obj previously only recognised standard STT_* names, and didn't allow arbitrary numbers. This change allows the user to specify a number for the type instead. It also adds a test to verify the existing behaviour for obj2yaml for unkown symbol types. Reviewed by: grimar Differential Revision: https://reviews.llvm.org/D57822
  22. [InstCombine] X | C == C --> (X & ~C) == 0 We should canonicalize to one of these forms, and compare-with-zero could be more conducive to follow-on transforms. This also leads to generally better codegen as shown in PR40611: https://bugs.llvm.org/show_bug.cgi?id=40611
  23. [InstCombine] add tests for PR40611 and regenerate checks; NFC Lots of unrelated diffs here from the newer version of the script.
  24. Add a specialization for '__unwrap_iter' to handle const interators. This enables the 'memmove' optimization for std::copy, etc.
  25. [clangd] Add type boost to fuzzy find in Dex. Summary: No noticeable impact on code completions overall except some improvement on cross-namespace completion. Reviewers: sammccall, ilya-biryukov Reviewed By: sammccall Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57815
  26. [clangd] Bump vscode-clangd v0.0.11 CHANGELOG: - activate the extension on ObjC files.
  27. AArch64: enforce even/odd register pairs for CASP instructions. ARMv8.1a CASP instructions need the first of the pair to be an even register (otherwise the encoding is unallocated). We enforced this during assembly, but not CodeGen before.
  28. [InlineAsm][X86] Add backend support for X86 flag output parameters. Allow custom handling of inline assembly output parameters and add X86 flag parameter support.
  29. [clangd] Format tweak's replacements.
  30. [SelectionDAGBuilder] Refactor Inline Asm output check. NFCI.
  31. [SystemZ] Do not return INT_MIN from strcmp/memcmp The IPM sequence currently generated to compute the strcmp/memcmp result will return INT_MIN for the "less than zero" case. While this is in compliance with the standard, strictly speaking, it turns out that common applications cannot handle this, e.g. because they negate a comparison result in order to implement reverse compares. This patch changes code to use a different sequence that will result in -2 for the "less than zero" case (same as GCC). However, this requires that the two source operands of the compare instructions are inverted, which breaks the optimization in removeIPMBasedCompare. Therefore, I've removed this (and all of optimizeCompareInstr), and replaced it with a mostly equivalent optimization in combineCCMask at the DAGcombine level.
  32. AArch64: annotate atomics with dropped acquire semantics when printing. A quirk of the v8.1a spec is that when the writeback regiser for an atomic read-modify-write instruction is wzr/xzr, the instruction no longer enforces acquire ordering. However, it's still written with the misleading 'a' mnemonic. So this adds an annotation when disassembling such instructions, mentioning the change.
  33. [x86] vectorize cast ops in lowering to avoid register file transfers The proposal in D56796 may cross the line because we're trying to avoid vectorization transforms in generic DAG combining. So this is an alternate, later, x86-specific translation of that patch. There are several potential follow-ups to enhance this: 1. Allow extraction from non-zero element index. 2. Peek through extends of smaller width integers. 3. Support x86-specific conversion opcodes like X86ISD::CVTSI2P Differential Revision: https://reviews.llvm.org/D56864
  34. [MCA] Speedup ResourceManager queries. NFCI When a resource unit R is released, the ResourceManager notifies groups that contain R. Before this patch, the logic in method ResourceManager::release() implemented a potentially slow iterative search of dependent groups on the entire set of processor resources. This patch replaces that logic with a simpler (and often faster) lookup on array `Resource2Groups`. This patch gives an average speedup of ~3-4% (observed on a release build when testing for target btver2). No functional change intended.
  35. gn build: Merge r353265, r353237
  36. [clangd] Update dev dependencies of clangd-vscode Summary: The version bumps are a result of running `npm audit`, which found 3 security issues in previous versions of our dependencies. Also add 'package-lock.json' to the repo, it's a common practice to check in those files into the repository to get consistent versions of dependencies when running on different machines. Reviewers: hokein Reviewed By: hokein Subscribers: dschuff, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57814
  37. [clangd] Enable clangd on Objective-C in VSCode Summary: Thanks to Andreas Ostermeyer for raising this on the mailing list. Reviewers: hokein Reviewed By: hokein Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57813
  38. Attempt to fix buildbot after r353289
  39. [DAGCombine][NFC] GatherAllAliases should take a LSBaseSDNode. GatherAllAliases only makes sense for LSBaseSDNode. Enforce it with static typing instead of runtime cast.
Revision 353341 by rupprecht:
[libObject][NFC] Include filename in error message
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Object/Archive.cpp (diff)llvm.src/lib/Object/Archive.cpp
Revision 353339 by asbirlea:
[LICM/MSSA] Add promotion to scalars by building an AliasSetTracker with MemorySSA.

Summary:
Experimentally we found that promotion to scalars carries less benefits
than sinking and hoisting in LICM. When using MemorySSA, we build an
AliasSetTracker on demand in order to reuse the current infrastructure.
We only build it if less than AccessCapForMSSAPromotion exist in the
loop, a cap that is by default set to 250. This value ensures there are
no runtime regressions, and there are small compile time gains for
pathological cases. A much lower value (20) was found to yield a single
regression in the llvm-test-suite and much higher benefits for compile
times. Conservatively we set the current cap to a high value, but we will
explore lowering it when MemorySSA is enabled by default.

Reviewers: sanjoy, chandlerc

Subscribers: nemanjai, jlebar, Prazek, george.burgess.iv, jfb, jsji, llvm-commits

Differential Revision: https://reviews.llvm.org/D56625
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/AliasSetTracker.h (diff)llvm.src/include/llvm/Analysis/AliasSetTracker.h
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/LoopUtils.h (diff)llvm.src/include/llvm/Transforms/Utils/LoopUtils.h
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/SSAUpdater.h (diff)llvm.src/include/llvm/Transforms/Utils/SSAUpdater.h
The file was modified/llvm/trunk/lib/Analysis/AliasSetTracker.cpp (diff)llvm.src/lib/Analysis/AliasSetTracker.cpp
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff)llvm.src/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/LICM.cpp (diff)llvm.src/lib/Transforms/Scalar/LICM.cpp
The file was modified/llvm/trunk/lib/Transforms/Utils/SSAUpdater.cpp (diff)llvm.src/lib/Transforms/Utils/SSAUpdater.cpp
The file was modified/llvm/trunk/test/CodeGen/PowerPC/pr35688.ll (diff)llvm.src/test/CodeGen/PowerPC/pr35688.ll
Revision 353338 by niravd:
[DAG] Immediately cleanup unused nodes from extend-based combines.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Revision 353337 by tomtan:
[COFF, ARM64] Add ARM64 support for MS intrinsic _fastfail

The MSDN document was also updated to reflect this, but it probably will take a few days to show in below link.

https://docs.microsoft.com/en-us/cpp/intrinsics/fastfail

Differential Revision: https://reviews.llvm.org/D57631
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/ms-intrinsics.c (diff)clang.src/test/CodeGen/ms-intrinsics.c
Revision 353336 by mcberg2017:
Move IR flag handling directly into builder calls for cases translated from Instructions in GlobalIsel

Reviewers: aditya_nandakumar, volkan

Reviewed By: aditya_nandakumar

Subscribers: rovka, kristof.beyls, volkan, Petar.Avramovic

Differential Revision: https://reviews.llvm.org/D57630
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineInstr.h (diff)llvm.src/include/llvm/CodeGen/MachineInstr.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modified/llvm/trunk/lib/CodeGen/MachineInstr.cpp (diff)llvm.src/lib/CodeGen/MachineInstr.cpp
Revision 353335 by asbirlea:
[AliasSetTracker] Pass MustAlias to addPointer more often.

Summary:
Pass the alias info to addPointer when available. Will save an alias()
call for must sets when adding a known Must or May alias.
[Part of a series of cleanup patches]

Reviewers: reames, mkazantsev

Subscribers: sanjoy, jlebar, llvm-commits

Differential Revision: https://reviews.llvm.org/D56613
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/AliasSetTracker.h (diff)llvm.src/include/llvm/Analysis/AliasSetTracker.h
The file was modified/llvm/trunk/lib/Analysis/AliasSetTracker.cpp (diff)llvm.src/lib/Analysis/AliasSetTracker.cpp
Revision 353334 by ctopper:
[X86] Change the CPU on the test case for pr40529.ll to really show the bug. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/pr40529.ll (diff)llvm.src/test/CodeGen/X86/pr40529.ll
Revision 353333 by niravd:
[X86][DAG] Avoid creating dangling bitcast.

combineExtractWithShuffle may leave a dangling bitcast which may
prevent further optimization in later passes. Avoid constructing it
unless it is used.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 353332 by spatel:
[x86] add tests for horizontal ops (PR38971, PR33758); NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/haddsub.ll (diff)llvm.src/test/CodeGen/X86/haddsub.ll
The file was modified/llvm/trunk/test/CodeGen/X86/phaddsub-extract.ll (diff)llvm.src/test/CodeGen/X86/phaddsub-extract.ll
Revision 353330 by jonpa:
[SystemZ]  Improved handling of the @llvm.ctlz intrinsic.

Since SystemZ supports counting of leading zeros with the FLOGR instruction,
isCheapToSpeculateCtlz() should return true, which it now does.

ISD::CTLZ_ZERO_UNDEF i32 is now handled the same way as ISD::CTLZ is, which
is needed since promotion to i64 is required and CTLZ_ZERO_UNDEF is only
expanded to CTLZ if it is Legal or Custom.

Review: Ulrich Weigand
https://reviews.llvm.org/D57710
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.h (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.h
The file was added/llvm/trunk/test/CodeGen/SystemZ/scalar-ctlz.llllvm.src/test/CodeGen/SystemZ/scalar-ctlz.ll
Revision 353329 by pcc:
build: Remove the cmake check for malloc.h.

As far as I can tell, malloc.h is only being used here to provide
a definition of mallinfo (malloc itself is declared in stdlib.h via
cstdlib). We already have a macro for whether mallinfo is available,
so switch to using that instead.

Differential Revision: https://reviews.llvm.org/D57807
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/config-ix.cmake (diff)llvm.src/cmake/config-ix.cmake
The file was modified/llvm/trunk/include/llvm/Config/config.h.cmake (diff)llvm.src/include/llvm/Config/config.h.cmake
The file was modified/llvm/trunk/lib/Support/Unix/Process.inc (diff)llvm.src/lib/Support/Unix/Process.inc
The file was modified/llvm/trunk/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
Revision 353327 by lebedevri:
[clang-tidy] modernize-avoid-c-arrays: avoid main function (PR40604)

Summary:
The check should ignore the main function, the program entry point.
It is not possible to use `std::array<>` for the `argv`.
The alternative is to use `char** argv`.

Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40604 | PR40604 ]]

Reviewers: JonasToth, aaron.ballman

Reviewed By: aaron.ballman

Subscribers: xazax.hun, hans, cfe-commits

Tags: #clang-tools-extra, #clang

Differential Revision: https://reviews.llvm.org/D57787
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/modernize/AvoidCArraysCheck.cpp (diff)clang-tools-extra.src/clang-tidy/modernize/AvoidCArraysCheck.cpp
The file was modified/clang-tools-extra/trunk/docs/clang-tidy/checks/modernize-avoid-c-arrays.rst (diff)clang-tools-extra.src/docs/clang-tidy/checks/modernize-avoid-c-arrays.rst
The file was added/clang-tools-extra/trunk/test/clang-tidy/modernize-avoid-c-arrays-ignores-main.cppclang-tools-extra.src/test/clang-tidy/modernize-avoid-c-arrays-ignores-main.cpp
The file was added/clang-tools-extra/trunk/test/clang-tidy/modernize-avoid-c-arrays-ignores-three-arg-main.cppclang-tools-extra.src/test/clang-tidy/modernize-avoid-c-arrays-ignores-three-arg-main.cpp
Revision 353325 by jonpa:
[SystemZ]  Wait with VGBM selection until after DAGCombine2.

Don't lower BUILD_VECTORs to BYTE_MASK, but instead expose the BUILD_VECTORs
to the DAGCombiner and select them to VGBM in Select(). This allows the
DAGCombiner to understand the constant vector values.

For floating point, only all-zeros vectors are now generated with VGBM, as it
turned out to be somewhat complicated to handle any arbitrary constants,
while in practice this is very rare and hardly needed.

The SystemZ ISD opcodes z_byte_mask, z_vzero and z_vones have been removed.

Review: Ulrich Weigand
https://reviews.llvm.org/D57152
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.h (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.h
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZInstrVector.td (diff)llvm.src/lib/Target/SystemZ/SystemZInstrVector.td
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZOperators.td (diff)llvm.src/lib/Target/SystemZ/SystemZOperators.td
The file was added/llvm/trunk/test/CodeGen/SystemZ/buildvector-00.llllvm.src/test/CodeGen/SystemZ/buildvector-00.ll
The file was modified/llvm/trunk/test/CodeGen/SystemZ/vec-const-05.ll (diff)llvm.src/test/CodeGen/SystemZ/vec-const-05.ll
The file was modified/llvm/trunk/test/CodeGen/SystemZ/vec-const-06.ll (diff)llvm.src/test/CodeGen/SystemZ/vec-const-06.ll
Revision 353322 by fhahn:
[opt-viewer] Add --filter option to select remarks for displaying.

This allows limiting the displayed remarks to the ones with names
matching the filter (regular) expression.

Generating html pages for a larger project with optimization remarks can
result in a huge HTML documents and using --filter allows to focus on a
set of interesting remarks.

Reviewers: hfinkel, anemet, thegameg, serge-sans-paille

Reviewed By: anemet

Differential Revision: https://reviews.llvm.org/D57827
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/opt-viewer/Outputs/filterllvm.src/test/tools/opt-viewer/Outputs/filter
The file was added/llvm/trunk/test/tools/opt-viewer/Outputs/filter/basic_or.c.htmlllvm.src/test/tools/opt-viewer/Outputs/filter/basic_or.c.html
The file was added/llvm/trunk/test/tools/opt-viewer/Outputs/filter/basic_or.h.htmlllvm.src/test/tools/opt-viewer/Outputs/filter/basic_or.h.html
The file was added/llvm/trunk/test/tools/opt-viewer/Outputs/filter/index.htmlllvm.src/test/tools/opt-viewer/Outputs/filter/index.html
The file was added/llvm/trunk/test/tools/opt-viewer/filter.testllvm.src/test/tools/opt-viewer/filter.test
The file was modified/llvm/trunk/tools/opt-viewer/opt-viewer.py (diff)llvm.src/tools/opt-viewer/opt-viewer.py
The file was modified/llvm/trunk/tools/opt-viewer/optpmap.py (diff)llvm.src/tools/opt-viewer/optpmap.py
The file was modified/llvm/trunk/tools/opt-viewer/optrecord.py (diff)llvm.src/tools/opt-viewer/optrecord.py
Revision 353321 by Louis Dionne:
Revert "[libc++] Only add dylib-related features when using the system's libc++"

This reverts r353319, which broke our internal CI.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/utils/libcxx/test/config.py (diff)libcxx.src/utils/libcxx/test/config.py
Revision 353320 by plyster:
Test commit. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaOpenMP.cpp (diff)clang.src/lib/Sema/SemaOpenMP.cpp
Revision 353319 by Louis Dionne:
[libc++] Only add dylib-related features when using the system's libc++

Otherwise, when testing trunk libc++ on an older system, lit will think
that the dylib features are disabled. Ideally, we'd have a notion of
running the tests with/without a deployment target (or, equivalently,
a deployment target representing trunk where everything is as recent
as can be). Since we always have a deployment target right now (which
defaults to the current system), we only enable those features when
we're going to also be testing with the system libc++.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/utils/libcxx/test/config.py (diff)libcxx.src/utils/libcxx/test/config.py
Revision 353318 by srhines:
Switch to cantFail(), since it does the same assertion.

Reviewers: cfe-commits, lhames

Reviewed By: lhames

Subscribers: hintonda, klimek, pirama

Differential Revision: https://reviews.llvm.org/D36806
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Tooling/Core/Replacement.cpp (diff)clang.src/lib/Tooling/Core/Replacement.cpp
Revision 353317 by bjope:
[SelectionDAG] Cleanup some code comments. NFC

Don't repeat the function name in some doxygen
comments.

(Just a minor cleanup, while testing to push
from the git monorepo setup.)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
Revision 353316 by paquette:
[GlobalISel][NFC] Gardening: Factor out code for simple unary intrinsics

There was a lot of repeated code wrt unary math intrinsics in
translateKnownIntrinsic. This factors out the repeated MIRBuilder code into
two functions: translateSimpleUnaryIntrinsic and getSimpleUnaryIntrinsicOpcode.

This simplifies adding simple unary intrinsics, since after this, all you have
to do is add the mapping to SimpleUnaryIntrinsicOpcodes.

Differential Revision: https://reviews.llvm.org/D57774
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/IRTranslator.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/IRTranslator.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
Revision 353315 by jhenderson:
[yaml2obj]Allow number for ELF symbol type

yaml2obj previously only recognised standard STT_* names, and didn't
allow arbitrary numbers. This change allows the user to specify a number
for the type instead. It also adds a test to verify the existing
behaviour for obj2yaml for unkown symbol types.

Reviewed by: grimar

Differential Revision: https://reviews.llvm.org/D57822
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/ObjectYAML/ELFYAML.cpp (diff)llvm.src/lib/ObjectYAML/ELFYAML.cpp
The file was added/llvm/trunk/test/tools/obj2yaml/symbol-type.yamlllvm.src/test/tools/obj2yaml/symbol-type.yaml
The file was added/llvm/trunk/test/tools/yaml2obj/symbol-type.yamlllvm.src/test/tools/yaml2obj/symbol-type.yaml
Revision 353313 by spatel:
[InstCombine] X | C == C --> (X & ~C) == 0

We should canonicalize to one of these forms,
and compare-with-zero could be more conducive
to follow-on transforms. This also leads to
generally better codegen as shown in PR40611:
https://bugs.llvm.org/show_bug.cgi?id=40611
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/icmp.ll (diff)llvm.src/test/Transforms/InstCombine/icmp.ll
Revision 353312 by spatel:
[InstCombine] add tests for PR40611 and regenerate checks; NFC

Lots of unrelated diffs here from the newer version of the script.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/icmp.ll (diff)llvm.src/test/Transforms/InstCombine/icmp.ll
Revision 353311 by marshall:
Add a specialization for '__unwrap_iter' to handle const interators. This enables the 'memmove' optimization for std::copy, etc.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/algorithm (diff)libcxx.src/include/algorithm
Revision 353310 by ioeric:
[clangd] Add type boost to fuzzy find in Dex.

Summary:
No noticeable impact on code completions overall except some improvement on
cross-namespace completion.

Reviewers: sammccall, ilya-biryukov

Reviewed By: sammccall

Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57815
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CodeComplete.cpp (diff)clang-tools-extra.src/clangd/CodeComplete.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Index.cpp (diff)clang-tools-extra.src/clangd/index/Index.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Index.h (diff)clang-tools-extra.src/clangd/index/Index.h
The file was modified/clang-tools-extra/trunk/clangd/index/dex/Dex.cpp (diff)clang-tools-extra.src/clangd/index/dex/Dex.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/dex/Dex.h (diff)clang-tools-extra.src/clangd/index/dex/Dex.h
The file was modified/clang-tools-extra/trunk/clangd/index/dex/Token.h (diff)clang-tools-extra.src/clangd/index/dex/Token.h
The file was modified/clang-tools-extra/trunk/unittests/clangd/DexTests.cpp (diff)clang-tools-extra.src/unittests/clangd/DexTests.cpp
Revision 353309 by hokein:
[clangd] Bump vscode-clangd v0.0.11

CHANGELOG:
- activate the extension on ObjC files.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/clients/clangd-vscode/package.json (diff)clang-tools-extra.src/clangd/clients/clangd-vscode/package.json
Revision 353308 by Tim Northover:
AArch64: enforce even/odd register pairs for CASP instructions.

ARMv8.1a CASP instructions need the first of the pair to be an even register
(otherwise the encoding is unallocated). We enforced this during assembly, but
not CodeGen before.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64RegisterInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp (diff)llvm.src/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/cmpxchg-lse-even-regs.llllvm.src/test/CodeGen/AArch64/cmpxchg-lse-even-regs.ll
Revision 353307 by niravd:
[InlineAsm][X86] Add backend support for X86 flag output parameters.

Allow custom handling of inline assembly output parameters and add X86
flag parameter support.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetLowering.h (diff)llvm.src/include/llvm/CodeGen/TargetLowering.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.h (diff)llvm.src/lib/Target/X86/X86ISelLowering.h
The file was added/llvm/trunk/test/CodeGen/X86/inline-asm-flag-output.llllvm.src/test/CodeGen/X86/inline-asm-flag-output.ll
Revision 353306 by hokein:
[clangd] Format tweak's replacements.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cpp (diff)clang-tools-extra.src/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdUnit.cpp (diff)clang-tools-extra.src/clangd/ClangdUnit.cpp
The file was modified/clang-tools-extra/trunk/clangd/Compiler.h (diff)clang-tools-extra.src/clangd/Compiler.h
The file was modified/clang-tools-extra/trunk/clangd/SourceCode.cpp (diff)clang-tools-extra.src/clangd/SourceCode.cpp
The file was modified/clang-tools-extra/trunk/clangd/SourceCode.h (diff)clang-tools-extra.src/clangd/SourceCode.h
The file was modified/clang-tools-extra/trunk/clangd/refactor/Tweak.cpp (diff)clang-tools-extra.src/clangd/refactor/Tweak.cpp
The file was modified/clang-tools-extra/trunk/clangd/refactor/Tweak.h (diff)clang-tools-extra.src/clangd/refactor/Tweak.h
The file was modified/clang-tools-extra/trunk/clangd/refactor/tweaks/SwapIfBranches.cpp (diff)clang-tools-extra.src/clangd/refactor/tweaks/SwapIfBranches.cpp
The file was modified/clang-tools-extra/trunk/unittests/clangd/TweakTests.cpp (diff)clang-tools-extra.src/unittests/clangd/TweakTests.cpp
Revision 353305 by niravd:
[SelectionDAGBuilder] Refactor Inline Asm output check. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Revision 353304 by uweigand:
[SystemZ] Do not return INT_MIN from strcmp/memcmp

The IPM sequence currently generated to compute the strcmp/memcmp
result will return INT_MIN for the "less than zero" case.  While
this is in compliance with the standard, strictly speaking, it
turns out that common applications cannot handle this, e.g. because
they negate a comparison result in order to implement reverse
compares.

This patch changes code to use a different sequence that will result
in -2 for the "less than zero" case (same as GCC).  However, this
requires that the two source operands of the compare instructions
are inverted, which breaks the optimization in removeIPMBasedCompare.
Therefore, I've removed this (and all of optimizeCompareInstr), and
replaced it with a mostly equivalent optimization in combineCCMask
at the DAGcombine level.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.h (diff)llvm.src/lib/Target/SystemZ/SystemZInstrInfo.h
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/SystemZ/memcmp-01.ll (diff)llvm.src/test/CodeGen/SystemZ/memcmp-01.ll
The file was modified/llvm/trunk/test/CodeGen/SystemZ/strcmp-01.ll (diff)llvm.src/test/CodeGen/SystemZ/strcmp-01.ll
Revision 353303 by Tim Northover:
AArch64: annotate atomics with dropped acquire semantics when printing.

A quirk of the v8.1a spec is that when the writeback regiser for an atomic
read-modify-write instruction is wzr/xzr, the instruction no longer enforces
acquire ordering. However, it's still written with the misleading 'a' mnemonic.

So this adds an annotation when disassembling such instructions, mentioning the
change.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp (diff)llvm.src/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp (diff)llvm.src/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/Utils/AArch64BaseInfo.h (diff)llvm.src/lib/Target/AArch64/Utils/AArch64BaseInfo.h
The file was added/llvm/trunk/test/MC/AArch64/atomic-acquire-comment.sllvm.src/test/MC/AArch64/atomic-acquire-comment.s
Revision 353302 by spatel:
[x86] vectorize cast ops in lowering to avoid register file transfers

The proposal in D56796 may cross the line because we're trying to avoid vectorization
transforms in generic DAG combining. So this is an alternate, later, x86-specific
translation of that patch.

There are several potential follow-ups to enhance this:
1. Allow extraction from non-zero element index.
2. Peek through extends of smaller width integers.
3. Support x86-specific conversion opcodes like X86ISD::CVTSI2P

Differential Revision: https://reviews.llvm.org/D56864
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/known-bits-vector.ll (diff)llvm.src/test/CodeGen/X86/known-bits-vector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/known-signbits-vector.ll (diff)llvm.src/test/CodeGen/X86/known-signbits-vector.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vec_int_to_fp.ll (diff)llvm.src/test/CodeGen/X86/vec_int_to_fp.ll
Revision 353301 by adibiagio:
[MCA] Speedup ResourceManager queries. NFCI

When a resource unit R is released, the ResourceManager notifies groups that
contain R. Before this patch, the logic in method ResourceManager::release()
implemented a potentially slow iterative search of dependent groups on the
entire set of processor resources.
This patch replaces that logic with a simpler (and often faster) lookup on array
`Resource2Groups`.  This patch gives an average speedup of ~3-4% (observed on a
release build when testing for target btver2).
No functional change intended.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/ResourceManager.cpp (diff)llvm.src/lib/MCA/HardwareUnits/ResourceManager.cpp
Revision 353298 by nico:
gn build: Merge r353265, r353237
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/IR/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/lib/IR/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/unittests/ADT/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/unittests/Analysis/BUILD.gn
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/IR/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/unittests/IR/BUILD.gn
Revision 353296 by ibiryukov:
[clangd] Update dev dependencies of clangd-vscode

Summary:
The version bumps are a result of running `npm audit`, which found
3 security issues in previous versions of our dependencies.

Also add 'package-lock.json' to the repo, it's a common practice to
check in those files into the repository to get consistent versions of
dependencies when running on different machines.

Reviewers: hokein

Reviewed By: hokein

Subscribers: dschuff, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57814
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/clients/clangd-vscode/.gitignore (diff)clang-tools-extra.src/clangd/clients/clangd-vscode/.gitignore
The file was added/clang-tools-extra/trunk/clangd/clients/clangd-vscode/package-lock.jsonclang-tools-extra.src/clangd/clients/clangd-vscode/package-lock.json
The file was modified/clang-tools-extra/trunk/clangd/clients/clangd-vscode/package.json (diff)clang-tools-extra.src/clangd/clients/clangd-vscode/package.json
Revision 353295 by ibiryukov:
[clangd] Enable clangd on Objective-C in VSCode

Summary: Thanks to Andreas Ostermeyer for raising this on the mailing list.

Reviewers: hokein

Reviewed By: hokein

Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57813
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/clients/clangd-vscode/package.json (diff)clang-tools-extra.src/clangd/clients/clangd-vscode/package.json
Revision 353294 by evgeny777:
Attempt to fix buildbot after r353289
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/globalize.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/globalize.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/localize.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/localize.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/weaken.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/weaken.test
Revision 353291 by courbet:
[DAGCombine][NFC] GatherAllAliases should take a LSBaseSDNode.

GatherAllAliases only makes sense for LSBaseSDNode. Enforce it with
static typing instead of runtime cast.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp