Tools

LLVMTA: An LLVM-Based WCET Analysis Tool:

LLVMTA is an open-source worst-case execution time (WCET) analysis tool developed at Saarland University from 2014 onwards. It aims to enable the evaluation of novel WCET analysis approaches in a state-of-the-art analysis framework without dealing with the complexity of modeling real-world microarchitectures.

Check it out at: https://gitlab.cs.uni-saarland.de/reineke/llvmta.

LLVMTA builds upon the LLVM compiler infrastructure. To use LLVMTA you need the following patched version of LLVM: https://gitlab.cs.uni-saarland.de/reineke/llvm.

uops.info:

This website provides more than 700,000 pages with detailed latency, throughput, and port usage data for most x86 instructions on recent Intel and AMD microarchitectures. While such data is important for understanding, predicting, and optimizing the performance of software running on these microarchitectures, most of it is not documented in the official processor manuals.

Check it out at: http://uops.info.

uiCA - The uops.info Code Analyzer:

uiCA is a basic-block throughput predictor. It is significantly more accurate than the predictions of prior tools, e.g. IACA, often by more than an order of magnitude.

Check it out at: http://uica.uops.info.

nanoBench:

nanoBench is a Linux-based tool for running small microbenchmarks on recent Intel and AMD x86 CPUs. The microbenchmarks are evaluated using hardware performance counters. The reading of the performance counters is implemented in a way that incurs only minimal overhead.

Check it out at: https://github.com/andreas-abel/nanoBench.

Spectector:

Spectector analyzes x64 assembly programs, and it either automatically detects information leaks introduced by speculatively executed instructions or proves the program leak-free.

Check it out at: https://spectector.github.io/.

chi:

chi is a tool to infer parameters of the memory hierarchy by performing a set of measurements on the actual hardware.

Check it out here.

CacheAudit:

CacheAudit is a versatile framework for the automatic, static analysis of cache side channels. CacheAudit takes as input a program binary and a cache configuration, and it derives formal, quantitative security guarantees for a comprehensive set of side-channel adversaries, namely those based on observing cache states, traces of hits and misses, and execution times.

Check it out here.

MeMin:

MeMin is a tool for minimizing incompletely specified Mealy machines.

Check it out here.

PTARM:

The PTARM is our prototype of a precision-timed (PRET) machine.

Please check out our C++ simulator here.

Relacs:

Relacs is a tool for automatic relative competitive and sensitivity analysis of cache architectures.

Check it out here.

Sprattus:

Sprattus is a framework for static and dynamic program analysis of of low-level C and C++ programs on LLVM IR.

Check it out here.