- 28 8月, 2013 13 次提交
-
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
10% win or so for small crates.
-
由 Patrick Walton 提交于
-
由 Patrick Walton 提交于
This removes the stacking of type parameters that occurs when invoking trait methods, and fixes all places in the standard library that were relying on it. It is somewhat awkward in places; I think we'll probably want something like the `Foo::<for T>::new()` syntax.
-
由 Patrick Walton 提交于
They are still present as part of the borrow check.
-
由 Daniel Micay 提交于
-
由 Daniel Micay 提交于
-
由 Daniel Micay 提交于
-
由 Flaper Fesp 提交于
-
由 Daniel Micay 提交于
-
由 Daniel Micay 提交于
Closes #6002 There is consensus that the current implementation should be changed or removed, so removing it seems like the right decision for now.
-
- 27 8月, 2013 11 次提交
-
-
由 Huon Wilson 提交于
This means that fewer `transmute`s are required, so there is less chance of a `transmute` not having the corresponding `forget` (possibly leading to use-after-free, etc).
-
由 Huon Wilson 提交于
-
由 Flaper Fesp 提交于
-
由 Alex Crichton 提交于
Beforehand, it was unclear whether rust was performing the "recommended set" of optimizations provided by LLVM for code. This commit changes the way we run passes to closely mirror that of clang, which in theory does it correctly. The notable changes include: * Passes are no longer explicitly added one by one. This would be difficult to keep up with as LLVM changes and we don't guaranteed always know the best order in which to run passes * Passes are now managed by LLVM's PassManagerBuilder object. This is then used to populate the various pass managers run. * We now run both a FunctionPassManager and a module-wide PassManager. This is what clang does, and I presume that we *may* see a speed boost from the module-wide passes just having to do less work. I have no measured this. * The codegen pass manager has been extracted to its own separate pass manager to not get mixed up with the other passes * All pass managers now include passes for target-specific data layout and analysis passes Some new features include: * You can now print all passes being run with `-Z print-llvm-passes` * When specifying passes via `--passes`, the passes are now appended to the default list of passes instead of overwriting them. * The output of `--passes list` is now generated by LLVM instead of maintaining a list of passes ourselves * Loop vectorization is turned on by default as an optimization pass and can be disabled with `-Z no-vectorize-loops`
-
由 Brian Anderson 提交于
-
由 Corey Richardson 提交于
-
由 Flaper Fesp 提交于
-
由 Flaper Fesp 提交于
-
由 Flaper Fesp 提交于
-
由 Flaper Fesp 提交于
As for now, rekillable is an unsafe function, instead, it should behave just like unkillable by encapsulating unsafe code within an unsafe block. This patch does that and removes unsafe blocks that were encapsulating rekillable calls throughout rust's libs. Fixes #8232
-
由 Brian Anderson 提交于
-
- 26 8月, 2013 7 次提交
-
-
由 klutzy 提交于
This patch saves and restores win64's nonvolatile registers. This patch also saves stack information of thread environment block (TEB), which is at %gs:0x08 and %gs:0x10.
-
由 klutzy 提交于
Some extern blobs are duplicated without "stdcall" abi, since Win64 does not use any calling convention. (Giving any abi to them causes llvm producing wrong bytecode.)
-
由 klutzy 提交于
-
由 klutzy 提交于
-
由 blake2-ppc 提交于
Implement Huon Wilson's suggestions (since the benchmarks agree!). Use `self.sep.matches(byte as char) && byte < 128u8` to match in the only_ascii case so that mistaken matches outside the ascii range can't create invalid substrings. Put the conditional on only_ascii outside the loop.
-
由 blake2-ppc 提交于
-
由 Kevin Ballard 提交于
Add _opt variants to from_bytes, from_bytes_owned, and from_bytes_slice. These variants return an Option instead of raising a condition/failing.
-
- 25 8月, 2013 9 次提交
-
-
由 blake2-ppc 提交于
Add new methods `.rsplit_iter()` and `.rsplitn_iter()` for &str. Separate out CharSplitIterator and CharSplitNIterator, CharSplitIterator (`split_iter` and `rsplit_iter`) is made double-ended while `splitn_iter` and `rsplitn_iter` (limited to N splits) are not, since these don't have the same symmetry. With CharSplitIterator being double ended, derived iterators like `line_iter` and `word_iter` are too.
-
由 Brian Anderson 提交于
I'm not comfortable turning off rtassert! yet
-
由 Brian Anderson 提交于
vec::unshift uses this to add elements, scheduler queues use unshift, and this was causing a lot of reallocation
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
These aren't used for anything at the moment and cause some TLS hits on some perf-critical code paths. Will need to put better thought into it in the future.
-
由 Brian Anderson 提交于
It's not a huge win but it does reduce the amount of time spent contesting the message queue when the schedulers are under load
-
由 Brian Anderson 提交于
This makes the lock much less contended. In the test I'm running the number of times it's contended goes from ~100000 down to ~1000.
-
由 Brian Anderson 提交于
-