Commit Graph

25984 Commits

Author SHA1 Message Date
bors
2bcd951749 auto merge of #11974 : huonw/rust/no-at-vec, r=pcwalton
This removes @[] from the parser as well as much of the handling of it (and `@str`) from the compiler as I can find.

I've just rebased @pcwalton's (already reviewed) `@str` removal (and fixed the problems in a separate commit); the only new work is the trailing commits with my authorship.

Closes #11967
2014-02-01 11:16:24 -08:00
bors
60ffbeb2a4 auto merge of #11973 : dotdash/rust/u64_to_bytes, r=huonw
LLVM fails to properly optimize the shifts used to convert the source
value to the right endianess. The resulting assembly copies the value
to the stack one byte at a time even when there's no conversion required
(e.g. u64_to_le_bytes on a little endian machine).

Instead of doing the conversion ourselves using shifts, we can use the
existing intrinsics to perform the endianess conversion and then
transmute the value to get a fixed vector of its bytes.

Before:
````
test be_i8  ... bench:     21442 ns/iter (+/- 70)
test be_i16 ... bench:     21447 ns/iter (+/- 45)
test be_i32 ... bench:     23832 ns/iter (+/- 63)
test be_i64 ... bench:     26887 ns/iter (+/- 267)

test le_i8  ... bench:     21442 ns/iter (+/- 56)
test le_i16 ... bench:     21448 ns/iter (+/- 36)
test le_i32 ... bench:     23825 ns/iter (+/- 153)
test le_i64 ... bench:     26271 ns/iter (+/- 138)
````
After:
````
test be_i8  ... bench:     21438 ns/iter (+/- 10)
test be_i16 ... bench:     21441 ns/iter (+/- 15)
test be_i32 ... bench:     19057 ns/iter (+/- 6)
test be_i64 ... bench:     21439 ns/iter (+/- 34)

