Skip to content

Latest commit

 

History

History
63 lines (43 loc) · 1.65 KB

README.md

File metadata and controls

63 lines (43 loc) · 1.65 KB

Softcore CICERO

Software simulator for the CICERO domain specific architecture.

This is a fork from Valentina Sona original git repository

Build

To build the library and the example application, install CMake, Make and a C++ compiler

mkdir build
cd build
cmake ..
make

# Optionally run tests
make test

Run example

./build/cicero ./test/programs/1

Use the library

Instantiate a CICERO object specifying:

  1. Character window (min 1, multichar only): number of active characters in the sliding window.
  2. Verbose setting (true/false): print execution information or match silently.
#include "CiceroMulti.h"

auto CICERO = Cicero::CiceroMulti(1, true);

The simulator takes in input the program files compiled by CICERO's compiler.

Set the program (can be set multiple times in the object lifetime) and run the desired matches:

CICERO.setProgram("program/to/run");

bool result = CICERO.match("RKMS");
bool result2 = CICERO.match("RACS");

Paper Citation

If you find this repository useful, please use the following citations:

@inproceedings{somaini2025cicero,
    title = {Combining MLIR Dialects with Domain-Specific Architecture for Efficient Regular Expression Matching},
    author = {Andrea Somaini and Filippo Carloni and Giovanni Agosta and Marco D. Santambrogio and Davide Conficconi},
    year = 2025,
    month = {mar},
    booktitle={2025 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)}
 }