Coalescing
On the Complexity of Register Coalescing F. Bouchez, A. Darte, and F. Rastello LIP UMR CNRS — Inria — ENS Lyon — UCBL France CGO’07, San Jose
Coalescing
Outline
1
What, Why, and How to Coalesce Basic Formulation The Different Approaches
2
A Hard Optimization Problem
3
Conclusion: What should we Implement Now?
Coalescing What, Why, and How to Coalesce
Outline
1
What, Why, and How to Coalesce Basic Formulation The Different Approaches
2
A Hard Optimization Problem
3
Conclusion: What should we Implement Now?
Coalescing What, Why, and How to Coalesce Basic Formulation
Coalescing: Coloring the Interference/Affinity Graph Coalescing is rename 2 variables into a unique representant MOVE A, B: an affinity between A and B A and B cannot share the same ressource: an interference between A and B a = ...
d =a
b = ... ··· = a c = ... d =b ··· = c
··· = d
Coalescing What, Why, and How to Coalesce Basic Formulation
Coalescing: Coloring the Interference/Affinity Graph Coalescing is rename 2 variables into a unique representant MOVE A, B: an affinity between A and B A and B cannot share the same ressource: an interference between A and B ad = . . .
ad = ad
b = ... · · · = ad c = ... ad = b ··· = c
· · · = ad
Coalescing What, Why, and How to Coalesce Basic Formulation
Coalescing: Coloring the Interference/Affinity Graph Coalescing is rename 2 variables into a unique representant MOVE A, B: an affinity between A and B A and B cannot share the same ressource: an interference between A and B ad = . . .
Coalesce
ad = ad
b = ... · · · = ad c = ... ad = b ··· = c
a
ad d
· · · = ad
b
b c
c
Coalescing What, Why, and How to Coalesce Basic Formulation
Many MOVE... Many MOVE instructions due to register constraints (function call, 2 address instructions, etc.) SSA construction followed by basic SSA destruction
A = ... B = ... MOVE R0, A MOVE R1, B D = f (A, B) MOVE D, R0
C1 = . . . C2 = . . . MOVE C, C1
MOVE C, C2
C = φ(C1, C2) use C
Coalescing What, Why, and How to Coalesce Basic Formulation
Many MOVE... Many MOVE instructions due to register constraints (function call, 2 address instructions, etc.) SSA construction followed by basic SSA destruction
A = ... B = ... MOVE R0, A MOVE R1, B call f MOVE D, R0
C1 = . . . C2 = . . . MOVE C, C1
MOVE C, C2
C = φ(C1, C2) use C
Coalescing What, Why, and How to Coalesce Basic Formulation
Many MOVE... Many MOVE instructions due to register constraints (function call, 2 address instructions, etc.) SSA construction followed by basic SSA destruction
A = ... B = ... MOVE R0, A MOVE R1, B call f MOVE D, R0
C1 = . . . C2 = . . . MOVE C, C1
MOVE C, C2
C = φ(C1, C2) use C
Coalescing What, Why, and How to Coalesce Basic Formulation
Many MOVE... to remove Many MOVE instructions due to register constraints (function call, 2 address instructions, etc.) SSA construction followed by basic SSA destruction Our past experience (aggressive) coalescing during SSA destruction
pre-sched.
reg. alloc. (Iterared)
on most benchmarks, a good speedup on some of them, slow down!
sched.
Coalescing What, Why, and How to Coalesce The Different Approaches
Analysing the slow down... Aggressive coalescing may lead to spilling. Coalescing aware of colorability is conservative.
Aggressively coalesce
a
b
d
c
Coalescing What, Why, and How to Coalesce The Different Approaches
Analysing the slow down... Aggressive coalescing may lead to spilling. Coalescing aware of colorability is conservative.
Aggressively coalesce
a
b
d
c
b ad c
Coalescing What, Why, and How to Coalesce The Different Approaches
Analysing the slow down... Aggressive coalescing may lead to spilling. Coalescing aware of colorability is conservative.
Aggressively coalesce
a
b
d
c
b ad
2-colorable
c Not 2-colorable
Coalescing What, Why, and How to Coalesce The Different Approaches
Analysing the slow down... Aggressive coalescing may lead to spilling. Coalescing aware of colorability is conservative.
Conservatively coalesce
a
b
d
c 2-colorable
a
bd b c
2-colorable
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j 1
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k1 l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l 1
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f 2
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m2
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c2
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a2
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d1
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b2 e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e1 a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g2
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h1
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i 0
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b
Not greedy-3-colorable
e a c
df f
g
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b
Not greedy-3-colorable
e a
d
fg f
c
m
i h
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e a
d
f
g
c
m
h
i
k l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. b e a
d
f
g
c
m
h
i
jk l
greedy-3-colorable
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. b e a
d
f
g
c
m
h
i
jk l
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. b e a
d
f
g
c
m
h
i
jkl jk
greedy-3-colorable
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. j
b e dfg
a c
m
i h
jkl kl
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better.
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better.
not k -col
Aggressive coalescing
111 000 000 111 000 111
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. Aggressive coalescing
11 00 00 11 00 11 00 00 11 11 00 11
not k -col
k -col
k -greedy
Conservative coalescing
111 000 000 111 000 111
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. Aggressive coalescing
Incremental conservative coalescing
11 00 00 11 00 11 00 00 11 11 00 11
not k -col
k -col
1111111111 0000000000 0000 1111 0000000000 1111111111 0000 00000000001111 1111111111 0000 1111
k -greedy
Conservative coalescing
111 000 000 111 000 111
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. Aggressive coalescing
11 00 00 11 00 11 00 00 11 11 00 11
not k -col
k -col
1111111111 0000000000 0000 1111 00 11 00 11 0 1 00 11 0 1 00 11 0000000000 1111111111 0000 1111 00 11 00 11 0 1 00 11 0 1 00 00000000001111 1111111111 000011 0011 001 011 001 011 00 11
k -greedy
Conservative coalescing
111 000 000 111 000 111
Incremental conservative coalescing Decoalescing
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better. Aggressive coalescing
not k -col
k -col
k -greedy
Conservative coalescing
1111111111 0000000000 0000 1111 00 11 00 11 0 1 00 11 0 1 00 11 0 1 0 1 00 11 00 11 0 1 0 1 0 1 00 11 0000 1111 000 111 0000000000 1111111111 0000 1111 00 11 00 11 0 1 00 11 0 1 00 11 0 1 0 1 00 11 00 11 0 1 0 1 0 1 00 11 0000 1111 000 00000000001111 1111111111 000011 0011 001 011 001 011 001 01 011 0011 001 01 01 011 001111 0000111 000 111 Incremental conservative coalescing Decoalescing
Coalescing What, Why, and How to Coalesce The Different Approaches
...and the speedup k -colorability check is hard, but checking the Greedy-k-colorablility is easy. Still, finding the optimal subset of affinities is hard. We do Incremental coalescing... Incremental is not optimal. Decoalescing is better.
not k -col
Rules (Briggs, George)
k -col
Conservative coalescing Optimistic (Park et al.)
k -greedy
Aggressive coalescing
1111111111 0000000000 0000 1111 00 11 00 11 0 1 00 11 0 1 00 11 0 1 0 1 00 11 00 11 0 1 0 1 0 1 00 11 0000 1111 000 111 0000000000 1111111111 0000 1111 00 11 00 11 0 1 00 11 0 1 00 11 0 1 0 1 00 11 00 11 0 1 0 1 0 1 00 11 0000 1111 000 00000000001111 1111111111 000011 0011 001 011 001 011 001 01 011 0011 001 01 01 011 001111 0000111 000 111 Incremental conservative coalescing Decoalescing
Coalescing A Hard Optimization Problem
Outline
1
What, Why, and How to Coalesce Basic Formulation The Different Approaches
2
A Hard Optimization Problem
3
Conclusion: What should we Implement Now?
Coalescing A Hard Optimization Problem
Coalescing is Hard
G: greedy-k -colorable interference graph, Aggressive coalescing NP-complete, even with k = 3. Conservative coalescing NP-complete even if k = 3 and only affinities can be merged. Incremental conservative coalescing (Briggs, George) NP-complete if G is arbitrary. Open if G is greedy-k -colorable. Optimistic coalescing (Park & Moon) = conservative de-coalescing NP-complete even if k = 4.
Coalescing A Hard Optimization Problem
A little hope: Chordal Graphs Interference graph of SSA programs k -colorability easy on chordal graphs M AXLIVE = w(G) = χ(G) k -chordal ⊂ greedy-k -colorable ⊂ k -colorable c
b a
d e
Coalescing A Hard Optimization Problem
A little hope: Chordal Graphs Interference graph of SSA programs k -colorability easy on chordal graphs M AXLIVE = w(G) = χ(G) k -chordal ⊂ greedy-k -colorable ⊂ k -colorable c
b a
d e
Coalescing A Hard Optimization Problem
A little hope: Chordal Graphs Interference graph of SSA programs k -colorability easy on chordal graphs M AXLIVE = w(G) = χ(G) k -chordal ⊂ greedy-k -colorable ⊂ k -colorable c
b a
d e
Coalescing A Hard Optimization Problem
A little hope: Chordal Graphs Interference graph of SSA programs k -colorability easy on chordal graphs M AXLIVE = w(G) = χ(G) k -chordal ⊂ greedy-k -colorable ⊂ k -colorable c
b a
d e
Coalescing A Hard Optimization Problem
A little hope: Chordal Graphs Interference graph of SSA programs k -colorability easy on chordal graphs M AXLIVE = w(G) = χ(G) k -chordal ⊂ greedy-k -colorable ⊂ k -colorable c
b a
d e
Coalescing A Hard Optimization Problem
A little hope: Chordal Graphs Interference graph of SSA programs k -colorability easy on chordal graphs M AXLIVE = w(G) = χ(G) k -chordal ⊂ greedy-k -colorable ⊂ k -colorable c
b a
d e
Coalescing A Hard Optimization Problem
. . . but Coalescing is still Hard
G: k -chordal interference graph. Aggressive coalescing NP-complete. Conservative coalescing NP-complete. Incremental conservative coalescing (Briggs, George) Polynomial! Optimistic coalescing (Park & Moon) = conservative de-coalescing NP-complete even if k = 4.
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
k -col
k -greedy k -chordal
k -greedy simple test
k -chordal
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP
k -col
k -greedy k -chordal
k -greedy simple test
k -chordal
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP ??
k -greedy k -chordal
k -col k -greedy
simple test
k -chordal
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP P
k -greedy k -chordal
k -col
?? simple test
k -greedy k -chordal
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP P
k -greedy k -chordal
k -col
?? simple test
k -greedy k -chordal
k -col
k -col
k -greedy
k -greedy
k -chordal
k -chordal
yes/no?
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP P
k -greedy k -chordal
k -col
?? simple test
k -greedy k -chordal
k -col
k -col
k -greedy
k -greedy
k -chordal
k -chordal
yes/no? NO
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP P
k -greedy k -chordal
k -col
k -col
?? simple test
yes/no?
k -greedy k -chordal
k -col
k -greedy
k -greedy
k -chordal
k -chordal
yes/no? NO
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP P
k -greedy k -chordal
k -col
k -col
?? simple test
yes/no? NO
k -greedy k -chordal
k -col
k -greedy
k -greedy
k -chordal
k -chordal
yes/no? NO
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
k -col
NP P
k -greedy k -chordal
k -col
k -col
?? simple test
yes/no? YES
k -greedy k -chordal
k -col
k -greedy
k -greedy
k -chordal
k -chordal
yes/no? NO
Coalescing A Hard Optimization Problem
“Multiple-move” incremental One move to coalesce
NP P
k -greedy k -chordal
k -col
k -col
?? simple test
yes/no? YES
k -greedy k -chordal
k -col
k -greedy
k -greedy
k -chordal
k -chordal
yes/no? NO
additional coalescings
k -col
Coalescing Conclusion: What should we Implement Now?
Outline
1
What, Why, and How to Coalesce Basic Formulation The Different Approaches
2
A Hard Optimization Problem
3
Conclusion: What should we Implement Now?
Coalescing Conclusion: What should we Implement Now?
Some measurements Aggressive+decoalescing scheme: optimizing the aggressive part is important decoalescing (optimistic) can still be improved Incremental scheme: conservative rules (Briggs, George) are far from the optimal
Coalescing Conclusion: What should we Implement Now?
Some measurements Aggressive+decoalescing scheme: optimizing the aggressive part is important decoalescing (optimistic) can still be improved Incremental scheme: conservative rules (Briggs, George) are far from the optimal
Coalescing Conclusion: What should we Implement Now?
Some measurements Aggressive+decoalescing scheme: optimizing the aggressive part is important decoalescing (optimistic) can still be improved Incremental scheme: conservative rules (Briggs, George) are far from the optimal
Coalescing Conclusion: What should we Implement Now?
Conclusion Most problems are NP-complete ⇒ heuristics! Aggressive+decoalescing scheme: Aggressive coalescing is an important issue! Still gap for improving decoalescing; Incremental scheme: A large gap for incremental; Promizing approach: multiple-move incremental on k -greedy.