Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 8 pull requests #117228

Merged
merged 29 commits into from
Oct 26, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e68edb8
refactor(compiler/resolve): simplify some code
Fenex Oct 18, 2023
855444e
mv tests
estebank Oct 24, 2023
2dec1bc
Avoid unbounded O(n^2) when parsing nested type args
estebank Oct 24, 2023
e4c41b0
Add arg_count field to Body in Stable MIR
klinvill Oct 23, 2023
93d1b3e
Replace arg_count in public API with return/arg getters
klinvill Oct 25, 2023
f4d80a5
Add public API to retrieve internal locals
klinvill Oct 25, 2023
372c533
Make locals field private
klinvill Oct 25, 2023
39b293f
Add a public API to get all body locals
klinvill Oct 25, 2023
72e8690
Remove unused `never_type` feature.
nnethercote Oct 24, 2023
ca29c27
Reduce exposure of three functions used only within `rustc_incremental`.
nnethercote Oct 24, 2023
8da1b33
Move a `use` to a more sensible spot.
nnethercote Oct 24, 2023
3cf2a74
Tiny comment fixes.
nnethercote Oct 25, 2023
e0c990e
Reduce some function exposure.
nnethercote Oct 25, 2023
fe4dfb8
Rename internal_locals to inner_locals
klinvill Oct 25, 2023
4b23bd4
Update Place and Operand to take slices
klinvill Oct 25, 2023
bac7d5b
Add test for smir locals
klinvill Oct 25, 2023
9f5fc02
The value of `-Cinstrument-coverage=` doesn't need to be `Option`
Zalathar Oct 25, 2023
ab7f64c
Revert "Remove TaKO8Ki from reviewers"
TaKO8Ki Oct 26, 2023
d55487d
Use two slice expressions to save on an offset repetition
oli-obk Oct 26, 2023
d572729
Quietly fail if an error has already occurred
oli-obk Oct 26, 2023
b1b1458
Replace type flag HAS_TY_GENERATOR with HAS_TY_COROUTINE
fmease Oct 26, 2023
17fb2f4
Rollup merge of #116905 - Fenex:refactor/compiler/resolve, r=petroche…
matthiaskrgr Oct 26, 2023
b66c6e7
Rollup merge of #117095 - klinvill:smir-fn-arg-count, r=oli-obk
matthiaskrgr Oct 26, 2023
7eb0548
Rollup merge of #117143 - estebank:issue-117080, r=wesleywiser
matthiaskrgr Oct 26, 2023
577026c
Rollup merge of #117194 - nnethercote:rustc_incremental, r=cjgillot
matthiaskrgr Oct 26, 2023
36b794e
Rollup merge of #117202 - TaKO8Ki:revert-remove-TaKO8Ki-from-reviewer…
matthiaskrgr Oct 26, 2023
24bdc37
Rollup merge of #117207 - Zalathar:no-option, r=compiler-errors
matthiaskrgr Oct 26, 2023
70a4678
Rollup merge of #117214 - oli-obk:error_shenanigans, r=compiler-errors
matthiaskrgr Oct 26, 2023
a461de7
Rollup merge of #117221 - fmease:TypeFlags-HAS_TY_GENERATOR-to-COROUT…
matthiaskrgr Oct 26, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add arg_count field to Body in Stable MIR
This field allows SMIR consumers to identify which locals correspond to
argument locals. It simply exposes the arg_count field from the MIR
representation.
  • Loading branch information
klinvill committed Oct 25, 2023
commit e4c41b07f0b7fd15e19818b3349bb4bf726342d2
1 change: 1 addition & 0 deletions compiler/rustc_smir/src/rustc_smir/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ impl<'tcx> Stable<'tcx> for mir::Body<'tcx> {
span: decl.source_info.span.stable(tables),
})
.collect(),
arg_count: self.arg_count,
}
}
}
Expand Down
10 changes: 10 additions & 0 deletions compiler/stable_mir/src/mir/body.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,20 @@ use crate::ty::{AdtDef, ClosureDef, Const, CoroutineDef, GenericArgs, Movability
use crate::Opaque;
use crate::{ty::Ty, Span};

/// The SMIR representation of a single function.
#[derive(Clone, Debug)]
pub struct Body {
pub blocks: Vec<BasicBlock>,

/// Declarations of locals.
///
/// The first local is the return value pointer, followed by `arg_count`
/// locals for the function arguments, followed by any user-declared
/// variables and temporaries.
pub locals: LocalDecls,

/// The number of arguments this function takes.
pub arg_count: usize,
}

type LocalDecls = Vec<LocalDecl>;
Expand Down