Incrementalizing Production CodeQL Analyses

08/18/2023
by   Tamás Szabó, et al.
0

Instead of repeatedly re-analyzing from scratch, an incremental static analysis only analyzes a codebase once completely, and then it updates the previous results based on the code changes. While this sounds promising to achieve speed-ups, the reality is that sophisticated static analyses typically employ features that can ruin incremental performance, such as inter-procedurality or context-sensitivity. In this study, we set out to explore whether incrementalization can help to achieve speed-ups for production CodeQL analyses that provide automated feedback on pull requests on GitHub. We first empirically validate the idea by measuring the potential for reuse on real-world codebases, and then we create a prototype incremental solver for CodeQL that exploits incrementality. We report on experimental results showing that we can indeed achieve update times proportional to the size of the code change, and we also discuss the limitations of our prototype.

READ FULL TEXT

page 14

page 15

research
05/07/2021

lazybvtoint at the SMT Competition 2020

lazybvtoint is a new prototype SMT-solver, that will participate in the ...
research
09/17/2018

FormuLog: Datalog for static analysis involving logical formulae

Datalog has become a popular language for writing static analyses. Becau...
research
04/05/2018

An Approach to Incremental and Modular Context-sensitive Analysis

Context-sensitive global analysis of large code bases can be expensive, ...
research
04/05/2018

An Approach to Incremental and Modular Context-sensitive Analysis of Logic Programs

Context-sensitive global analysis of large code bases can be expensive, ...
research
05/04/2021

Interactive Static Software Performance Analysis in the IDE

Detecting performance issues due to suboptimal code during the developme...
research
07/22/2022

Silent Spring: Prototype Pollution Leads to Remote Code Execution in Node.js

Prototype pollution is a dangerous vulnerability affecting prototype-bas...
research
03/24/2023

Testability Refactoring in Pull Requests: Patterns and Trends

To create unit tests, it may be necessary to refactor the production cod...

Please sign up or login with your details

Forgot password? Click here to reset