Tillgången på multicoreprocessorer har lett till ett betydande intresse för kompileringsteknik för spekulativ parallellisering av sekventiella program. Isolering av spekulativt tillstånd från icke-spekulativt tillstånd utgör grunden för sådana spekulativa tekniker eftersom denna separation gör det möjligt att återhämta sig från missuppfattningar. I vårt tidigare arbete på CorD [35, 36] visade vi att för array och skalära variabla program kopiering av data mellan spekulativt och icke-spekulativt minne kan mycket optimeras för att stödja tillståndsseparation som ger betydande hastigheter på multicore maskiner som finns tillgängliga idag. Vi observerar dock att i samband med högintensiva program som arbetar med länkade dynamiska datastrukturer innebär statlig separationsbaserad spekulativ parallellisering många utmaningar. Kopiering av datastrukturer från icke-spekulativt till spekulativt tillstånd (kopiering) kan vara mycket dyrt på grund av de stora storlekarna på dynamiska datastrukturer. Kopiering av uppdaterade datastrukturer från spekulativt tillstånd till icke-spekulativt tillstånd (copy-out operation) görs komplex på grund av förändringar i form och storlek av den dynamiska datastruktur som görs av spekulativ beräkning. Dessutom måste vi kämpa med behovet av att översätta pekare interna till dynamiska datastrukturer mellan deras icke-spekulativa och spekulativa minnesadresser. I detta dokument utvecklar vi en förstärkt design för representation av dynamiska datastrukturer så att alla ovanstående operationer kan utföras effektivt. Våra experiment visar betydande speedups på en riktig maskin för en uppsättning program som gör omfattande användning av högbaserade dynamiska datastrukturer.
CorD utökades för att stödja en uppsättning kompilatoroptimeringar för kopiering av dynamiska datastrukturer mellan mellan mellanslag REF.
Supporting speculative parallelization in the presence of dynamic data structures
{'venue': "PLDI '10", 'journal': None, 'mag_field_of_study': ['Computer Science']}