# AscendC passes * [`-ascendc-allocate-tensor`](#ascendc-allocate-tensor) * [`-ascendc-compute-memory-consumption`](#ascendc-compute-memory-consumption) * [`-ascendc-declare-py-struct`](#ascendc-declare-py-struct) * [`-ascendc-define-cube-only`](#ascendc-define-cube-only) * [`-ascendc-detect-enable-debug`](#ascendc-detect-enable-debug) * [`-ascendc-detect-kernel-type`](#ascendc-detect-kernel-type) * [`-ascendc-erase-sync`](#ascendc-erase-sync) * [`-ascendc-fill-asc-operands`](#ascendc-fill-asc-operands) * [`-ascendc-fuse-bufid-sync`](#ascendc-fuse-bufid-sync) * [`-ascendc-generate-boilerplate`](#ascendc-generate-boilerplate) * [`-ascendc-hoist-que-bind`](#ascendc-hoist-que-bind) * [`-ascendc-hoist-ub-allocation`](#ascendc-hoist-ub-allocation) * [`-ascendc-input-output-tensor`](#ascendc-input-output-tensor) * [`-ascendc-insert-bufid-sync`](#ascendc-insert-bufid-sync) * [`-ascendc-insert-sync`](#ascendc-insert-sync) * [`-ascendc-legalize-kernel-args`](#ascendc-legalize-kernel-args) * [`-ascendc-lower-to-l0`](#ascendc-lower-to-l0) * [`-ascendc-materialize-tensor`](#ascendc-materialize-tensor) * [`-ascendc-noop`](#ascendc-noop) * [`-ascendc-privatize-func`](#ascendc-privatize-func) * [`-ascendc-reuse-ub-allocation`](#ascendc-reuse-ub-allocation) * [`-ascendc-unify-pipe`](#ascendc-unify-pipe) * [`-ascendc-verify-sync`](#ascendc-verify-sync) ## `-ascendc-allocate-tensor` _Allocate tensors for LocalTensorAuto_ ## `-ascendc-compute-memory-consumption` _Compute memory consumption for kernel functions_ ## `-ascendc-declare-py-struct` _Insert emitasc.declare_py_struct_ ## `-ascendc-define-cube-only` _Insert emitc.define if CUBE-ONLY_ ## `-ascendc-detect-enable-debug` _Check whether the kernel is using debug utils_ ## `-ascendc-detect-kernel-type` _Check whether the kernel is vector-only or mixed_ ## `-ascendc-erase-sync` _Erase intra-core synchronization operations_ ## `-ascendc-fill-asc-operands` _Filling AscendC operands_ ## `-ascendc-fuse-bufid-sync` _Erase unnecessary get_buf and rls_buf_ ## `-ascendc-generate-boilerplate` _Insert emitc.include and additional boilerplate code_ ## `-ascendc-hoist-que-bind` _Hoist TQueBind, TQue, TBuf initialization operations_ ## `-ascendc-hoist-ub-allocation` _Hoist tensor allocations to the function root_ ### Options ``` -exclude-in-out : Prevent input/output tensors from hoisting ``` ## `-ascendc-input-output-tensor` _Set input and output operand for local_tensor_auto_ ## `-ascendc-insert-bufid-sync` _Insert get_buf and rls_buf synchronization_ ## `-ascendc-insert-sync` _Insert intra-core synchronization operations_ ## `-ascendc-legalize-kernel-args` _Attach emitasc.kernel_arg attributes and insert operations_ ### Options ``` -set-ffts-addr : Append ffts_addr to kernel arguments and call set_ffts_addr ``` ## `-ascendc-lower-to-l0` _Lowering L2 to L0 Ascend C operations_ ## `-ascendc-materialize-tensor` _Insert ascendc.tbuf, ascendc.queue and ascendc.alloca for local_tensor_auto_ ### Options ``` -always-buf : Always use TBuf to materialize tensors ``` ## `-ascendc-noop` _This pass does nothing_ ## `-ascendc-privatize-func` _Mark functions without ascendc.global attribute as private_ ## `-ascendc-reuse-ub-allocation` _Perform analysis and reuse temporary UB allocations_ ### Options ``` -reuse-in-out : Allow input/output tensors to be reusable ``` ## `-ascendc-unify-pipe` _Unify pipe opertation_ ## `-ascendc-verify-sync` _Verify TQue synchronization_