Changes

Summary

  1. [ORC] Add support for emulated TLS to ORCv2. (details)
  2. [clang][IFS][test] Temporary work around for in-process cc1 ASAN issues. (details)
  3. [ORC] Fix a missing move in ce2207abaf9. (details)
  4. Resubmit: [AMDGPU] Invert the handling of skip insertion. (details)
  5. [AMDGPU] SIRemoveShortExecBranches should not remove branches exiting (details)
  6. [gn build] Port e53a9d96e6a (details)
  7. [ORC] Update examples to incorporate changes in ce2207abaf9. (details)
  8. [DA][TTI][AMDGPU] Add option to select GPUDA with TTI (details)
  9. Update clang-interpreter example to incorporate changes in ce2207abaf9. (details)
  10. [LICM] Don't cache AliasSetTrackers when run under legacy PM (details)
  11. [lldb/Initializers] Move all ObjC initializers into AppleObjCRuntime (details)
  12. [ORC] Fix the LLJITWithObjectCache example to address changes in (details)
  13. [AArch64][GlobalISel] Fix llvm.returnaddress(0) selection when LR is (details)
  14. [lldb] Add a display name to ClangASTContext instances (details)
  15. [VE] i<N> and fp32/64 arguments, return values and constants (details)
  16. [Concepts] Fix incorrect recovery in TryAnnotateTypeConstraint (details)
  17. [clang][index] Index the injected class name types. (details)
  18. [llvm-as] Fix assembling of index with multiple summaries sharing single (details)
  19. [clangd] Handle the missing injectedClassNameType in targetDecl. (details)
  20. Change the googlemock link (details)
  21. [lldb] Fix an asan error from 27df2d9f556c (details)
  22. [mlir][orc] unbreak MLIR ExecutionEngine after ORC changes (details)
  23. [Concepts] Fix bug when referencing function parameters in instantiated (details)
  24. [ARM][MVE] Clear MaskedInsts vector (details)
  25. [llvm-readobj] - Rewrite gnuhash.test test to stop using precompiled (details)
  26. [Doc] Update requirements for masked load/store (details)
  27. [llvm-exegesis] Serial snippet: Restrict the set of back-to-back (details)
  28. [lldb] s/lldb/%lldb in two tests (details)
  29. [Alignment][NFC] Use Align with CreateMaskedStore (details)
  30. [Concepts] Placeholder constraints and abbreviated templates (details)
  31. Add support for (expressing) vscale. (details)
  32. Revert "[Concepts] Fix bug when referencing function parameters in (details)
  33. [clangd] Do not duplicate TemplatedDecls in findExplicitReferences (details)
  34. [LLD][ELF][ARM] Don't apply --fix-cortex-a8 to relocatable links. (details)
  35. [AArch64][SVE] Add intrinsic for non-faulting loads (details)
