Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(12)

Issue 125720043: code review 125720043: cmd/gc: make liveness ~10x faster (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
9 years, 8 months ago by rsc
Modified:
9 years, 8 months ago
Reviewers:
r, iant
CC:
golang-codereviews, iant, r
Visibility:
Public.

Description

cmd/gc: make liveness ~10x faster 1) The arrayindexof lookup function is O(n). Replace with O(1) lookups. 2) The checkptxt function is O(n²) and is purely for debugging. Only run when the debugging flags are turned on. 3) Iterating over sparse bitmaps can be done faster word by word. Introduce and use bvnext for that. Run times before and after, on my 2.5 GHz Core i5 MacBook Pro. x.go 9.48 0.84 issue 8259 x100.go 0.01 0.01 issue 8354 x1000.go 0.10 0.10 x2000.go 0.62 0.19 x3000.go 1.33 0.34 x4000.go 2.29 0.49 x5000.go 3.89 0.67 x6000.go 5.00 0.90 x7000.go 6.70 1.13 x8000.go 9.44 1.38 x9000.go 11.23 1.87 x10000.go 13.78 2.09 Fixes issue 8259. Fixes issue 8354.

Patch Set 1 #

Patch Set 2 : diff -r 88999b670ed9 https://code.google.com/p/go/ #

Patch Set 3 : diff -r 88999b670ed9 https://code.google.com/p/go/ #

Total comments: 3

Patch Set 4 : diff -r d75c2b5b7574d11d35f8a8d6e3622f4430814d86 https://code.google.com/p/go/ #

Unified diffs Side-by-side diffs Delta from patch set Stats (+69 lines, -35 lines) Patch
M src/cmd/gc/array.c View 1 chunk +0 lines, -14 lines 0 comments Download
M src/cmd/gc/bv.c View 3 chunks +30 lines, -6 lines 0 comments Download
M src/cmd/gc/go.h View 2 chunks +1 line, -1 line 0 comments Download
M src/cmd/gc/plive.c View 7 chunks +38 lines, -14 lines 0 comments Download

Messages

Total messages: 5
rsc
Hello golang-codereviews@googlegroups.com (cc: iant, r), I'd like you to review this change to https://code.google.com/p/go/
9 years, 8 months ago (2014-08-06 14:38:39 UTC) #1
iant
LGTM https://codereview.appspot.com/125720043/diff/40001/src/cmd/gc/bv.c File src/cmd/gc/bv.c (right): https://codereview.appspot.com/125720043/diff/40001/src/cmd/gc/bv.c#newcode115 src/cmd/gc/bv.c:115: while(i < bv->n && bv->b[i>>WORDSHIFT] == 0) If ...
9 years, 8 months ago (2014-08-06 15:54:04 UTC) #2
r
LGTM nice
9 years, 8 months ago (2014-08-06 15:56:46 UTC) #3
rsc
https://codereview.appspot.com/125720043/diff/40001/src/cmd/gc/bv.c File src/cmd/gc/bv.c (right): https://codereview.appspot.com/125720043/diff/40001/src/cmd/gc/bv.c#newcode115 src/cmd/gc/bv.c:115: while(i < bv->n && bv->b[i>>WORDSHIFT] == 0) Thanks. I'm ...
9 years, 8 months ago (2014-08-06 16:18:03 UTC) #4
rsc
9 years, 8 months ago (2014-08-06 19:46:40 UTC) #5
*** Submitted as https://code.google.com/p/go/source/detail?r=b92e5df7d3ba ***

cmd/gc: make liveness ~10x faster

1) The arrayindexof lookup function is O(n). Replace with O(1) lookups.

2) The checkptxt function is O(n²) and is purely for debugging.
Only run when the debugging flags are turned on.

3) Iterating over sparse bitmaps can be done faster word by word.
Introduce and use bvnext for that.

Run times before and after, on my 2.5 GHz Core i5 MacBook Pro.

x.go       9.48  0.84  issue 8259

x100.go    0.01  0.01  issue 8354
x1000.go   0.10  0.10
x2000.go   0.62  0.19
x3000.go   1.33  0.34
x4000.go   2.29  0.49
x5000.go   3.89  0.67
x6000.go   5.00  0.90
x7000.go   6.70  1.13
x8000.go   9.44  1.38
x9000.go  11.23  1.87
x10000.go 13.78  2.09

Fixes issue 8259.
Fixes issue 8354.

LGTM=iant, r
R=golang-codereviews, iant, r
CC=golang-codereviews
https://codereview.appspot.com/125720043
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b