Class LoadedFieldSetFactory
- java.lang.Object
-
- edu.umd.cs.findbugs.classfile.engine.bcel.AnalysisFactory<LoadedFieldSet>
-
- edu.umd.cs.findbugs.classfile.engine.bcel.LoadedFieldSetFactory
-
- All Implemented Interfaces:
IAnalysisEngine<MethodDescriptor,LoadedFieldSet>
,IMethodAnalysisEngine<LoadedFieldSet>
public class LoadedFieldSetFactory extends AnalysisFactory<LoadedFieldSet>
Factory to determine which fields are loaded and stored by the instructions in a method, and the overall method. The main purpose is to support efficient redundant load elimination and forward substitution in ValueNumberAnalysis (there is no need to remember stores of fields that are never read, or loads of fields that are only loaded in one location). However, it might be useful for other kinds of analysis.The tricky part is that in addition to fields loaded and stored with get/putfield and get/putstatic, we also try to figure out field accessed through calls to inner-class access methods.
-
-
Constructor Summary
Constructors Constructor Description LoadedFieldSetFactory()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LoadedFieldSet
analyze(IAnalysisCache analysisCache, MethodDescriptor descriptor)
Perform an analysis on class or method named by given descriptor.-
Methods inherited from class edu.umd.cs.findbugs.classfile.engine.bcel.AnalysisFactory
getAssertionMethods, getCFG, getCompactLocationNumbering, getConstantPoolGen, getDepthFirstSearch, getExceptionSetFactory, getIsNullValueDataflow, getJavaClass, getLoadedFieldSet, getMethod, getMethodGen, getReverseDepthFirstSearch, getTypeDataflow, getValueNumberDataflow, registerWith, toString
-
-
-
-
Method Detail
-
analyze
public LoadedFieldSet analyze(IAnalysisCache analysisCache, MethodDescriptor descriptor) throws CheckedAnalysisException
Description copied from interface:IAnalysisEngine
Perform an analysis on class or method named by given descriptor.- Parameters:
analysisCache
- the analysis cachedescriptor
- the descriptor of the class or method to be analyzed- Returns:
- the result of the analysis of the class or method
- Throws:
CheckedAnalysisException
-
-