Changes

Summary

  1. [DAGCombine][MSP430] use shift amount threshold in DAGCombine (2/2) (details)
  2. [SimplifyCFG] Use a (trivially) dominanting widenable branch to remove (details)
  3. [X86] Add support for -mvzeroupper and -mno-vzeroupper to match gcc (details)
  4. clang/Modules: Bring back optimization lost in 31e14f41a21f (details)
  5. Fix warning: format specifies type 'unsigned long' but the argument has (details)
  6. Remove unused variables, as suggested by @mcgov. (details)
  7. [demangle] NFC: get rid of NodeOrString (details)
  8. [AMDGPU] deduplicate tablegen predicates (details)
  9. [LLDB][Python] remove ArgInfo::count (details)
  10. [OPENMP50]Support for imperfectly nested loops. (details)
  11. Add release notes for commit ccc4d83cda16bea1d9dfd0967dc7d2cfb24b8e75. (details)
  12. [OPENMP][DOCS]Update list of implemented features, NFC. (details)
  13. [AMDGPU] Added assert in SIFoldOperands before ptr use. NFC. (details)
  14. [AST][NFC] Fixes a comment typo (details)
  15. Add more binutils tools to LLVM_INSTALL_TOOLCHAIN_ONLY target (details)
  16. [AArch64] Update for Exynos (details)
  17. Test commit: adds a . to comment. NFC (details)
  18. [CGDebugInfo] Emit subprograms for decls when AT_tail_call is understood (details)
