diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2017-04-25 18:23:33 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2017-05-02 14:01:01 -0400 |
| commit | 46b342fbc03664566d65e1b3248f89cbef93ef4c (patch) | |
| tree | 7240a1ab4273707acd552117d45621eee0adff18 /src/librustc_driver | |
| parent | 11b6b0663ae0a89eea913f44aa1eb859b0ef0d3a (diff) | |
| download | rust-46b342fbc03664566d65e1b3248f89cbef93ef4c.tar.gz rust-46b342fbc03664566d65e1b3248f89cbef93ef4c.zip | |
simplify the MirPass traits and passes dramatically
Overall goal: reduce the amount of context a mir pass needs so that it resembles a query. - The hooks are no longer "threaded down" to the pass, but rather run automatically from the top-level (we also thread down the current pass number, so that the files are sorted better). - The hook now receives a *single* callback, rather than a callback per-MIR. - The traits are no longer lifetime parameters, which moved to the methods -- given that we required `for<'tcx>` objecs, there wasn't much point to that. - Several passes now store a `String` instead of a `&'l str` (again, no point).
Diffstat (limited to 'src/librustc_driver')
| -rw-r--r-- | src/librustc_driver/driver.rs | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 5d6bc235761..64fb2168ca1 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -979,8 +979,7 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session, passes.push_pass(box mir::transform::simplify::SimplifyCfg::new("initial")); passes.push_pass(box mir::transform::type_check::TypeckMir); passes.push_pass(box mir::transform::qualify_consts::QualifyAndPromoteConstants); - passes.push_pass( - box mir::transform::simplify_branches::SimplifyBranches::new("initial")); + passes.push_pass(box mir::transform::simplify_branches::SimplifyBranches::new("initial")); passes.push_pass(box mir::transform::simplify::SimplifyCfg::new("qualify-consts")); // And run everything. passes.run_passes(tcx); |
