1. 19 8月, 2020 1 次提交
  2. 18 8月, 2020 1 次提交
  3. 17 8月, 2020 3 次提交
  4. 16 8月, 2020 2 次提交
  5. 15 8月, 2020 4 次提交
  6. 13 8月, 2020 3 次提交
  7. 11 8月, 2020 1 次提交
  8. 10 8月, 2020 1 次提交
  9. 09 8月, 2020 2 次提交
  10. 08 8月, 2020 8 次提交
    • P
      Miri: Renamed "undef" to "uninit" · 0c6e8b61
      Philippe Nadon 提交于
      Renamed remaining references to "undef" to "uninit" when referring to Miri.
      
      Impacted directories are:
      
      - src/librustc_codegen_llvm/consts.rs
      - src/librustc_middle/mir/interpret/
      - src/librustc_middle/ty/print/pretty.rs
      - src/librustc_mir/
      - src/tools/clippy/clippy_lints/src/consts.rs
      
      Upon building Miri based on the new changes it was verified that no changes needed to be made with the Miri project.
      
      Related issue #71193
      0c6e8b61
    • N
      Eliminate the `SessionGlobals` from `librustc_ast`. · e539dd65
      Nicholas Nethercote 提交于
      By moving `{known,used}_attrs` from `SessionGlobals` to `Session`. This
      means they are accessed via the `Session`, rather than via TLS. A few
      `Attr` methods and `librustc_ast` functions are now methods of
      `Session`.
      
      All of this required passing a `Session` to lots of functions that didn't
      already have one. Some of these functions also had arguments removed, because
      those arguments could be accessed directly via the `Session` argument.
      
      `contains_feature_attr()` was dead, and is removed.
      
      Some functions were moved from `librustc_ast` elsewhere because they now need
      to access `Session`, which isn't available in that crate.
      - `entry_point_type()` --> `librustc_builtin_macros`
      - `global_allocator_spans()` --> `librustc_metadata`
      - `is_proc_macro_attr()` --> `Session`
      e539dd65
    • M
    • D
      instance: polymorphize `FnDef` substs · ac50d617
      David Wood 提交于
      This commit extends previous polymorphization of substs to polymorphize
      `FnDef`.
      Signed-off-by: NDavid Wood <david@davidtw.co>
      ac50d617
    • D
      instance: avoid unnecessary `mk_` calls · 4ccaf6f3
      David Wood 提交于
      This commit avoids unnecessary calls to `mk_closure` and `mk_generator`
      by checking if the polymorphized substs match the original substs.
      Signed-off-by: NDavid Wood <david@davidtw.co>
      4ccaf6f3
    • D
      ty: add `MAY_POLYMORPHIZE` flag · 5827b5a4
      David Wood 提交于
      This commit adds a `MAY_POLYMORPHIZE` which checks for closures and
      generators so that polymorphization of substs does not need to traverse
      every substs.
      Signed-off-by: NDavid Wood <david@davidtw.co>
      5827b5a4
    • D
      instance: always polymorphize substs · 0d9924a8
      David Wood 提交于
      By always polymorphizing substitutions, functions which take closures as
      arguments (e.g. `impl Fn()`) can have fewer mono items when some of the
      argument closures can be polymorphized.
      Signed-off-by: NDavid Wood <david@davidtw.co>
      0d9924a8
    • D
      instance: polymorphize upvar closures/generators · d9decede
      David Wood 提交于
      This commit modifies how instances are polymorphized so that closures
      and generators have any closures or generators captured within their
      upvars also polymorphized - this avoids symbol clashes with the new
      symbol mangling scheme.
      Signed-off-by: NDavid Wood <david@davidtw.co>
      d9decede
  11. 06 8月, 2020 1 次提交
  12. 05 8月, 2020 2 次提交
    • R
      Completes support for coverage in external crates · e0dc8dec
      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.
      e0dc8dec
    • D
      mir: use `FiniteBitSet<u32>` in polymorphization · 5f89f02c
      David Wood 提交于
      This commit changes polymorphization to return a `FiniteBitSet<u32>`
      rather than a `FiniteBitSet<u64>` because most functions do not use
      anywhere near sixty-four generic parameters so keeping a `u64` around is
      unnecessary in most cases.
      Signed-off-by: NDavid Wood <david@davidtw.co>
      5f89f02c
  13. 04 8月, 2020 2 次提交
  14. 03 8月, 2020 2 次提交
    • N
      8c78fd23
    • N
      Remove `GCX_PTR`. · d93277b9
      Nicholas Nethercote 提交于
      We store an `ImplicitCtxt` pointer in a thread-local value (TLV). This allows
      implicit access to a `GlobalCtxt` and some other things.
      
      We also store a `GlobalCtxt` pointer in `GCX_PTR`. This is always the same
      `GlobalCtxt` as the one within the `ImplicitCtxt` pointer in TLV. `GCX_PTR`
      is only used in the parallel compiler's `handle_deadlock()` function.
      
      This commit does the following.
      - It removes `GCX_PTR`.
      - It also adds `ImplicitCtxt::new()`, which constructs an `ImplicitCtxt` from a
        `GlobalCtxt`. `ImplicitCtxt::new()` + `tls::enter_context()` is now
        equivalent to the old `tls::enter_global()`.
      - Makes `tls::get_tlv()` public for the parallel compiler, because it's
        now used in `handle_deadlock()`.
      d93277b9
  15. 02 8月, 2020 5 次提交
  16. 01 8月, 2020 2 次提交