Commit 113181e9bd05353ed562ee7b971bf7f1e58cd5de by spatel
[DAGCombine][MSP430] use shift amount threshold in DAGCombine (2/2)
Continuation of: D69116
Contributes to a fix for PR43559:
https://bugs.llvm.org/show_bug.cgi?id=43559
See also D69099 and D69116
Use the TLI hook in DAGCombine.cpp to guard against creating shift nodes
that are not optimal for a target.
Patch by: @joanlluch (Joan LLuch)
Differential Revision: https://reviews.llvm.org/D69120
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/MSP430/shift-amount-threshold.ll
Commit 6ff439b57f0fc2b1a2193ae37637c531ff652b1c by listmail
[SimplifyCFG] Use a (trivially) dominanting widenable branch to remove
later slow path blocks
This transformation is a variation on the GuardWidening transformation
we have checked in as it's own pass. Instead of focusing on merge (i.e.
hoisting and simplifying) two widenable branches, this transform makes
the observation that simply removing a second slowpath block (by reusing
an existing one) is often a very useful canonicalization. This may lead
to later merging, or may not. This is a useful generalization when the
intermediate block has loads whose dereferenceability is hard to
establish.
As noted in the patch, this can be generalized further, and will be.
Differential Revision: https://reviews.llvm.org/D69689
The file was addedllvm/test/Transforms/SimplifyCFG/wc-widen-block.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
Commit b2b6a54f847f33f821f41e3e82bf3b86e08817a0 by craig.topper
[X86] Add support for -mvzeroupper and -mno-vzeroupper to match gcc
-mvzeroupper will force the vzeroupper insertion pass to run on CPUs
that normally wouldn't. -mno-vzeroupper disables it on CPUs where it
normally runs.
To support this with the default feature handling in clang, we need a
vzeroupper feature flag in X86.td. Since this flag has the opposite
polarity of the fast-partial-ymm-or-zmm-write we used to use to disable
the pass, we now need to add this new flag to every CPU except KNL/KNM
and BTVER2 to keep identical behavior.
Remove -fast-partial-ymm-or-zmm-write which is no longer used.
Differential Revision: https://reviews.llvm.org/D69786
The file was modifiedllvm/lib/Target/X86/X86VZeroUpper.cpp
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.h
The file was modifiedllvm/lib/Target/X86/X86.td
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/test/CodeGen/X86/avx-vzeroupper.ll
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/test/Driver/x86-target-features.c
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h
Commit 8112a423a8ede9bce64b6553e6451bf10995105c by Duncan P. N. Exon Smith
clang/Modules: Bring back optimization lost in 31e14f41a21f
31e14f41a21f9016050a20f07d5da03db2e8c13e accidentally dropped caching of
failed module loads.  This brings it back by making
ModuleMap::getCachedModuleLoad return an Optional.
The file was modifiedclang/include/clang/Lex/ModuleMap.h
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
Commit 9cc3ebf8b7630e30bc0eea6dc4a55348edf71091 by alexandre.ganea
Fix warning: format specifies type 'unsigned long' but the argument has
type 'unsigned long long' [-Wformat]
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_bitvector_test.cpp
Commit efad56b2be9b9f7d5b62d1f06541192fa6b537ee by alexandre.ganea
Remove unused variables, as suggested by @mcgov.
Fixes warning: unused variable 'XXX' [-Wunused-const-variable]
The file was modifiedcompiler-rt/lib/asan/asan_malloc_win.cpp
Commit af11f417fc7d2390da4a883c05c098f23891862e by erik.pilkington
[demangle] NFC: get rid of NodeOrString
This class was a bit overengineered, and was triggering some PVS
warnings. Instead, put strings into a NameType and let clients
unconditionally treat it as a Node.
The file was modifiedllvm/include/llvm/Demangle/ItaniumDemangle.h
The file was modifiedllvm/lib/Demangle/ItaniumDemangle.cpp
The file was modifiedlibcxxabi/src/cxa_demangle.cpp
The file was modifiedlibcxxabi/src/demangle/ItaniumDemangle.h
The file was modifiedllvm/lib/Support/ItaniumManglingCanonicalizer.cpp
Commit 4312c4afd43209400df53ca541b4b19919f797af by Stanislav.Mekhanoshin
[AMDGPU] deduplicate tablegen predicates
We are duplicating predicates if several parts of the combined predicate
list contain the same condition. Added code to deduplicate the list.
We have AssemblerPredicates and AssemblerPredicate in the
PredicateControl, but we never use AssemblerPredicates with an actual
list, so this one is dropped.
This addresses the first part of the llvm bug 43886:
https://bugs.llvm.org/show_bug.cgi?id=43886
Differential Revision: https://reviews.llvm.org/D69815
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.td
The file was modifiedllvm/lib/Target/AMDGPU/MIMGInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SMInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/DSInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP1Instructions.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP3PInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SOPInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOP2Instructions.td
The file was modifiedllvm/lib/Target/AMDGPU/VOPCInstructions.td
Commit adbf64ccc9e18278600ebaeadd8f0117eb8e64b1 by Lawrence D'Anna
[LLDB][Python] remove ArgInfo::count
Summary: This patch updates the last user of ArgInfo::count and deletes
it.   I also delete `GetNumInitArguments()` and `GetInitArgInfo()`.
Classess are callables and `GetArgInfo()` should work on them.
On python 3 it already works, of course. `inspect` is good.
On python 2 we have to add yet another special case.   But hey if python
2 wasn't crufty we wouln't need python 3.
I also delete `is_bound_method` becuase it is unused.
This path is tested in `TestStepScripted.py`
Reviewers: labath, mgorny, JDevlieghere
Reviewed By: labath, JDevlieghere
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D69742
The file was modifiedlldb/scripts/Python/python-wrapper.swig
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
The file was modifiedlldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
Commit 8bbf2e37167d9ac08fa9d3c772d48ca7d9a6f8f6 by a.bataev
[OPENMP50]Support for imperfectly nested loops.
Added support for imperfectly nested loops introduced in OpenMP 5.0.
The file was modifiedclang/test/OpenMP/for_ast_print.cpp
The file was modifiedclang/include/clang/AST/StmtOpenMP.h
The file was modifiedclang/lib/AST/StmtOpenMP.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/test/OpenMP/for_codegen.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/for_collapse_messages.cpp
Commit d11a9018b773c0359934a7989d886b02468112e4 by jyknight
Add release notes for commit ccc4d83cda16bea1d9dfd0967dc7d2cfb24b8e75.
(Which was "[ObjC] Diagnose implicit type coercion from ObjC 'Class' to
object pointer types.")
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 3eecd601ed803ed3dc15b054cdddee68702ba3dd by a.bataev
[OPENMP][DOCS]Update list of implemented features, NFC.
The file was modifiedclang/docs/OpenMPSupport.rst
Commit 1bfcc60828d6e1fb93d65b53986514c059b1263d by Stanislav.Mekhanoshin
[AMDGPU] Added assert in SIFoldOperands before ptr use. NFC.
The file was modifiedllvm/lib/Target/AMDGPU/SIFoldOperands.cpp
Commit 403739b2fdb64e90118017355bd01f88a0640b3f by koraq
[AST][NFC] Fixes a comment typo
Also a test for commit access.
The file was modifiedclang/lib/AST/DeclCXX.cpp
Commit 1cce82eae84a65fc03402f90a67b5b804d02dd6c by sbc
Add more binutils tools to LLVM_INSTALL_TOOLCHAIN_ONLY target
Also add the aliases for these tools so that
LLVM_INSTALL_BINUTILS_SYMLINKS and LLVM_INSTALL_TOOLCHAIN_ONLY can work
together.
Differential Revision: https://reviews.llvm.org/D69635
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit 4cbe10efc2011641f72357685feff35ca87ed0d5 by e.menezes
[AArch64] Update for Exynos
Fix the costs of integer division.
The file was modifiedllvm/lib/Target/AArch64/AArch64SchedExynosM4.td
Commit dc34b1c94df683eb85df989c1d62c81c588a29f8 by ron.lieberman
Test commit: adds a . to comment. NFC
The file was modifiedopenmp/libomptarget/plugins/cuda/src/rtl.cpp
Commit a5c8ec4baa2c00d8dbca36ffd236a40f9e0c07ed by Vedant Kumar
[CGDebugInfo] Emit subprograms for decls when AT_tail_call is understood
Currently, clang emits subprograms for declared functions when the
target debugger or DWARF standard is known to support entry values
(DW_OP_entry_value & the GNU equivalent).
Treat DW_AT_tail_call the same way to allow debuggers to follow cross-TU
tail calls.
Pre-patch debug session with a cross-TU tail call:
```
* frame #0: 0x0000000100000fa4 main`target at b.c:4:3 [opt]
   frame #1: 0x0000000100000f99 main`main at a.c:8:10 [opt]
```
Post-patch (note that the tail-calling frame, "helper", is visible):
```
* frame #0: 0x0000000100000fa4 main`target at b.c:4:3 [opt]
   frame #1: 0x0000000100000f80 main`helper [opt] [artificial]
   frame #2: 0x0000000100000f99 main`main at a.c:8:10 [opt]
```
rdar://46577651
Differential Revision: https://reviews.llvm.org/D69743
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/test/CodeGenCXX/dbg-info-all-calls-described.cpp
The file was modifiedllvm/test/DebugInfo/X86/dwarf-callsite-related-attrs.ll
The file was modifiedclang/test/CodeGen/debug-info-extern-call.c