Abstrakt. Kompilatorer som t.ex. gcc använder statisk enkelfördelning (SSA) som en mellanliggande representation och utför vanligtvis SSA eliminering före registertilldelning. Men ordningen skulle också kunna vara den motsatta: den senaste metoden med SSA-baserad registerfördelning innebär att SSA avskaffas efter registertilldelning. Avskaffande av SSA innan register allokering är enkelt och standard, medan tidigare beskrivna metoder för eliminering av SSA efter register allokering har brister; i synnerhet har de problem med att genomföra kopior mellan minnesplatser. Vi presenterar spillfri SSA eliminering, en enkel och effektiv algoritm för SSA eliminering efter register tilldelning som undviker att öka antalet spillda variabler. Vi presenterar även tre optimeringar av kärnalgoritmen. Våra experiment visar att spillfri SSA eliminering tar mindre än fem procent av den totala sammanställningstiden för en JIT kompilator. Våra optimeringar minskar antalet minnesåtkomster med mer än 9% och förbättrar programmets genomförandetid med mer än 1,8%.
Pereira m.fl. tillhandahålla en algoritm för SSA-formuläret dekonstruktion efter registertilldelning REF.
SSA Elimination after Register Allocation
{'venue': 'CC', 'journal': None, 'mag_field_of_study': ['Computer Science']}