January 19, 2016 1 / 26
Live-Range Reordering
Sven Verdoolaege1 Albert Cohen2
1Polly Labs and KU Leuven 2INRIA and ´
Live-Range Reordering Sven Verdoolaege 1 Albert Cohen 2 1 Polly Labs - - PowerPoint PPT Presentation
January 19, 2016 1 / 26 Live-Range Reordering Sven Verdoolaege 1 Albert Cohen 2 1 Polly Labs and KU Leuven 2 INRIA and Ecole Normale Sup erieure January 19, 2016 January 19, 2016 2 / 26 Outline Introduction 1 Example Schedule
January 19, 2016 1 / 26
1Polly Labs and KU Leuven 2INRIA and ´
January 19, 2016 2 / 26
Introduction January 19, 2016 3 / 26
Introduction Example January 19, 2016 4 / 26
Introduction Example January 19, 2016 4 / 26
Introduction Example January 19, 2016 4 / 26
Introduction Example January 19, 2016 5 / 26
Introduction Example January 19, 2016 5 / 26
Introduction Schedule Constraints January 19, 2016 6 / 26
Introduction Schedule Constraints January 19, 2016 6 / 26
Introduction Schedule Constraints January 19, 2016 6 / 26
◮ output dependences between two writes to same location ◮ anti-dependences between reads and subsequent writes to same
Introduction Schedule Constraints January 19, 2016 7 / 26
Introduction Schedule Constraints January 19, 2016 7 / 26
Introduction Schedule Constraints January 19, 2016 7 / 26
Introduction Schedule Constraints January 19, 2016 8 / 26
Introduction Schedule Constraints January 19, 2016 8 / 26
Introduction Schedule Constraints January 19, 2016 8 / 26
Introduction Schedule Constraints January 19, 2016 8 / 26
Live Range Reordering January 19, 2016 9 / 26
Live Range Reordering Related Work January 19, 2016 10 / 26
Live Range Reordering Related Work January 19, 2016 11 / 26
Live Range Reordering Related Work January 19, 2016 11 / 26
Live Range Reordering Related Work January 19, 2016 12 / 26
Live Range Reordering Related Work January 19, 2016 12 / 26
◮ in general, clustering is partial scheduling ◮ simple clusterings lead to coarse statements
Live Range Reordering Related Work January 19, 2016 13 / 26
Live Range Reordering Related Work January 19, 2016 13 / 26
Live Range Reordering Related Work January 19, 2016 14 / 26
◮ in general, clustering is partial scheduling ◮ simple clusterings lead to coarse statements
Live Range Reordering Related Work January 19, 2016 14 / 26
◮ in general, clustering is partial scheduling ◮ simple clusterings lead to coarse statements
Live Range Reordering Related Work January 19, 2016 15 / 26
Live Range Reordering Related Work January 19, 2016 16 / 26
Live Range Reordering Related Work January 19, 2016 16 / 26
Live Range Reordering Related Work January 19, 2016 17 / 26
Live Range Reordering Related Work January 19, 2016 17 / 26
◮ use standard scheduling algorithm ◮ reinterpret results
◮ removes specific patterns of anti-dependences
Live Range Reordering Related Work January 19, 2016 17 / 26
◮ use standard scheduling algorithm ◮ reinterpret results
◮ removes specific patterns of anti-dependences
Live Range Reordering Scheduling January 19, 2016 18 / 26
Live Range Reordering Scheduling January 19, 2016 18 / 26
Live Range Reordering Scheduling January 19, 2016 18 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 19 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Scheduling January 19, 2016 20 / 26
Live Range Reordering Relaxed Permutability Criterion January 19, 2016 21 / 26
Live Range Reordering Relaxed Permutability Criterion January 19, 2016 21 / 26
Live Range Reordering Relaxed Permutability Criterion January 19, 2016 21 / 26
Live Range Reordering Relaxed Permutability Criterion January 19, 2016 21 / 26
Live Range Reordering Relaxed Permutability Criterion January 19, 2016 21 / 26
Live Range Reordering Relaxed Permutability Criterion January 19, 2016 21 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 22 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 22 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 22 / 26
◮ ignore conditioned validity constraints during band member
◮ compute violated conditioned validity constraints ◮ compute adjacent conditions ◮ force adjacent conditions to be local in subsequent band members ◮ recompute band if not local in current or previous members
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 23 / 26
Live Range Reordering Conditional Validity Constraints January 19, 2016 24 / 26
◮ live-in reads
◮ live-out writes
Live Range Reordering Conditional Validity Constraints January 19, 2016 24 / 26
◮ live-in reads
◮ live-out writes
◮ there is a read between the two writes
◮ the two writes form live-ranges with the same read
◮ first write does not appear in a live-range
Conclusion January 19, 2016 25 / 26
Conclusion January 19, 2016 26 / 26
◮ allows anti-dependences to be partly ignored ◮ without increasing memory requirements ◮ with limited loss of scheduling freedom
◮ allow live-range reordering during construction of schedule bands ◮ available in PPCG since version 0.02 (April 2014) ◮ crucial for experiments of Baghdadi, Beaugnon, et al. (2015)
January 19, 2016 1 / 2
January 19, 2016 2 / 2