Rework the compilation strategy for switch to: * use brif instead of brz and brnz * generate tables inline, rather than delyaing them to after the decision tree has been generated * avoid allocating new vectors by using slices into the sorted contiguous ranges * avoid generating some unconditional jumps * output differences in test output using the similar crate for easier debugging
This crate provides a straightforward way to create a
Cranelift IR function and fill it with
instructions translated from another language. It contains an SSA construction
module that provides convenient methods for translating non-SSA variables into
SSA Cranelift IR values via use_var and def_var calls.