Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial commit for github.io page #20

Merged
merged 1 commit into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
title: SLOTHY
description: Assembly superoptimization via constraint solving
show_downloads: true
google_analytics:
theme: jekyll-theme-minimal
27 changes: 27 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
layout: default
---

`SLOTHY` -- **S**uper **L**azy **O**ptimization of **T**ricky **H**andwritten assembl**Y** -- is a fixed-instruction
assembly superoptimizer based on constraint solving. It takes handwritten assembly as input and simultaneously
super-optimizes:
- Instruction scheduling
- Register allocation
- Software pipelining

`SLOTHY` enables a development workflow where developers write 'clean' assembly by hand, emphasizing the logic of the
computation, while `SLOTHY` automates microarchitecture-specific micro-optimizations. Since `SLOTHY` does not change
instructions, and scheduling/allocation optimizations are tightly controlled through configurable and extensible
constraints, the developer keeps close control over the final assembly, while being freed from the most tedious and
readability- and verifiability-impeding micro-optimizations.

#### Architecture/Microarchitecture support

`SLOTHY` is generic in the target architecture and microarchitecture. So far, it supports Cortex-M55 and Cortex-M85
implementing Armv8.1-M + Helium, and Cortex-A55 and Cortex-A72 implementing
Armv8-A + Neon. Moreover, there is an experimental model for Cortex-X/Neoverse-V cores.

#### Paper

SLOTHY is described in detail in the CHES 2024 paper [Fast and Clean: Auditable
high-performance assembly via constraint solving](https://eprint.iacr.org/2022/1303.pdf).