lib/choir/src/passes/root.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 pub const pass = @import("pass/root.zig");
2 pub const Pass = pass.Pass;
3 pub const PassMutationScope = pass.PassMutationScope;
4 pub const PassStateConcurrency = pass.PassStateConcurrency;
5 pub const PassRerunPolicy = pass.PassRerunPolicy;
6 pub const DependentDialects = pass.DependentDialects;
7 pub const dialectDependencies = pass.dialectDependencies;
8 pub const PassContext = pass.PassContext;
9 pub const PassResult = pass.PassResult;
10 pub const PassFailureKind = pass.PassFailureKind;
11 pub const PassFailureReproducer = pass.PassFailureReproducer;
12 pub const PassManagerRunOptions = pass.PassManagerRunOptions;
13 pub const PassManagerFixedPointResult = pass.PassManagerFixedPointResult;
14 pub const PassManager = pass.PassManager;
15 pub const OpPassManager = pass.OpPassManager;
16 pub const OpPassManagerTargetKind = pass.OpPassManagerTargetKind;
17 pub const PipelineEntry = pass.PipelineEntry;
18 pub const OperationPass = pass.OperationPass;
19 pub const AnalysisId = pass.AnalysisId;
20 pub const analysisId = pass.analysisId;
21 pub const Analysis = pass.Analysis;
22 pub const AnalysisDescriptor = pass.AnalysisDescriptor;
23 pub const PreservedAnalyses = pass.PreservedAnalyses;
24 pub const AnalysisCache = pass.AnalysisCache;
25 pub const PassManagerStats = pass.PassManagerStats;
26
27 pub const reproducer = @import("reproducer.zig");
28 pub const ReplayOptions = reproducer.ReplayOptions;
29 pub const ReplayResult = reproducer.ReplayResult;
30 pub const formatPassFailureReproducerAlloc = reproducer.formatPassFailureReproducerAlloc;
31 pub const writePassFailureReproducer = reproducer.writePassFailureReproducer;
32 pub const writePassFailureReproducerFile = reproducer.writePassFailureReproducerFile;
33 pub const parsePassFailureReproducerAlloc = reproducer.parsePassFailureReproducerAlloc;
34 pub const replayPassFailureReproducer = reproducer.replayPassFailureReproducer;
35
36 pub const pipeline = @import("pipeline.zig");
37 pub const PassRegistration = pipeline.PassRegistration;
38 pub const PassRegistry = pipeline.PassRegistry;
39 pub const PassOptionSpec = pipeline.PassOptionSpec;
40 pub const PassOptionChoice = pipeline.PassOptionChoice;
41 pub const PassOptionAssignment = pipeline.PassOptionAssignment;
42 pub const PassOptionSet = pipeline.PassOptionSet;
43 pub const PassOptionsBuilderFn = pipeline.PassOptionsBuilderFn;
44 pub const PipelineOptionsBuilderFn = pipeline.PipelineOptionsBuilderFn;
45 pub const PipelineBuilderFn = pipeline.PipelineBuilderFn;
46 pub const PipelineRegistration = pipeline.PipelineRegistration;
47 pub const PipelineRegistry = pipeline.PipelineRegistry;
48 pub const PipelineError = pipeline.PipelineError;
49 pub const RegistryError = pipeline.RegistryError;
50 pub const plan = @import("plan.zig");
51 pub const PassPlan = plan.Plan;
52 pub const PassPlanStep = plan.Step;
53 pub const PassPlanTarget = plan.Target;
54 pub const PassPlanInvocation = plan.Invocation;
55 pub const PassPlanNested = plan.Nested;
56 pub const formatPassPlanOptionsAlloc = plan.formatOptionsAlloc;
57 pub const writePassPlanOptions = plan.writeOptions;
58 pub const textual_pipeline = @import("textual.zig");
59 pub const TextualPipelineError = textual_pipeline.TextualPipelineError;
60 pub const parsePassPipeline = textual_pipeline.parsePassPipeline;
61 pub const parseOpPassPipeline = textual_pipeline.parseOpPassPipeline;
62 pub const writePassManagerPipeline = textual_pipeline.writePassManagerPipeline;
63 pub const writeOpPassManagerPipeline = textual_pipeline.writeOpPassManagerPipeline;
64 pub const formatPassManagerPipelineAlloc = textual_pipeline.formatPassManagerPipelineAlloc;
65 pub const formatOpPassManagerPipelineAlloc = textual_pipeline.formatOpPassManagerPipelineAlloc;
66
67 pub const instrumentation = @import("instrumentation.zig");
68 pub const PassInstrumentation = instrumentation.PassInstrumentation;
69 pub const PassInstrumentor = instrumentation.PassInstrumentor;
70 pub const PassInfo = instrumentation.PassInfo;
71 pub const PipelineInfo = instrumentation.PipelineInfo;
72 pub const AnalysisInfo = instrumentation.AnalysisInfo;
73 pub const PassStatisticInfo = instrumentation.PassStatisticInfo;
74 pub const TimingInstrumentation = instrumentation.TimingInstrumentation;
75 pub const IRPrintingInstrumentation = instrumentation.IRPrintingInstrumentation;
76 pub const VerifierInstrumentation = instrumentation.VerifierInstrumentation;
77 pub const CountingInstrumentation = instrumentation.CountingInstrumentation;
78 pub const PassStatisticsInstrumentation = instrumentation.PassStatisticsInstrumentation;
79 pub const PassStatisticSummary = instrumentation.PassStatisticSummary;
80 pub const PassTimingOptions = instrumentation.PassTimingOptions;
81 pub const PassAllocationSnapshot = instrumentation.PassAllocationSnapshot;
82 pub const PassAllocationSnapshotProvider = instrumentation.PassAllocationSnapshotProvider;
83 pub const PipelineTimingSummary = instrumentation.PipelineTimingSummary;
84 pub const PassRunTimingSummary = instrumentation.PassRunTimingSummary;
85 pub const PassTimingSummary = instrumentation.PassTimingSummary;
86 pub const IRPrintingOptions = instrumentation.IRPrintingOptions;
87 pub const VerifierInstrumentationFailure = instrumentation.VerifierInstrumentationFailure;
88 pub const VerifierInstrumentationOptions = instrumentation.VerifierInstrumentationOptions;
89
90 pub const control_flow = @import("control.zig");
91 pub const RegionControlFlow = control_flow.RegionControlFlow;
92 pub const ControlFlowGraphAnalysis = control_flow.ControlFlowGraphAnalysis;
93 pub const DominanceAnalysis = control_flow.DominanceAnalysis;
94 pub const PostDominanceAnalysis = control_flow.PostDominanceAnalysis;
95 pub const cfg_analysis_descriptor = control_flow.cfg_analysis_descriptor;
96 pub const dominance_analysis_descriptor = control_flow.dominance_analysis_descriptor;
97 pub const post_dominance_analysis_descriptor = control_flow.post_dominance_analysis_descriptor;
98 pub const getControlFlowGraphAnalysis = control_flow.getControlFlowGraphAnalysis;
99 pub const getDominanceAnalysis = control_flow.getDominanceAnalysis;
100 pub const getPostDominanceAnalysis = control_flow.getPostDominanceAnalysis;
101
102 pub const canonicalization = @import("canonicalization.zig");
103 pub const CanonicalizationPassSpec = canonicalization.CanonicalizationPassSpec;
104 pub const CanonicalizationPass = canonicalization.CanonicalizationPass;
105 pub const createCanonicalizationPass = canonicalization.createCanonicalizationPass;
106 pub const builtin_canonicalization_patterns = canonicalization.builtin_canonicalization_patterns;
107 pub const populateBuiltinCanonicalizationPatterns =
108 canonicalization.populateBuiltinCanonicalizationPatterns;
109 pub const registeredFoldPatternSpec = canonicalization.registeredFoldPatternSpec;
110 pub const populateRegisteredFoldPatterns = canonicalization.populateRegisteredFoldPatterns;
111 pub const populateRegisteredCanonicalizationPatterns =
112 canonicalization.populateRegisteredCanonicalizationPatterns;
113 pub const canonicalization_pass_name = canonicalization.canonicalization_pass_name;
114 pub const canonicalization_pass_description = canonicalization.canonicalization_pass_description;
115 pub const canonicalization_pass_registration = canonicalization.canonicalization_pass_registration;
116 pub const isTriviallyDead = canonicalization.isTriviallyDead;
117 pub const eliminateDeadOps = canonicalization.eliminateDeadOps;
118
119 pub const cse = @import("cse/root.zig");
120 pub const effects = @import("effects.zig");
121 pub const optimizations = @import("optimizations.zig");
122 pub const dead_code_elimination_pass_name = optimizations.dead_code_elimination_pass_name;
123 pub const dead_code_elimination_pass_description =
124 optimizations.dead_code_elimination_pass_description;
125 pub const common_subexpression_elimination_pass_name =
126 optimizations.common_subexpression_elimination_pass_name;
127 pub const common_subexpression_elimination_pass_description =
128 optimizations.common_subexpression_elimination_pass_description;
129 pub const constant_folding_pass_name = optimizations.constant_folding_pass_name;
130 pub const constant_folding_pass_description = optimizations.constant_folding_pass_description;
131 pub const sparse_conditional_constant_propagation_pass_name =
132 optimizations.sparse_conditional_constant_propagation_pass_name;
133 pub const sparse_conditional_constant_propagation_pass_description =
134 optimizations.sparse_conditional_constant_propagation_pass_description;
135 pub const load_store_forwarding_pass_name = optimizations.load_store_forwarding_pass_name;
136 pub const load_store_forwarding_pass_description =
137 optimizations.load_store_forwarding_pass_description;
138 pub const dead_store_elimination_pass_name = optimizations.dead_store_elimination_pass_name;
139 pub const dead_store_elimination_pass_description =
140 optimizations.dead_store_elimination_pass_description;
141 pub const loop_invariant_code_motion_pass_name = optimizations.loop_invariant_code_motion_pass_name;
142 pub const loop_invariant_code_motion_pass_description =
143 optimizations.loop_invariant_code_motion_pass_description;
144 pub const equality_saturation_pass_name = optimizations.equality_saturation_pass_name;
145 pub const equality_saturation_pass_description = optimizations.equality_saturation_pass_description;
146 pub const default_optimization_pipeline_name = optimizations.default_optimization_pipeline_name;
147 pub const default_optimization_pipeline_description =
148 optimizations.default_optimization_pipeline_description;
149 pub const createDeadCodeEliminationPass = optimizations.createDeadCodeEliminationPass;
150 pub const createCommonSubexpressionEliminationPass =
151 optimizations.createCommonSubexpressionEliminationPass;
152 pub const createConstantFoldingPass = optimizations.createConstantFoldingPass;
153 pub const createSparseConditionalConstantPropagationPass =
154 optimizations.createSparseConditionalConstantPropagationPass;
155 pub const createLoadStoreForwardingPass = optimizations.createLoadStoreForwardingPass;
156 pub const createDeadStoreEliminationPass = optimizations.createDeadStoreEliminationPass;
157 pub const createLoopInvariantCodeMotionPass = optimizations.createLoopInvariantCodeMotionPass;
158 pub const createEqualitySaturationPass = optimizations.createEqualitySaturationPass;
159 pub const dead_code_elimination_pass_registration =
160 optimizations.dead_code_elimination_pass_registration;
161 pub const common_subexpression_elimination_pass_registration =
162 optimizations.common_subexpression_elimination_pass_registration;
163 pub const constant_folding_pass_registration = optimizations.constant_folding_pass_registration;
164 pub const sparse_conditional_constant_propagation_pass_registration =
165 optimizations.sparse_conditional_constant_propagation_pass_registration;
166 pub const load_store_forwarding_pass_registration =
167 optimizations.load_store_forwarding_pass_registration;
168 pub const dead_store_elimination_pass_registration =
169 optimizations.dead_store_elimination_pass_registration;
170 pub const loop_invariant_code_motion_pass_registration =
171 optimizations.loop_invariant_code_motion_pass_registration;
172 pub const equality_saturation_pass_registration =
173 optimizations.equality_saturation_pass_registration;
174 pub const optimization_pass_registrations = optimizations.optimization_pass_registrations;
175 pub const default_optimization_pipeline_registration =
176 optimizations.default_optimization_pipeline_registration;
177 pub const optimization_pipeline_registrations = optimizations.optimization_pipeline_registrations;
178 pub const addDefaultOptimizationPipeline = optimizations.addDefaultOptimizationPipeline;
179 pub const buildDefaultOptimizationPipeline = optimizations.buildDefaultOptimizationPipeline;
180 pub const registerOptimizationPassEntries = optimizations.registerOptimizationPassEntries;
181 pub const memref_views = @import("views.zig");
182 pub const promotion = @import("promotion.zig");
183
184 pub const saturation = @import("saturation.zig");
185 pub const EGraphOptimizationOptions = saturation.OptimizationOptions;
186 pub const EGraphOptimizationStats = saturation.OptimizationStats;
187 pub const EGraphPassConfig = saturation.PassConfig;
188 pub const EGraphPass = saturation.EGraphPass;
189 pub const runEGraphOptimization = saturation.runOptimization;
190
191 pub const conversion = @import("conversion.zig");
192 pub const ConversionTarget = conversion.ConversionTarget;
193 pub const Legality = conversion.Legality;
194 pub const ConversionOptions = conversion.ConversionOptions;
195 pub const applyPartialConversion = conversion.applyPartialConversion;
196 pub const applyFullConversion = conversion.applyFullConversion;
197 pub const applyPartialConversionWithOptions = conversion.applyPartialConversionWithOptions;
198 pub const applyFullConversionWithOptions = conversion.applyFullConversionWithOptions;
199 pub const GreedyRewriteStrictness = conversion.GreedyRewriteStrictness;
200 pub const GreedyRewriteConfig = conversion.GreedyRewriteConfig;
201 pub const GreedyRewriteResult = conversion.GreedyRewriteResult;
202 pub const applyPatternsGreedily = conversion.applyPatternsGreedily;
203
204 pub const BlockDominanceAnalysis = @import("control.zig").BlockDominanceAnalysis;
205 pub const RegionDominance = @import("control.zig").RegionDominance;
206 pub const ConversionInitialSnapshot = @import("conversion.zig").OperationSnapshot;