• Alyssa Rosenzweig's avatar
    pan/mdg: Schedule based on liveness · 7b0a4f97
    Alyssa Rosenzweig authored
    By estimating liveness in the scheduler and choosing instructions likely
    to reduce register pressure, on average we can decrease pressure given a
    sufficiently larger window. On the other hand, decreasing pressure
    instead of leaning too heavily on the search window enables us to use a
    much larger search window without inflating pressure too much. So by
    doing both in lockstep, we benefit pretty well.
    
    total instructions in shared programs: 49458 -> 48540 (-1.86%)
    instructions in affected programs: 26931 -> 26013 (-3.41%)
    helped: 221
    HURT: 15
    helped stats (abs) min: 1 max: 36 x̄: 4.37 x̃: 2
    helped stats (rel) min: 0.31% max: 16.90% x̄: 4.97% x̃: 3.85%
    HURT stats (abs)   min: 1 max: 4 x̄: 3.13 x̃: 3
    HURT stats (rel)   min: 0.50% max: 7.14% x̄: 4.53% x̃: 4.55%
    95% mean confidence interval for instructions value: -4.65 -3.13
    95% mean confidence interval for instructions %-change: -4.94% -3.81%
    Instructions are helped.
    
    total bundles in shared programs: 25199 -> 23446 (-6.96%)
    bundles in affected programs: 21600 -> 19847 (-8.12%)
    helped: 277
    HURT: 170
    helped stats (abs) min: 1 max: 45 x̄: 7.33 x̃: 6
    helped stats (rel) min: 1.06% max: 33.83% x̄: 11.01% x̃: 8.57%
    HURT stats (abs)   min: 1 max: 6 x̄: 1.63 x̃: 1
    HURT stats (rel)   min: 1.19% max: 40.00% x̄: 13.36% x̃: 11.11%
    95% mean confidence interval for bundles value: -4.61 -3.23
    95% mean confidence interval for bundles %-change: -3.00% -0.49%
    Bundles are helped.
    
    total quadwords in shared programs: 40269 -> 39652 (-1.53%)
    quadwords in affected programs: 35881 -> 35264 (-1.72%)
    helped: 242
    HURT: 244
    helped stats (abs) min: 1 max: 36 x̄: 4.61 x̃: 3
    helped stats (rel) min: 0.39% max: 16.33% x̄: 5.33% x̃: 5.13%
    HURT stats (abs)   min: 1 max: 20 x̄: 2.04 x̃: 1
    HURT stats (rel)   min: 0.81% max: 21.74% x̄: 7.57% x̃: 6.25%
    95% mean confidence interval for quadwords value: -1.71 -0.83
    95% mean confidence interval for quadwords %-change: 0.46% 1.82%
    Inconclusive result (value mean confidence interval and %-change mean confidence interval disagree).
    
    total registers in shared programs: 3786 -> 3336 (-11.89%)
    registers in affected programs: 2161 -> 1711 (-20.82%)
    helped: 262
    HURT: 35
    helped stats (abs) min: 1 max: 7 x̄: 1.87 x̃: 1
    helped stats (rel) min: 6.25% max: 66.67% x̄: 28.91% x̃: 25.00%
    HURT stats (abs)   min: 1 max: 3 x̄: 1.11 x̃: 1
    HURT stats (rel)   min: 7.69% max: 100.00% x̄: 19.76% x̃: 12.50%
    95% mean confidence interval for registers value: -1.70 -1.33
    95% mean confidence interval for registers %-change: -25.56% -20.79%
    Registers are helped.
    
    total threads in shared programs: 2453 -> 2592 (5.67%)
    threads in affected programs: 160 -> 299 (86.87%)
    helped: 79
    HURT: 6
    helped stats (abs) min: 1 max: 2 x̄: 1.85 x̃: 2
    helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
    HURT stats (abs)   min: 1 max: 2 x̄: 1.17 x̃: 1
    HURT stats (rel)   min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
    95% mean confidence interval for threads value: 1.45 1.82
    95% mean confidence interval for threads %-change: 81.08% 97.75%
    Threads are [helped].
    
    total spills in shared programs: 168 -> 17 (-89.88%)
    spills in affected programs: 167 -> 16 (-90.42%)
    helped: 13
    HURT: 0
    
    total fills in shared programs: 186 -> 35 (-81.18%)
    fills in affected programs: 186 -> 35 (-81.18%)
    helped: 14
    
    HURT: 0
    Part-of: <!5513>
    7b0a4f97
midgard_schedule.c 50.6 KB