pointerOptions Class ReferencePointer options.
More...
#include <pointeroptions.h>
List of all members.
Detailed Description
Pointer options.
This class contains static flags that control the behavior of the pointer analyzer. The actual definitions (and default values) reside in pointers.cc.
Definition at line 131 of file pointeroptions.h.
Member Data Documentation
|
Aggressive multiplicity.
With this option turned on, we use a trick that could be unsafe in some cases, but it's very unlikely. The observation is that if a memoryBlock is allocated and then a subsequent if-then-else frees it on one branch, but not the other, then it is probably the case that either way it is unallocated. For example:
f = fopen(...); if (f) { ... fclose(f); }
At the end of this code, the file is always closed because in the case that f is null, the file was never opened in the first place.
Definition at line 254 of file pointeroptions.h. |
|
Bi-directional assignment.
This options is intended to emulate equality-based type analysis. It causes all assignments (including parameter passing) to include all of the right-hand-side objects on the left hand side.
For example, "y = x" becomes "{y,x} = x".
Definition at line 235 of file pointeroptions.h. |
|
Conditional analysis.
When set to true this flag causes the analyzer to skip branches when it can ascertain the value of the condition.
Definition at line 225 of file pointeroptions.h. |
|
Context-insensitive memory model.
When true, all objects, including variables and heap objects, are only instantiated once for each calling context regardless of the analysis mode.
Definition at line 270 of file pointeroptions.h. |
|
Context sensitive procedures.
Populate this list with procedures that are to be treated context sensitive.
Definition at line 321 of file pointeroptions.h. |
|
Flow-insensitive analysis.
This is implemented in the following way: (1) every object has only one def that occurs at the main function (and therefore dominates everything), (2) all assignments are additive, (3) we don't perform any control-flow merges (phi functions), and (4) all heap allocations are immediately Unbounded in size.
Definition at line 99 of file pointers_common.h. |
|
Flow-sensitive allocation objects.
Populate this list with allocation objects that need to be flow sensitive in order to improve the4 multiplicity analysis.
Definition at line 335 of file pointeroptions.h. |
|
Flow-sensitive objects.
Populate this list with variables that are to be treated flow sensitive.
Definition at line 328 of file pointeroptions.h. |
|
Ignore struct/union fields.
The "dot" operator becomes a no-op. This also forces all updates to the structure to be weak (as if the multiplicity were high).
Definition at line 85 of file pointers_common.h. |
|
Monitor precision.
When true, the analysis engine monitors precision and builds a graph of the causes and effects of precision loss.
Definition at line 314 of file pointeroptions.h. |
|
Procedures that are never skipped.
This prevent procedures from being skipped during sliced analysis.
Definition at line 382 of file pointeroptions.h. |
|
Flow-sensitive allocation objects.
Populate this list with allocation objects that need to be flow sensitive in order to improve the4 multiplicity analysis.
Definition at line 343 of file pointeroptions.h. |
|
One string constant.
When set true, we only create a single object to represent all string constants. Since we never look at the value, and we don't allow them to be changed, this should not affect our results.
Definition at line 262 of file pointeroptions.h. |
|
One struct per type.
With this flag on, there is only one set of memory blocks for each structure type. This emulates the situation in the type-system world.
Definition at line 187 of file pointeroptions.h. |
|
Path-sensitive branches.
Record the basic block that controls path sensitive information -- that is, the branch at the end of the basic block needs to be path sensitive.
Definition at line 354 of file pointeroptions.h. |
|
Allow recursive functions to be context-sensitivity.
Definition at line 141 of file pointeroptions.h. |
|
Show memory leaks.
With escape analysis and aggressive multiplicity on, report possible memory leaks.
Definition at line 307 of file pointeroptions.h. |
|
Show memory blocks.
At the end of pointer analysis print out a list of all the memoryblocks along with information about their properties, including numbers of defs and uses.
Definition at line 161 of file pointeroptions.h. |
|
Show procedures.
At the end of pointer analysis print out a list of all the procedures and information about them.
Definition at line 168 of file pointeroptions.h. |
|
Procedures that are skipped.
Procedures in this set are skipped during sliced analysis. Procedures are that in No_Skip_procs are never put into this set.
Definition at line 377 of file pointeroptions.h. |
|
Perform sliced analysis.
Currently, when true, procedures in Slip_procs are skipped.
Definition at line 371 of file pointeroptions.h. |
|
Unification-based analysis.
This is implemented based on Steensgaard algorithm.
Definition at line 208 of file pointeroptions.h. |
|
Verbose output.
During program analysis, show every statement processed along with the corresponding verbose output for either the pointer analyzer or whatever other analysis is being run.
Definition at line 77 of file pointers_common.h. |
|
Verbose procedures.
Turn on verbose output when we're analyzing these calls.
Definition at line 366 of file pointeroptions.h. |
|
Verbose constants.
During constant propagation, show constant values being computed.
Definition at line 289 of file pointeroptions.h. |
|
Verbose liveness.
During liveness analysis, show liveness computations.
Definition at line 295 of file pointeroptions.h. |
|
Verbose procedures.
Turn on verbose output when we're analyzing these procedures.
Definition at line 360 of file pointeroptions.h. |
|
Verbose unification.
During unification, show constant values being computed.
Definition at line 283 of file pointeroptions.h. |
The documentation for this class was generated from the following files:
|