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...) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits