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).
|
 | llvm/lib/ExecutionEngine/Orc/LLJIT.cpp |
 | llvm/tools/lli/lli.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h |
 | llvm/include/llvm/ExecutionEngine/Orc/Speculation.h |
 | llvm/include/llvm/ExecutionEngine/Orc/Layer.h |
 | llvm/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLinkingLayerTest.cpp |
 | llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp |
 | llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp |
 | llvm/lib/ExecutionEngine/Orc/Layer.cpp |
 | llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp |
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp |
 | llvm/test/ExecutionEngine/OrcLazy/emulated-tls.ll |
 | llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp |
 | llvm/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h |
 | llvm/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp |
 | llvm/unittests/ExecutionEngine/Orc/RemoteObjectLayerTest.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h |
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.
|
 | clang/test/InterfaceStubs/driver-test.c |
 | clang/test/InterfaceStubs/driver-test2.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.
|
 | llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp |
Commit
e53a9d96e6a074aa7f81ec104eb18e82997c7206
by carl.ritsonResubmit: [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
|
 | llvm/test/CodeGen/AMDGPU/insert-skips-kill-uncond.mir |
 | llvm/test/CodeGen/AMDGPU/skip-branch-taildup-ret.mir |
 | llvm/test/CodeGen/AMDGPU/wave32.ll |
 | llvm/test/CodeGen/AMDGPU/valu-i1.ll |
 | llvm/test/CodeGen/AMDGPU/cse-phi-incoming-val.ll |
 | llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.ll |
 | llvm/test/CodeGen/AMDGPU/stack-pointer-offset-relative-frameindex.ll |
 | llvm/test/CodeGen/AMDGPU/smrd_vmem_war.ll |
 | llvm/test/CodeGen/AMDGPU/insert-skips-gws.mir |
 | llvm/test/CodeGen/AMDGPU/hoist-cond.ll |
 | llvm/test/CodeGen/AMDGPU/collapse-endcf.ll |
 | llvm/lib/Target/AMDGPU/SIInsertSkips.cpp |
 | llvm/test/CodeGen/AMDGPU/insert-skips-flat-vmem.mir |
 | llvm/test/CodeGen/AMDGPU/si-lower-control-flow.mir |
 | llvm/test/CodeGen/AMDGPU/divergent-branch-uniform-condition.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll |
 | llvm/test/CodeGen/AMDGPU/si-lower-control-flow-unreachable-block.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll |
 | llvm/test/CodeGen/AMDGPU/si-annotate-cf-noloop.ll |
 | llvm/test/CodeGen/AMDGPU/skip-branch-trap.ll |
 | llvm/lib/Target/AMDGPU/AMDGPU.h |
 | llvm/lib/Target/AMDGPU/CMakeLists.txt |
 | llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp |
 | llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll |
 | llvm/test/CodeGen/AMDGPU/branch-relaxation.ll |
 | llvm/test/CodeGen/AMDGPU/call-skip.ll |
 | llvm/test/CodeGen/AMDGPU/insert-skips-ignored-insts.mir |
 | llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll |
 | llvm/test/CodeGen/AMDGPU/skip-if-dead.ll |
 | llvm/test/CodeGen/AMDGPU/control-flow-fastregalloc.ll |
 | llvm/test/CodeGen/AMDGPU/convergent-inlineasm.ll |
 | llvm/test/CodeGen/AMDGPU/else.ll |
 | llvm/test/CodeGen/AMDGPU/wqm.ll |
 | llvm/lib/Target/AMDGPU/SIRemoveShortExecBranches.cpp |
 | llvm/test/CodeGen/AMDGPU/ret_jump.ll |
 | llvm/test/CodeGen/AMDGPU/branch-condition-and.ll |
 | llvm/test/CodeGen/AMDGPU/subreg-coalescer-undef-use.ll |
 | llvm/test/CodeGen/AMDGPU/uniform-loop-inside-nonuniform.ll |
 | llvm/test/CodeGen/AMDGPU/uniform-cfg.ll |
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
|
 | llvm/test/CodeGen/AMDGPU/divergent-branch-uniform-condition.ll |
 | llvm/test/CodeGen/AMDGPU/valu-i1.ll |
 | llvm/lib/Target/AMDGPU/SIRemoveShortExecBranches.cpp |
Commit
debd2dcd098a581fc0ef2c0de5e2b06439e105f4
by llvmgnsyncbot[gn build] Port e53a9d96e6a
|
 | llvm/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.
|
 | llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h |
 | llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h |
 | llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp |
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
|
 | llvm/lib/Analysis/TargetTransformInfo.cpp |
 | llvm/include/llvm/Analysis/TargetTransformInfoImpl.h |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h |
 | llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp |
 | llvm/include/llvm/CodeGen/BasicTTIImpl.h |
 | llvm/include/llvm/Analysis/TargetTransformInfo.h |
 | llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp |
Commit
b54aa053d3aeeab0cdaecb6286419138b7da5ef4
by Lang HamesUpdate clang-interpreter example to incorporate changes in ce2207abaf9.
|
 | clang/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
|
 | llvm/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
|
 | lldb/source/API/SystemInitializerFull.cpp |
 | lldb/tools/lldb-test/SystemInitializerTest.cpp |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp |
Commit
97d000da2e6025600c4709d611e853eb1d5d407c
by Lang Hames[ORC] Fix the LLJITWithObjectCache example to address changes in ce2207abaf9.
|
 | llvm/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.
|
 | llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp |
 | llvm/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
|
 | lldb/include/lldb/Symbol/ClangASTContext.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp |
 | lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp |
 | lldb/unittests/Symbol/TestClangASTContext.cpp |
 | lldb/unittests/TestingSupport/Symbol/ClangTestUtils.h |
 | lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp |
 | lldb/source/Symbol/ClangASTContext.cpp |
 | lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp |
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
|
 | llvm/lib/Target/VE/VECallingConv.td |
 | llvm/lib/Target/VE/VERegisterInfo.cpp |
 | llvm/lib/Target/VE/VEInstrInfo.td |
 | llvm/test/CodeGen/VE/constants_i64.ll |
 | llvm/lib/Target/VE/VEInstrInfo.cpp |
 | llvm/lib/Target/VE/VERegisterInfo.td |
 | llvm/lib/Target/VE/VEInstrFormats.td |
 | llvm/lib/Target/VE/VEISelLowering.cpp |
 | llvm/test/CodeGen/VE/cast.ll |
 | llvm/lib/Target/VE/VEISelLowering.h |
 | llvm/test/CodeGen/VE/constants.ll |
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.
|
 | clang/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
|
 | clang/unittests/Index/IndexTests.cpp |
 | clang/lib/Index/IndexTypeSourceInfo.cpp |
Commit
3593b5b3e9ce59dc17c26b5d6e77413437fa03f7
by evgeny[llvm-as] Fix assembling of index with multiple summaries sharing single GUID Differential revision: https://reviews.llvm.org/D73091
|
 | llvm/lib/AsmParser/LLParser.cpp |
 | llvm/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
|
 | clang-tools-extra/clangd/FindTarget.cpp |
 | clang-tools-extra/clangd/unittests/FindTargetTests.cpp |
Commit
935729e4c63a07570f16f5d6112903f349365775
by pavelChange 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
|
 | llvm/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.
|
 | lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py |
 | lldb/source/Host/posix/FileSystemPosix.cpp |
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.
|
 | mlir/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.
|
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
 | clang/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
|
 | llvm/lib/Target/ARM/MVETailPredication.cpp |
 | llvm/test/CodeGen/Thumb2/LowOverheadLoops/clear-maskedinsts.ll |
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
|
 | llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc64 |
 | llvm/test/tools/llvm-readobj/ELF/gnuhash.test |
 | llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc |
 | llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-i386 |
 | llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-x86_64 |
Commit
1d549e68d4ac58e5fcdc1c9c6d2d09334fab4fbf
by gchatelet[Doc] Update requirements for masked load/store
|
 | llvm/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
|
 | llvm/tools/llvm-exegesis/lib/X86/Target.cpp |
 | llvm/tools/llvm-exegesis/lib/Target.h |
 | llvm/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.
|
 | lldb/test/Shell/ObjectFile/ELF/PT_LOAD-overlap-PT_TLS.yaml |
 | lldb/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
|
 | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp |
 | llvm/include/llvm/IR/Constants.h |
 | llvm/lib/IR/IRBuilder.cpp |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp |
 | llvm/include/llvm/IR/IRBuilder.h |
 | llvm/lib/IR/AutoUpgrade.cpp |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp |
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
|
 | clang/test/SemaTemplate/ms-delayed-default-template-args.cpp |
 | clang/include/clang/AST/RecursiveASTVisitor.h |
 | clang/include/clang/AST/TypeProperties.td |
 | clang/lib/AST/ASTImporter.cpp |
 | clang/test/CXX/dcl/dcl.fct/p17.cpp |
 | clang/test/CXX/temp/temp.param/p10-2a.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/lib/AST/ASTStructuralEquivalence.cpp |
 | clang/include/clang/AST/TypeLoc.h |
 | clang/lib/Sema/TreeTransform.h |
 | clang/lib/AST/DeclTemplate.cpp |
 | clang/lib/AST/Type.cpp |
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/lib/AST/TemplateBase.cpp |
 | clang/include/clang/AST/ASTNodeTraverser.h |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/test/CXX/expr/expr.prim/expr.prim.lambda/expr.prim.lambda.closure/p3.cpp |
 | clang/lib/Sema/SemaLambda.cpp |
 | clang/include/clang/AST/DeclTemplate.h |
 | clang/include/clang/Sema/Scope.h |
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/AST/TypeLoc.cpp |
 | clang/lib/Parse/ParseDecl.cpp |
 | clang/lib/Parse/ParseCXXInlineMethods.cpp |
 | clang/test/Parser/cxx2a-placeholder-type-constraint.cpp |
 | clang/lib/Sema/SemaType.cpp |
 | clang/lib/Sema/SemaTemplate.cpp |
 | clang/include/clang/Sema/ScopeInfo.h |
 | clang/lib/AST/TypePrinter.cpp |
 | clang/include/clang/Basic/DiagnosticParseKinds.td |
 | clang/lib/AST/ODRHash.cpp |
 | clang/include/clang/AST/Type.h |
 | clang/lib/AST/ASTContext.cpp |
 | clang/test/SemaCXX/cxx1y-generic-lambdas.cpp |
 | clang/include/clang/AST/ASTContext.h |
 | clang/lib/Serialization/ASTWriterDecl.cpp |
 | clang/test/CXX/dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp |
 | clang/lib/Parse/ParseTemplate.cpp |
 | clang/lib/Parse/Parser.cpp |
 | clang/lib/Parse/ParseDeclCXX.cpp |
 | clang/lib/Serialization/ASTWriter.cpp |
 | clang/lib/Parse/ParseTentative.cpp |
 | clang/include/clang/Sema/DeclSpec.h |
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
 | clang/lib/AST/TextNodeDumper.cpp |
 | clang/lib/Sema/SemaTemplateDeduction.cpp |
 | clang/test/AST/ast-dump-record-definition-data-json.cpp |
 | clang/include/clang/AST/PropertiesBase.td |
 | clang/lib/Serialization/ASTReaderDecl.cpp |
 | clang/lib/Sema/DeclSpec.cpp |
 | clang/include/clang/AST/TemplateBase.h |
 | clang/lib/Sema/SemaDecl.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
Commit
67d4c9924c1fbfdbfcfa90bf729945eca0a92f86
by sander.desmalenAdd 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
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp |
 | llvm/include/llvm/Target/TargetSelectionDAG.td |
 | llvm/include/llvm/IR/Intrinsics.td |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/include/llvm/CodeGen/ISDOpcodes.h |
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/include/llvm/IR/PatternMatch.h |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
 | llvm/test/CodeGen/AArch64/sve-vscale.ll |
 | llvm/include/llvm/CodeGen/SelectionDAG.h |
 | llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp |
 | llvm/docs/LangRef.rst |
 | llvm/lib/Analysis/ConstantFolding.cpp |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h |
Commit
7b81c3f8793d30a4285095a9b67dcfca2117916c
by saarRevert "[Concepts] Fix bug when referencing function parameters in instantiated function template requires clause" This temporarily reverts commit 45538b5fb280e5b2903f7924fd4fa5b07a6dd3ea which breaks a test.
|
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |
 | clang/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
|
 | clang-tools-extra/clangd/unittests/FindTargetTests.cpp |
 | clang-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
|
 | lld/ELF/Driver.cpp |
 | lld/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
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-loads-nf.ll |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.td |
 | llvm/include/llvm/IR/IntrinsicsAArch64.td |