[PATCH] D87056: [POC] SVE/SVE2 implementation (LLVM 9)
Sander de Smalen via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 2 14:38:00 PDT 2020
sdesmalen created this revision.
Herald added subscribers: llvm-commits, cfe-commits, dang, nikic, aaron.ballman, ecnelises, dantrushin, kerbowa, s.egerton, Jim, asbirlea, jfb, arphaman, dexonsmith, rogfer01, steven_wu, atanasyan, mgrang, zzheng, jrtc27, delcypher, simoncook, haicheng, kosarev, javed.absar, fedor.sergeev, kbarton, hiraditya, kristof.beyls, eraman, jgravelle-google, krytarowski, tschuett, sbc100, mgorny, nhaehnle, jvesely, nemanjai, sdardis, dylanmckay, dschuff, arsenm, qcolombet, MatzeB, emaste, jholewinski.
Herald added a reviewer: deadalnix.
Herald added a reviewer: alexshap.
Herald added a reviewer: rupprecht.
Herald added a reviewer: jhenderson.
Herald added a reviewer: rengolin.
Herald added a reviewer: DavidTruby.
Herald added a reviewer: ctetreau.
Herald added a reviewer: sscalpone.
Herald added a reviewer: aaron.ballman.
Herald added a reviewer: jdoerfert.
Herald added projects: clang, LLVM.
sdesmalen requested review of this revision.
Herald added subscribers: sstefan1, vkmr, ormris, MaskRay, aheejin.
DO NOT REVIEW; For reference only.
This patch contains Arm's changes to LLVM 9 to support SVE/SVE2. This
supports SVE/SVE2 CodeGen, scalable auto-vectorization and the ACLE
(C/C++ intrinsics interface).
While the patches are still based on LLVM 9, it should be a good
indication of the changes we've made to support scalable vectors.
These patches are meant for reference and are not intended to be
committed. This patch may help clarify some of the design choices we've
made when implementing scalable vectors for SVE, and it allows others
to experiment with our scalable-vector implementation.
The patches apply cleanly to the `llvmorg-9.0.0` tag in the Monorepo.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D87056
Files:
clang/include/clang/AST/ASTContext.h
clang/include/clang/AST/BuiltinTypesSVE.def
clang/include/clang/AST/CanonicalType.h
clang/include/clang/AST/Decl.h
clang/include/clang/AST/Expr.h
clang/include/clang/AST/TargetTypes.h
clang/include/clang/AST/Type.h
clang/include/clang/AST/TypeLoc.h
clang/include/clang/Basic/Attr.td
clang/include/clang/Basic/AttrDocs.td
clang/include/clang/Basic/BuiltinsSVE.def
clang/include/clang/Basic/CMakeLists.txt
clang/include/clang/Basic/CodeGenOptions.def
clang/include/clang/Basic/CodeGenOptions.h
clang/include/clang/Basic/Diagnostic.td
clang/include/clang/Basic/DiagnosticASTKinds.td
clang/include/clang/Basic/DiagnosticDriverKinds.td
clang/include/clang/Basic/DiagnosticFrontendKinds.td
clang/include/clang/Basic/DiagnosticGroups.td
clang/include/clang/Basic/DiagnosticIDs.h
clang/include/clang/Basic/DiagnosticParseKinds.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/include/clang/Basic/LangOptions.def
clang/include/clang/Basic/OpenMPKinds.def
clang/include/clang/Basic/Sanitizers.def
clang/include/clang/Basic/Specifiers.h
clang/include/clang/Basic/TargetBuiltins.h
clang/include/clang/Basic/TargetInfo.h
clang/include/clang/Basic/TokenKinds.def
clang/include/clang/Basic/Version.h
clang/include/clang/Basic/arm_sve.td
clang/include/clang/Config/config.h.cmake
clang/include/clang/Driver/Action.h
clang/include/clang/Driver/CC1Options.td
clang/include/clang/Driver/Compilation.h
clang/include/clang/Driver/Driver.h
clang/include/clang/Driver/Options.h
clang/include/clang/Driver/Options.td
clang/include/clang/Driver/Phases.h
clang/include/clang/Driver/ToolChain.h
clang/include/clang/Driver/Types.def
clang/include/clang/Driver/Types.h
clang/include/clang/Driver/Util.h
clang/include/clang/Frontend/CompilerInstance.h
clang/include/clang/Parse/Parser.h
clang/include/clang/Sema/DeclSpec.h
clang/include/clang/Sema/Initialization.h
clang/include/clang/Sema/Sema.h
clang/include/clang/module.modulemap
clang/lib/AST/ASTContext.cpp
clang/lib/AST/ExprClassification.cpp
clang/lib/AST/ExprConstant.cpp
clang/lib/AST/ItaniumMangle.cpp
clang/lib/AST/MicrosoftMangle.cpp
clang/lib/AST/RecordLayoutBuilder.cpp
clang/lib/AST/Type.cpp
clang/lib/Basic/CMakeLists.txt
clang/lib/Basic/OpenMPKinds.cpp
clang/lib/Basic/TargetInfo.cpp
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/Basic/Targets/AArch64.h
clang/lib/Basic/Version.cpp
clang/lib/CodeGen/BackendUtil.cpp
clang/lib/CodeGen/CGAtomic.cpp
clang/lib/CodeGen/CGBlocks.cpp
clang/lib/CodeGen/CGBuilder.h
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/CGCXXABI.cpp
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/CGDebugInfo.cpp
clang/lib/CodeGen/CGDebugInfo.h
clang/lib/CodeGen/CGDecl.cpp
clang/lib/CodeGen/CGDeclCXX.cpp
clang/lib/CodeGen/CGExpr.cpp
clang/lib/CodeGen/CGExprAgg.cpp
clang/lib/CodeGen/CGExprCXX.cpp
clang/lib/CodeGen/CGExprScalar.cpp
clang/lib/CodeGen/CGLoopInfo.cpp
clang/lib/CodeGen/CGLoopInfo.h
clang/lib/CodeGen/CGObjC.cpp
clang/lib/CodeGen/CGObjCRuntime.cpp
clang/lib/CodeGen/CGOpenMPRuntime.cpp
clang/lib/CodeGen/CGOpenMPRuntime.h
clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
clang/lib/CodeGen/CGStmt.cpp
clang/lib/CodeGen/CGStmtOpenMP.cpp
clang/lib/CodeGen/CMakeLists.txt
clang/lib/CodeGen/CodeGenAction.cpp
clang/lib/CodeGen/CodeGenFunction.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/lib/CodeGen/CodeGenModule.cpp
clang/lib/CodeGen/CodeGenModule.h
clang/lib/CodeGen/CodeGenTBAA.cpp
clang/lib/CodeGen/CodeGenTargetTypes.cpp
clang/lib/CodeGen/CodeGenTargetTypes.h
clang/lib/CodeGen/CodeGenTypes.cpp
clang/lib/CodeGen/CodeGenTypes.h
clang/lib/CodeGen/ItaniumCXXABI.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/CodeGen/SwiftCallingConv.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/lib/Driver/Action.cpp
clang/lib/Driver/CMakeLists.txt
clang/lib/Driver/Compilation.cpp
clang/lib/Driver/Driver.cpp
clang/lib/Driver/DriverOptions.cpp
clang/lib/Driver/Job.cpp
clang/lib/Driver/Phases.cpp
clang/lib/Driver/ToolChain.cpp
clang/lib/Driver/ToolChains/AMDGPU.cpp
clang/lib/Driver/ToolChains/AVR.cpp
clang/lib/Driver/ToolChains/Ananas.cpp
clang/lib/Driver/ToolChains/Arch/AArch64.cpp
clang/lib/Driver/ToolChains/Arch/AArch64.h
clang/lib/Driver/ToolChains/BareMetal.cpp
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Driver/ToolChains/CloudABI.cpp
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/lib/Driver/ToolChains/CommonArgs.h
clang/lib/Driver/ToolChains/CrossWindows.cpp
clang/lib/Driver/ToolChains/Cuda.cpp
clang/lib/Driver/ToolChains/Cuda.h
clang/lib/Driver/ToolChains/Darwin.cpp
clang/lib/Driver/ToolChains/DragonFly.cpp
clang/lib/Driver/ToolChains/Flang.cpp
clang/lib/Driver/ToolChains/Flang.h
clang/lib/Driver/ToolChains/FreeBSD.cpp
clang/lib/Driver/ToolChains/Fuchsia.cpp
clang/lib/Driver/ToolChains/Gnu.cpp
clang/lib/Driver/ToolChains/Hexagon.cpp
clang/lib/Driver/ToolChains/Linux.cpp
clang/lib/Driver/ToolChains/Linux.h
clang/lib/Driver/ToolChains/MSVC.cpp
clang/lib/Driver/ToolChains/MinGW.cpp
clang/lib/Driver/ToolChains/Minix.cpp
clang/lib/Driver/ToolChains/Myriad.cpp
clang/lib/Driver/ToolChains/NaCl.cpp
clang/lib/Driver/ToolChains/NetBSD.cpp
clang/lib/Driver/ToolChains/OpenBSD.cpp
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/lib/Driver/ToolChains/Solaris.cpp
clang/lib/Driver/ToolChains/WebAssembly.cpp
clang/lib/Driver/ToolChains/XCore.cpp
clang/lib/Driver/Types.cpp
clang/lib/Frontend/CompilerInstance.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/lib/Frontend/InitPreprocessor.cpp
clang/lib/Frontend/TextDiagnostic.cpp
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/math.h
clang/lib/Headers/module.modulemap
clang/lib/Index/IndexSymbol.cpp
clang/lib/Index/USRGeneration.cpp
clang/lib/Lex/ModuleMap.cpp
clang/lib/Parse/ParseDecl.cpp
clang/lib/Parse/ParseDeclCXX.cpp
clang/lib/Parse/ParseOpenMP.cpp
clang/lib/Parse/ParsePragma.cpp
clang/lib/Parse/ParseTentative.cpp
clang/lib/Parse/Parser.cpp
clang/lib/Sema/DeclSpec.cpp
clang/lib/Sema/Sema.cpp
clang/lib/Sema/SemaCXXScopeSpec.cpp
clang/lib/Sema/SemaCast.cpp
clang/lib/Sema/SemaChecking.cpp
clang/lib/Sema/SemaCodeComplete.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaDeclAttr.cpp
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaExpr.cpp
clang/lib/Sema/SemaExprCXX.cpp
clang/lib/Sema/SemaExprMember.cpp
clang/lib/Sema/SemaFixItUtils.cpp
clang/lib/Sema/SemaInit.cpp
clang/lib/Sema/SemaLambda.cpp
clang/lib/Sema/SemaOpenMP.cpp
clang/lib/Sema/SemaOverload.cpp
clang/lib/Sema/SemaStmtAsm.cpp
clang/lib/Sema/SemaStmtAttr.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/lib/Sema/SemaTemplateVariadic.cpp
clang/lib/Sema/SemaType.cpp
clang/lib/Serialization/ASTCommon.cpp
clang/lib/Tooling/CompilationDatabase.cpp
clang/test/AST/dump.cpp
clang/test/Analysis/Inputs/insight-md5sum-testfile.c
clang/test/CXX/modules-ts/basic/basic.link/p2/module.cpp
clang/test/CodeGen/AArch64/aarch64-sve-inline-asm-vec-low.c
clang/test/CodeGen/AArch64/acle/acle_sve_abd.c
clang/test/CodeGen/AArch64/acle/acle_sve_abs.c
clang/test/CodeGen/AArch64/acle/acle_sve_acge.c
clang/test/CodeGen/AArch64/acle/acle_sve_acgt.c
clang/test/CodeGen/AArch64/acle/acle_sve_acle.c
clang/test/CodeGen/AArch64/acle/acle_sve_aclt.c
clang/test/CodeGen/AArch64/acle/acle_sve_add.c
clang/test/CodeGen/AArch64/acle/acle_sve_adda.c
clang/test/CodeGen/AArch64/acle/acle_sve_addv.c
clang/test/CodeGen/AArch64/acle/acle_sve_adrb.c
clang/test/CodeGen/AArch64/acle/acle_sve_adrd.c
clang/test/CodeGen/AArch64/acle/acle_sve_adrh.c
clang/test/CodeGen/AArch64/acle/acle_sve_adrw.c
clang/test/CodeGen/AArch64/acle/acle_sve_and.c
clang/test/CodeGen/AArch64/acle/acle_sve_andv.c
clang/test/CodeGen/AArch64/acle/acle_sve_asr.c
clang/test/CodeGen/AArch64/acle/acle_sve_asrd.c
clang/test/CodeGen/AArch64/acle/acle_sve_bic.c
clang/test/CodeGen/AArch64/acle/acle_sve_brka.c
clang/test/CodeGen/AArch64/acle/acle_sve_brkb.c
clang/test/CodeGen/AArch64/acle/acle_sve_brkn.c
clang/test/CodeGen/AArch64/acle/acle_sve_brkpa.c
clang/test/CodeGen/AArch64/acle/acle_sve_brkpb.c
clang/test/CodeGen/AArch64/acle/acle_sve_cadd.c
clang/test/CodeGen/AArch64/acle/acle_sve_clasta.c
clang/test/CodeGen/AArch64/acle/acle_sve_clastb.c
clang/test/CodeGen/AArch64/acle/acle_sve_cls.c
clang/test/CodeGen/AArch64/acle/acle_sve_clz.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmla.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmpeq.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmpge.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmpgt.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmple.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmplt.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmpne.c
clang/test/CodeGen/AArch64/acle/acle_sve_cmpuo.c
clang/test/CodeGen/AArch64/acle/acle_sve_cnot.c
clang/test/CodeGen/AArch64/acle/acle_sve_cnt.c
clang/test/CodeGen/AArch64/acle/acle_sve_cntb.c
clang/test/CodeGen/AArch64/acle/acle_sve_cntd.c
clang/test/CodeGen/AArch64/acle/acle_sve_cnth.c
clang/test/CodeGen/AArch64/acle/acle_sve_cntp.c
clang/test/CodeGen/AArch64/acle/acle_sve_cntw.c
clang/test/CodeGen/AArch64/acle/acle_sve_compact.c
clang/test/CodeGen/AArch64/acle/acle_sve_create2.c
clang/test/CodeGen/AArch64/acle/acle_sve_create3.c
clang/test/CodeGen/AArch64/acle/acle_sve_create4.c
clang/test/CodeGen/AArch64/acle/acle_sve_cvt.c
clang/test/CodeGen/AArch64/acle/acle_sve_div.c
clang/test/CodeGen/AArch64/acle/acle_sve_divr.c
clang/test/CodeGen/AArch64/acle/acle_sve_dot.c
clang/test/CodeGen/AArch64/acle/acle_sve_dup.c
clang/test/CodeGen/AArch64/acle/acle_sve_dupq.c
clang/test/CodeGen/AArch64/acle/acle_sve_eor.c
clang/test/CodeGen/AArch64/acle/acle_sve_eorv.c
clang/test/CodeGen/AArch64/acle/acle_sve_expa.c
clang/test/CodeGen/AArch64/acle/acle_sve_ext.c
clang/test/CodeGen/AArch64/acle/acle_sve_extb.c
clang/test/CodeGen/AArch64/acle/acle_sve_exth.c
clang/test/CodeGen/AArch64/acle/acle_sve_extw.c
(1633 more files...)
More information about the cfe-commits
mailing list