test le_i8  ... bench:     21438 ns/iter (+/- 19)
test le_i16 ... bench:     21439 ns/iter (+/- 8)
test le_i32 ... bench:     21439 ns/iter (+/- 19)
test le_i64 ... bench:     21438 ns/iter (+/- 22)
````
2014-02-01 10:01:25 -08:00
Huon Wilson
212507413a rustc: update docs & propagate @[]/@str removal more.
Various functions can now be made specific to ~[], or just non-managed
vectors.
2014-02-02 02:59:04 +11:00
Huon Wilson
c8947c14c3 syntax: remove the unused Vstore enum.
Seems to have been replaced by ExprVstore.
2014-02-02 02:59:04 +11:00
Huon Wilson
ec4b456b26 rustc: Remove the vstore handling of @str and @[]. 2014-02-02 02:59:04 +11:00
Huon Wilson
e39cd20a43 syntax: remove the handling of @str and @[] from the parser completely. 2014-02-02 02:59:04 +11:00
Huon Wilson
aadcf29766 syntax: add an obsolete syntax warning for @[]. 2014-02-02 02:59:04 +11:00
Huon Wilson
f8734df515 rustc: remove use of @[]. 2014-02-02 02:59:03 +11:00
Huon Wilson
891ada9be1 syntax: convert LitBinary from @[u8] to Rc<~[u8]>. 2014-02-02 02:59:03 +11:00
Huon Wilson
b972cadf61 Update/delete tests using @[]. 2014-02-02 02:59:03 +11:00
Huon Wilson
f63c3fba4c arena: stop using @[]. 2014-02-02 02:59:03 +11:00
Huon Wilson
2ed980fe25 std,extra: remove use of & support for @[]. 2014-02-02 02:59:03 +11:00
Huon Wilson
e0c1707560 Changes from the review of the @str PR. 2014-02-02 02:59:03 +11:00
Huon Wilson
f502576fc7 Fix @str removal tests. 2014-02-02 02:58:57 +11:00
bors
df044ea4ac auto merge of #11944 : nathanielherman/rust/vec_opt, r=alexcrichton
Closes #11733
2014-02-01 07:21:23 -08:00
Patrick Walton
c594e675eb librustc: Remove @str from the language 2014-02-02 01:44:50 +11:00
Patrick Walton
449a7a817f libextra: Remove @str from all the libraries 2014-02-02 01:44:50 +11:00
Patrick Walton
4dbcf800d5 doc: Remove references to @str from the documentation 2014-02-02 01:44:50 +11:00
Patrick Walton
8b8419293c libsyntax: Remove @str from the interner 2014-02-02 01:44:49 +11:00
Patrick Walton
7a80fa647a test: Remove @str from the test suite 2014-02-02 01:44:49 +11:00
Patrick Walton
17b01041c2 librustc: Remove one more @str from librustc 2014-02-02 01:44:49 +11:00
Patrick Walton
4018d77f22 libsyntax: Remove an @str in pretty printing 2014-02-02 01:44:49 +11:00
Patrick Walton
e5dc347ccf libsyntax: Remove the interner_get function and all uses 2014-02-02 01:44:49 +11:00
Patrick Walton
a695b62118 librustc: Remove uses of interner_get in librustc 2014-02-02 01:44:49 +11:00
Patrick Walton
0d0a3dad68 libsyntax: Remove uses of token::ident_to_str() 2014-02-02 01:44:49 +11:00
Patrick Walton
875c9ce30b libsyntax: Remove many uses of token::ident_to_str 2014-02-02 01:44:49 +11:00
Patrick Walton
e534b565e6 librustc: Remove uses of token::ident_to_str() from librustc 2014-02-02 01:44:49 +11:00
Patrick Walton
344040d470 librustc: Get rid of ident_to_str calls in resolve 2014-02-02 01:44:49 +11:00
Patrick Walton
64a3a4169c librustc: Get rid of calls to token::ident_to_str in debug info 2014-02-02 01:44:49 +11:00
Patrick Walton
21f86855dd librustc: De-@str ident() and str_of() 2014-02-02 01:44:49 +11:00
Patrick Walton
19d4ea1cba librustc: De-@str the LLVM symbol list 2014-02-02 01:44:49 +11:00
Patrick Walton
0f3a4e13f9 librustc: De-@str type short names 2014-02-02 01:44:49 +11:00
Patrick Walton
e9ce855beb librustc: De-@str liveness 2014-02-02 01:44:49 +11:00
Patrick Walton
b265dd4156 librustc: De-@str symbol hashing 2014-02-02 01:44:49 +11:00
Patrick Walton
1e0c07d011 librustc: De-@str debuginfo 2014-02-02 01:44:49 +11:00
Patrick Walton
daf5e6f6f4 librustc: De-@str resolve 2014-02-02 01:44:49 +11:00
Patrick Walton
9869374256 librustc: Remove a bunch of @str from the compiler around metadata
handling
2014-02-02 01:44:48 +11:00
Patrick Walton
b890237e79 libsyntax: Fix tests. 2014-02-02 01:44:48 +11:00
Patrick Walton
52eeed2f73 libsyntax: De-@str MacroDef 2014-02-02 01:44:48 +11:00
Patrick Walton
c5cbfe89f8 librustc: De-@str NameAndSpan 2014-02-02 01:44:48 +11:00
Patrick Walton
a4dd3fe2f2 librustc: Fix merge fallout. 2014-02-02 01:44:48 +11:00
Patrick Walton
3c9e9d35ac libsyntax: Remove ident_to_str from the parser, which was returning
`@str` values
2014-02-02 01:44:48 +11:00
Patrick Walton
cbf9f5f5df libsyntax: De-@str get_single_str_from_tts 2014-02-02 01:44:48 +11:00
Patrick Walton
f9af11d6cc libsyntax: Remove all @str from the AST 2014-02-02 01:44:48 +11:00
Patrick Walton
b496d7bec2 libsyntax: Make float literals not use @str 2014-02-02 01:44:48 +11:00
Patrick Walton
8d6ef2e1b1 libsyntax: De-@str pathnames 2014-02-02 01:44:48 +11:00
Patrick Walton
e68108b3e8 librustc: Stop using @str for source. 2014-02-02 01:44:48 +11:00
Patrick Walton
f152be7a42 libsyntax: Remove the unnecessary src field from the lexer 2014-02-02 01:44:48 +11:00
Patrick Walton
0327d8a073 librustc: Fix merge fallout. 2014-02-02 01:44:48 +11:00
Patrick Walton
a0646ae3a4 libsyntax: De-@str to_source 2014-02-02 01:44:48 +11:00