From 2d2f4f7d8d566568e9ca402a93ae0a5ced8b543a Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Sun, 24 Dec 2023 06:19:05 +0000 Subject: [PATCH] Add logo to README --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c30d7f84..1bc89756 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,16 @@ -**SLOTHY** - **S**uper (**L**azy) **O**ptimization of **T**ricky **H**andwritten assembl**Y** - is an assembly-level superoptimizer +
+ +

**SLOTHY** - **S**uper (**L**azy) **O**ptimization of **T**ricky **H**andwritten assembl**Y** - is an assembly-level superoptimizer for: 1. Instruction scheduling 2. Register allocation 3. Software pipelining (= periodic loop interleaving) +

+
SLOTHY is generic in the target architecture and microarchitecture. This repository provides instantiations for the the Cortex-M55 and Cortex-M85 CPUs implementing Armv8.1-M + Helium, and the Cortex-A55 and Cortex-A72 -CPUs implementing Armv8-A + Neon. There is an experimental model for Cortex-X/Neoverse-V cores. +CPUs implementing Armv8-A + Neon. There is an experimental model for Cortex-X/Neoverse-V cores. SLOTHY is discussed in [Fast and Clean: Auditable high-performance assembly via constraint solving](https://eprint.iacr.org/2022/1303). @@ -16,10 +20,10 @@ SLOTHY enables a development workflow where developers write 'clean' assembly by ### How it works -SLOTHY is essentially a constraint solver frontend: It converts the input source into a data flow graph and +SLOTHY is essentially a constraint solver frontend: It converts the input source into a data flow graph and builds a constraint model capturing valid instruction schedulings, register renamings, and periodic loop -interleavings. The model is passed to an external constraint solver and, upon success, -a satisfying assignment converted back into the final code. Currently, SLOTHY uses +interleavings. The model is passed to an external constraint solver and, upon success, +a satisfying assignment converted back into the final code. Currently, SLOTHY uses [Google OR-Tools](https://developers.google.com/optimization) as its constraint solver backend. ### Performance @@ -270,4 +274,4 @@ The [examples](examples/naive) directory contains numerous exemplary assembly sn `python3 example.py --examples={YOUR_EXAMPLE}`. See `python3 examples.py --help` for the list of all available examples. The use of SLOTHY from the command line is illustrated in [scripts/](scripts/) supporting the real-world optimizations -for the NTT, FFT and X25519 discussed in [Fast and Clean: Auditable high-performance assembly via constraint solving](https://eprint.iacr.org/2022/1303). \ No newline at end of file +for the NTT, FFT and X25519 discussed in [Fast and Clean: Auditable high-performance assembly via constraint solving](https://eprint.iacr.org/2022/1303).