+ (PpmMir, None) => {
+ debug!("pretty printing MIR for whole crate");
+ let ast_map = ast_map.expect("--unpretty mir missing ast_map");
+ abort_on_err(driver::phase_3_run_analysis_passes(&sess,
+ &cstore,
+ ast_map,
+ &arenas,
+ &id,
+ resolve::MakeGlobMap::No,
+ |tcx, mir_map, _, _| {
+ let mir_map = mir_map.unwrap();
+
+ for (nodeid, mir) in &mir_map.map {
+ try!(writeln!(out, "MIR for {}", tcx.map.node_to_string(*nodeid)));
+ try!(write_mir_pretty(mir, &mut out));
+ }
+
+ Ok(())
+ }), &sess)
+ }
+
+ (PpmMir, Some(uii)) => {
+ debug!("pretty printing MIR for {:?}", uii);
+ let ast_map = ast_map.expect("--unpretty mir missing ast_map");
+ let nodeid = uii.to_one_node_id("--unpretty", &sess, &ast_map);
+
+ abort_on_err(driver::phase_3_run_analysis_passes(&sess,
+ &cstore,
+ ast_map,
+ &arenas,
+ &id,
+ resolve::MakeGlobMap::No,
+ |tcx, mir_map, _, _| {
+ let mir_map = mir_map.unwrap();
+ try!(writeln!(out, "MIR for {}", tcx.map.node_to_string(nodeid)));
+ let mir = mir_map.map.get(&nodeid).unwrap_or_else(|| {
+ sess.fatal(&format!("no MIR map entry for node {}", nodeid))
+ });
+ write_mir_pretty(mir, &mut out)
+ }), &sess)
+ }
+