Use valtrees as the type-system representation for constant values#96591
Use valtrees as the type-system representation for constant values#96591bors merged 11 commits intorust-lang:masterfrom
Conversation
|
Some changes occured to rustc_codegen_cranelift cc @bjorn3 Some changes occured to the CTFE / Miri engine cc @rust-lang/miri Some changes occured to the CTFE / Miri engine cc @rust-lang/miri |
|
This comment has been minimized.
This comment has been minimized.
e2a8722 to
4637c6f
Compare
This comment has been minimized.
This comment has been minimized.
4637c6f to
b3cf607
Compare
This comment has been minimized.
This comment has been minimized.
|
Unfortunately we need rustdoc to compile for perf runs |
This comment has been minimized.
This comment has been minimized.
d724521 to
de5c83a
Compare
This comment has been minimized.
This comment has been minimized.
de5c83a to
da9d683
Compare
This comment has been minimized.
This comment has been minimized.
|
Let's see if this works. Maybe run @bors try |
|
⌛ Trying commit da9d68309443e7dd3afb9e0096db0ee8e4f55aa9 with merge 5db5e4101a6e3a17679a4ac488690c36745b53b8... |
|
💔 Test failed - checks-actions |
This comment has been minimized.
This comment has been minimized.
nope 😆 all tools need to build at least |
|
^^ Should work now. |
This comment has been minimized.
This comment has been minimized.
|
@bors try @rust-timer queue |
|
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
|
⌛ Trying commit 7add06c03661a556e0eed1810d34d5f7f5b46f84 with merge 2b7377c196716fe4ec48ba949e509046e307ee32... |
This comment has been minimized.
This comment has been minimized.
|
@bors r=lcnr |
|
📌 Commit 15c1c06 has been approved by |
|
☀️ Test successful - checks-actions |
|
Finished benchmarking commit (1f34da9): comparison url. Instruction count
Max RSS (memory usage)Results
CyclesResults
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression Footnotes |
|
The primary regressions are most likely noise or due to additional query encodings in incremental. The big regression is the CTFE stress test, which, considering this PR heavily modifies how constants are handled, is somewhat expected. We're stress testing the worst case path: evaluating a constant to a valtree and then turning it back into an evaluator value without ever really needing the valtree value. |
|
For commit e14b34c , the two // Note: Don't use `StableHashResult` impl of `u64` here directly, since that
// would lead to endianness problems.
let hash: u128 = hasher.finish();
let hash_short = (hash.to_le() as u64).to_le();Assume If it's expected behavior to make hash value the same on BE/LE, code here should remove two |
I don't remember exactly what was going on (and I'd hate to read into this again), but we did need those calls in order to pass the debug tests on |
This is not quite ready yet, there are still some problems with pretty printing and symbol mangling and
deref_constseems to not work correctly in all cases.Mainly opening now for a perf-run (which should be good to go, despite the still existing problems).
r? @oli-obk
cc @lcnr @RalfJung