Skip to content

Commit 590acba

Browse files
CoAlloc: Big Squash
1 parent 439292b commit 590acba

File tree

87 files changed

+2939
-566
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+2939
-566
lines changed

compiler/rustc_arena/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
1212
test(no_crate_inject, attr(deny(warnings)))
1313
)]
14+
#![allow(incomplete_features)]
1415
#![feature(dropck_eyepatch)]
1516
#![feature(new_uninit)]
1617
#![feature(maybe_uninit_slice)]
17-
#![feature(min_specialization)]
18+
//#![feature(min_specialization)]
19+
#![feature(specialization)]
1820
#![feature(decl_macro)]
1921
#![feature(pointer_byte_offsets)]
2022
#![feature(rustc_attrs)]

compiler/rustc_ast/src/ast.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ use rustc_span::{Span, DUMMY_SP};
3737
use std::fmt;
3838
use std::mem;
3939
use thin_vec::{thin_vec, ThinVec};
40-
4140
/// A "Label" is an identifier of some point in sources,
4241
/// e.g. in the following code:
4342
///
@@ -3113,30 +3112,31 @@ pub type ForeignItem = Item<ForeignItemKind>;
31133112
mod size_asserts {
31143113
use super::*;
31153114
use rustc_data_structures::static_assert_size;
3115+
use std::alloc::{Allocator, Global};
31163116
// tidy-alphabetical-start
31173117
static_assert_size!(AssocItem, 104);
31183118
static_assert_size!(AssocItemKind, 32);
31193119
static_assert_size!(Attribute, 32);
3120-
static_assert_size!(Block, 32);
3121-
static_assert_size!(Expr, 72);
3122-
static_assert_size!(ExprKind, 40);
3123-
static_assert_size!(Fn, 152);
3120+
static_assert_size!(Block, 32 + mem::size_of::<<Global as Allocator>::CoAllocMeta>());
3121+
static_assert_size!(Expr, 72 + mem::size_of::<<Global as Allocator>::CoAllocMeta>());
3122+
static_assert_size!(ExprKind, 40 + mem::size_of::<<Global as Allocator>::CoAllocMeta>());
3123+
static_assert_size!(Fn, 152 + 2 * mem::size_of::<<Global as Allocator>::CoAllocMeta>());
31243124
static_assert_size!(ForeignItem, 96);
31253125
static_assert_size!(ForeignItemKind, 24);
31263126
static_assert_size!(GenericArg, 24);
3127-
static_assert_size!(GenericBound, 56);
3128-
static_assert_size!(Generics, 40);
3129-
static_assert_size!(Impl, 136);
3130-
static_assert_size!(Item, 136);
3131-
static_assert_size!(ItemKind, 64);
3127+
static_assert_size!(GenericBound, 56 + mem::size_of::<<Global as Allocator>::CoAllocMeta>());
3128+
static_assert_size!(Generics, 40 + 2 * mem::size_of::<<Global as Allocator>::CoAllocMeta>());
3129+
static_assert_size!(Impl, 136 + 3 * mem::size_of::<<Global as Allocator>::CoAllocMeta>());
3130+
static_assert_size!(Item, 136 + 3 * mem::size_of::<<Global as Allocator>::CoAllocMeta>());
3131+
static_assert_size!(ItemKind, 64 + 3 * mem::size_of::<<Global as Allocator>::CoAllocMeta>());
31323132
static_assert_size!(LitKind, 24);
31333133
static_assert_size!(Local, 72);
31343134
static_assert_size!(MetaItemLit, 40);
31353135
static_assert_size!(Param, 40);
3136-
static_assert_size!(Pat, 72);
3136+
static_assert_size!(Pat, 72 + mem::size_of::<<Global as Allocator>::CoAllocMeta>());
31373137
static_assert_size!(Path, 24);
31383138
static_assert_size!(PathSegment, 24);
3139-
static_assert_size!(PatKind, 48);
3139+
static_assert_size!(PatKind, 48 + mem::size_of::<<Global as Allocator>::CoAllocMeta>());
31403140
static_assert_size!(Stmt, 32);
31413141
static_assert_size!(StmtKind, 16);
31423142
static_assert_size!(Ty, 64);

compiler/rustc_ast/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
99
test(attr(deny(warnings)))
1010
)]
11+
#![feature(allocator_api)]
1112
#![feature(associated_type_bounds)]
1213
#![feature(box_patterns)]
1314
#![feature(const_default_impls)]
1415
#![feature(const_trait_impl)]
16+
#![feature(global_co_alloc_meta)]
1517
#![feature(if_let_guard)]
1618
#![feature(let_chains)]
1719
#![feature(min_specialization)]

