Top Banner
Peephole Contest 2008 COMP 520
15

Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Jun 25, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Peephole Contest 2008

COMP 520

Page 2: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Final Ranking (Total)

37441

29542

29484

29360

28971

28367

27050

26911

0 10000 20000 30000 40000

Bytecodes

Page 3: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Submissions

Group Patterns submitted Unsound Remaining

1 88 0 88

2 70 8 62

3 41 5 36

4 36 4 32

5 90 1 89

Page 4: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Sound or unsound?

Constant folding

iconst_x

iconst_y

iadd || isub || imul || idiv || irem

--------->

ldc x op y

Page 5: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Sound or unsound?

StringBuffer

aload x

dup

ifnull label_1

goto label_2

label_1:

pop

ldc "null"

label_2:

------------------------>

new j/l/StringBuffer

dup

invokenonvirtual j/l/StringBuffer/<init>()V

aload x

invokevirtualj/l/StringBuffer/append(Lj/l/String;)Lj/l/StringBuffer;

invokevirtual j/l/StringBuffer/toString()Lj/l/String;

Page 6: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Sound or unsound?

StringBuffer

invokevirtualj/l/String/concat(Lj/l/String;)Lj/l/String;

dup

ifnonnull lbl1

pop

ldc "null"

label lbl1

--------->

invokevirtualj/l/String/concat(Lj/l/String;)Lj/l/String;

Page 7: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Sound or unsound?

Dead code elimination

goto lbl

not-a-label

--------->

goto lbl

[a|i]return

not-a-label

--------->

[a|i]return

Page 8: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Rules to keep in mind

• Ok to assume “sensible code”, i.e. verifyable code

• Should not assume certain code-generation scheme

• Why? Times change, and code generation schemes, too!

Page 9: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Results

Tatatataaaaa….

Page 10: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

2004 Benchmarks

18837

15154

15107

15013

14920

14435

13882

13761

0 5000 10000 15000 20000

Bytecodes

Page 11: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

2007 Benchmarks

10769

8138

8120

8113

7831

7763

7164

7152

0 2000 4000 6000 8000 10000 12000

Bytecodes

Page 12: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

2008 Benchmarks

7835

6288

6257

6250

6234

6101

6016

5986

0 2000 4000 6000 8000 10000

Bytecodes

Page 13: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Most gain for the pain

103

118

127

221

265

0 100 200 300

Bytecodes removed / pattern

Page 14: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

Final Ranking (Total)

37441

29542

29484

29360

28971

28367

27050

26911

0 10000 20000 30000 40000

Bytecodes

Page 15: Peephole Contest 2008 - McGill University School of ...cs520/2008/slides/peephole.pdf · Peephole Contest 2008 COMP 520. Final Ranking (Total) 37441 29542 29484 29360 28971 28367

COMP 520 PRESENTS

Winners of the Peephole Contest

of the Year 2008

GROUP 5Ning Jia

Alexis Malozemoff

Wei WuNovember 21st, 2008

Eric Bodden & Reehan Shaikh