Skip to content

Commit 953fdae

Browse files
committed
Move Target::llvm_target to MaybeLazy
1 parent f664cda commit 953fdae

22 files changed

+23
-23
lines changed

compiler/rustc_target/src/spec/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1833,7 +1833,7 @@ impl TargetWarnings {
18331833
#[derive(PartialEq, Clone, Debug)]
18341834
pub struct Target {
18351835
/// Target triple to pass to LLVM.
1836-
pub llvm_target: StaticCow<str>,
1836+
pub llvm_target: MaybeLazy<str>,
18371837
/// Metadata about a target, for example the description or tier.
18381838
/// Used for generating target documentation.
18391839
pub metadata: TargetMetadata,
@@ -2685,7 +2685,7 @@ impl Target {
26852685
};
26862686

26872687
let mut base = Target {
2688-
llvm_target: get_req_field("llvm-target")?.into(),
2688+
llvm_target: MaybeLazy::owned(get_req_field("llvm-target")?),
26892689
metadata: Default::default(),
26902690
pointer_width: get_req_field("target-pointer-width")?
26912691
.parse::<u32>()

compiler/rustc_target/src/spec/targets/aarch64_apple_darwin.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub fn target() -> Target {
1717
// Clang automatically chooses a more specific target based on
1818
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
1919
// correctly, we do too.
20-
llvm_target: macos_llvm_target(ARCH).into(),
20+
llvm_target: MaybeLazy::lazy(|| macos_llvm_target(ARCH)),
2121
metadata: crate::spec::TargetMetadata {
2222
description: None,
2323
tier: None,

compiler/rustc_target/src/spec/targets/aarch64_apple_ios.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn target() -> Target {
1414
// IPHONEOS_DEPLOYMENT_TARGET.
1515
// This is required for the target to pick the right
1616
// MACH-O commands, so we do too.
17-
llvm_target: ios_llvm_target(ARCH).into(),
17+
llvm_target: MaybeLazy::lazy(|| ios_llvm_target(ARCH)),
1818
metadata: crate::spec::TargetMetadata {
1919
description: None,
2020
tier: None,

compiler/rustc_target/src/spec/targets/aarch64_apple_ios_macabi.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
1111

1212
Target {
13-
llvm_target: mac_catalyst_llvm_target(ARCH).into(),
13+
llvm_target: MaybeLazy::lazy(|| mac_catalyst_llvm_target(ARCH)),
1414
metadata: crate::spec::TargetMetadata {
1515
description: None,
1616
tier: None,

compiler/rustc_target/src/spec/targets/aarch64_apple_ios_sim.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn target() -> Target {
1414
// IPHONEOS_DEPLOYMENT_TARGET.
1515
// This is required for the simulator target to pick the right
1616
// MACH-O commands, so we do too.
17-
llvm_target: ios_sim_llvm_target(ARCH).into(),
17+
llvm_target: MaybeLazy::lazy(|| ios_sim_llvm_target(ARCH)),
1818
metadata: crate::spec::TargetMetadata {
1919
description: None,
2020
tier: None,

compiler/rustc_target/src/spec/targets/aarch64_apple_tvos.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pub fn target() -> Target {
77
const ABI: TargetAbi = TargetAbi::Normal;
88

99
Target {
10-
llvm_target: tvos_llvm_target(ARCH).into(),
10+
llvm_target: MaybeLazy::lazy(|| tvos_llvm_target(ARCH)),
1111
metadata: crate::spec::TargetMetadata {
1212
description: None,
1313
tier: None,

compiler/rustc_target/src/spec/targets/aarch64_apple_tvos_sim.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pub fn target() -> Target {
77
const ABI: TargetAbi = TargetAbi::Normal;
88

99
Target {
10-
llvm_target: tvos_sim_llvm_target(ARCH).into(),
10+
llvm_target: MaybeLazy::lazy(|| tvos_sim_llvm_target(ARCH)),
1111
metadata: crate::spec::TargetMetadata {
1212
description: None,
1313
tier: None,

compiler/rustc_target/src/spec/targets/aarch64_apple_visionos.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn target() -> Target {
1111
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::THREAD;
1212

1313
Target {
14-
llvm_target: visionos_llvm_target(ARCH).into(),
14+
llvm_target: MaybeLazy::lazy(|| visionos_llvm_target(ARCH)),
1515
metadata: crate::spec::TargetMetadata {
1616
description: Some("ARM64 Apple visionOS".into()),
1717
tier: Some(3),

compiler/rustc_target/src/spec/targets/aarch64_apple_visionos_sim.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::THREAD;
1111

1212
Target {
13-
llvm_target: visionos_sim_llvm_target(ARCH).into(),
13+
llvm_target: MaybeLazy::lazy(|| visionos_sim_llvm_target(ARCH)),
1414
metadata: crate::spec::TargetMetadata {
1515
description: Some("ARM64 Apple visionOS simulator".into()),
1616
tier: Some(3),

compiler/rustc_target/src/spec/targets/aarch64_apple_watchos_sim.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn target() -> Target {
1111
// WATCHOS_DEPLOYMENT_TARGET.
1212
// This is required for the simulator target to pick the right
1313
// MACH-O commands, so we do too.
14-
llvm_target: watchos_sim_llvm_target(ARCH).into(),
14+
llvm_target: MaybeLazy::lazy(|| watchos_sim_llvm_target(ARCH)),
1515
metadata: crate::spec::TargetMetadata {
1616
description: None,
1717
tier: None,

compiler/rustc_target/src/spec/targets/arm64_32_apple_watchos.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ pub fn target() -> Target {
99
let base = opts(OS, ARCH, ABI, MaybeLazy::lazy(|| pre_link_args(OS, ARCH, ABI)));
1010

1111
Target {
12-
llvm_target: watchos_llvm_target(ARCH).into(),
12+
llvm_target: MaybeLazy::lazy(|| watchos_llvm_target(ARCH)),
1313
metadata: crate::spec::TargetMetadata {
1414
description: None,
1515
tier: None,

compiler/rustc_target/src/spec/targets/arm64e_apple_darwin.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub fn target() -> Target {
1717
// Clang automatically chooses a more specific target based on
1818
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
1919
// correctly, we do too.
20-
llvm_target: macos_llvm_target(ARCH).into(),
20+
llvm_target: MaybeLazy::lazy(|| macos_llvm_target(ARCH)),
2121
metadata: crate::spec::TargetMetadata {
2222
description: None,
2323
tier: None,

compiler/rustc_target/src/spec/targets/arm64e_apple_ios.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn target() -> Target {
1414
// IPHONEOS_DEPLOYMENT_TARGET.
1515
// This is required for the target to pick the right
1616
// MACH-O commands, so we do too.
17-
llvm_target: ios_llvm_target(ARCH).into(),
17+
llvm_target: MaybeLazy::lazy(|| ios_llvm_target(ARCH)),
1818
metadata: crate::spec::TargetMetadata {
1919
description: None,
2020
tier: None,

compiler/rustc_target/src/spec/targets/armv7s_apple_ios.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pub fn target() -> Target {
77
const ABI: TargetAbi = TargetAbi::Normal;
88

99
Target {
10-
llvm_target: ios_llvm_target(ARCH).into(),
10+
llvm_target: MaybeLazy::lazy(|| ios_llvm_target(ARCH)),
1111
metadata: crate::spec::TargetMetadata {
1212
description: None,
1313
tier: None,

compiler/rustc_target/src/spec/targets/i386_apple_ios.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub fn target() -> Target {
1313
// IPHONEOS_DEPLOYMENT_TARGET.
1414
// This is required for the target to pick the right
1515
// MACH-O commands, so we do too.
16-
llvm_target: ios_sim_llvm_target(ARCH).into(),
16+
llvm_target: MaybeLazy::lazy(|| ios_sim_llvm_target(ARCH)),
1717
metadata: crate::spec::TargetMetadata {
1818
description: None,
1919
tier: None,

compiler/rustc_target/src/spec/targets/i686_apple_darwin.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub fn target() -> Target {
2020
// correctly, we do too.
2121
//
2222
// While ld64 doesn't understand i686, LLVM does.
23-
llvm_target: macos_llvm_target(Arch::I686).into(),
23+
llvm_target: MaybeLazy::lazy(|| macos_llvm_target(Arch::I686)),
2424
metadata: crate::spec::TargetMetadata {
2525
description: None,
2626
tier: None,

compiler/rustc_target/src/spec/targets/x86_64_apple_darwin.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub fn target() -> Target {
2020
// Clang automatically chooses a more specific target based on
2121
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
2222
// correctly, we do too.
23-
llvm_target: macos_llvm_target(ARCH).into(),
23+
llvm_target: MaybeLazy::lazy(|| macos_llvm_target(ARCH)),
2424
metadata: crate::spec::TargetMetadata {
2525
description: None,
2626
tier: None,

compiler/rustc_target/src/spec/targets/x86_64_apple_ios.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub fn target() -> Target {
1212
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::THREAD;
1313

1414
Target {
15-
llvm_target: ios_sim_llvm_target(ARCH).into(),
15+
llvm_target: MaybeLazy::lazy(|| ios_sim_llvm_target(ARCH)),
1616
metadata: crate::spec::TargetMetadata {
1717
description: None,
1818
tier: None,

compiler/rustc_target/src/spec/targets/x86_64_apple_ios_macabi.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
1111

1212
Target {
13-
llvm_target: mac_catalyst_llvm_target(ARCH).into(),
13+
llvm_target: MaybeLazy::lazy(|| mac_catalyst_llvm_target(ARCH)),
1414
metadata: crate::spec::TargetMetadata {
1515
description: None,
1616
tier: None,

compiler/rustc_target/src/spec/targets/x86_64_apple_tvos.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
const ABI: TargetAbi = TargetAbi::Simulator;
1111

1212
Target {
13-
llvm_target: tvos_sim_llvm_target(ARCH).into(),
13+
llvm_target: MaybeLazy::lazy(|| tvos_sim_llvm_target(ARCH)),
1414
metadata: crate::spec::TargetMetadata {
1515
description: None,
1616
tier: None,

compiler/rustc_target/src/spec/targets/x86_64_apple_watchos_sim.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pub fn target() -> Target {
77
const ABI: TargetAbi = TargetAbi::Simulator;
88

99
Target {
10-
llvm_target: watchos_sim_llvm_target(ARCH).into(),
10+
llvm_target: MaybeLazy::lazy(|| watchos_sim_llvm_target(ARCH)),
1111
metadata: crate::spec::TargetMetadata {
1212
description: None,
1313
tier: None,

compiler/rustc_target/src/spec/targets/x86_64h_apple_darwin.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub fn target() -> Target {
3838
// Clang automatically chooses a more specific target based on
3939
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work
4040
// correctly, we do too.
41-
llvm_target: macos_llvm_target(ARCH).into(),
41+
llvm_target: MaybeLazy::lazy(|| macos_llvm_target(ARCH)),
4242
metadata: crate::spec::TargetMetadata {
4343
description: None,
4444
tier: None,

0 commit comments

Comments
 (0)