- 27 8月, 2013 1 次提交
-
-
由 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`
-
- 25 8月, 2013 26 次提交
-
-
由 bors 提交于
...bytes. (removing previous note about eff-eye-ex'ing #5516 since it actually does not do so, it just gets us half-way.)
-
由 Felix S. Klock II 提交于
-
由 bors 提交于
Fixes #8536.
-
由 bors 提交于
-
由 bors 提交于
Recent improvements to `&mut Trait` have made this work possible, and it solidifies that `ifmt` doesn't always have to return a string, but rather it's based around writers.
-
由 bors 提交于
The method names in std::rt::io::extensions::WriterByteConversions are the same as those in std::io::WriterUtils and a resolve error causes rustc to fail after trying to find an impl of io::Writer instead of trying to look for rt::io::Writer as well.
-
由 Alex Crichton 提交于
These new macros are all based on format! instead of fmt! and purely exist for bootstrapping purposes. After the next snapshot, all uses of logging will be migrated to these macros, and then after the next snapshot after that we can drop the `2` suffix on everything
-
由 bors 提交于
See #8599
-
由 Daniel Micay 提交于
Add OwnedStr::into_bytes
-
由 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 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Steven Fackler 提交于
My primary use case here is sending strings across the wire where the intermediate storage is a byte array. The new method ends up avoiding a copy.
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
-
由 Daniel Micay 提交于
Force line ending of '.in' files in jemalloc to LF
-
由 Luqman Aden 提交于
-
由 Mukilan Thiagarajan 提交于
This fixes issue #8731 . On Windows, if the git option core.autocrlf is true (github recommends users to turn on this flag - see https://help.github.com/articles/dealing-with-line-endings), the headers generated from the .in files will have syntatic errors, causing compilation to fail.
-
- 24 8月, 2013 13 次提交
-
-
由 bors 提交于
-
由 Luqman Aden 提交于
-
由 bors 提交于
This documents how to use trait bounds in a (hopefully) user-friendly way, in the containers tutorial, and also documents the task watching implementation for runtime developers in kill.rs. r anybody
-
由 bors 提交于
to_str, to_pretty_str, to_writer, and to_pretty_writer were at the top level of extra::json, this moves them into an impl for Json to match with what's been done for the rest of libextra and libstd. (or at least for vec and str) Also meant changing some tests. Closes #8676.
-
由 Felix S. Klock II 提交于
Also added regression test for the byte vs codepoint issues that the previous commit fixes.
-
由 bors 提交于
This makes it relatively easy for us to split testsuite load between machines in buildbot. I've added buildbot-side support for setting up builders with -a.b suffixes (eg. linux-64-opt-vg-0.5, linux-64-opt-vg-1.5, linux-64-opt-vg-2.5, linux-64-opt-vg-3.5, linux-64-opt-vg-4.5 causes the valgrind-supervised testsuite to split 5 ways across hosts).
-
由 bors 提交于
r?
-
由 Kevin Ballard 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
Naturally, and sadly, turning off sanity checks in the runtime is a noticable performance win. The particular test I'm running goes from ~1.5 s to ~1.3s. Sanity checks are turned *on* when not optimizing, or when cfg includes `rtdebug` or `rtassert`.
-
由 Brian Anderson 提交于
-
由 bors 提交于
Small, but whatever
🎱 -
由 bors 提交于
-