__ _____ _____ _____
| | | _ | __| |
| |__| |_| |__ | | |
|_____| ___ |_____|_ | _|
🐌 VLIW ASSEMBLY SCHEDULING MACHINE.
LASM is an extensible competitive scheduling framework for VLIW assembly optimization. Multiple scheduling strategies simultaneously optimize identical code regions, and the framework automatically selects the best solution through feasibility-driven ranking. This repository provides the LAN language specification, a pre-built Linux x86_64 binary, and the Potato VLIW reference target.
Quick Start · Artifact Contents · Public Target · Repository Layout · Citation · License
A pre-built LASM binary for Linux x86_64 is included:
cd potato
chmod +x tools/lasm
./tools/lasm lan4test/gemm_scalar.lan \
--layout tools/potato.json \
--dce --licm \
--laems --ec=0-8 --ims --fbbfc --fbbfl --tdlsc --tdlsl \
--output gemm_scalar.sCommon commands:
| Task | Command |
|---|---|
| Show compiler options | cd potato && ./tools/lasm --help |
| Compile scalar GEMM | cd potato && ./tools/lasm lan4test/gemm_scalar.lan --layout tools/potato.json --output gemm_scalar.s |
| Compile vector GEMM with fused multiply-add | cd potato && ./tools/lasm lan4test/sgemm_vector_muladd.lan --layout tools/potato.json --output sgemm_muladd.s |
| Read the Potato guide | potato/README.md |
| Read the LAN specification | docs/LAN-spec-v2.0.md |
| Component | Status | Notes |
|---|---|---|
| LAN language specification | Available | docs/LAN-spec-v2.0.md |
| Potato VLIW reference target | Available | Fictional public target under potato/ |
| Runnable LASM compiler | Available | Linux x86_64 binary under potato/tools/lasm |
| Example LAN programs | Available | GEMM examples under potato/lan4test/ |
| Full LASM source tree | Pending | Under institutional review; will be released once confidentiality-restricted components are removed |
Potato is a fictional VLIW vector processor that serves as a public reference target. It demonstrates:
- symbolic LAN programs with automatic register allocation;
- configurable register files, functional units, and instruction constraints;
- multi-strategy scheduling options including LAEMS, FBBF, IMS, and TDLS;
- a complete command-line flow from LAN input to generated assembly.
See potato/README.md for the full target description, instruction set details, and example programs.
.
├── docs/
│ └── LAN-spec-v2.0.md # LAN syntax and semantic specification
├── potato/
│ ├── README.md # Potato target guide and examples
│ ├── lan4test/ # Public LAN example programs
│ └── tools/
│ ├── lasm # Pre-built Linux x86_64 LASM binary
│ └── potato.json # Potato memory layout and calling convention
├── scripts/ # Development environment helper scripts
├── third-party/ # Public third-party headers and libraries
└── LICENSE
If you use LASM in your research, please cite our paper:
@article{10.1145/3810954,
author = {Zhong, Hongli and Liu, Zhong and Ma, Sheng},
title = {LASM: Extensible Competitive Scheduling Framework for VLIW Assembly Optimization},
year = {2026},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
issn = {1084-4309},
url = {https://doi.org/10.1145/3810954},
doi = {10.1145/3810954},
journal = {ACM Trans. Des. Autom. Electron. Syst.},
month = apr,
keywords = {VLIW architectures, instruction scheduling, software pipelining, assembly optimization, compiler extensibility, multi-strategy orchestration}
}This artifact is released under the MIT License. See LICENSE for details.