diff options
author | Caroline Tice <cmtice@google.com> | 2018-09-21 18:34:59 +0000 |
---|---|---|
committer | Caroline Tice <cmtice@google.com> | 2018-09-21 18:34:59 +0000 |
commit | 62279730e2e2f22f24ee81896b8986c24e7fcd2e (patch) | |
tree | de2d2dde64b561bc3a80d9fd874f9abd49ca7a6a /clang/test/CodeGen/codemodels.c | |
parent | c4bc88b541e98ccdb1257ce4999bdf57b135846a (diff) | |
download | bcm5719-llvm-62279730e2e2f22f24ee81896b8986c24e7fcd2e.tar.gz bcm5719-llvm-62279730e2e2f22f24ee81896b8986c24e7fcd2e.zip |
Add necessary support for storing code-model to module IR.
Currently the code-model does not get saved in the module IR, so if a
code model is specified when compiling with LTO, it gets lost and is
not propagated properly to LTO. This patch does what is necessary in
the front end to pass the code-model to the module, so that the back
end can store it in the Module .
Differential Revision: https://reviews.llvm.org/D52323
llvm-svn: 342758
Diffstat (limited to 'clang/test/CodeGen/codemodels.c')
-rw-r--r-- | clang/test/CodeGen/codemodels.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/CodeGen/codemodels.c b/clang/test/CodeGen/codemodels.c new file mode 100644 index 00000000000..f85c7a0ff88 --- /dev/null +++ b/clang/test/CodeGen/codemodels.c @@ -0,0 +1,18 @@ +// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECK-NOMODEL +// RUN: %clang_cc1 -emit-llvm -mcode-model tiny %s -o - | FileCheck %s -check-prefix=CHECK-TINY +// RUN: %clang_cc1 -emit-llvm -mcode-model small %s -o - | FileCheck %s -check-prefix=CHECK-SMALL +// RUN: %clang_cc1 -emit-llvm -mcode-model kernel %s -o - | FileCheck %s -check-prefix=CHECK-KERNEL +// RUN: %clang_cc1 -emit-llvm -mcode-model medium %s -o - | FileCheck %s -check-prefix=CHECK-MEDIUM +// RUN: %clang_cc1 -emit-llvm -mcode-model large %s -o - | FileCheck %s -check-prefix=CHECK-LARGE + +// CHECK-TINY: !llvm.module.flags = !{{{.*}}} +// CHECK-TINY: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 0} +// CHECK-SMALL: !llvm.module.flags = !{{{.*}}} +// CHECK-SMALL: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 1} +// CHECK-KERNEL: !llvm.module.flags = !{{{.*}}} +// CHECK-KERNEL: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 2} +// CHECK-MEDIUM: !llvm.module.flags = !{{{.*}}} +// CHECK-MEDIUM: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 3} +// CHECK-LARGE: !llvm.module.flags = !{{{.*}}} +// CHECK-LARGE: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 4} +// CHECK-NOMODEL-NOT: Code Model |