ADL-Tools is a suite of utilities designed to automatically generate target description files and encoding tests from an XML file. Specifically, ADL-Tools processes an XML file containing an ADL model for one or more RISC-V extensions and produces the target description files needed for LLVM compiler to support these new extensions. Instruction encoding, instruction scheduling, relocation tests are generated from the same model.
This work was developed as part of Tristan European project, CHIPSJU Contract no: 101095947.
This work was supported by a grant of the Ministry of Research, Innovation and Digitization, CNCS/CCCDI - USFISCDI project number PN-IV-P8-8.1-PME-2024-0026 within PNCDI IV.
- Python 3.10 or higher (need to install python3 explicitly)
- numpy package installed (pip install numpy)
- num2words package installed (python3 -m pip install num2words)
- word2number package installed (python3 -m pip install word2number)
- LLVM-TOOLS (https://github.com/llvm/llvm-project - release/19.x)
- Asciidoctor (browser extension for Release Notes)
No installation is required; simply cloning the repository is sufficient.
tools-adl
|
| - docs // Project documentation
| - examples // Generated target description files
| | | - sail // Sail description generated from ADL
| | | - TD // Target description files and other LLVM files generated for specific extensions
| - models
| | - adl // Parsed XML files for specific extensions
| - tools // Target description and test generation tools
| | - sail // Sail source and config files
| | - testing // Tools used for tests generation
| | | - encoding // Tools for generating encoding tests and references
| | | - intrinsics // Generated intrinsics tests
| | | - relocations // Tools for generating relocations tests and references
| | | - scheduling // Generated scheduling tests
| | | | - tests // Tests using a diverse set of randomly chosen registers
| | | | - tests_dependency // Data dependency tests between the source and destination registers of the tested instructions