- 20 8月, 2020 2 次提交
- 19 8月, 2020 1 次提交
-
-
由 Rich Kadel 提交于
-
- 18 8月, 2020 2 次提交
-
-
由 Ralf Jung 提交于
-
由 Austin Lasher 提交于
-
- 17 8月, 2020 1 次提交
-
-
由 Simon Vandel Sillesen 提交于
Implement 'considered equal' for statements, so that for example `_0 = _1` and `discriminant(_0) = discriminant(0)` are considered equal if 0 is a fieldless variant of an enum
-
- 15 8月, 2020 2 次提交
-
-
由 Tomasz Miąsko 提交于
The match branch simplification is applied when target blocks contain statements that are either equal or perform a const bool assignment with different values to the same place. Previously, when constructing new statements, only statements from a single block had been examined. This lead to a misoptimization when statements are equal because the assign the *same* const bool value to the same place. Fix the issue by examining statements from both blocks when deciding on replacement.
-
由 Tomasz Miąsko 提交于
It might be necessary to use its value more than once.
-
- 14 8月, 2020 2 次提交
- 13 8月, 2020 4 次提交
- 11 8月, 2020 1 次提交
-
-
由 Ralf Jung 提交于
-
- 10 8月, 2020 1 次提交
-
-
由 Ralf Jung 提交于
-
- 05 8月, 2020 1 次提交
-
-
由 Rich Kadel 提交于
The prior PR corrected for errors encountered when trying to generate the coverage map on source code inlined from external crates (including macros and generics) by avoiding adding external DefIds to the coverage map. This made it possible to generate a coverage report including external crates, but the external crate coverage was incomplete (did not include coverage for the DefIds that were eliminated. The root issue was that the coverage map was converting Span locations to source file and locations, using the SourceMap for the current crate, and this would not work for spans from external crates (compliled with a different SourceMap). The solution was to convert the Spans to filename and location during MIR generation instead, so precompiled external crates would already have the correct source code locations embedded in their MIR, when imported into another crate.
-
- 31 7月, 2020 1 次提交
-
-
由 Ximin Luo 提交于
-
- 30 7月, 2020 3 次提交
-
-
由 Oliver Scherer 提交于
-
由 Oliver Scherer 提交于
-
由 Oliver Scherer 提交于
We used to erase these values immediately after propagation, but some things slipped through and it caused us to still initialize huge locals.
-
- 29 7月, 2020 2 次提交
-
-
由 Xavier Denis 提交于
-
由 Xavier Denis 提交于
-
- 28 7月, 2020 1 次提交
-
-
由 mark 提交于
-
- 24 7月, 2020 1 次提交
-
-
由 Oliver Scherer 提交于
-
- 22 7月, 2020 2 次提交
-
-
由 Xavier Denis 提交于
-
由 Bastian Kauschke 提交于
-
- 18 7月, 2020 1 次提交
-
-
由 Rich Kadel 提交于
rustc now generates the coverage map and can support (limited) coverage report generation, at the function level. Example: $ BUILD=$HOME/rust/build/x86_64-unknown-linux-gnu $ $BUILD/stage1/bin/rustc -Zinstrument-coverage \ $HOME/rust/src/test/run-make-fulldeps/instrument-coverage/main.rs $ LLVM_PROFILE_FILE="main.profraw" ./main called $ $BUILD/llvm/bin/llvm-profdata merge -sparse main.profraw -o main.profdata $ $BUILD/llvm/bin/llvm-cov show --instr-profile=main.profdata main 1| 1|pub fn will_be_called() { 2| 1| println!("called"); 3| 1|} 4| | 5| 0|pub fn will_not_be_called() { 6| 0| println!("should not have been called"); 7| 0|} 8| | 9| 1|fn main() { 10| 1| let less = 1; 11| 1| let more = 100; 12| 1| 13| 1| if less < more { 14| 1| will_be_called(); 15| 1| } else { 16| 1| will_not_be_called(); 17| 1| } 18| 1|}
-
- 17 7月, 2020 2 次提交
-
-
由 Mara Bos 提交于
-
由 Jonas Schievink 提交于
-
- 15 7月, 2020 3 次提交
-
-
由 Bastian Kauschke 提交于
-
由 Bastian Kauschke 提交于
-
由 Bastian Kauschke 提交于
-
- 08 7月, 2020 1 次提交
-
-
由 Ayaz Hafiz 提交于
Closes #74050 r? @matthewjasper
-
- 03 7月, 2020 3 次提交
-
-
由 Wesley Wiser 提交于
-
由 Wesley Wiser 提交于
If temporaries are used beyond just the temporary chain, then we can't optimize out the reads and writes.
-
由 Wesley Wiser 提交于
-
- 01 7月, 2020 1 次提交
-
-
由 Dylan MacKenzie 提交于
-
- 30 6月, 2020 1 次提交
-
-
由 Rich Kadel 提交于
added regions with counter expressions and counters. Added codegen_llvm/coverageinfo mod for upcoming coverage map Move coverage region collection to CodegenCx finalization Moved from `query coverageinfo` (renamed from `query coverage_data`), as discussed in the PR at: https://github.com/rust-lang/rust/pull/73684#issuecomment-649882503 Address merge conflict in MIR instrument_coverage test The MIR test output format changed for int types. moved debug messages out of block.rs This makes the block.rs calls to add coverage mapping data to the CodegenCx much more concise and readable. move coverage intrinsic handling into llvm impl I realized that having half of the coverage intrinsic handling in `rustc_codegen_ssa` and half in `rustc_codegen_llvm` meant that any non-llvm backend would be bound to the same decisions about how the coverage-related MIR terminators should be handled. To fix this, I moved the non-codegen portion of coverage intrinsic handling into its own trait, and implemented it in `rustc_codegen_llvm` alongside `codegen_intrinsic_call`. I also added the (required?) stubs for the new intrinsics to `IntrepretCx::emulate_intrinsic()`, to ensure calls to this function do not fail if called with these new but known intrinsics. address PR Feedback on 28 June 2020 2:48pm PDT
-
- 26 6月, 2020 1 次提交
-
-
由 Oliver Scherer 提交于
-