Skip to content

Commit f23a7bc

Browse files
committed
move to only def-id passes
this temporary disables `inline`
1 parent 668886a commit f23a7bc

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

src/librustc/mir/transform.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ pub fn default_name<T: ?Sized>() -> Cow<'static, str> {
9393
pub trait PassHook {
9494
fn on_mir_pass<'a, 'tcx>(&self,
9595
tcx: TyCtxt<'a, 'tcx, 'tcx>,
96-
pass: &Pass,
96+
pass_name: &str,
9797
pass_num: usize,
9898
is_after: bool);
9999
}
@@ -173,7 +173,7 @@ pub struct Passes {
173173

174174
#[derive(Clone)]
175175
struct PassSet {
176-
passes: Vec<Rc<Pass>>,
176+
passes: Vec<Rc<DefIdPass>>,
177177
}
178178

179179
/// The number of "pass sets" that we have:
@@ -208,19 +208,23 @@ impl<'a, 'tcx> Passes {
208208
// NB: passes are numbered from 1, since "construction" is zero.
209209
for (pass, pass_num) in set.passes.iter().zip(start_num + 1..) {
210210
for hook in &self.pass_hooks {
211-
hook.on_mir_pass(tcx, &**pass, pass_num, false);
211+
hook.on_mir_pass(tcx, &pass.name(), pass_num, false);
212212
}
213213

214-
time(tcx.sess.time_passes(), &*pass.name(), || pass.run_pass(tcx));
214+
time(tcx.sess.time_passes(), &*pass.name(), || {
215+
for &def_id in tcx.mir_keys(LOCAL_CRATE).iter() {
216+
pass.run_pass(tcx, def_id);
217+
}
218+
});
215219

216220
for hook in &self.pass_hooks {
217-
hook.on_mir_pass(tcx, &**pass, pass_num, true);
221+
hook.on_mir_pass(tcx, &pass.name(), pass_num, true);
218222
}
219223
}
220224
}
221225

222226
/// Pushes a built-in pass.
223-
pub fn push_pass<T: Pass + 'static>(&mut self, set: usize, pass: T) {
227+
pub fn push_pass<T: DefIdPass + 'static>(&mut self, set: usize, pass: T) {
224228
self.sets[set].passes.push(Rc::new(pass));
225229
}
226230

src/librustc_driver/driver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,7 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
929929
passes.push_pass(MIR_OPTIMIZED, mir::transform::simplify::SimplifyCfg::new("elaborate-drops"));
930930

931931
// No lifetime analysis based on borrowing can be done from here on out.
932-
passes.push_pass(MIR_OPTIMIZED, mir::transform::inline::Inline);
932+
// passes.push_pass(MIR_OPTIMIZED, mir::transform::inline::Inline); // TODO re-enable
933933
passes.push_pass(MIR_OPTIMIZED, mir::transform::instcombine::InstCombine);
934934
passes.push_pass(MIR_OPTIMIZED, mir::transform::deaggregator::Deaggregator);
935935
passes.push_pass(MIR_OPTIMIZED, mir::transform::copy_prop::CopyPropagation);

src/librustc_mir/transform/dump_mir.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ impl PassHook for DumpMir {
5050
fn on_mir_pass<'a, 'tcx>(
5151
&self,
5252
tcx: TyCtxt<'a, 'tcx, 'tcx>,
53-
pass: &Pass,
53+
pass_name: &str,
5454
pass_num: usize,
5555
is_after: bool)
5656
{
@@ -66,7 +66,7 @@ impl PassHook for DumpMir {
6666
mir_util::dump_mir(
6767
tcx,
6868
pass_num,
69-
&*pass.name(),
69+
&pass_name,
7070
&Disambiguator { is_after },
7171
source,
7272
&mir

0 commit comments

Comments
 (0)