Passes#
2023-06-14
3 min read time
pass#
-
struct pass#
An interface for applying a transformation to the instructions in a
program
dead_code_elimination#
-
struct dead_code_elimination#
Remove instructions where the output is not used.
eliminate_common_subexpression#
-
struct eliminate_common_subexpression#
Remove identical instructions.
eliminate_concat#
-
struct eliminate_concat#
Remove concat operators by having each operator can write to different chunk of memory.
eliminate_contiguous#
-
struct eliminate_contiguous#
Remove contiguous instructions by checking if the operator can use non-standard shapes.
eliminate_identity#
-
struct eliminate_identity#
Remove identity instructions. Currently when used as the last pass, it will preserve the semantics of previous program state, therefore dead code elimination should not be used afterwards.
eliminate_pad#
-
struct eliminate_pad#
Remove pads if they can be written as an attribute to another op (im2col, convolution, pooling)
propagate_constant#
-
struct propagate_constant#
Replace instructions which take all literals with a literal of the computation.
rewrite_batchnorm#
-
struct rewrite_batchnorm#
Rewrite batchnorm to a multiply and add.
rewrite_rnn#
-
struct rewrite_rnn#
Rewrite rnn to gemm and add.
schedule#
-
struct schedule#
Schedule instructions for concurrent execution
simplify_algebra#
-
struct simplify_algebra#
Simplify many algebraic instructions to more efficient versions.
simplify_reshapes#
-
struct simplify_reshapes#
Eliminate redundant reshapes.