Highlights:
- **Intermediate representation**
- Support SHR operator: ti.bit_shr(x, y) (1871) (by **Xuanda Yang**)
- **Miscellaneous**
- Automatic release pipeline: read semver from CMakeList directly (1885) (by **Chengchen(Rex) Wang**)
- **Refactor**
- Move statements from ir.h to statements.h (1898) (by **xumingkuan**)
Full changelog:
- [bug] Fix stable fluid BFECC advection (1764) (by **Yadi Cao**)
- [Refactor] [ir] Move statements from ir.h to statements.h (1898) (by **xumingkuan**)
- [export] Support exporting custom config variables (1893) (by **彭于斌**)
- [gui] [ipython] Add GUI.__del__ to close on variable dereference (1869) (by **彭于斌**)
- [misc] Make check previous CI run only check for Build-and-Test jobs (1899) (by **Ye Kuang**)
- [refactor] Move IRBank to a separate file (1897) (by **xumingkuan**)
- [refactor] Remove DFS in DOT generation (1896) (by **Ye Kuang**)
- [async] Optimize StateFlowGraph::optimize_listgen (1894) (by **Yuanming Hu**)
- [misc] Expose kernel statistics to python (1891) (by **Ye Kuang**)
- [async] Cache demote_activation (1889) (by **xumingkuan**)
- [async] Make optimization passes iterative (1890) (by **Ye Kuang**)
- [async] Remove ClearListStmt from possibly fused serial tasks (1888) (by **Ye Kuang**)
- [IR] [lang] Support SHR operator: ti.bit_shr(x, y) (1871) (by **Xuanda Yang**)
- [async] Classify tasks to make fusion 10.6x faster (1887) (by **xumingkuan**)
- [Misc] Automatic release pipeline: read semver from CMakeList directly (1885) (by **Chengchen(Rex) Wang**)
- [export] [cc] Support ti.RecordGroupHint to group launched kernels (1880) (by **彭于斌**)
- [async] Add element-wise info into TaskMeta for fusion (1884) (by **xumingkuan**)