Auto merge of #37445 - nnethercote:shrink-Expr_, r=eddyb
Shrink Expr_::ExprInlineAsm. On 64-bit this reduces the size of `Expr_` from 144 to 64 bytes, and reduces the size of `Expr` from 176 to 96 bytes. For the workload in #36799 this reduces the RSS for the "lowering ast -> hir" phase and all subsequent phases by 50 MiB, which reduces the peak RSS for that workload by about 1%. Not huge, but it's a very easy improvement. r? @eddyb
This commit is contained in:
commit
f5a702dc78
@ -1218,7 +1218,7 @@ fn make_struct(this: &mut LoweringContext,
|
||||
alignstack,
|
||||
dialect,
|
||||
expn_id,
|
||||
}) => hir::ExprInlineAsm(hir::InlineAsm {
|
||||
}) => hir::ExprInlineAsm(P(hir::InlineAsm {
|
||||
inputs: inputs.iter().map(|&(ref c, _)| c.clone()).collect(),
|
||||
outputs: outputs.iter()
|
||||
.map(|out| {
|
||||
@ -1236,7 +1236,7 @@ fn make_struct(this: &mut LoweringContext,
|
||||
alignstack: alignstack,
|
||||
dialect: dialect,
|
||||
expn_id: expn_id,
|
||||
}, outputs.iter().map(|out| self.lower_expr(&out.expr)).collect(),
|
||||
}), outputs.iter().map(|out| self.lower_expr(&out.expr)).collect(),
|
||||
inputs.iter().map(|&(_, ref input)| self.lower_expr(input)).collect()),
|
||||
ExprKind::Struct(ref path, ref fields, ref maybe_expr) => {
|
||||
hir::ExprStruct(self.lower_path(path),
|
||||
|
@ -940,7 +940,7 @@ pub enum Expr_ {
|
||||
ExprRet(Option<P<Expr>>),
|
||||
|
||||
/// Inline assembly (from `asm!`), with its outputs and inputs.
|
||||
ExprInlineAsm(InlineAsm, Vec<P<Expr>>, Vec<P<Expr>>),
|
||||
ExprInlineAsm(P<InlineAsm>, HirVec<P<Expr>>, HirVec<P<Expr>>),
|
||||
|
||||
/// A struct or struct-like variant literal expression.
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user