Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions clang/tools/driver/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ set( LLVM_LINK_COMPONENTS
ScalarOpts
Support
SYCLLowerIR
SYCLTransforms
TargetParser
TransformUtils
Vectorize
Expand Down
1 change: 1 addition & 0 deletions llvm/lib/Passes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ add_llvm_component_library(LLVMPasses
Scalar
Support
SYCLLowerIR
SYCLTransforms
Target
TransformUtils
Vectorize
Expand Down
2 changes: 2 additions & 0 deletions llvm/lib/Passes/PassBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,8 @@
#include "llvm/Transforms/Scalar/TLSVariableHoist.h"
#include "llvm/Transforms/Scalar/TailRecursionElimination.h"
#include "llvm/Transforms/Scalar/WarnMissedTransforms.h"
// SYCL Kernel CPU Transformation passes
#include "llvm/Transforms/SYCLTransforms/Passes.h"
#include "llvm/Transforms/Utils/AddDiscriminators.h"
#include "llvm/Transforms/Utils/AssumeBundleBuilder.h"
#include "llvm/Transforms/Utils/BreakCriticalEdges.h"
Expand Down
2 changes: 2 additions & 0 deletions llvm/lib/Passes/PassBuilderPipelines.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@
#include "llvm/Transforms/Scalar/SpeculativeExecution.h"
#include "llvm/Transforms/Scalar/TailRecursionElimination.h"
#include "llvm/Transforms/Scalar/WarnMissedTransforms.h"
// SYCL CPU Kernel Transformation passes
#include "llvm/Transforms/SYCLTransforms/Passes.h"
#include "llvm/Transforms/Utils/AddDiscriminators.h"
#include "llvm/Transforms/Utils/AssumeBundleBuilder.h"
#include "llvm/Transforms/Utils/CanonicalizeAliases.h"
Expand Down
86 changes: 86 additions & 0 deletions llvm/lib/Passes/PassRegistry.def
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ MODULE_ANALYSIS("profile-summary", ProfileSummaryAnalysis())
MODULE_ANALYSIS("stack-safety", StackSafetyGlobalAnalysis())
MODULE_ANALYSIS("verify", VerifierAnalysis())
MODULE_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
MODULE_ANALYSIS("sycl-kernel-builtin-info-analysis", BuiltinLibInfoAnalysis())
MODULE_ANALYSIS("sycl-kernel-implicit-args-analysis", ImplicitArgsAnalysis())
MODULE_ANALYSIS("sycl-kernel-local-buffer-analysis", LocalBufferAnalysis())
MODULE_ANALYSIS("sycl-kernel-data-per-value-analysis", DataPerValueAnalysis())
MODULE_ANALYSIS("sycl-kernel-data-per-barrier-analysis", DataPerBarrierAnalysis())
MODULE_ANALYSIS("sycl-kernel-barrier-wi-analysis", WIRelatedValueAnalysis())
MODULE_ANALYSIS("sycl-kernel-sg-size-analysis", SGSizeAnalysisPass())
MODULE_ANALYSIS("sycl-kernel-vf-analysis", VFAnalysis())
MODULE_ANALYSIS("inline-advisor", InlineAdvisorAnalysis())
MODULE_ANALYSIS("ir-similarity", IRSimilarityAnalysis())

Expand All @@ -40,6 +48,68 @@ MODULE_ALIAS_ANALYSIS("globals-aa", GlobalsAA())
#ifndef MODULE_PASS
#define MODULE_PASS(NAME, CREATE_PASS)
#endif
MODULE_PASS("sycl-kernel-add-function-attrs", AddFunctionAttrsPass())
MODULE_PASS("sycl-kernel-builtin-import", BuiltinImportPass())
MODULE_PASS("sycl-kernel-coerce-win64-types", CoerceWin64TypesPass())
MODULE_PASS("sycl-kernel-deduce-max-dim", DeduceMaxWGDimPass())
MODULE_PASS("sycl-kernel-detect-recursion", DetectRecursionPass())
MODULE_PASS("sycl-kernel-equalizer", SYCLEqualizerPass())
MODULE_PASS("sycl-kernel-analysis", SYCLKernelAnalysisPass())
MODULE_PASS("sycl-kernel-wgloop-creator", SYCLKernelWGLoopCreatorPass())
MODULE_PASS("sycl-kernel-preprocess-spv-ir", SYCLPreprocessSPIRVFriendlyIRPass())
MODULE_PASS("sycl-kernel-rewrite-pipes", SYCLRewritePipesPass())
MODULE_PASS("sycl-kernel-add-implicit-args", AddImplicitArgsPass())
MODULE_PASS("sycl-kernel-add-tls-globals", AddTLSGlobalsPass())
MODULE_PASS("sycl-kernel-internalize-global-variables", InternalizeGlobalVariablesPass())
MODULE_PASS("sycl-kernel-autorun-replicator", AutorunReplicatorPass())
MODULE_PASS("sycl-kernel-implicit-gid", ImplicitGIDPass())
MODULE_PASS("sycl-kernel-infer-argument-alias", InferArgumentAliasPass())
MODULE_PASS("sycl-kernel-infinite-loop-creator", InfiniteLoopCreatorPass())
MODULE_PASS("sycl-kernel-internalize-func", InternalizeNonKernelFuncPass())
MODULE_PASS("sycl-kernel-linear-id-resolver", LinearIdResolverPass())
MODULE_PASS("sycl-kernel-local-buffers", LocalBuffersPass())
MODULE_PASS("sycl-kernel-reduce-cross-barrier-values", ReduceCrossBarrierValuesPass())
MODULE_PASS("sycl-kernel-relaxed-math", RelaxedMathPass())
MODULE_PASS("sycl-kernel-resolve-sub-group-wi-call", ResolveSubGroupWICallPass())
MODULE_PASS("sycl-kernel-resolve-var-tid-call", ResolveVarTIDCallPass())
MODULE_PASS("sycl-kernel-resolve-wi-call", ResolveWICallPass())
MODULE_PASS("sycl-kernel-patch-callback-args", PatchCallbackArgsPass())
MODULE_PASS("sycl-kernel-pipe-io-transform", PipeIOTransformationPass())
MODULE_PASS("sycl-kernel-pipe-ordering", PipeOrderingPass())
MODULE_PASS("sycl-kernel-pipe-support", PipeSupportPass())
MODULE_PASS("sycl-kernel-prepare-args", PrepareKernelArgsPass())
MODULE_PASS("sycl-kernel-profiling-info", ProfilingInfoPass())
MODULE_PASS("sycl-kernel-channel-pipe-transformation", ChannelPipeTransformationPass())
MODULE_PASS("sycl-kernel-cleanup-wrapped", CleanupWrappedKernelPass())
MODULE_PASS("sycl-kernel-coerce-types", CoerceTypesPass())
MODULE_PASS("sycl-kernel-duplicate-called-kernels", DuplicateCalledKernelsPass())
MODULE_PASS("sycl-kernel-externalize-global-variables", ExternalizeGlobalVariablesPass())
MODULE_PASS("sycl-kernel-group-builtin", GroupBuiltinPass())
MODULE_PASS("sycl-kernel-inst-to-func-call", InstToFuncCallPass())
MODULE_PASS("sycl-kernel-barrier", KernelBarrier())
MODULE_PASS("sycl-kernel-barrier-in-function", BarrierInFunction())
MODULE_PASS("sycl-kernel-remove-duplicated-barrier", RemoveDuplicatedBarrierPass())
MODULE_PASS("sycl-kernel-split-on-barrier", SplitBBonBarrier())
MODULE_PASS("sycl-kernel-reqd-sub-group-size", ReqdSubGroupSizePass())
MODULE_PASS("sycl-kernel-replace-scalar-with-mask", ReplaceScalarWithMaskPass())
MODULE_PASS("sycl-kernel-set-vf", SetVectorizationFactorPass())
MODULE_PASS("sycl-kernel-sg-emu-barrier-propagate", SGBarrierPropagatePass())
MODULE_PASS("sycl-kernel-sg-emu-barrier-simplify", SGBarrierSimplifyPass())
MODULE_PASS("sycl-kernel-sg-emu-builtin", SGBuiltinPass())
MODULE_PASS("sycl-kernel-sg-emu-loop-construct", SGLoopConstructPass())
MODULE_PASS("sycl-kernel-sg-emu-value-widen", SGValueWidenPass())
MODULE_PASS("sycl-kernel-sg-remap-wi-call", SGRemapWICallPass())
MODULE_PASS("sycl-kernel-spec-constant", SpecializeConstantPass())
MODULE_PASS("sycl-kernel-wg-loop-bound", WGLoopBoundariesPass())
MODULE_PASS("sycl-kernel-remove-atexit", RemoveAtExitPass())
MODULE_PASS("sycl-kernel-set-prefer-vector-width", SetPreferVectorWidthPass())
MODULE_PASS("print<sycl-kernel-builtin-info-analysis>", BuiltinLibInfoAnalysisPrinter(dbgs()))
MODULE_PASS("print<sycl-kernel-data-per-barrier-analysis>", DataPerBarrierPrinter(dbgs()))
MODULE_PASS("print<sycl-kernel-data-per-value-analysis>", DataPerValuePrinter(dbgs()))
MODULE_PASS("print<sycl-kernel-barrier-wi-analysis>", WIRelatedValuePrinter(dbgs()))
MODULE_PASS("print<sycl-kernel-local-buffer-analysis>", LocalBufferAnalysisPrinter(dbgs()))
MODULE_PASS("print<sycl-kernel-sg-size-analysis>", SGSizeAnalysisPrinter(dbgs()))
MODULE_PASS("print<sycl-kernel-vf-analysis>", VFAnalysisPrinter(dbgs()))
MODULE_PASS("always-inline", AlwaysInlinerPass())
MODULE_PASS("attributor", AttributorPass())
MODULE_PASS("annotation2metadata", Annotation2MetadataPass())
Expand Down Expand Up @@ -256,6 +326,9 @@ FUNCTION_ANALYSIS("verify", VerifierAnalysis())
FUNCTION_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PIC))
FUNCTION_ANALYSIS("divergence", DivergenceAnalysis())
FUNCTION_ANALYSIS("uniformity", UniformityInfoAnalysis())
FUNCTION_ANALYSIS("sycl-kernel-soa-alloca-analysis", SoaAllocaAnalysis())
FUNCTION_ANALYSIS("sycl-kernel-weighted-inst-count-analysis", WeightedInstCountAnalysis())
FUNCTION_ANALYSIS("sycl-kernel-work-item-analysis", WorkItemAnalysis())

