public BasicBlock getBBlock(FlatMethod fm) {
if (!blockMap.containsKey(fm)) {
blockMap.put(fm, BasicBlock.getBBlock(fm));
- Hashtable<FlatNode, Set<TempDescriptor>> livemap=Liveness.computeLiveTemps(fm);
+ Hashtable<FlatNode, Set<TempDescriptor>> livemap=Liveness.computeLiveTemps(fm,-1);
for(BBlock bblock : blockMap.get(fm).getBlocks()) {
FlatNode fn=bblock.nodes.get(0);
if (fn==fm) {
case FKind.FlatCall:
return processFlatCall(bblock, index, (FlatCall) node, delta, newgraph);
-
+
+ /* yonghun -
+ * Pointer Analysis does not care about a flat literal node, just ignores it.
+ * Right now(2011/05/01) we do not attempt to model a flat literal node
+ * for checking runtime pointers.
case FKind.FlatLiteralNode:
// jjenista - the heap analysis abstraction---when used to verify points-to
// analysis results against runtime pointers---will eventually need this to
// allocated string. For now it will pass through like Pointer used to, but
// the checks versus runtime pointers will fail for string literals.
return delta;
-
+ */
+
default:
throw new Error("Unrecognized node:"+node + " of kind " + node.kind());
}
return null;
}
- public Set<Alloc> canPointToAfter( TempDescriptor x,
- FlatNode programPoint ) {
- return null;
- }
-
public Hashtable< Alloc, Set<Alloc> > canPointToAt( TempDescriptor x,
FieldDescriptor f,
FlatNode programPoint ) {
FlatNode programPoint ) {
return null;
}
+
+ public Set<Alloc> canPointToAfter( TempDescriptor x,
+ FlatNode programPoint ) {
+ return null;
+ }
+
+ public Hashtable< Alloc, Set<Alloc> > canPointToAfter( TempDescriptor x,
+ FieldDescriptor f,
+ FlatNode programPoint ) {
+ return null;
+ }
+
+ public Hashtable< Alloc, Set<Alloc> > canPointToAfterElement( TempDescriptor x, // x[i]
+ FlatNode programPoint ) {
+ return null;
+ }
}