Commit ce2207abaf9a925b35f15ef92aaff6b301ba6d22 by Lang Hames
[ORC] Add support for emulated TLS to ORCv2.
This commit adds a ManglingOptions struct to IRMaterializationUnit, and
replaces IRCompileLayer::CompileFunction with a new
IRCompileLayer::IRCompiler class. The ManglingOptions struct defines the
emulated-TLS state (via a bool member, EmulatedTLS, which is true if
emulated-TLS is enabled and false otherwise). The
IRCompileLayer::IRCompiler class wraps an IRCompiler (the same way that
the CompileFunction typedef used to), but adds a method to return the
IRCompileLayer::ManglingOptions that the compiler will use.
These changes allow us to correctly determine the symbols that will be
produced when a thread local global variable defined at the IR level is
compiled with or without emulated TLS. This is required for ORCv2, where
MaterializationUnits must declare their interface up-front.
Most ORCv2 clients should not require any changes. Clients writing
custom IR compilers will need to wrap their compiler in an
IRCompileLayer::IRCompiler, rather than an
IRCompileLayer::CompileFunction, however this should be a
straightforward change (see modifications to CompileUtils.* in this
patch for an example).
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h
The file was modifiedllvm/tools/lli/lli.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLinkingLayerTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/RemoteObjectLayerTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileUtils.cpp
The file was addedllvm/test/ExecutionEngine/OrcLazy/emulated-tls.ll
Commit c38e42527b21acee8d01a016d5bfa2fb83202e29 by puyan
[clang][IFS][test] Temporary work around for in-process cc1 ASAN issues.
When using in-process cc1, the Clang Interface Stubs pipeline setup
exposes an ASAN bug. I am still investigating this issue but want to
green the bots for now. I don't think this is a huge issue since the
Clang Interface Stubs Driver setup code is the only code path that sets
up such a pipeline (ie N cc1's for N c files followed by another N cc1's
for to generate stub files for the same N c files).
This issue is being discussed in https://reviews.llvm.org/D69825. If a
resolution is not found soon, a bugzilla filling will be in order.
The file was modifiedclang/test/InterfaceStubs/driver-test2.c
The file was modifiedclang/test/InterfaceStubs/driver-test.c
Commit e0a6093a744d16c90eafa62d7143ce41806b2466 by Lang Hames
[ORC] Fix a missing move in ce2207abaf9.
This should fix the build failure at
http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/32524
and others.
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileUtils.cpp
Commit e53a9d96e6a074aa7f81ec104eb18e82997c7206 by carl.ritson
Resubmit: [AMDGPU] Invert the handling of skip insertion.
The current implementation of skip insertion (SIInsertSkip) makes it a
mandatory pass required for correctness. Initially, the idea was to have
an optional pass. This patch inserts the s_cbranch_execz upfront during
SILowerControlFlow to skip over the sections of code when no lanes are
active. Later, SIRemoveShortExecBranches removes the skips for short
branches, unless there is a sideeffect and the skip branch is really
necessary.
This new pass will replace the handling of skip insertion in the
existing SIInsertSkip Pass.
Differential revision: https://reviews.llvm.org/D68092
The file was addedllvm/lib/Target/AMDGPU/SIRemoveShortExecBranches.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/si-lower-control-flow.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/valu-i1.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/skip-branch-taildup-ret.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInsertSkips.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/insert-skips-kill-uncond.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.h
The file was modifiedllvm/test/CodeGen/AMDGPU/collapse-endcf.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/divergent-branch-uniform-condition.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert-skips-ignored-insts.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/cse-phi-incoming-val.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ret_jump.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/skip-if-dead.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/control-flow-fastregalloc.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/call-skip.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/si-annotate-cf-noloop.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/smrd_vmem_war.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/else.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert-skips-gws.mir
The file was modifiedllvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/branch-condition-and.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/si-lower-control-flow-unreachable-block.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/hoist-cond.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wqm.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/uniform-loop-inside-nonuniform.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/branch-relaxation.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/skip-branch-trap.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/convergent-inlineasm.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/uniform-cfg.ll
The file was modifiedllvm/lib/Target/AMDGPU/CMakeLists.txt
The file was modifiedllvm/test/CodeGen/AMDGPU/subreg-coalescer-undef-use.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wave32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/insert-skips-flat-vmem.mir
Commit 6b4b3e2856dc6037ae79947a60a02a4d3e94e9e2 by carl.ritson
[AMDGPU] SIRemoveShortExecBranches should not remove branches exiting
loops
Summary: Check that a s_cbranch_execz is not a loop exit before removing
it. As the pass is generating infinite loops.
Reviewers: cdevadas, arsenm, nhaehnle
Reviewed By: nhaehnle
Subscribers: kzhuravl, jvesely, wdng, yaxunl, tpr, t-tye, hiraditya,
kerbowa, llvm-commits, dstuttard, foad
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72997
The file was modifiedllvm/lib/Target/AMDGPU/SIRemoveShortExecBranches.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/divergent-branch-uniform-condition.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/valu-i1.ll
Commit debd2dcd098a581fc0ef2c0de5e2b06439e105f4 by llvmgnsyncbot
[gn build] Port e53a9d96e6a
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Commit 98e55477558a823b1045b54d5a09681a3c0b819a by Lang Hames
[ORC] Update examples to incorporate changes in ce2207abaf9.
This should fix the builders that were failing due to broken JIT
examples after ce2207abaf9.
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h
Commit a90a6502ab35d3c15c7d56772e409c5632ce6cfb by Austin.Kerbow
[DA][TTI][AMDGPU] Add option to select GPUDA with TTI
Summary: Enable the new diveregence analysis by default for AMDGPU.
Reviewers: rampitec, nhaehnle, arsenm
Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye,
hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73049
The file was modifiedllvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
The file was modifiedllvm/lib/Analysis/LegacyDivergenceAnalysis.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
Commit b54aa053d3aeeab0cdaecb6286419138b7da5ef4 by Lang Hames
Update clang-interpreter example to incorporate changes in ce2207abaf9.
The file was modifiedclang/examples/clang-interpreter/main.cpp
Commit 7bdc83f34016bb0288f7af6fffa244bfeb285d04 by suc-daniil
[LICM] Don't cache AliasSetTrackers when run under legacy PM
Summary: This is the first step towards complete removal of AST caching
from LICM. Attempts to keep LICM's AST cache up to date across passes
can lead to miscompiles like this one:
https://bugs.llvm.org/show_bug.cgi?id=44320.
LICM has already switched to using MemorySSA to do sinking and hoisting
and only builds an AliasSetTracker on demand for the promoteToScalars
step, without caching it from one LICM instance to the next. Given this,
we don't have compile-time reasons to keep AST caching any more. The
only scenario where the caching would be used currently is when using
the LegacyPassManager and setting -enable-mssa-loop-dependency=false.
This switch should help us to surface any possible issues that may arise
along this way, also it turns subsequent removal of AST caching into
NFC.
Reviewers: asbirlea, fhahn, efriedma, reames
Reviewed By: asbirlea
Subscribers: hiraditya, george.burgess.iv, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73081
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
Commit 1d1ebb9e592bea931845296dd80a46fb46af2642 by Jonas Devlieghere
[lldb/Initializers] Move all ObjC initializers into AppleObjCRuntime
AppleObjCRuntime is the main entry point to the plugin with the same
name. This is part of a greater refactoring to auto generate the
initializers. NFC.
Differential revision: https://reviews.llvm.org/D73121
The file was modifiedlldb/tools/lldb-test/SystemInitializerTest.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h
The file was modifiedlldb/source/API/SystemInitializerFull.cpp
Commit 97d000da2e6025600c4709d611e853eb1d5d407c by Lang Hames
[ORC] Fix the LLJITWithObjectCache example to address changes in
ce2207abaf9.
The file was modifiedllvm/examples/LLJITExamples/LLJITWithObjectCache/LLJITWithObjectCache.cpp
Commit 2e25d75aaa2280c3128c8dd6349f8b605207b94d by Amara Emerson
[AArch64][GlobalISel] Fix llvm.returnaddress(0) selection when LR is
clobbered.
The code was originally ported from SelectionDAG, which does CSE behind
the scenes automatically. When copying the return address from LR live
into the function, we need to make sure to use the single copy on
function entry. Any later copy from LR could be using clobbered junk.
Implement this by caching the copy in the per-MF state in the selector.
Should hopefully fix the AArch64 sanitiser buildbot failure.
The file was modifiedllvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddr.ll
Commit c9a39a896c95402ede07061380346c725556e308 by Raphael Isemann
[lldb] Add a display name to ClangASTContext instances
Summary: I often struggle to understand what exactly LLDB is doing by
looking at our expression evaluation logging as our messages look like
this:
``` CompleteTagDecl[2] on (ASTContext*)0x7ff31f01d240 Completing
(TagDecl*)0x7ff31f01d568 named DeclName1
```
From the log messages it's unclear what this ASTContext is. Is it the
scratch context, the expression context, some decl vendor context or a
context from a module? The pointer value isn't helpful for anyone unless
I'm in a debugger where I could inspect the memory at the address. But
even with a debugger it's not easy to figure out what this ASTContext is
without having deeper understanding about all the different ASTContext
instances in LLDB (e.g., valid SourceLocation from the file system
usually means that this is the Objective-C decl vendor, a file name from
multiple expressions is probably the scratch context, etc.).
This patch adds a name field to ClangASTContext instances that we can
use to store a name which can be used for logging and debugging. With
this our log messages now look like this:
``` CompleteTagDecl[2] on scratch ASTContext. Completing
(TagDecl*)0x7ff31f01d568 named Foo
``` We can now also just print a ClangASTContext from the debugger and
see a useful name in the `m_display_name` field, e.g.
```
m_display_name = "AST for /Users/user/test/main.o";
```
Reviewers: shafik, labath, JDevlieghere, mib
Reviewed By: shafik
Subscribers: clayborg, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D72391
The file was modifiedlldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp
The file was modifiedlldb/unittests/Symbol/TestClangASTContext.cpp
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
The file was modifiedlldb/unittests/TestingSupport/Symbol/ClangTestUtils.h
Commit 3a906a9f4e6b51130d9a1bdd5f9a7ec3705d3faa by simon.moll
[VE] i<N> and fp32/64 arguments, return values and constants
Summary: Support for i<N> and fp32/64 arguments (in register), return
values and constants along with tests.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D73092
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.td
The file was modifiedllvm/lib/Target/VE/VECallingConv.td
The file was modifiedllvm/lib/Target/VE/VEISelLowering.h
The file was removedllvm/test/CodeGen/VE/constants_i64.ll
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
The file was addedllvm/test/CodeGen/VE/cast.ll
The file was addedllvm/test/CodeGen/VE/constants.ll
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.cpp
The file was modifiedllvm/lib/Target/VE/VERegisterInfo.cpp
The file was modifiedllvm/lib/Target/VE/VEInstrFormats.td
The file was modifiedllvm/lib/Target/VE/VERegisterInfo.td
Commit de51559fa68049da73b696a4e89468154b12852a by saar
[Concepts] Fix incorrect recovery in TryAnnotateTypeConstraint
TryAnnotateTypeConstraint would not put the scope specifier back into
the token stream when faced with a non-concept name after a scope
specifier.
The file was modifiedclang/lib/Parse/ParseTemplate.cpp
Commit a133cbaad5b292aab7134e3a91e80c5b2dddbe7e by hokein.wu
[clang][index] Index the injected class name types.
Summary: Currently, we (clangd) are missing this kind of references.
Reviewers: kadircet
Subscribers: ilya-biryukov, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73109
The file was modifiedclang/lib/Index/IndexTypeSourceInfo.cpp
The file was modifiedclang/unittests/Index/IndexTests.cpp
Commit 3593b5b3e9ce59dc17c26b5d6e77413437fa03f7 by evgeny
[llvm-as] Fix assembling of index with multiple summaries sharing single
GUID
Differential revision: https://reviews.llvm.org/D73091
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was addedllvm/test/Assembler/thinlto-multiple-summaries-for-guid.ll
Commit 5d4e89975714875a86cb8e62b60d93eebefa4029 by hokein.wu
[clangd] Handle the missing injectedClassNameType in targetDecl.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet,
usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73102
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
Commit 935729e4c63a07570f16f5d6112903f349365775 by pavel
Change the googlemock link
Summary: This commit changes the googlemock link in the Testing Guide
doc as googlemock is absorbed into the GoogleTest project
Reviewers: shafik, labath, JDevlieghere, mib
Reviewed By: labath
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73082
The file was modifiedllvm/docs/TestingGuide.rst
Commit 0157a74bec3d2ef1fac5b874327b97d2ae8e95c8 by pavel
[lldb] Fix an asan error from 27df2d9f556c
This error is caused by a combination of a couple of factors:
- the test accidentally creating a list with a single (empty) FileSpec
instead of an empty list
- lldb overzeleously converting empty strings into nullptrs
- asan overzeleously validating symlink(2) arguments (the real symlink
call would just fail with EFAULT)
I fix this by using FileSpec::GetPath instead of GetCString. This avoids
the nullptr and also avoids inserting the path into the global string
pool.
I also enhance the test case to test both empty paths and empty lists.
The file was modifiedlldb/source/Host/posix/FileSystemPosix.cpp
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
Commit 7984b47401f7f36475619abf2ff02de3b5ff0481 by zinenko
[mlir][orc] unbreak MLIR ExecutionEngine after ORC changes
Changes to ORC in ce2207abaf9a925b35f15ef92aaff6b301ba6d22 changed the
APIs in IRCompileLayer, now requiring the custom compiler to be wrapped
in IRCompileLayer::IRCompiler. Even though MLIR relies on Orc
CompileUtils, the type is still visible in several places in the code.
Adapt those to the new API.
The file was modifiedmlir/lib/ExecutionEngine/ExecutionEngine.cpp
Commit 45538b5fb280e5b2903f7924fd4fa5b07a6dd3ea by saar
[Concepts] Fix bug when referencing function parameters in instantiated
function template requires clause
Fixes bug #44613 - instantiated parameters were not being added when
instantiating the requires clauses.
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/test/SemaTemplate/instantiate-requires-clause.cpp
Commit c04b9ba59580b09788d61fcad18e72f8c490cff2 by sam.parker
[ARM][MVE] Clear MaskedInsts vector
In MVETailPredication, clear the vector before running on a new loop.
Differential Revision: https://reviews.llvm.org/D73048
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/clear-maskedinsts.ll
The file was modifiedllvm/lib/Target/ARM/MVETailPredication.cpp
Commit eaa594f4ec54eba52b03fd9f1c789b214c66a753 by grimar
[llvm-readobj] - Rewrite gnuhash.test test to stop using precompiled
objects.
This rewrites the test to use YAML and removes 4 precompiled object.
Differential revision: https://reviews.llvm.org/D73096
The file was modifiedllvm/test/tools/llvm-readobj/ELF/gnuhash.test
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-x86_64
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc64
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-i386
Commit 1d549e68d4ac58e5fcdc1c9c6d2d09334fab4fbf by gchatelet
[Doc] Update requirements for masked load/store
The file was modifiedllvm/docs/LangRef.rst
Commit 5be8b2ec4a0f73900b4b41f6c67ac7d0091d6ac7 by courbet
[llvm-exegesis] Serial snippet: Restrict the set of back-to-back
instructions
Summary: Right now when picking a back-to-back instruction at random, we
might select instructions that we do not know how to handle. Add a
ExegesisTarget hook to possibly filter instructions.
Reviewers: gchatelet
Subscribers: tschuett, mstojanovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73161
The file was modifiedllvm/tools/llvm-exegesis/lib/X86/Target.cpp
The file was modifiedllvm/tools/llvm-exegesis/lib/Target.h
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
Commit 889a4f55c9100d55f9c120b8408c16491d73c7b5 by pavel
[lldb] s/lldb/%lldb in two tests
%lldb is the proper substitution. Using "lldb" can cause us to execute
the system lldb instead of the one we are testing. This happens at least
in standalone builds.
The file was modifiedlldb/test/Shell/ObjectFile/ELF/PT_LOAD-overlap-PT_TLS.yaml
The file was modifiedlldb/test/Shell/ObjectFile/ELF/PT_TLS-overlap-PT_LOAD.yaml
Commit 0957233320eb0096bbb7665e0762a13bad1e7cb8 by gchatelet
[Alignment][NFC] Use Align with CreateMaskedStore
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, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D73106
The file was modifiedllvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
The file was modifiedllvm/lib/IR/IRBuilder.cpp
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modifiedllvm/include/llvm/IR/Constants.h
Commit e57a9abc4b01fa69fe81ace8df70517983b6cbac by saar
[Concepts] Placeholder constraints and abbreviated templates
This patch implements P1141R2 "Yet another approach for constrained
declarations".
General strategy for this patch was:
- Expand AutoType to include optional type-constraint, reflecting the
wording and easing the integration of constraints.
- Replace autos in parameter type specifiers with invented parameters in
GetTypeSpecTypeForDeclarator, using the same logic
previously used for generic lambdas, now unified with abbreviated
templates, by:
- Tracking the template parameter lists in the Declarator object
- Tracking the template parameter depth before parsing function
declarators (at which point we can match template
   parameters against scope specifiers to know if we have an explicit
template parameter list to append invented parameters
   to or not).
