Development Optimization Passes List
This is an automatically generated list of all internal xls developtment
optimization passes available with the default opt_main. Normal optimization
passes may be found
here.
This is generated automatically based on comments in the header files.
Warning: These passes are mostly intended for debugging and development use cases by the XLS development team and allow for the manipulation of ir files in ways that may not be desirable for general optimization use.
If the opt level is set below 'Min opt level' the pass will act as a no-op.
If the opt level is set above 'Cap opt level' the pass (or passes within the compound pass) will be executed with the opt level capped to the specified value.
Warning: Many of these passes have descriptions generated by the Gemini LLM and may not accurately reflect the behavior of the passes. As time goes on manual verification or editing of the pass descriptions may be done to improve accuracy.
assert_and_cover_removal - Assert and cover removal
decompose_dataflow - Decompose dataflow
Decompose and flatten all compound data type dataflow. This replaces all array and tuple operations with operations on base values except directly around externally visible values.
This pass is meant for testing and measurement.
literalize_zero_bits - Literalize zero bits
proc_state_legalization_shim - Proc State Legalization Pass
Compatibility shim to use the scheduling pass 'ProcStateLegalizationPass' in the optimization pass pipeline for modernizing procs.
remove_identifiers_unsafe - UNSAFE: Remove all identifiers
A pass version of 'remove_identifers_main'. Running this pass will rewrite the package to remove the names of all functions, procs, nodes, channels, etc.
This should only be used while investigating optimizer behavior using the ir-visualizer or other tools.
Warning
This pass does not preserve externally visible names. Once run on a design the various io-constraint and other configs which rely on naming pieces of the design will not work. This pass is only for dev/ investigatory purposes.
Note
This pass does not preserve the id number of nodes.
remove_one_hot_sel - One Hot Select Removal Pass
Pass which replaces OneHotSelects with equivalent Selects without regard to profitability concerns. This pass is meant for investigation and analysis use only and should not be used for normal optimization pipelines.
To avoid extreme proliferation of nodes, we only translate OneHotSelects with a selector bitwidth <= 16.
to_zero_ext - DebugPass: To ZeroExt Pass
Converts any canonicalized zero-exts back from concat(zero, ...) to zero_ext since it generally makes for easier to read/visualize graphs. This pass is not meant to be used as an optimization pass at all.