[PATCH] D77350: [mlir][Pass] Remove the use of CRTP from the Pass classes

River Riddle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 2 17:22:36 PDT 2020


rriddle created this revision.
rriddle added a reviewer: mehdi_amini.
Herald added subscribers: llvm-commits, grosul1, bader, Joonsoo, liufengdb, aartbik, lucyrfox, mgester, arpith-jacob, csigg, nicolasvasilache, antiagainst, shauheen, burmako, jpienaar, zzheng, eraman, jholewinski.
Herald added a reviewer: mravishankar.
Herald added a reviewer: antiagainst.
Herald added a reviewer: nicolasvasilache.
Herald added a reviewer: herhut.
Herald added a reviewer: aartbik.
Herald added a project: LLVM.

This revision removes all of the CRTP from the pass hierarchy in preparation for using the tablegen backend instead. This creates a much cleaner interface in the C++ code, and naturally fits with the rest of the infrastructure. A new utility class, CRTPPass, is added to replicate the existing behavior for passes not suitable for using the tablegen backend.

Depends On D77339 <https://reviews.llvm.org/D77339>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D77350

Files:
  mlir/docs/Tutorials/Toy/Ch-4.md
  mlir/examples/toy/Ch4/mlir/ShapeInferencePass.cpp
  mlir/examples/toy/Ch5/mlir/LowerToAffineLoops.cpp
  mlir/examples/toy/Ch5/mlir/ShapeInferencePass.cpp
  mlir/examples/toy/Ch6/mlir/LowerToAffineLoops.cpp
  mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
  mlir/examples/toy/Ch6/mlir/ShapeInferencePass.cpp
  mlir/examples/toy/Ch7/mlir/LowerToAffineLoops.cpp
  mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
  mlir/examples/toy/Ch7/mlir/ShapeInferencePass.cpp
  mlir/include/mlir/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.h
  mlir/include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h
  mlir/include/mlir/Conversion/GPUToNVVM/GPUToNVVMPass.h
  mlir/include/mlir/Conversion/GPUToROCDL/GPUToROCDLPass.h
  mlir/include/mlir/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.h
  mlir/include/mlir/Conversion/GPUToVulkan/ConvertGPUToVulkanPass.h
  mlir/include/mlir/Conversion/LinalgToLLVM/LinalgToLLVM.h
  mlir/include/mlir/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.h
  mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h
  mlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h
  mlir/include/mlir/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.h
  mlir/include/mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h
  mlir/include/mlir/Dialect/Affine/Passes.h
  mlir/include/mlir/Dialect/FxpMathOps/Passes.h
  mlir/include/mlir/Dialect/GPU/Passes.h
  mlir/include/mlir/Dialect/Linalg/Passes.h
  mlir/include/mlir/Dialect/Quant/Passes.h
  mlir/include/mlir/Dialect/SPIRV/Passes.h
  mlir/include/mlir/Pass/Pass.h
  mlir/include/mlir/Quantizer/Transforms/Passes.h
  mlir/include/mlir/Transforms/Passes.h
  mlir/include/mlir/Transforms/ViewOpGraph.h
  mlir/include/mlir/Transforms/ViewRegionGraph.h
  mlir/lib/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.cpp
  mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
  mlir/lib/Conversion/GPUToCUDA/ConvertKernelFuncToCubin.cpp
  mlir/lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp
  mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
  mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
  mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
  mlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp
  mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
  mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
  mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.cpp
  mlir/lib/Conversion/LoopToStandard/LoopToStandard.cpp
  mlir/lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp
  mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
  mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp
  mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
  mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
  mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp
  mlir/lib/Dialect/Affine/Transforms/AffineLoopInvariantCodeMotion.cpp
  mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
  mlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp
  mlir/lib/Dialect/Affine/Transforms/LoopUnrollAndJam.cpp
  mlir/lib/Dialect/Affine/Transforms/SimplifyAffineStructures.cpp
  mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
  mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp
  mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
  mlir/lib/Dialect/LLVMIR/Transforms/LegalizeForExport.cpp
  mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
  mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
  mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
  mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
  mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopFusion.cpp
  mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopSpecialization.cpp
  mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopTiling.cpp
  mlir/lib/Dialect/Quant/Transforms/ConvertConst.cpp
  mlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp
  mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp
  mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp
  mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp
  mlir/lib/Pass/PassDetail.h
  mlir/lib/Quantizer/Transforms/AddDefaultStatsTestPass.cpp
  mlir/lib/Quantizer/Transforms/InferQuantizedTypesPass.cpp
  mlir/lib/Quantizer/Transforms/RemoveInstrumentationPass.cpp
  mlir/lib/Transforms/CSE.cpp
  mlir/lib/Transforms/Canonicalizer.cpp
  mlir/lib/Transforms/Inliner.cpp
  mlir/lib/Transforms/LocationSnapshot.cpp
  mlir/lib/Transforms/LoopCoalescing.cpp
  mlir/lib/Transforms/LoopFusion.cpp
  mlir/lib/Transforms/LoopInvariantCodeMotion.cpp
  mlir/lib/Transforms/MemRefDataFlowOpt.cpp
  mlir/lib/Transforms/OpStats.cpp
  mlir/lib/Transforms/ParallelLoopCollapsing.cpp
  mlir/lib/Transforms/PipelineDataTransfer.cpp
  mlir/lib/Transforms/StripDebugInfo.cpp
  mlir/lib/Transforms/SymbolDCE.cpp
  mlir/lib/Transforms/ViewOpGraph.cpp
  mlir/lib/Transforms/ViewRegionGraph.cpp
  mlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp
  mlir/test/lib/Dialect/Affine/TestLoopPermutation.cpp
  mlir/test/lib/Dialect/Affine/TestParallelismDetection.cpp
  mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
  mlir/test/lib/Dialect/SPIRV/TestAvailability.cpp
  mlir/test/lib/Dialect/Test/TestPatterns.cpp
  mlir/test/lib/IR/TestFunc.cpp
  mlir/test/lib/IR/TestMatchers.cpp
  mlir/test/lib/IR/TestSideEffects.cpp
  mlir/test/lib/IR/TestSymbolUses.cpp
  mlir/test/lib/Pass/TestPassManager.cpp
  mlir/test/lib/Transforms/TestAllReduceLowering.cpp
  mlir/test/lib/Transforms/TestCallGraph.cpp
  mlir/test/lib/Transforms/TestConstantFold.cpp
  mlir/test/lib/Transforms/TestDominance.cpp
  mlir/test/lib/Transforms/TestGpuMemoryPromotion.cpp
  mlir/test/lib/Transforms/TestGpuParallelLoopMapping.cpp
  mlir/test/lib/Transforms/TestInlining.cpp
  mlir/test/lib/Transforms/TestLinalgTransforms.cpp
  mlir/test/lib/Transforms/TestLiveness.cpp
  mlir/test/lib/Transforms/TestLoopFusion.cpp
  mlir/test/lib/Transforms/TestLoopMapping.cpp
  mlir/test/lib/Transforms/TestLoopParametricTiling.cpp
  mlir/test/lib/Transforms/TestMemRefBoundCheck.cpp
  mlir/test/lib/Transforms/TestMemRefDependenceCheck.cpp
  mlir/test/lib/Transforms/TestMemRefStrideCalculation.cpp
  mlir/test/lib/Transforms/TestOpaqueLoc.cpp
  mlir/test/lib/Transforms/TestVectorToLoopsConversion.cpp
  mlir/test/lib/Transforms/TestVectorTransforms.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D77350.254651.patch
Type: text/x-patch
Size: 117513 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200403/c85babbe/attachment-0001.bin>


More information about the llvm-commits mailing list