- When encountering an AutoType in a parameter context we check a stack
of InventedTemplateParameterInfo structures that
contain the info required to create and accumulate invented template
parameters (fields that were already present in
LambdaScopeInfo, which now inherits from this class and is looked up
when an auto is encountered in a lambda context).
Resubmit after incorrect check in NonTypeTemplateParmDecl broke lldb.
Differential Revision: https://reviews.llvm.org/D65042
The file was modifiedclang/lib/Sema/SemaTemplateDeduction.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/include/clang/AST/TemplateBase.h
The file was addedclang/test/Parser/cxx2a-placeholder-type-constraint.cpp
The file was modifiedclang/include/clang/AST/TypeLoc.h
The file was addedclang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp
The file was modifiedclang/test/SemaCXX/cxx1y-generic-lambdas.cpp
The file was modifiedclang/lib/Sema/TreeTransform.h
The file was modifiedclang/lib/Parse/ParseDeclCXX.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/include/clang/AST/ASTNodeTraverser.h
The file was modifiedclang/lib/Parse/ParseCXXInlineMethods.cpp
The file was addedclang/test/CXX/dcl/dcl.fct/p17.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp
The file was modifiedclang/lib/AST/TemplateBase.cpp
The file was modifiedclang/include/clang/AST/PropertiesBase.td
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Parse/ParseDecl.cpp
The file was modifiedclang/lib/AST/Type.cpp
The file was modifiedclang/include/clang/Sema/DeclSpec.h
The file was modifiedclang/lib/Sema/DeclSpec.cpp
The file was modifiedclang/lib/Parse/ParseTemplate.cpp
The file was modifiedclang/lib/AST/DeclTemplate.cpp
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/include/clang/AST/DeclTemplate.h
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/include/clang/AST/TypeProperties.td
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was modifiedclang/lib/Serialization/ASTReader.cpp
The file was modifiedclang/lib/Parse/Parser.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/lib/AST/TypeLoc.cpp
The file was modifiedclang/lib/AST/ASTStructuralEquivalence.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/lib/AST/TypePrinter.cpp
The file was modifiedclang/lib/AST/ODRHash.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/test/SemaTemplate/ms-delayed-default-template-args.cpp
The file was modifiedclang/include/clang/Sema/Scope.h
The file was modifiedclang/include/clang/Sema/ScopeInfo.h
The file was modifiedclang/test/CXX/temp/temp.param/p10-2a.cpp
The file was modifiedclang/lib/Parse/ParseTentative.cpp
The file was modifiedclang/test/AST/ast-dump-record-definition-data-json.cpp
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/include/clang/AST/ASTContext.h
Commit 67d4c9924c1fbfdbfcfa90bf729945eca0a92f86 by sander.desmalen
Add support for (expressing) vscale.
In LLVM IR, vscale can be represented with an intrinsic. For some
targets, this is equivalent to the constexpr:
  getelementptr <vscale x 1 x i8>, <vscale x 1 x i8>* null, i32 1
