[all-commits] [llvm/llvm-project] 722f90: [mlir][Pass][NFC] Replace usages of ModulePass wit...

River Riddle via All-commits all-commits at lists.llvm.org
Tue Apr 7 14:10:08 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 722f909f7aa1d5ab21f68eb8ce1baf109cc5bb13
      https://github.com/llvm/llvm-project/commit/722f909f7aa1d5ab21f68eb8ce1baf109cc5bb13
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-07 (Tue, 07 Apr 2020)

  Changed paths:
    M mlir/docs/Tutorials/Toy/Ch-6.md
    M mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
    M mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
    M mlir/include/mlir/Pass/Pass.h
    M mlir/lib/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.cpp
    M mlir/lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp
    M mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
    M mlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp
    M mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
    M mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
    M mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.cpp
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp
    M mlir/lib/Transforms/OpStats.cpp
    M mlir/lib/Transforms/ViewOpGraph.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp
    M mlir/test/lib/IR/TestFunc.cpp
    M mlir/test/lib/IR/TestSideEffects.cpp
    M mlir/test/lib/IR/TestSymbolUses.cpp
    M mlir/test/lib/Pass/TestPassManager.cpp
    M mlir/test/lib/Transforms/TestAllReduceLowering.cpp
    M mlir/test/lib/Transforms/TestCallGraph.cpp
    M mlir/test/lib/Transforms/TestOpaqueLoc.cpp

  Log Message:
  -----------
  [mlir][Pass][NFC] Replace usages of ModulePass with OperationPass<ModuleOp>

ModulePass doesn't provide any special utilities and thus doesn't give enough benefit to warrant a special pass class. This revision replaces all usages with the more general OperationPass.

Differential Revision: https://reviews.llvm.org/D77339


  Commit: 80aca1eaf778a58458833591e82b74647b5b7280
      https://github.com/llvm/llvm-project/commit/80aca1eaf778a58458833591e82b74647b5b7280
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-07 (Tue, 07 Apr 2020)

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

  Log Message:
  -----------
  [mlir][Pass] Remove the use of CRTP from the Pass classes

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, PassWrapper, is added to replicate the existing behavior for passes not suitable for using the tablegen backend.

Differential Revision: https://reviews.llvm.org/D77350


  Commit: 1834ad4a69701d338da1c5e2272e5523e0bbcb49
      https://github.com/llvm/llvm-project/commit/1834ad4a69701d338da1c5e2272e5523e0bbcb49
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2020-04-07 (Tue, 07 Apr 2020)

  Changed paths:
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/Affine/Passes.td
    M mlir/include/mlir/Dialect/GPU/Passes.td
    M mlir/include/mlir/Dialect/Linalg/Passes.td
    M mlir/include/mlir/Dialect/LoopOps/Passes.td
    M mlir/include/mlir/Dialect/Quant/Passes.td
    M mlir/include/mlir/Dialect/SPIRV/Passes.td
    M mlir/include/mlir/Pass/PassBase.td
    M mlir/include/mlir/TableGen/Pass.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.cpp
    M mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
    M mlir/lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp
    M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
    M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
    M mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
    M mlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp
    M mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
    M mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
    M mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.cpp
    M mlir/lib/Conversion/LoopToStandard/LoopToStandard.cpp
    M mlir/lib/Conversion/LoopsToGPU/LoopsToGPUPass.cpp
    A mlir/lib/Conversion/PassDetail.h
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp
    M mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp
    M mlir/lib/Dialect/Affine/Transforms/AffineLoopInvariantCodeMotion.cpp
    M mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
    M mlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp
    M mlir/lib/Dialect/Affine/Transforms/LoopUnrollAndJam.cpp
    A mlir/lib/Dialect/Affine/Transforms/PassDetail.h
    M mlir/lib/Dialect/Affine/Transforms/SimplifyAffineStructures.cpp
    M mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
    M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
    A mlir/lib/Dialect/GPU/Transforms/PassDetail.h
    M mlir/lib/Dialect/LLVMIR/Transforms/LegalizeForExport.cpp
    A mlir/lib/Dialect/LLVMIR/Transforms/PassDetail.h
    M mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp
    A mlir/lib/Dialect/Linalg/Transforms/PassDetail.h
    M mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
    M mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopFusion.cpp
    M mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopSpecialization.cpp
    M mlir/lib/Dialect/LoopOps/Transforms/ParallelLoopTiling.cpp
    A mlir/lib/Dialect/LoopOps/Transforms/PassDetail.h
    M mlir/lib/Dialect/Quant/Transforms/ConvertConst.cpp
    M mlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp
    A mlir/lib/Dialect/Quant/Transforms/PassDetail.h
    M mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp
    A mlir/lib/Dialect/SPIRV/Transforms/PassDetail.h
    M mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp
    M mlir/lib/TableGen/Pass.cpp
    M mlir/lib/Transforms/CSE.cpp
    M mlir/lib/Transforms/Canonicalizer.cpp
    M mlir/lib/Transforms/Inliner.cpp
    M mlir/lib/Transforms/LocationSnapshot.cpp
    M mlir/lib/Transforms/LoopCoalescing.cpp
    M mlir/lib/Transforms/LoopFusion.cpp
    M mlir/lib/Transforms/LoopInvariantCodeMotion.cpp
    M mlir/lib/Transforms/MemRefDataFlowOpt.cpp
    M mlir/lib/Transforms/OpStats.cpp
    M mlir/lib/Transforms/ParallelLoopCollapsing.cpp
    A mlir/lib/Transforms/PassDetail.h
    M mlir/lib/Transforms/PipelineDataTransfer.cpp
    M mlir/lib/Transforms/StripDebugInfo.cpp
    M mlir/lib/Transforms/SymbolDCE.cpp
    M mlir/lib/Transforms/ViewOpGraph.cpp
    M mlir/lib/Transforms/ViewRegionGraph.cpp
    M mlir/tools/mlir-tblgen/PassDocGen.cpp
    M mlir/tools/mlir-tblgen/PassGen.cpp

  Log Message:
  -----------
  [mlir][Pass] Update the PassGen to generate base classes instead of utilities

Summary:
This is much cleaner, and fits the same structure as many other tablegen backends. This was not done originally as the CRTP in the pass classes made it overly verbose/complex.

Differential Revision: https://reviews.llvm.org/D77367


Compare: https://github.com/llvm/llvm-project/compare/2481f26ac3f2...1834ad4a6970


More information about the All-commits mailing list