#ifndef FUNCTION_ALIAS_ANALYSIS
#define FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) \
Expand Down Expand Up @@ -412,6 +485,16 @@ FUNCTION_PASS("view-cfg", CFGViewerPass())
FUNCTION_PASS("view-cfg-only", CFGOnlyViewerPass())
FUNCTION_PASS("tlshoist", TLSVariableHoistPass())
FUNCTION_PASS("transform-warning", WarnMissedTransformationsPass())
FUNCTION_PASS("print<sycl-kernel-soa-alloca-analysis>", SoaAllocaAnalysisPrinter(dbgs()))
FUNCTION_PASS("print<sycl-kernel-work-item-analysis>", WorkItemAnalysisPrinter(dbgs()))

FUNCTION_PASS("sycl-kernel-add-fast-math", AddFastMathPass())
FUNCTION_PASS("sycl-kernel-builtin-call-to-inst", BuiltinCallToInstPass())
FUNCTION_PASS("sycl-kernel-optimize-idiv-and-irem", OptimizeIDivAndIRemPass())
FUNCTION_PASS("sycl-kernel-phi-canonicalization", PhiCanonicalization())
FUNCTION_PASS("sycl-kernel-prevent-div-crashes", PreventDivCrashesPass())
FUNCTION_PASS("sycl-kernel-redundant-phi-node", RedundantPhiNode())
FUNCTION_PASS("sycl-kernel-add-nt-attr", AddNTAttrPass())
FUNCTION_PASS("tsan", ThreadSanitizerPass())
FUNCTION_PASS("memprof", MemProfilerPass())
FUNCTION_PASS("LowerWGScope", SYCLLowerWGScopePass())
Expand Down Expand Up @@ -560,6 +643,9 @@ LOOP_PASS("guard-widening", GuardWideningPass())
LOOP_PASS("loop-bound-split", LoopBoundSplitPass())
LOOP_PASS("loop-reroll", LoopRerollPass())
LOOP_PASS("loop-versioning-licm", LoopVersioningLICMPass())
LOOP_PASS("sycl-kernel-builtin-licm", BuiltinLICMPass())
LOOP_PASS("sycl-kernel-loop-strided-code-motion", LoopStridedCodeMotionPass())
LOOP_PASS("print<sycl-kernel-loop-wi-analysis>", LoopWIAnalysisPrinter(dbgs()))
#undef LOOP_PASS

#ifndef LOOP_PASS_WITH_PARAMS
Expand Down
1 change: 1 addition & 0 deletions llvm/lib/Transforms/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ add_subdirectory(IPO)
add_subdirectory(Vectorize)
add_subdirectory(Hello)
add_subdirectory(ObjCARC)
add_subdirectory(SYCLTransforms)
add_subdirectory(Coroutines)
add_subdirectory(CFGuard)
1 change: 1 addition & 0 deletions llvm/lib/Transforms/IPO/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ add_llvm_component_library(LLVMipo
ProfileData
Scalar
Support
SYCLTransforms
TargetParser
TransformUtils
Vectorize
Expand Down
1 change: 1 addition & 0 deletions llvm/tools/bugpoint/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ set(LLVM_LINK_COMPONENTS
ScalarOpts
Support
SYCLLowerIR
SYCLTransforms
Target
TargetParser
TransformUtils
Expand Down
1 change: 1 addition & 0 deletions llvm/tools/opt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ set(LLVM_LINK_COMPONENTS
ScalarOpts
Support
SYCLLowerIR
SYCLTransforms
Target
TargetParser
TransformUtils
Expand Down