about summary refs log tree commit diff
path: root/src/librustc_mir/interpret
AgeCommit message (Collapse)AuthorLines
2018-11-15miri value visitor: provide place when visiting a primitiveRalf Jung-8/+9
2018-11-15expose MutValueVisitorRalf Jung-1/+1
2018-11-15Auto merge of #55716 - RalfJung:escape-to-raw, r=oli-obkbors-114/+75
Add escape-to-raw MIR statement Add a new MIR "ghost state statement": Escaping a ptr to permit raw accesses. ~~This includes #55549, [click here](https://github.com/RalfJung/rust/compare/miri-visitor...RalfJung:escape-to-raw) for just the new commits.~~
2018-11-14miri: backtraces with instancesRalf Jung-12/+3
2018-11-13Auto merge of #55912 - kennytm:rollup, r=kennytmbors-12/+2
Rollup of 20 pull requests Successful merges: - #55136 (Remove short doc where it starts with a codeblock) - #55711 (Format BtreeMap::range_mut example) - #55722 (impl_stable_hash_for: support enums and tuple structs with generic parameters) - #55754 (Avoid converting bytes to UTF-8 strings to print, just pass bytes to stdout/err) - #55804 (rustdoc: don't inline `pub use some_crate` unless directly asked to) - #55805 (Move `static_assert!` into librustc_data_structures) - #55837 (Make PhantomData #[structural_match]) - #55840 (Fix TLS errors when downloading stage0) - #55843 (add FromIterator<A> to Box<[A]>) - #55858 (Small fixes on code blocks in rustdoc) - #55863 (Fix a typo in std::panic) - #55870 (Fix typos.) - #55874 (string: Add documentation for `From` impls) - #55879 (save-analysis: Don't panic for macro-generated use globs) - #55882 (Reference count `crate_inherent_impls`s return value.) - #55888 (miri: for uniformity, also move memory_deallocated to AllocationExtra) - #55889 (global allocators: add a few comments) - #55896 (Document optimizations enabled by FusedIterator) - #55905 (Change `Lit::short_name` to `Lit::literal_name`.) - #55908 (Fix their/there grammar nit)
2018-11-13fix various typos in doc commentsAndy Russell-1/+1
2018-11-12Deduplicate field and variant visitor methodsOliver Scherer-25/+22
2018-11-12miri-engine value visitor update to VariantIdxOliver Scherer-9/+41
2018-11-12Use type safe `VariantIdx` instead of `usize` everywhereOliver Scherer-27/+29
2018-11-12remove unused importRalf Jung-1/+1
2018-11-12for uniformity, also move memory_deallocated to AllocationExtraRalf Jung-11/+1
2018-11-11Auto merge of #55674 - oli-obk:miri_engine_refactoring, r=RalfJungbors-157/+9
Miri engine refactoring r? @RalfJung split out the "just moves stuff around" part of https://github.com/rust-lang/rust/pull/55293
2018-11-10Auto merge of #55650 - nikic:funnel-shift, r=nagisabors-0/+18
Implement rotate using funnel shift on LLVM >= 7 Implement the rotate_left and rotate_right operations using llvm.fshl and llvm.fshr if they are available (LLVM >= 7). Originally I wanted to expose the funnel_shift_left and funnel_shift_right intrinsics and implement rotate_left and rotate_right on top of them. However, emulation of funnel shifts requires emitting a conditional to check for zero shift amount, which is not necessary for rotates. I was uncomfortable doing that here, as I don't want to rely on LLVM to optimize away that conditional (and for variable rotates, I'm not sure it can). We should revisit that question when we raise our minimum version requirement to LLVM 7 and don't need emulation code anymore. Fixes #52457.
2018-11-08Rebase falloutOliver Scherer-1/+0
2018-11-08Give `AllocationExtra`s access to their entire `Allocation`Oliver Scherer-2/+2
2018-11-08FalloutOliver Scherer-7/+8
2018-11-08Move the `memory_accessed` hook onto the `Extra` valueOliver Scherer-20/+0
2018-11-08Move `ScalarMaybeUndef` back to rustcOliver Scherer-129/+1
2018-11-07only count deref_operand as actual deref, but not all ref-to-place conversionsRalf Jung-32/+31
2018-11-07calling the ptr hooks no longer needs expensive preparation, remove the opt-outRalf Jung-15/+8
2018-11-07no more action on ref or cast, but add new MIR statement for escaping a ptr ↵Ralf Jung-69/+38
to raw
2018-11-07pretty-print scalar range that only has an upper boundRalf Jung-1/+4
2018-11-07do not print wrapping ranges like normal ranges in diagnosticsRalf Jung-28/+38
2018-11-07Auto merge of #55549 - RalfJung:miri-visitor, r=oli-obkbors-354/+635
Value visitors for miri Generalize the traversal part of validation to a `ValueVisitor`. ~~This includes https://github.com/rust-lang/rust/pull/55316, [click here](https://github.com/RalfJung/rust/compare/retagging...RalfJung:miri-visitor) for just the new commits.~~
2018-11-06Auto merge of #55262 - oli-obk:dangling_alloc_id_ice, r=RalfJungbors-0/+5
Change the ICE from #55223 to a hard error cc @SimonSapin r? @RalfJung fixes https://github.com/rust-lang/rust/issues/55287
2018-11-06make sure we only guess field alignment at offset 0Ralf Jung-11/+14
2018-11-05walk_value: more tracingRalf Jung-0/+1
2018-11-05note some FIXMEsRalf Jung-0/+6
2018-11-05make it more obvious that the size is not relevantRalf Jung-3/+4
2018-11-05make ValueVisitor mut-polymorphicRalf Jung-218/+189
2018-11-05machine hooks for ptr (de)ref also need layout, and then they do not need ↵Ralf Jung-31/+19
the size
2018-11-05FIXMERalf Jung-1/+1
2018-11-05visit_aggregate with an iterator; fix some comment typosRalf Jung-40/+65
2018-11-05the visitor can already load the value for visit_primitiveRalf Jung-15/+18
2018-11-05all values can convert to operatorsRalf Jung-45/+46
2018-11-05finally this actually looks like a visitorRalf Jung-132/+118
2018-11-05use more traditional walk_array/visit_array instead of the handle_array hookRalf Jung-71/+73
2018-11-05converting a VisitorValue to a MemPlace must not mutate anythingRalf Jung-11/+12
2018-11-05fix validation error on non-integer enum discriminantsRalf Jung-22/+25
2018-11-05let the Value handle enum projections, so the visitor does not have to careRalf Jung-30/+56
2018-11-05provide some default implementationsRalf Jung-6/+9
2018-11-05add visit() hook to the traitRalf Jung-15/+23
2018-11-05fix for pre-NLL rustcRalf Jung-1/+1
2018-11-05also allow visiting places and mplacesRalf Jung-9/+76
2018-11-05reduce the amount of traversal/projection code that the visitor has to ↵Ralf Jung-158/+235
implement itself
2018-11-05generalize the traversal part of validation to a ValueVisitorRalf Jung-302/+421
2018-11-05miri: binary_op_val -> binary_op_immRalf Jung-5/+5
2018-11-04rustc_target: pass contexts by reference, not value.Eduard-Mihai Burtescu-72/+34
2018-11-04test for offset and alignment of the sized part, instead of field countRalf Jung-5/+5
2018-11-04miri: accept extern types in structs if they are the only fieldRalf Jung-3/+15