|
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 58 of file Andersen.hpp.
|
strong |
| Enumerator | |
|---|---|
| Naive | |
| Worklist | |
Definition at line 63 of file Andersen.hpp.
|
privatedefault |
|
inlinestatic |
Definition at line 226 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 193 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 159 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 176 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables offline constraint normalization. If enabled, it is the last step in offline processing.
Definition at line 125 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 108 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 142 of file Andersen.hpp.
|
inlinenoexcept |
Enables or disables preferring implicit pointees in the Worklist solver
Definition at line 208 of file Andersen.hpp.
|
static |
Definition at line 76 of file Andersen.cpp.
|
inlinenoexcept |
Definition at line 80 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 96 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 199 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 165 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 182 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 131 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 114 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 148 of file Andersen.hpp.
|
inlinenoexcept |
Definition at line 214 of file Andersen.hpp.
|
inlinestaticnoexcept |
Creates a solver configuration using the naive solver, with all offline and online speedup techniques disabled.
Definition at line 249 of file Andersen.hpp.
|
inlinenoexcept |
Sets which solver algorithm to use. Not all solvers are compatible with all online techniques.
Definition at line 74 of file Andersen.hpp.
|
inlinenoexcept |
Sets which policy to be used by the worklist. Only applies to the worklist solver.
Definition at line 90 of file Andersen.hpp.
| std::string jlm::llvm::aa::Andersen::Configuration::ToString | ( | ) | const |
Definition at line 36 of file Andersen.cpp.
|
private |
Definition at line 275 of file Andersen.hpp.
|
private |
Definition at line 273 of file Andersen.hpp.
|
private |
Definition at line 274 of file Andersen.hpp.
|
private |
Definition at line 268 of file Andersen.hpp.
|
private |
Definition at line 267 of file Andersen.hpp.
|
private |
Definition at line 272 of file Andersen.hpp.
|
private |
Definition at line 276 of file Andersen.hpp.
|
private |
Definition at line 269 of file Andersen.hpp.
|
private |
Definition at line 270 of file Andersen.hpp.