harpoon.Analysis.DynamicSyncRemoval
Class SyncRemover
java.lang.Object
harpoon.Analysis.Transformation.MethodMutator<Quad>
harpoon.Analysis.DynamicSyncRemoval.SyncRemover
- All Implemented Interfaces:
- Serializable
public class SyncRemover
- extends MethodMutator<Quad>
SyncRemover
calls a "magic" native method to determine
if synchronization should be done on this object, and skips the
MONITORENTER
/MONITOREXIT
sequence if the
answer is no. We need to duplication and split the code between
MONITORENTER
and MONITOREXIT
for this to
play nicely with the Transactions transformation.
For best results, run TreePostPass
after this
transformation.
- Version:
- $Id: SyncRemover.java,v 1.6 2004/02/08 03:19:25 cananian Exp $
- Author:
- C. Scott Ananian <cananian@alumni.princeton.edu>
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SyncRemover
public SyncRemover(HCodeFactory parent,
Linker l)
- Creates a
SyncRemover
.
treeCodeFactory
public static HCodeFactory treeCodeFactory(Frame f,
HCodeFactory hcf)
- Return an
HCodeFactory
that will clean up the
tree form of the transformed code by performing some optimizations
which can't be represented in quad form.
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>