| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2020-08-30 | mv compiler to compiler/ | mark | -182/+0 | |
| 2020-08-01 | Auto merge of #74717 - ↵ | bors | -4/+4 | |
| davidtwco:issue-74636-polymorphized-closures-inherited-params, r=oli-obk mir: add `used_generic_parameters_needs_subst` Fixes #74636. This PR adds a `used_generic_parameters_needs_subst` helper function which checks whether a type needs substitution, but only for parameters that the `unused_generic_params` query considers used. This is used in the MIR interpreter to make the check for some pointer casts and for reflection intrinsics more precise. I've opened this as a draft PR because this might not be the approach we want to fix this issue and we have to decide what to do about the reflection case. r? @eddyb cc @lcnr @wesleywiser | ||||
| 2020-07-31 | interp: needs_subst -> ensure_monomorphic_enough | David Wood | -4/+4 | |
| This commit adds a `ensure_monomorphic_enough` utility function which checks whether a type needs substitution, but only for parameters that the `unused_generic_params` query considers used. `ensure_monomorphic_enough` is then used throughout interpret where `needs_subst` checks previously existed (in particular, for some pointer casts and for reflection intrinsics more precise). Signed-off-by: David Wood <david@davidtw.co> | ||||
| 2020-07-22 | renamed ScalarMaybeUninit::not_undef to check_init | Philippe Nadon | -4/+4 | |
| Renamed the function ScalarMaybeUninit::not_undef to ScalarMaybeUninit::check_init in the file src/librustc_middle/mir/interpret/value.rs, to reflect changes in terminology used. Related issue rust-lang#71193 | ||||
| 2020-07-20 | mir: `unused_generic_params` query | David Wood | -1/+1 | |
| This commit implements the `unused_generic_params` query, an initial version of polymorphization which detects when an item does not use generic parameters and is being needlessly monomorphized as a result. Signed-off-by: David Wood <david@davidtw.co> | ||||
| 2020-06-14 | keep root_span and tcx together | Ralf Jung | -4/+4 | |
| 2020-06-12 | make miri InterpCx TyCtxtAt a TyCtxt, and separately remember the root span ↵ | Ralf Jung | -16/+16 | |
| of the evaluation | ||||
| 2020-05-06 | try_validation: handle multi-branching, and use macro for most remaining ↵ | Ralf Jung | -4/+1 | |
| manual throw_validation_failure sites | ||||
| 2020-05-06 | properly catch invalid-drop-fn errors | Ralf Jung | -4/+2 | |
| 2020-04-15 | Make the necessary changes to support concurrency in Miri. | Vytautas Astrauskas | -1/+1 | |
| 2020-04-02 | nix rustc_target::abi::* reexport in ty::layout | Mazdak Farrokhzad | -1/+1 | |
| 2020-03-30 | rustc -> rustc_middle part 2 | Mazdak Farrokhzad | -3/+3 | |
| 2020-03-25 | go back to infix ops for Size | Ralf Jung | -4/+2 | |
| 2020-03-25 | miri: avoid a bunch of casts by offering usized-based field indexing | Ralf Jung | -3/+4 | |
| 2020-03-25 | use checked casts and arithmetic in Miri engine | Ralf Jung | -3/+6 | |
| 2020-01-05 | Use Instance.ty_env instead of Instance.monomorphic_ty in interpreter | Aaron Hill | -1/+1 | |
| 2020-01-05 | Rename Instance.ty to Instance.monomorphic_ty | Aaron Hill | -1/+1 | |
| 2019-12-22 | Format the world | Mark Rousskov | -52/+49 | |
| 2019-12-12 | dont ICE in case of invalid drop fn | Ralf Jung | -1/+12 | |
| 2019-12-02 | Add From instances for Pointer -> ScalarMaybeUndef and Pointer -> Immediate | Ralf Jung | -2/+2 | |
| 2019-11-21 | Aggregation of drive-by cosmetic changes. | Alexander Regueiro | -11/+11 | |
| 2019-11-11 | Update | Aaron Hill | -1/+1 | |
| 2019-11-11 | Some cleanup | Aaron Hill | -0/+21 | |
| 2019-11-08 | rename Memory::get methods to get_raw to indicate their unchecked nature | Ralf Jung | -19/+14 | |
| 2019-08-30 | miri: detect too large dynamically sized objects | Ralf Jung | -1/+6 | |
| 2019-08-24 | Ensure miri can do bit ops on pointer values | Oliver Scherer | -2/+4 | |
| 2019-08-19 | rustc_mir: disallow non-monomorphic vtables. | Eduard-Mihai Burtescu | -1/+6 | |
| 2019-08-19 | rustc_mir: remove wrong calls to subst_from_frame_and_normalize_erasing_regions. | Eduard-Mihai Burtescu | -1/+0 | |
| 2019-08-19 | start cleaning up subst mess | Ralf Jung | -1/+1 | |
| fix an ICE fix method name | ||||
| 2019-07-30 | adding throw_ and err_ macros for InterpError | Saleem Jaffer | -1/+1 | |
| 2019-07-30 | addding an interp_error module | Saleem Jaffer | -3/+3 | |
| 2019-07-29 | fixing fallout due to InterpError refactor | Saleem Jaffer | -2/+2 | |
| 2019-07-04 | make Memory::get_fn take a Scalar like most of the Memory API surface | Ralf Jung | -1/+1 | |
| 2019-07-04 | Add basic support for "other" kinds of values for function pointers, ↵ | Ralf Jung | -4/+6 | |
| determined by the machine instance. So far, however, calling such a function will fail. | ||||
| 2019-06-27 | rename InterpretCx -> InterpCx | Ralf Jung | -2/+2 | |
| That's more consistent with InterpResult and InterpError. | ||||
| 2019-06-23 | make code more symmetric | Ralf Jung | -3/+5 | |
| 2019-06-23 | Centralize bounds, alignment and NULL checking for memory accesses in one ↵ | Ralf Jung | -5/+15 | |
| function: memory.check_ptr_access That function also takes care of converting a Scalar to a Pointer, should that be needed. Not all accesses need that though: if the access has size 0, None is returned. Everyone accessing memory based on a Scalar should use this method to get the Pointer they need. All operations on the Allocation work on Pointer inputs and expect all the checks to have happened (and will ICE if the bounds are violated). The operations on Memory work on Scalar inputs and do the checks themselves. The only other public method to check pointers is memory.ptr_may_be_null, which is needed in a few places. With this, we can make all the other methods (tests for a pointer being in-bounds and checking alignment) private helper methods, used to implement the two public methods. That maks the public API surface much easier to use and harder to mis-use. While I am at it, this also removes the assumption that the vtable part of a `dyn Trait`-fat-pointer is a `Pointer` (as opposed to a pointer cast to an integer, stored as raw bits). | ||||
| 2019-06-12 | rustc: replace `TyCtxt<'a, 'gcx, 'tcx>` with `TyCtxt<'tcx, 'gcx, 'tcx>`. | Eduard-Mihai Burtescu | -1/+1 | |
| 2019-06-08 | rename EvalResult -> InterpResult and EvalError -> InterpErrorInfo | Ralf Jung | -4/+4 | |
| 2019-06-02 | deduplicate ty::Instance constructors | Mark Mansi | -2/+3 | |
| 2019-06-02 | cache tag for vtable; fn_alloc's don't have a stack nor tag | Ralf Jung | -4/+4 | |
| 2019-04-28 | Fix lint findings in librustc_mir | flip1995 | -1/+1 | |
| 2019-04-16 | Miri: refactor new allocation tagging | Ralf Jung | -1/+1 | |
| 2019-04-12 | Auto merge of #59536 - Zoxc:the-arena, r=eddyb | bors | -2/+1 | |
| Introduce an arena type which may be used to allocate a list of types with destructors You can also specify that you want deserializers for `&'tcx [T]` and `&'tcx T` for a type in the list, which will allocate those using the arena. Based on https://github.com/rust-lang/rust/pull/59517 and https://github.com/rust-lang/rust/pull/59533. Look at the last commit for the interesting changes. An alternative to https://github.com/rust-lang/rust/pull/56448. cc @michaelwoerister @eddyb r? @oli-obk | ||||
| 2019-04-08 | Apply suggestions from code review | Ralf Jung | -1/+1 | |
| typos Co-Authored-By: RalfJung <post@ralfj.de> | ||||
| 2019-04-07 | implement by-value object safety | Ralf Jung | -2/+9 | |
| 2019-04-05 | Introduce an arena type which may be used to allocate a list of types with ↵ | John Kåre Alsaker | -2/+1 | |
| destructors | ||||
| 2019-03-26 | renames EvalContext to InterpretCx. | kenta7777 | -2/+2 | |
| 2019-02-13 | make OpTy.op private, and ImmTy.imm public instead | Ralf Jung | -0/+4 | |
| 2019-02-10 | rustc: doc comments | Alexander Regueiro | -1/+1 | |
