summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-11-04 11:35:05 +0800
committerJohn Hodge <tpg@mutabah.net>2016-11-04 11:35:05 +0800
commitd45ed7dacfb36edc80127ff90b1bdc0ca2279a2a (patch)
tree13be3f98551b368e4544f1c67db4aa4af64bebdf
parent59ae3040b5805d2a68773cbac897d3f96fb73921 (diff)
downloadmrust-d45ed7dacfb36edc80127ff90b1bdc0ca2279a2a.tar.gz
MIR Gen - (minor) Split a large TU_MATCH to improve compiler debug
-rw-r--r--src/mir/mir_builder.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mir/mir_builder.cpp b/src/mir/mir_builder.cpp
index f0cb8f27..c2667025 100644
--- a/src/mir/mir_builder.cpp
+++ b/src/mir/mir_builder.cpp
@@ -505,6 +505,7 @@ void MirBuilder::end_split_arm_early(const Span& sp)
void MirBuilder::complete_scope(ScopeDef& sd)
{
sd.complete = true;
+
TU_MATCHA( (sd.data), (e),
(Temporaries,
DEBUG("Temporaries " << e.temporaries);
@@ -516,8 +517,16 @@ void MirBuilder::complete_scope(ScopeDef& sd)
DEBUG("Loop");
),
(Split,
+ )
+ )
+
+ // No macro for better debug output.
+ if( sd.data.is_Split() )
+ {
+ auto& e = sd.data.as_Split();
+
assert( e.arms.size() > 1 );
- DEBUG("Split - " << (e.arms.size() - 1) << " arms");
+ TRACE_FUNCTION_F("Split - " << (e.arms.size() - 1) << " arms");
e.arms.pop_back();
// Merge all arms and apply upwards
@@ -643,8 +652,7 @@ void MirBuilder::complete_scope(ScopeDef& sd)
//}
}
}
- )
- )
+ }
}
void MirBuilder::with_val_type(const Span& sp, const ::MIR::LValue& val, ::std::function<void(const ::HIR::TypeRef&)> cb)