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


  1. [CVP] prevent propagating poison when substituting edge values into a (details)
  2. [clangd] Do not report anonymous entities in findExplicitReferences (details)
  3. [InstCombine][NFC] Tests for uadd.sat and sadd.sat canonicalisation. (details)
  4. [AArch64][Builtins] Avoid unnecessary cache cleaning (details)
  5. [DAGCombiner] widen any_ext of popcount based on target support (details)
  6. [DebugInfo] MachineSink: find more DBG_VALUEs to sink (details)
  7. lld/COFF: Simplify getOutputPath() using sys::path functions. (details)
  8. [LIBOMPTARGET]Fix build, NFC. (details)
  9. Precommit AArch64 test for -consider-local-interval-cost (details)
  10. [AArch64] Fix unannotated fall-through between switch labels (details)
  11. Add Windows Control Flow Guard checks (/guard:cf). (details)
  12. [InstCombine] Extra combine for uadd_sat (details)
  13. [LiveIntervalUnion] Expose extraction of last index in map for external (details)
  14. [NFC] Comment endif to test commit access (details)
  15. [clang] Add no_builtin attribute (details)
  16. Remove extra ';'. NFCI. (details)
  17. [scudo][standalone] Consolidate lists (details)
  18. [AIX] Refactor AIX Call Lowering to use CCState. NFCI. (details)
  19. [Docs] Disable Python docs when LLDB_DISABLE_PYTHON is set (details)
  20. [lit] Make a pure Python module (details)
  21. AMDGPU: Avoid overwriting saved PC (details)
  22. [utils] InlineFunction: fix for debug info affecting optimizations (details)