compiler/rustc_hir_typeck/src/fn_ctxt/suggestions.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
357357
return None // do not suggest code that is already there (#53348)
358358
}
359359

360-
let method_call_list = [sym::to_vec, sym::to_string];
360+
let method_call_list = [sym::to_vec, sym::to_vec_co, sym::to_string];
361361
let mut sugg = if let ExprKind::MethodCall(receiver_method, ..) = expr.kind
362362
&& receiver_method.ident.name == sym::clone
363363
&& method_call_list.contains(&conversion_method.name)

compiler/rustc_middle/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#![feature(exhaustive_patterns)]
3333
#![feature(generators)]
3434
#![feature(get_mut_unchecked)]
35+
#![feature(global_co_alloc_meta)]
3536
#![feature(if_let_guard)]
3637
#![feature(iter_from_generator)]
3738
#![feature(local_key_cell_methods)]

compiler/rustc_middle/src/mir/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3081,7 +3081,10 @@ mod size_asserts {
30813081
use super::*;
30823082
use rustc_data_structures::static_assert_size;
30833083
// tidy-alphabetical-start
3084-
static_assert_size!(BasicBlockData<'_>, 144);
3084+
static_assert_size!(
3085+
BasicBlockData<'_>,
3086+
144 + mem::size_of::<<std::alloc::Global as std::alloc::Allocator>::CoAllocMeta>()
3087+
);
30853088
static_assert_size!(LocalDecl<'_>, 40);
30863089
static_assert_size!(Statement<'_>, 32);
30873090
static_assert_size!(StatementKind<'_>, 16);

compiler/rustc_middle/src/mir/syntax.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1251,6 +1251,9 @@ mod size_asserts {
12511251
static_assert_size!(Operand<'_>, 24);
12521252
static_assert_size!(Place<'_>, 16);
12531253
static_assert_size!(PlaceElem<'_>, 24);
1254-
static_assert_size!(Rvalue<'_>, 40);
1254+
static_assert_size!(
1255+
Rvalue<'_>,
1256+
40 + std::mem::size_of::<<std::alloc::Global as std::alloc::Allocator>::CoAllocMeta>()
1257+
);
12551258
// tidy-alphabetical-end
12561259
}

compiler/rustc_parse/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
//! The main parser interface.
22
3+
#![feature(allocator_api)]
34
#![feature(array_windows)]
45
#![feature(box_patterns)]
6+
#![feature(global_co_alloc_meta)]
57
#![feature(if_let_guard)]
68
#![feature(iter_intersperse)]
79
#![feature(let_chains)]

compiler/rustc_parse/src/parser/attr_wrapper.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,8 +467,12 @@ fn make_token_stream(
467467
mod size_asserts {
468468
use super::*;
469469
use rustc_data_structures::static_assert_size;
470+
use std::alloc::{Allocator, Global};
470471
// tidy-alphabetical-start
471472
static_assert_size!(AttrWrapper, 16);
472-
static_assert_size!(LazyAttrTokenStreamImpl, 120);
473+
static_assert_size!(
474+
LazyAttrTokenStreamImpl,
475+
120 + std::mem::size_of::<<Global as Allocator>::CoAllocMeta>()
476+
);
473477
// tidy-alphabetical-end
474478
}

compiler/rustc_parse/src/parser/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,10 @@ pub struct Parser<'a> {
165165
// This type is used a lot, e.g. it's cloned when matching many declarative macro rules with nonterminals. Make sure
166166
// it doesn't unintentionally get bigger.
167167
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
168-
rustc_data_structures::static_assert_size!(Parser<'_>, 288);
168+
rustc_data_structures::static_assert_size!(
169+
Parser<'_>,
170+
288 + 4 * mem::size_of::<<std::alloc::Global as std::alloc::Allocator>::CoAllocMeta>()
171+
);
169172

170173
/// Stores span information about a closure.
171174
#[derive(Clone)]

0 commit comments

Comments
 (0)