1. 07 9月, 2021 1 次提交
  2. 30 8月, 2020 1 次提交
  3. 08 5月, 2020 1 次提交
    • D
      Remove old `util/liveness.rs` module · 34508d88
      Dylan MacKenzie 提交于
      The liveness dataflow analysis now lives in
      `librustc_mir/dataflow/impls/liveness.rs`. The borrow-checker has an
      abstraction around of "defs" and "uses" that I've made module private. I
      would have moved it to `util/def_use.rs`, but there's a slightly
      different abstraction used for copy propagation with that name.
      34508d88
  4. 30 3月, 2020 2 次提交
  5. 23 12月, 2019 1 次提交
  6. 12 12月, 2019 1 次提交
  7. 04 12月, 2019 1 次提交
  8. 18 6月, 2019 1 次提交
  9. 14 6月, 2019 1 次提交
  10. 12 6月, 2019 2 次提交
  11. 10 6月, 2019 1 次提交
  12. 29 5月, 2019 1 次提交
    • C
      Changes the type `mir::Mir` into `mir::Body` · 6e5e0daf
      Claude-Alban RANÉLY-VERGÉ-DÉPRÉ 提交于
      The commit should have changed comments as well.
      At the time of writting, it passes the tidy and check tool.
      
      Revisions asked by eddyb :
      - Renamed of all the occurences of {visit/super}_mir
      - Renamed test structures `CachedMir` to `Cached`
      
      Fixing the missing import on `AggregateKind`
      6e5e0daf
  13. 27 4月, 2019 1 次提交
  14. 20 2月, 2019 1 次提交
  15. 08 2月, 2019 1 次提交
  16. 26 12月, 2018 1 次提交
  17. 19 10月, 2018 1 次提交
  18. 23 9月, 2018 1 次提交
    • D
      Refactor explain_borrow to return explanation. · 10af6a2b
      David Wood 提交于
      Previously, explain_borrow would emit an error with the explanation of
      the a borrow. Now, it returns a enum with what the explanation for the
      borrow is and any relevant spans or information such that the calling
      code can choose to emit the same note/suggestion as before by calling
      the emit method on the new enum.
      10af6a2b
  19. 28 8月, 2018 1 次提交
  20. 23 7月, 2018 1 次提交
  21. 13 7月, 2018 1 次提交
    • N
      compute region values using SCCs not iterative flow · ed366980
      Niko Matsakis 提交于
      The strategy is this:
      
      - we compute SCCs once all outlives constraints are known
      - we allocate a set of values **per region** for storing liveness
      - we allocate a set of values **per SCC** for storing the final values
      - when we add a liveness constraint to the region R, we also add it
        to the final value of the SCC to which R belongs
      - then we can apply the constraints by just walking the DAG for the
        SCCs and union'ing the children (which have their liveness
        constraints within)
      
      There are a few intermediate refactorings that I really ought to have
      broken out into their own commits:
      
      - reverse the constraint graph so that `R1: R2` means `R1 -> R2` and
        not `R2 -> R1`. This fits better with the SCC computation and new
        style of inference (`->` now means "take value from" and not "push
        value into")
        - this does affect some of the UI tests, since they traverse the
          graph, but mostly the artificial ones and they don't necessarily
          seem worse
      - put some things (constraint set, etc) into `Rc`. This lets us root
        them to permit mutation and iteration. It also guarantees they don't
        change, which is critical to the correctness of the algorithm.
      - Generalize various helpers that previously operated only on points
        to work on any sort of region element.
      ed366980
  22. 02 7月, 2018 2 次提交