move to only def-id passes
this temporary disables `inline`
This commit is contained in:
parent
668886a6cc
commit
f23a7bc98a
@ -93,7 +93,7 @@ pub fn default_name<T: ?Sized>() -> Cow<'static, str> {
|
||||
pub trait PassHook {
|
||||
fn on_mir_pass<'a, 'tcx>(&self,
|
||||
tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||
pass: &Pass,
|
||||
pass_name: &str,
|
||||
pass_num: usize,
|
||||
is_after: bool);
|
||||
}
|
||||
@ -173,7 +173,7 @@ pub struct Passes {
|
||||
|
||||
#[derive(Clone)]
|
||||
struct PassSet {
|
||||
passes: Vec<Rc<Pass>>,
|
||||
passes: Vec<Rc<DefIdPass>>,
|
||||
}
|
||||
|
||||
/// The number of "pass sets" that we have:
|
||||
@ -208,19 +208,23 @@ impl<'a, 'tcx> Passes {
|
||||
// NB: passes are numbered from 1, since "construction" is zero.
|
||||
for (pass, pass_num) in set.passes.iter().zip(start_num + 1..) {
|
||||
for hook in &self.pass_hooks {
|
||||
hook.on_mir_pass(tcx, &**pass, pass_num, false);
|
||||
hook.on_mir_pass(tcx, &pass.name(), pass_num, false);
|
||||
}
|
||||
|
||||
time(tcx.sess.time_passes(), &*pass.name(), || pass.run_pass(tcx));
|
||||
time(tcx.sess.time_passes(), &*pass.name(), || {
|
||||
for &def_id in tcx.mir_keys(LOCAL_CRATE).iter() {
|
||||
pass.run_pass(tcx, def_id);
|
||||
}
|
||||
});
|
||||
|
||||
for hook in &self.pass_hooks {
|
||||
hook.on_mir_pass(tcx, &**pass, pass_num, true);
|
||||
hook.on_mir_pass(tcx, &pass.name(), pass_num, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pushes a built-in pass.
|
||||
pub fn push_pass<T: Pass + 'static>(&mut self, set: usize, pass: T) {
|
||||
pub fn push_pass<T: DefIdPass + 'static>(&mut self, set: usize, pass: T) {
|
||||
self.sets[set].passes.push(Rc::new(pass));
|
||||
}
|
||||
|
||||
|
@ -929,7 +929,7 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
|
||||
passes.push_pass(MIR_OPTIMIZED, mir::transform::simplify::SimplifyCfg::new("elaborate-drops"));
|
||||
|
||||
// No lifetime analysis based on borrowing can be done from here on out.
|
||||
passes.push_pass(MIR_OPTIMIZED, mir::transform::inline::Inline);
|
||||
// passes.push_pass(MIR_OPTIMIZED, mir::transform::inline::Inline); // TODO re-enable
|
||||
passes.push_pass(MIR_OPTIMIZED, mir::transform::instcombine::InstCombine);
|
||||
passes.push_pass(MIR_OPTIMIZED, mir::transform::deaggregator::Deaggregator);
|
||||
passes.push_pass(MIR_OPTIMIZED, mir::transform::copy_prop::CopyPropagation);
|
||||
|
@ -50,7 +50,7 @@ impl PassHook for DumpMir {
|
||||
fn on_mir_pass<'a, 'tcx>(
|
||||
&self,
|
||||
tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||
pass: &Pass,
|
||||
pass_name: &str,
|
||||
pass_num: usize,
|
||||
is_after: bool)
|
||||
{
|
||||
@ -66,7 +66,7 @@ impl PassHook for DumpMir {
|
||||
mir_util::dump_mir(
|
||||
tcx,
|
||||
pass_num,
|
||||
&*pass.name(),
|
||||
&pass_name,
|
||||
&Disambiguator { is_after },
|
||||
source,
|
||||
&mir
|
||||
|
Loading…
x
Reference in New Issue
Block a user