Adjust LoongArch64 data layouts for LLVM update

The data layout was changed in LLVM 19: llvm/llvm-project#93814
This commit is contained in:
Hans Wennborg 2024-06-12 12:39:09 +02:00
parent bdb1b7f5d9
commit 4a06a5bc7a
5 changed files with 12 additions and 4 deletions

View File

@ -142,6 +142,14 @@ pub unsafe fn create_module<'ll>(
} }
} }
if llvm_version < (19, 0, 0) {
if sess.target.arch == "loongarch64" {
// LLVM 19 updates the LoongArch64 data layout.
// See https://github.com/llvm/llvm-project/pull/93814
target_data_layout = target_data_layout.replace("-n32:64", "-n64");
}
}
// Ensure the data-layout values hardcoded remain the defaults. // Ensure the data-layout values hardcoded remain the defaults.
{ {
let tm = crate::back::write::create_informational_target_machine(tcx.sess); let tm = crate::back::write::create_informational_target_machine(tcx.sess);

View File

@ -10,7 +10,7 @@ pub fn target() -> Target {
std: None, std: None,
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(),
arch: "loongarch64".into(), arch: "loongarch64".into(),
options: TargetOptions { options: TargetOptions {
cpu: "generic".into(), cpu: "generic".into(),

View File

@ -10,7 +10,7 @@ pub fn target() -> Target {
std: None, std: None,
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(),
arch: "loongarch64".into(), arch: "loongarch64".into(),
options: TargetOptions { options: TargetOptions {
cpu: "generic".into(), cpu: "generic".into(),

View File

@ -11,7 +11,7 @@ pub fn target() -> Target {
std: None, std: None,
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(),
arch: "loongarch64".into(), arch: "loongarch64".into(),
options: TargetOptions { options: TargetOptions {
cpu: "generic".into(), cpu: "generic".into(),

View File

@ -11,7 +11,7 @@ pub fn target() -> Target {
std: None, std: None,
}, },
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(), data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(),
arch: "loongarch64".into(), arch: "loongarch64".into(),
options: TargetOptions { options: TargetOptions {
cpu: "generic".into(), cpu: "generic".into(),