This can be used to propagate the value in CodeGenPrepare.
In ISel we add a node that can be legalized to one or more instructions
to materialize the runtime vector length.
This patch also adds SVE CodeGen support for VSCALE, which maps this
node to RDVL instructions (for scaled multiples of 16bytes) or CNT[HSD]
instructions (scaled multiples of 2, 4, or 8 bytes, respectively).
Reviewers: rengolin, cameron.mcinally, hfinkel, sebpop, SjoerdMeijer,
efriedma, lattner
Reviewed by: efriedma
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68203
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was addedllvm/test/CodeGen/AArch64/sve-vscale.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
The file was modifiedllvm/include/llvm/IR/PatternMatch.h
Commit 7b81c3f8793d30a4285095a9b67dcfca2117916c by saar
Revert "[Concepts] Fix bug when referencing function parameters in
instantiated function template requires clause"
This temporarily reverts commit 45538b5fb280e5b2903f7924fd4fa5b07a6dd3ea
which breaks a test.
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/test/SemaTemplate/instantiate-requires-clause.cpp
Commit 9570f1e5a612348e92c2f149f5073ef06f9e5da5 by kadircet
[clangd] Do not duplicate TemplatedDecls in findExplicitReferences
Reviewers: hokein
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95,
cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73101
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
Commit e727f39ec0b15ee8aec52e83467299d79b2ea8f5 by peter.smith
[LLD][ELF][ARM] Don't apply --fix-cortex-a8 to relocatable links.
The --fix-cortex-a8 is sensitive to alignment and the precise
destination of branch instructions. These are not knowable at
relocatable link time. We follow GNU ld and the --fix-cortex-a53-843419
(D72968) by not patching the code when there is a relocatable link.
Differential Revision: https://reviews.llvm.org/D73100
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/test/ELF/arm-fix-cortex-a8-recognize.s
Commit cdcc4f2a44b5ac0f32c3af844040994c6effaa2f by kerry.mclaughlin
[AArch64][SVE] Add intrinsic for non-faulting loads
Summary: This patch adds the llvm.aarch64.sve.ldnf1 intrinsic, plus DAG
combine rules for non-faulting loads and sign/zero extends
Reviewers: sdesmalen, efriedma, andwar, dancgr, mgudim, rengolin
Reviewed By: sdesmalen
Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl,
cameron.mcinally, cfe-commits, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71698
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
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/SVEInstrFormats.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was addedllvm/test/CodeGen/AArch64/sve-intrinsics-loads-nf.ll