Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

S2 amd64 assembly encoder #186

Merged
merged 74 commits into from
Jan 28, 2020
Merged
Changes from 1 commit
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
ce04309
S2 amd64 assembly encoder
klauspost Nov 26, 2019
2b5ffb2
Add emitRepeat
klauspost Nov 26, 2019
3201a14
Begin main loop work.
klauspost Nov 26, 2019
4091d1c
Update doc
klauspost Nov 28, 2019
955d86f
Merge branch 'master' into s2-assembler-encode
klauspost Dec 10, 2019
78c0810
Try out avo
klauspost Dec 12, 2019
8e71f08
avo more
klauspost Dec 13, 2019
37988e9
finish emitLiteral
klauspost Dec 13, 2019
8af916f
avo harder.
klauspost Dec 14, 2019
baeb04d
Make constants more clear and move emitCopy function.
klauspost Dec 14, 2019
4d79a65
Remove handwritten asm.
klauspost Dec 14, 2019
489e009
Fix and optimize
klauspost Dec 14, 2019
225a0ac
Start compress code.
klauspost Dec 15, 2019
596f271
Remove unused.
klauspost Dec 15, 2019
64e2083
Do our own memmove.
klauspost Dec 15, 2019
85c0cc1
Simplify table lookups.
klauspost Dec 15, 2019
9269517
doc
klauspost Dec 15, 2019
f3b3dde
Make emitLiterals a separate generator.
klauspost Dec 16, 2019
59e4e33
Merge branch 'master' into s2-assembler-encode
klauspost Dec 31, 2019
50a52a0
Add standalone matchlen
klauspost Dec 31, 2019
1cc2741
Add extend forward and emit.
klauspost Jan 2, 2020
e97816c
Add candidate tests and backmatch.
klauspost Jan 11, 2020
b6042b0
Snake case all labels.
klauspost Jan 11, 2020
e8f56fb
Add size check and return values.
klauspost Jan 11, 2020
6b830a3
Add final code.
klauspost Jan 12, 2020
50116fc
Tweaks and fixes.
klauspost Jan 12, 2020
66eb3b0
Add prefetch
klauspost Jan 13, 2020
248328c
Memmove port
klauspost Jan 13, 2020
1c9520d
partial port of memmove.
klauspost Jan 13, 2020
e1635fb
Add disabled avx.
klauspost Jan 13, 2020
27d6f01
Fix avx mem-move.
klauspost Jan 13, 2020
98ba68b
Add test for failing AVX code.
klauspost Jan 14, 2020
2338b33
Add switch for big data.
klauspost Jan 15, 2020
9d19639
Tweak+cleanup.
klauspost Jan 15, 2020
ab87e9f
Enable all assembly, requires https://github.com/mmcloughlin/avo/pull…
klauspost Jan 19, 2020
16c4fed
Merge branch 's2-assembler-encode' of https://github.com/klauspost/co…
klauspost Jan 19, 2020
11193ac
Regen.
klauspost Jan 19, 2020
7ca389b
Update.
klauspost Jan 19, 2020
94799a3
Tweaks.
klauspost Jan 19, 2020
00a95d6
Fix register sizes.
klauspost Jan 20, 2020
5493537
Fix subtractions
klauspost Jan 20, 2020
99cb29f
Fix length.
klauspost Jan 20, 2020
308716f
Fix offsets.
klauspost Jan 20, 2020
85d8182
Reenable length check
klauspost Jan 20, 2020
c1f3cf1
Fix some typos
klauspost Jan 20, 2020
214d2e2
Use GP32 more strictly.
klauspost Jan 20, 2020
388e2f5
Refactor stack allocation.
klauspost Jan 21, 2020
51f99c0
Merge branch 's2-assembler-encode' of github.com:klauspost/compress i…
klauspost Jan 21, 2020
05c091d
Fix table index and return size. Add assertions.
klauspost Jan 21, 2020
25bedc9
Compare to Go.
klauspost Jan 21, 2020
7a20dfa
Fix Emitliteral not storing updated destination.
klauspost Jan 21, 2020
8217561
Make more stuff work.
klauspost Jan 21, 2020
8c8f1ca
Fixes... Mores stuff working...
klauspost Jan 21, 2020
6132c2c
Readd repeats.
klauspost Jan 21, 2020
5234e9f
Fix repeat check offset and end-of-match check.
klauspost Jan 22, 2020
25c6e5e
All Tests Passed...
klauspost Jan 22, 2020
8348288
Just return 0 on too small block.
klauspost Jan 22, 2020
f254319
Merge branch 'master' into s2-assembler-encode
klauspost Jan 22, 2020
9eee2cb
Remove duplicate Encode function.
klauspost Jan 22, 2020
0b85bb8
Remove unneeded move.
klauspost Jan 22, 2020
8338b91
Add AVX detection.
klauspost Jan 22, 2020
26d6ff4
Keep dst pointer in a register.
klauspost Jan 22, 2020
5904cf9
Add encoder regression test.
klauspost Jan 22, 2020
6239a7b
Update block benchmark data.
klauspost Jan 23, 2020
4104685
Adjustable hash bytes. Better small block compression.
klauspost Jan 23, 2020
7477947
Don't emit repeat in copy mode for Snappy.
klauspost Jan 23, 2020
440bad2
Fix trimmed buffer being returned.
klauspost Jan 23, 2020
8ec94d6
Add (disabled) profiling.
klauspost Jan 23, 2020
d2374dd
Add encodebuffer to stream api.
klauspost Jan 24, 2020
e699804
Update benchmarks.
klauspost Jan 24, 2020
1250806
Fix up docs.
klauspost Jan 24, 2020
258ae67
Clarify docs, fix uncompressed size.
klauspost Jan 28, 2020
4c41f27
Merge branch 'master' into s2-assembler-encode
klauspost Jan 28, 2020
9aa0107
Update readme.
klauspost Jan 28, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix trimmed buffer being returned.
  • Loading branch information
klauspost committed Jan 23, 2020
commit 440bad2f2396efb5d8313a0cc131824eaebb2bd8
12 changes: 6 additions & 6 deletions s2/encode.go
Original file line number Diff line number Diff line change
Expand Up @@ -291,18 +291,18 @@ func (w *Writer) Reset(writer io.Writer) {
if len(in) > 0 {
if w.err(nil) == nil {
// Don't expose data from previous buffers.
in = in[:len(in):len(in)]
toWrite := in[:len(in):len(in)]
// Write to output.
n, err := writer.Write(in)
if err == nil && n != len(in) {
n, err := writer.Write(toWrite)
if err == nil && n != len(toWrite) {
err = io.ErrShortBuffer
}
_ = w.err(err)
w.written += int64(n)
}
if cap(in) >= w.obufLen {
w.buffers.Put([]byte(in))
}
}
if cap(in) >= w.obufLen {
w.buffers.Put([]byte(in))
}
// close the incoming write request.
// This can be used for synchronizing flushes.
Expand Down