On the Complexity of Register Coalescing

yes/no? k-chordal k-greedy k-col k-chordal k-greedy k-col. Page 79. Coalescing. A Hard Optimization Problem. “Multiple-move” incremental ?? NP. P simple test.
751KB taille 3 téléchargements 849 vues
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.