Skip to content

urays/lasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

   __    _____ _____ _____
  |  |  |  _  |   __|     |
  |  |__| |_| |__   |  |  |
  |_____| ___ |_____|_ | _|

🐌 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.

Artifact Platform Target License DOI

Quick Start · Artifact Contents · Public Target · Repository Layout · Citation · License

Quick Start

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.s

Common 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

Artifact Contents

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

Public Target

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.

Repository Layout

.
├── 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

Citation

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}
}

License

This artifact is released under the MIT License. See LICENSE for details.

About

VLIW ASSEMBLY SCHEDULING MACHINE.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages