mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 05:26:06 +00:00

Make it apply to x86-64 medium and large code models since that's what the backend does. Limit logic to exclude x86-32. Default to 0, let the driver set it to 65536 for the medium code model if one is not passed. Set it to 0 for the large code model by default to match gcc and since some users make assumptions about the large code model that any small data will break.
23 lines
1.1 KiB
C
23 lines
1.1 KiB
C
// REQUIRES: x86-registered-target
|
|
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=medium | FileCheck %s --check-prefix=IR-DEFAULT
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=medium -mlarge-data-threshold=200 | FileCheck %s --check-prefix=IR-CUSTOM
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=large -mlarge-data-threshold=200 | FileCheck %s --check-prefix=IR-CUSTOM
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - -mcmodel=small -mlarge-data-threshold=200 | FileCheck %s --check-prefix=IR-SMALL
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -S %s -o - -mcmodel=medium -mlarge-data-threshold=200 | FileCheck %s --check-prefix=ASM-SMALL
|
|
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -S %s -o - -mcmodel=medium -mlarge-data-threshold=2 | FileCheck %s --check-prefix=ASM-LARGE
|
|
|
|
// IR-DEFAULT: !{i32 1, !"Large Data Threshold", i64 0}
|
|
// IR-CUSTOM: !{i32 1, !"Large Data Threshold", i64 200}
|
|
// IR-SMALL-NOT: !"Large Data Threshold"
|
|
|
|
// ASM-SMALL-NOT: movabsq
|
|
// ASM-LARGE: movabsq
|
|
|
|
static int i;
|
|
|
|
int f() {
|
|
return i;
|
|
}
|
|
|