diff options
| author | bors <bors@rust-lang.org> | 2021-03-14 11:46:57 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-03-14 11:46:57 +0000 |
| commit | 84c08f82b46986fcd5cbd1a637582bd1325fa970 (patch) | |
| tree | 6678d7e243f4636cb97dda900790c6cdc687d091 /src/test/codegen | |
| parent | f293f70dd848ae2371b6fad2eb9f4081e920da88 (diff) | |
| parent | 71418384d7d37b37eef250291ea8015667a81f17 (diff) | |
| download | rust-84c08f82b46986fcd5cbd1a637582bd1325fa970.tar.gz rust-84c08f82b46986fcd5cbd1a637582bd1325fa970.zip | |
Auto merge of #83044 - kubo39:set-llvm-code-model, r=nikic
Add support for storing code model to LLVM module IR This patch avoids undefined behavior by linking different object files. Also this would it could be propagated properly to LTO. See https://reviews.llvm.org/D52322 and https://reviews.llvm.org/D52323. This patch is based on https://github.com/rust-lang/rust/pull/74002
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/codemodels.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/codegen/codemodels.rs b/src/test/codegen/codemodels.rs new file mode 100644 index 00000000000..2328f5feb4e --- /dev/null +++ b/src/test/codegen/codemodels.rs @@ -0,0 +1,20 @@ +// only-x86_64 + +// revisions: NOMODEL MODEL-SMALL MODEL-KERNEL MODEL-MEDIUM MODEL-LARGE +//[NOMODEL] compile-flags: +//[MODEL-SMALL] compile-flags: -C code-model=small +//[MODEL-KERNEL] compile-flags: -C code-model=kernel +//[MODEL-MEDIUM] compile-flags: -C code-model=medium +//[MODEL-LARGE] compile-flags: -C code-model=large + +#![crate_type = "lib"] + +// MODEL-SMALL: !llvm.module.flags = !{{{.*}}} +// MODEL-SMALL: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 1} +// MODEL-KERNEL: !llvm.module.flags = !{{{.*}}} +// MODEL-KERNEL: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 2} +// MODEL-MEDIUM: !llvm.module.flags = !{{{.*}}} +// MODEL-MEDIUM: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 3} +// MODEL-LARGE: !llvm.module.flags = !{{{.*}}} +// MODEL-LARGE: !{{[0-9]+}} = !{i32 1, !"Code Model", i32 4} +// NOMODEL-NOT: Code Model |