Commit f2e93d10fe0c7a845254d35f59f47d439e9ff89b by spatel
[CVP] prevent propagating poison when substituting edge values into a
phi (PR43802)
This phi simplification transform was added with: D45448
However as shown in PR43802:
...we must be careful not to propagate poison when we do the
substitution. There might be some more complicated analysis possible to
retain the overflow flag, but it should always be safe and easy to drop
flags (we have similar behavior in instcombine and other passes).
Differential Revision:
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll
Commit 4c430a7c6f6b11105963c6a0ff1e6ee31517a1c8 by ibiryukov
[clangd] Do not report anonymous entities in findExplicitReferences
Summary: Otherwise every client dealing with name location should handle
anonymous names in a special manner.
This seems too error-prone, clients can probably handle anonymous
entities they care about differently.
Reviewers: hokein
Reviewed By: hokein
Subscribers: MaskRay, jkorous, arphaman, kadircet, usaxena95,
Tags: #clang
Differential Revision:
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
Commit d2ec416c7babe65947ab841f9c9eb08844af3549 by
[InstCombine][NFC] Tests for uadd.sat and sadd.sat canonicalisation.
The file was addedllvm/test/Transforms/InstCombine/overflow_to_sat.ll
The file was modifiedllvm/test/Transforms/InstCombine/saturating-add-sub.ll
Commit 35cb3ee4ca477095bb3dd74f60ab932e185be63f by bryan.chan
[AArch64][Builtins] Avoid unnecessary cache cleaning
Use new control bits CTR_EL0.DIC and CTR_EL0.IDC to discover the d-cache
cleaning and i-cache invalidation requirements for instruction-to-data
coherence. This matches the behavior in the latest libgcc.
Author: Shaokun Zhang <>
Reviewed By: peter.smith
Differential Revision:
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c
Commit 1ebd4a2e3ad0e95ee915ed5a99aab53f8fe7da95 by spatel
[DAGCombiner] widen any_ext of popcount based on target support
This enhances D69127 (rGe6c145e0548e3b3de6eab27e44e1504387cf6b53) to
handle the looser "any_extend" cast in addition to zext.
This is a prerequisite step for canonicalizing in the other direction
(narrow the popcount) in IR - PR43688:
The file was modifiedllvm/test/CodeGen/PowerPC/popcnt.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/popcnt-zext.ll
Commit f5e1b718a675a4449b71423f04d38e1e93045105 by jeremy.morse
[DebugInfo] MachineSink: find more DBG_VALUEs to sink
In the Pre-RA machine sinker, previously we were relying on all
DBG_VALUEs being immediately after the instruction that defined their
operands. This isn't a valid assumption, as a variable location change
doesn't necessarily correspond to where the value is computed. In this
patch, we collect DBG_VALUEs that might need sinking as we walk through
a block, and sink all of them if their defining instruction is sunk.
This patch adds some copy propagation too, so that if we sink a copy
inst, the now non-dominated paths can use the copy source for the
variable location.
Differential Revision:
The file was addedllvm/test/DebugInfo/MIR/X86/machinesink.mir
The file was modifiedllvm/lib/CodeGen/MachineSink.cpp
Commit b911d2db5dd85b7b69b4529fc581b3e95dba488c by nicolasweber
lld/COFF: Simplify getOutputPath() using sys::path functions.
Also mention "basename" and "dirname" in Path.h since I tried to find
these functions by looking for these strings. It might help others find
them faster if the comments contain these strings.
No behavior change.
Differential Revision:
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedllvm/include/llvm/Support/Path.h
Commit d7941a6ab976121c35865c90a6a76a72c914444b by a.bataev
Need to include nvptx_interface.h in target_impl.h, otherwise the build
is failed because of missing __kmpc_impl_lanemask_t type.
The file was modifiedopenmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h
Commit 265ddc57579b28da1fcfb632f165307e98480528 by Sanne.Wouda
Precommit AArch64 test for -consider-local-interval-cost
Summary: Precommitting this test makes it more obvious what the delta is
of enabling
-consider-local-interval-cost in D69437.
Reviewers: dmgreen
Subscribers: kristof.beyls, llvm-commits
Tags: #llvm
Differential Revision:
The file was addedllvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
Commit a233e7d7cb642ada49985426c23aa3c6a4c98690 by Jinsong Ji
[AArch64] Fix unannotated fall-through between switch labels
This is breaking buildbot with -Werror,-Wimplicit-fallthrough on. eg:
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
Commit d157a9bc8ba1085cc4808c6941412322a7fd884e by David.Chisnall
Add Windows Control Flow Guard checks (/guard:cf).
Summary: A new function pass (Transforms/CFGuard/CFGuard.cpp) inserts
CFGuard checks on indirect function calls, using either the check
mechanism (X86, ARM, AArch64) or or the dispatch mechanism (X86-64). The
check mechanism requires a new calling convention for the supported
targets. The dispatch mechanism adds the target as an operand bundle,
which is processed by SelectionDAG. Another pass
(CodeGen/CFGuardLongjmp.cpp) identifies and emits valid longjmp targets,
as required by /guard:cf. This feature is enabled using the `cfguard`
CC1 option.
Reviewers: thakis, rnk, theraven, pcc
Subscribers: ychen, hans, metalcanine, dmajor, tomrittervg, alex,
mehdi_amini, mgorny, javed.absar, kristof.beyls, hiraditya, steven_wu,
dexonsmith, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision:
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedclang/test/Driver/cl-fallback.c
The file was modifiedllvm/lib/CodeGen/AsmPrinter/WinCFGuard.h
The file was modifiedllvm/lib/AsmParser/LLToken.h
The file was modifiedllvm/test/CodeGen/WinCFGuard/cfguard.ll
The file was modifiedllvm/lib/Target/X86/X86AsmPrinter.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetMachine.cpp
The file was modifiedllvm/include/llvm/IR/CallingConv.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64FastISel.cpp
The file was modifiedllvm/lib/Target/ARM/ARMCallingConv.h
The file was modifiedclang/test/CodeGen/cfguardtable.c
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp
The file was modifiedllvm/lib/Target/AArch64/LLVMBuild.txt
The file was addedllvm/test/CodeGen/AArch64/cfguard-checks.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/lib/Transforms/LLVMBuild.txt
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64CallingConvention.h
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetMachine.cpp
The file was modifiedllvm/include/llvm/IR/LLVMContext.h
The file was addedllvm/test/CodeGen/AArch64/cfguard-module-flag.ll
The file was modifiedllvm/lib/CodeGen/CodeGen.cpp
The file was modifiedllvm/lib/Target/ARM/LLVMBuild.txt
The file was addedllvm/lib/Transforms/CFGuard/LLVMBuild.txt
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/test/Bitcode/calling-conventions.3.2.ll.bc
The file was modifiedllvm/lib/Transforms/CMakeLists.txt
The file was addedllvm/test/CodeGen/ARM/cfguard-checks.ll
The file was modifiedllvm/lib/Target/X86/X86TargetMachine.cpp
The file was modifiedclang/include/clang/Driver/
The file was modifiedllvm/lib/Target/X86/LLVMBuild.txt
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedllvm/include/llvm/MC/MCObjectFileInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMFastISel.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedllvm/test/Bitcode/calling-conventions.3.2.ll
The file was addedllvm/include/llvm/Transforms/CFGuard.h
The file was modifiedclang/include/clang/Driver/
The file was addedllvm/test/CodeGen/X86/cfguard-x86-64-vectorcall.ll
The file was modifiedllvm/lib/Target/AArch64/
The file was addedllvm/lib/CodeGen/CFGuardLongjmp.cpp
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was addedllvm/test/CodeGen/X86/cfguard-x86-vectorcall.ll
The file was addedllvm/test/CodeGen/X86/cfguard-checks.ll
The file was modifiedllvm/lib/Target/X86/X86RegisterInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was addedllvm/test/CodeGen/ARM/cfguard-module-flag.ll
The file was modifiedclang/docs/ClangCommandLineReference.rst
The file was addedllvm/lib/Transforms/CFGuard/CMakeLists.txt
The file was addedllvm/lib/Transforms/CFGuard/CFGuard.cpp
The file was modifiedllvm/lib/Target/ARM/
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/Target/X86/
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/lib/IR/AsmWriter.cpp
The file was modifiedllvm/lib/IR/LLVMContext.cpp
The file was modifiedclang/test/Driver/cl-options.c
The file was modifiedllvm/test/Bitcode/operand-bundles-bc-analyzer.ll
The file was modifiedllvm/lib/MC/MCObjectFileInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was addedllvm/test/CodeGen/X86/cfguard-module-flag.ll
The file was modifiedllvm/lib/AsmParser/LLLexer.cpp
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/include/llvm/Target/
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
Commit bf21f0d489fb461a8eeb4d6342d28ed2c6e4048d by
[InstCombine] Extra combine for uadd_sat
This is an extra fold for a canonical form of uadd_sat, as shown in
D68651. It essentially selects uadd from an add and a select.
Differential Revision:
The file was modifiedllvm/test/Transforms/InstCombine/saturating-add-sub.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Commit e4d6f1300fa2dd12d9d68fab2ded72c0e69b19ee by mmaggioni
[LiveIntervalUnion] Expose extraction of last index in map for external
Differential Revision:
The file was modifiedllvm/include/llvm/CodeGen/LiveIntervalUnion.h
Commit a062856bcf4fca26dab06afdf14bf1c815831f9c by z.zoelec2
[NFC] Comment endif to test commit access
The file was modifiedlibcxx/include/type_traits
Commit bd87916109483d33455cbf20da2309197b983cdd by gchatelet
[clang] Add no_builtin attribute
Summary: This is a follow up on This
patch is simpler and only adds the no_builtin attribute.
Reviewers: tejohnson, courbet, theraven, t.p.northover, jdoerfert
Subscribers: mgrang, cfe-commits
Tags: #clang
Differential Revision:
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was addedclang/test/Sema/no-builtin.cpp
The file was modifiedclang/include/clang/AST/Decl.h
The file was addedclang/test/CodeGen/no-builtin.cpp
The file was modifiedclang/include/clang/Basic/
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedclang/include/clang/Basic/
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was modifiedclang/include/clang/Basic/
Commit 93a3128a67cc4372696eb3199bed23d7bac4a183 by llvm-dev
Remove extra ';'. NFCI.
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp
Commit 6f2de9cbb37fa53029ad861204366e87cce8fcb1 by 31459023+hctim
[scudo][standalone] Consolidate lists
Summary: This is a clean patch using the last diff of D69265, but using
git instead of svn, since svn went ro and arc was making my life harded
than it needed to be.
I was going to introduce a couple more lists and realized that our lists
are currently a bit all over the place. While we have a singly linked
list type relatively well defined, we are using doubly linked lists
defined on the fly for the stats and for the secondary blocks.
This CL adds a doubly linked list object, reorganizing the singly list
one to extract as much of the common code as possible. We use this new
type in the stats and the secondary. We also reorganize the list tests
to benefit from this consolidation.
There are a few side effect changes such as using for iterator loops
that are, in my opinion, cleaner in a couple of places.
Reviewers: hctim, morehouse, pcc, cferris
Reviewed By: hctim
Subscribers: jfb, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision:
The file was modifiedcompiler-rt/lib/scudo/standalone/stats.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/release_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/secondary.h
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h
The file was modifiedcompiler-rt/lib/scudo/standalone/list.h
The file was modifiedcompiler-rt/lib/scudo/standalone/secondary.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/list_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/quarantine.h
The file was modifiedcompiler-rt/lib/scudo/standalone/release.h
Commit 582e3c09d4872db42ecff386031ddf823aab992e by sd.fertile
[AIX] Refactor AIX Call Lowering to use CCState. NFCI.
This patch reworks the AIX call lowering to use CCState. Some defensive
errors are added in this patch to protect from emitting bad code for
calling convention logic that has not been implemented by design. The
use of CCState follows the precedent of other targets and enables the
reuse of calling convention logic in LowerFormalArguments, which will be
rewritten to also use CCState in a late patch.
Patch by Chris Bowler.
Differential Revision:
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/aix-byval-param.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-stackargs.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-nest-param.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-sret-param.ll
Commit 6336317e0a37c246b7aea29a178c0d6fd3d12454 by Jonas Devlieghere
[Docs] Disable Python docs when LLDB_DISABLE_PYTHON is set
This leads to a configuration error because we're trying to get a
property that doesn't exist:
get_target_property() called with non-existent target "swig_wrapper"
The file was modifiedlldb/docs/CMakeLists.txt
Commit 2ddd1564a9c2c648ac63fcaca474d5386cebd3fe by jlettner
[lit] Make a pure Python module
Running it directly as a tool, that is what is for.
The file was modifiedllvm/utils/lit/
The file was modifiedllvm/utils/lit/lit/
Commit d11b93ec6ac1cf48dce0a8b7beb3e07f0ee9b0fc by Austin.Kerbow
AMDGPU: Avoid overwriting saved PC
Summary: An outstanding load with same destination sgpr as call could
cause PC to be updated with junk value on return.
Reviewers: arsenm, rampitec
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr,
t-tye, hiraditya, llvm-commits
Tags: #llvm
Differential Revision:
The file was addedllvm/test/CodeGen/AMDGPU/call-waw-waitcnt.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Commit 80cb2cecc65753aa1de09a09f3750408913f6450 by bjorn.a.pettersson
[utils] InlineFunction: fix for debug info affecting optimizations
Summary: Debug info affects output from "opt -inline", InlineFunction
could not handle the llvm.dbg.value when it exist between alloca
Problem was that the first alloca in a sequence of allocas was handled
differently from the subsequence alloca instructions. Now all static
alloca instructions are treated the same (being removed if the have no
uses). So it does not matter if there are dbg instructions (or any other
instructions) in between.
Fix the issue:
Patch by: yechunliang (Chris Ye)
Reviewers: bjope, jmorse, vsk, probinson, jdoerfert, mtrofin, aprantl,
Reviewed By: bjope
Subscribers: uabelho, ormris, aprantl, hiraditya, llvm-commits
Tags: #llvm
Differential Revision:
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was addedllvm/test/Transforms/Inline/inline-skip-use-empty-alloca.ll