|
Jlm
|
#include <Andersen.hpp>
Public Types | |
| enum class | Solver { Naive , Worklist } |
Static Public Member Functions | |
| static Configuration | DefaultConfiguration () |
| static Configuration | NaiveSolverConfiguration () noexcept |
| static std::vector< Configuration > | GetAllConfigurations () |
Private Member Functions | |
| Configuration ()=default | |
Private Attributes | |
| bool | EnableOfflineVariableSubstitution_ = false |
| bool | EnableOfflineConstraintNormalization_ = false |
| Solver | Solver_ = Solver::Naive |
| PointerObjectConstraintSet::WorklistSolverPolicy | WorklistSolverPolicy_ |
| bool | EnableOnlineCycleDetection_ = false |
| bool | EnableHybridCycleDetection_ = false |
| bool | EnableLazyCycleDetection_ = false |
| bool | EnableDifferencePropagation_ = false |
| bool | EnablePreferImplicitPointees_ = false |
class for configuring the Andersen pass, such as what solver to use.
Definition at line 59 of file Andersen.hpp.
|
strong |
| Enumerator | |
|---|---|
| Naive | |
| Worklist | |
Definition at line 64 of file Andersen.hpp.
|
privatedefault |
|
inlinestatic |
Definition at line 227 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables difference propagation in the Worklist solver, as described by Pearce, 2003: "Online cycle detection and difference propagation for pointer analysis" Only used by the worklist solver.
Definition at line 194 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables hybrid cycle detection in the Worklist solver, as described by Hardekopf and Lin, 2007: "The Ant & the Grasshopper" It detects some cycles, so it can not be combined with techniques that find all cycles.
Definition at line 160 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables lazy cycle detection in the Worklist solver, as described by Hardekopf and Lin, 2007: "The Ant & the Grasshopper" It detects some cycles, so it can not be combined with techniques that find all cycles.
Definition at line 177 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables offline constraint normalization. If enabled, it is the last step in offline processing.
Definition at line 126 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables the use of offline variable substitution to pre-process the constraint set before applying the solving algorithm. The substitution only performs constraint variable unification, which may create opportunities for constraint normalization.
Definition at line 109 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables online cycle detection in the Worklist solver, as described by Pearce, 2003: "Online cycle detection and difference propagation for pointer analysis" It detects all cycles, so it can not be combined with other cycle detection techniques.
Definition at line 143 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables preferring implicit pointees in the Worklist solver
Definition at line 209 of file Andersen.hpp.
|
static |
Definition at line 68 of file Andersen.cpp.
|
inlinenoexcept |
Definition at line 81 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 97 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 200 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 166 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 183 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 132 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 115 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 149 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 215 of file Andersen.hpp.
|
inlinestaticnoexcept |
Creates a solver configuration using the naive solver, with all offline and online speedup techniques disabled.
Definition at line 250 of file Andersen.hpp.
|
inlinenoexcept |
Sets which solver algorithm to use. Not all solvers are compatible with all online techniques.
Definition at line 75 of file Andersen.hpp.
|
inlinenoexcept |
Sets which policy to be used by the worklist. Only applies to the worklist solver.
Definition at line 91 of file Andersen.hpp.
| std::string jlm::llvm::aa::Andersen::Configuration::ToString | ( | ) | const |
Definition at line 28 of file Andersen.cpp.
|
private |
Definition at line 276 of file Andersen.hpp.
|
private |
Definition at line 274 of file Andersen.hpp.
|
private |
Definition at line 275 of file Andersen.hpp.
|
private |
Definition at line 269 of file Andersen.hpp.
|
private |
Definition at line 268 of file Andersen.hpp.
|
private |
Definition at line 273 of file Andersen.hpp.
|
private |
Definition at line 277 of file Andersen.hpp.
|
private |
Definition at line 270 of file Andersen.hpp.
|
private |
Definition at line 271 of file Andersen.hpp.