harpoon.Analysis.Quads
Class Nonvirtualize
java.lang.Object
harpoon.Analysis.Transformation.MethodMutator<Quad>
harpoon.Analysis.Quads.Nonvirtualize
- All Implemented Interfaces:
- Serializable
public class Nonvirtualize
- extends MethodMutator<Quad>
Nonvirtualize
uses a FinalMap
to
change virtual method invocations to non-virtual invocations,
where this is safe. Virtual method invocation is slower
than non-virtual invocation.
- Version:
- $Id: Nonvirtualize.java,v 1.4 2004/02/08 01:53:14 cananian Exp $
- Author:
- C. Scott Ananian <cananian@alumni.princeton.edu>
- See Also:
DefaultFinalMap
,
CHFinalMap
,
Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Nonvirtualize
public Nonvirtualize(HCodeFactory hcf,
FinalMap fm)
- Creates a
Nonvirtualize
using the given
FinalMap
.
- See Also:
DefaultFinalMap
,
CHFinalMap
Nonvirtualize
public Nonvirtualize(HCodeFactory hcf,
FinalMap fm,
ClassHierarchy ch)
- Creates a
Nonvirtualize
using the given
FinalMap
; the given ClassHierarchy
is used to avoid devirtualizing calls to uncallable methods
(which artificially inflates the class hierarchy size).
- See Also:
DefaultFinalMap
,
CHFinalMap
mutateHCode
protected HCode<Quad> mutateHCode(HCodeAndMaps<Quad> input)
- Description copied from class:
MethodMutator
- Override this method to effect transformations on split
methods.
- Overrides:
mutateHCode
in class MethodMutator<Quad>