Tillgängligt uttryck

Inom området kompilatoroptimeringar är tillgängliga uttryck en analysalgoritm som bestämmer för varje punkt i programmet uppsättningen av uttryck som inte behöver beräknas om. Dessa uttryck sägs vara tillgängliga vid en sådan tidpunkt. För att vara tillgänglig på en programpunkt bör uttryckets operander inte modifieras på någon väg från förekomsten av det uttrycket till programpunkten.

Analysen är ett exempel på ett framåtriktat dataflödesanalysproblem . En uppsättning tillgängliga uttryck bibehålls. Varje påstående analyseras för att se om det ändrar operanderna för ett eller flera tillgängliga uttryck. Detta ger uppsättningar av tillgängliga uttryck i slutet av varje grundläggande block , känt som början i termer av dataflödesanalys. Ett uttryck är tillgängligt i början av ett grundblock om det är tillgängligt i slutet av vart och ett av grundblockets föregångare. Detta ger en uppsättning ekvationer i termer av tillgängliga mängder, som kan lösas med en iterativ algoritm.

Tillgänglig uttrycksanalys används för att göra global gemensam subexpression eliminering ( CSE). Om ett uttryck är tillgängligt vid en punkt, finns det inget behov av att omvärdera det.

  • Aho, Sethi & Ullman: Kompilatorer - principer, tekniker och verktyg Addison-Wesley Publishing Company 1986