diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-06-16 10:35:30 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-06-16 10:35:30 +0800 |
commit | bbb7023bee036f87b45ba0555e60ce33837460b0 (patch) | |
tree | a1e1210bee4a1da459a3be90fb67dc586e400bb5 /src/hir | |
parent | 94015a6835ae0d050a83dee1622e1d1b6851f556 (diff) | |
download | mrust-bbb7023bee036f87b45ba0555e60ce33837460b0.tar.gz |
MIR - Unify temporaries and variables
Diffstat (limited to 'src/hir')
-rw-r--r-- | src/hir/deserialise.cpp | 12 | ||||
-rw-r--r-- | src/hir/serialise.cpp | 18 |
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); |