I detta papper presenterar vi en mellanliggande programrepresentation, kallad programberoende grafen (PDG), som gör explicit både data och kontrollberoende5 för varje operation i ett program. Databeroende har endast använts för att representera relevanta dataflödesrelationer i ett program. Kontrollberoende5 introduceras för att analogt representera endast de väsentliga kontrollflödesförhållandena i ett program. Kontrollberoendet härleds från den vanliga kontrollflödesgrafen. Många traditionella optimeringar fungerar effektivare på PDG. Eftersom beroenden i PDG kopplar samman datorrelaterade delar av programmet, räcker en enda gång av dessa beroenden för att utföra många optimeringar. PDG tillåter transformationer såsom vektorisering, som tidigare krävt särskild behandling av kontrollberoende, att utföras på ett sätt som är enhetligt för både kontroll och databeroende. Programomvandlingar som kräver interaktion mellan de två beroendetyperna kan också hanteras enkelt med vår representation. Till exempel införs ett stegvist tillvägagångssätt för att ändra databeroendet till följd av radering av filialer eller orullning av slingor. PDG stöder stegvis optimering, vilket gör det möjligt för transformationer att utlösas av varandra och tillämpas endast på drabbade beroenden.
Ref presenterade programberoendekurvan (PDG) som skapar data- och kontrollberoendet explicit där databeroendet representerar dataflödesförhållandena och kontrollberoendet representerar ett programs kontrollflödesrelationer.
The program dependence graph and its use in optimization
{'venue': 'TOPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}