Skip to content

Commit 24d4fe4

Browse files
committed
Improve integer interning in default_configuration.
We have `sym::integer` for interning integers. Using it lets us use symbols directy, and not have to explicitly go through strings.
1 parent dba9416 commit 24d4fe4

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

compiler/rustc_session/src/config.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,7 +1246,7 @@ fn default_configuration(sess: &Session) -> Cfg {
12461246
// NOTE: This should be kept in sync with `CheckCfg::fill_well_known` below.
12471247
let end = &sess.target.endian;
12481248
let arch = &sess.target.arch;
1249-
let wordsz = sess.target.pointer_width.to_string();
1249+
let wordsz = sess.target.pointer_width as u64;
12501250
let os = &sess.target.os;
12511251
let env = &sess.target.env;
12521252
let abi = &sess.target.abi;
@@ -1273,7 +1273,7 @@ fn default_configuration(sess: &Session) -> Cfg {
12731273
}
12741274
ret.insert((sym::target_arch, Some(Symbol::intern(arch))));
12751275
ret.insert((sym::target_endian, Some(Symbol::intern(end.as_str()))));
1276-
ret.insert((sym::target_pointer_width, Some(Symbol::intern(&wordsz))));
1276+
ret.insert((sym::target_pointer_width, Some(sym::integer(wordsz))));
12771277
ret.insert((sym::target_env, Some(Symbol::intern(env))));
12781278
ret.insert((sym::target_abi, Some(Symbol::intern(abi))));
12791279
if sess.is_nightly_build() {
@@ -1293,19 +1293,18 @@ fn default_configuration(sess: &Session) -> Cfg {
12931293
] {
12941294
if i >= min_atomic_width && i <= max_atomic_width {
12951295
has_atomic = true;
1296-
let mut insert_atomic = |s, align: Align| {
1297-
ret.insert((sym::target_has_atomic_load_store, Some(Symbol::intern(s))));
1296+
let mut insert_atomic = |sym, align: Align| {
1297+
ret.insert((sym::target_has_atomic_load_store, Some(sym)));
12981298
if atomic_cas {
1299-
ret.insert((sym::target_has_atomic, Some(Symbol::intern(s))));
1299+
ret.insert((sym::target_has_atomic, Some(sym)));
13001300
}
13011301
if align.bits() == i {
1302-
ret.insert((sym::target_has_atomic_equal_alignment, Some(Symbol::intern(s))));
1302+
ret.insert((sym::target_has_atomic_equal_alignment, Some(sym)));
13031303
}
13041304
};
1305-
let s = i.to_string();
1306-
insert_atomic(&s, align);
1307-
if s == wordsz {
1308-
insert_atomic("ptr", layout.pointer_align.abi);
1305+
insert_atomic(sym::integer(i), align);
1306+
if wordsz == i {
1307+
insert_atomic(sym::ptr, layout.pointer_align.abi);
13091308
}
13101309
}
13111310
}

0 commit comments

Comments
 (0)