summaryrefslogtreecommitdiff
path: root/src/hir
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-06-16 10:35:30 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-06-16 10:35:30 +0800
commitbbb7023bee036f87b45ba0555e60ce33837460b0 (patch)
treea1e1210bee4a1da459a3be90fb67dc586e400bb5 /src/hir
parent94015a6835ae0d050a83dee1622e1d1b6851f556 (diff)
downloadmrust-bbb7023bee036f87b45ba0555e60ce33837460b0.tar.gz
MIR - Unify temporaries and variables
Diffstat (limited to 'src/hir')
-rw-r--r--src/hir/deserialise.cpp12
-rw-r--r--src/hir/serialise.cpp18
2 files changed, 12 insertions, 18 deletions
diff --git a/src/hir/deserialise.cpp b/src/hir/deserialise.cpp
index f4dfdf19..3cb58a2e 100644
--- a/src/hir/deserialise.cpp
+++ b/src/hir/deserialise.cpp
@@ -338,11 +338,10 @@ namespace {
switch(auto tag = m_in.read_tag())
{
#define _(x, ...) case ::MIR::LValue::TAG_##x: return ::MIR::LValue::make_##x( __VA_ARGS__ );
- _(Variable, static_cast<unsigned int>(m_in.read_count()) )
- _(Temporary, { static_cast<unsigned int>(m_in.read_count()) } )
- _(Argument, { static_cast<unsigned int>(m_in.read_count()) } )
- _(Static, deserialise_path() )
_(Return, {})
+ _(Argument, { static_cast<unsigned int>(m_in.read_count()) } )
+ _(Local, static_cast<unsigned int>(m_in.read_count()) )
+ _(Static, deserialise_path() )
_(Field, {
box$( deserialise_mir_lvalue() ),
static_cast<unsigned int>(m_in.read_count())
@@ -962,8 +961,8 @@ namespace {
::MIR::Function rv;
- rv.named_variables = deserialise_vec< ::HIR::TypeRef>( );
- rv.temporaries = deserialise_vec< ::HIR::TypeRef>( );
+ rv.locals = deserialise_vec< ::HIR::TypeRef>( );
+ //rv.local_names = deserialise_vec< ::std::string>( );
rv.drop_flags = deserialise_vec<bool>();
rv.blocks = deserialise_vec< ::MIR::BasicBlock>( );
@@ -1012,7 +1011,6 @@ namespace {
}
case 4:
return ::MIR::Statement::make_ScopeEnd({
- deserialise_vec<unsigned int>(),
deserialise_vec<unsigned int>()
});
default:
diff --git a/src/hir/serialise.cpp b/src/hir/serialise.cpp
index 77e17dba..cddbf0b8 100644
--- a/src/hir/serialise.cpp
+++ b/src/hir/serialise.cpp
@@ -457,8 +457,8 @@ namespace {
void serialise(const ::MIR::Function& mir)
{
// Write out MIR.
- serialise_vec( mir.named_variables );
- serialise_vec( mir.temporaries );
+ serialise_vec( mir.locals );
+ //serialise_vec( mir.slot_names );
serialise_vec( mir.drop_flags );
serialise_vec( mir.blocks );
}
@@ -498,8 +498,7 @@ namespace {
),
(ScopeEnd,
m_out.write_tag(4);
- serialise_vec(e.vars);
- serialise_vec(e.tmps);
+ serialise_vec(e.slots);
)
)
}
@@ -571,20 +570,17 @@ namespace {
TRACE_FUNCTION_F("LValue = "<<lv);
m_out.write_tag( static_cast<int>(lv.tag()) );
TU_MATCHA( (lv), (e),
- (Variable,
- m_out.write_count(e);
- ),
- (Temporary,
- m_out.write_count(e.idx);
+ (Return,
),
(Argument,
m_out.write_count(e.idx);
),
+ (Local,
+ m_out.write_count(e);
+ ),
(Static,
serialise_path(e);
),
- (Return,
- ),
(Field,
serialise(e.val);
m_out.write_count(e.field_index);