pub trait Optimizer {
    fn with_env(target_env: TargetEnv) -> Self;
    fn optimize<MC: MessageCallback>(
        &self,
        input: impl AsRef<[u32]>,
        msg_callback: &mut MC,
        options: Option<Options>
    ) -> Result<Binary, Error>; fn register_pass(&mut self, pass: Passes) -> &mut Self; fn register_performance_passes(&mut self) -> &mut Self; fn register_size_passes(&mut self) -> &mut Self; fn register_hlsl_legalization_passes(&mut self) -> &mut Self; }

Required Methods

Register a single pass with the the optimizer.

Registers passes that attempt to improve performance of generated code. This sequence of passes is subject to constant review and will change from time to time.

Registers passes that attempt to improve the size of generated code. This sequence of passes is subject to constant review and will change from time to time.

Registers passes that attempt to legalize the generated code.

Note: this recipe is specially designed for legalizing SPIR-V. It should be used by compilers after translating HLSL source code literally. It should not be used by general workloads for performance or size improvement.

This sequence of passes is subject to constant review and will change from time to time.

Implementors