of 21/21
Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 André Hunke

Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 André Hunke

  • View
    102

  • Download
    0

Embed Size (px)

Text of Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 André Hunke

  • Folie 1
  • Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 Andr Hunke
  • Folie 2
  • Ziele Alias Sets SSA Form Verwendete Datenstruktur Benchmark-Ergebnisse 16.12.20112Efficient Alias Set Analysis Using SSA Form bersicht
  • Folie 3
  • Alias Sets werden vom Compiler genutzt Effiziente Alias Set Analyse nur intra-prozedual hierfr: Nutzung der SSA-Form Nutzung einer geeigneten Datenstruktur 16.12.20113Efficient Alias Set Analysis Using SSA Form Ziele
  • Folie 4
  • Menge der lokalen Pointer-Variablen, die auf ein gemeinsames Objekt zeigen Zu einem gegebenen konkreten Objekt o: o # = { p | p zeigt auf o} Jedes alias set reprsentiert hchstens ein Objekt # : Menge aller alias sets falls fr Variablen x, y: {x,y} o #, so ist x ein Alias von y Sichere Entscheidung, falls x und y immer gemeinsam in einem o #, oder nie gemeinsam in einem o # 16.12.20114Efficient Alias Set Analysis Using SSA Form Alias Sets
  • Folie 5
  • betrachten Zuweisungen s der Form s ::= v 1 v 2 | v e | e v | v null | v new wobei v, v 1, v 2 lokale Variablen sind und e eine Position auf dem Heap reprsentiert Heap wird als Black-Box behandelt 16.12.20115Efficient Alias Set Analysis Using SSA Form Alias Sets
  • Folie 6
  • Bei Unsicherheit, ob ein alias set eine Variable enthlt, wird es aufgeteilt 16.12.20116Efficient Alias Set Analysis Using SSA Form Alias Sets - bergangsfunktion
  • Folie 7
  • class Node { int value; Node next; Node (int v, Node n) { value = v; next = n; } 16.12.20117Efficient Alias Set Analysis Using SSA Form Alias Sets - Beispiel
  • Folie 8
  • void foo(int i) { Node a, b, c; a = new Node(i, null); c = a; if (i < 42) b = new Node(42+i, a); else b = a; c = b; b = b.next; } 16.12.20118Efficient Alias Set Analysis Using SSA Form Alias Sets - Beispiel a = new Node(i, null); b = new Node(42+i,a); c = b; b = a; b = b.next; Kontrollflussgraph c = a;
  • Folie 9
  • 16.12.20119Efficient Alias Set Analysis Using SSA Form Alias Sets Beispiel # = {{a}} # = {{a,c},{b}} # = {{a,b,c}} # = {{a}, {a,b}, {c}, {b,c}, {a,c}, {a,b,c}} a = new Node(i, null); b = new Node(42+i,a); c = b; b = a; b = b.next; c = a; # = {{a,c}} # = {{a}, {b,c}, {a,b,c}}