InspectorJ is a tool that combines static flow analyses with dynamic checks in Java programs to automatically detect security vulnerabilities. It handles subtyping polymorphism and detects timing and command injection attacks. Also, the tool inserts instrumentation in Java programs to prevent the execution of unsafe parts of the code.
Flow tracker is a tool that detects timing attack vulnerabilities in C/C++ programs that
implement cryptographic routines. This page lets you run an online version of this tool.
A low-cost apparatus to measure energy consumption in
programs running on the Nvidia TK1 Jetson board.
Psyche-c is a tool that lets us compile C sources
DawnCC is a tool that inserts OpenACC/OpenMP annotations
automatically in C programs.
Lightweight Dynamic Parallelism (LDP) is an extension to SPMD
languages that allows for issuing kernels from within kernels --
akin to CUDA's dynamic parallelism, but at a low-cost.
Enfield is an implementation of the Qubit Allocator.
SIoT is a framework to analyze networked systems. On this page you can experience the SIoT
providing programs that communicate over the network and getting information of the system as a whole.
TaskMiner annotates programs automatically with OpenMP 4.5 pragmas for task parallelism.
Restrictification is a static compiler optimization whose goal is to add the "restrict" keyword in function arguments of pointer type. This modification enables several other compiler optimizations, such as code hoisting, parallelization and better instruction scheduling.
This page lets you run Range Based Alias Analysis (among others) implemented onto LLVM.
This page lets you run Flow tracker's and Ferrante's analyses in order to compare them.
Error Analysis is a program error verifier, that shows memory access, zero division errors,
and the errors that derive from these previously shown ones.
Etino is a tool that decides in which processor, within a
heterogeneous architecture, each part of a program should run.
Rip-Rop Deducer is a static analysis that finds the highest density of return instructions possible in a program.
This page lets you run compiler analyses and optimization implemented onto LLVM.
Region analysis infers memory object sizes for pointers throughout the program.
A domain specific language to define access policies