From 9a2402566102dd54c66f55a62da93e1c7d93f761 Mon Sep 17 00:00:00 2001 From: Richard Diamond Date: Tue, 15 Sep 2015 16:22:16 -0500 Subject: Avoid loading the whole gdb debug scripts section. This is so LLVM isn't forced to load every byte of it. Also sets the alignment of the load. Adds a test for the debug script section. --- src/test/codegen/adjustments.rs | 2 ++ src/test/codegen/coercions.rs | 2 ++ src/test/codegen/extern-functions.rs | 1 + src/test/codegen/function-arguments.rs | 1 + src/test/codegen/gdb_debug_script_load.rs | 25 +++++++++++++++++++++++++ src/test/codegen/link_section.rs | 2 ++ src/test/codegen/loads.rs | 2 ++ src/test/codegen/stores.rs | 2 ++ 8 files changed, 37 insertions(+) create mode 100644 src/test/codegen/gdb_debug_script_load.rs (limited to 'src/test/codegen') diff --git a/src/test/codegen/adjustments.rs b/src/test/codegen/adjustments.rs index d9a7acf1129..a61fa84398e 100644 --- a/src/test/codegen/adjustments.rs +++ b/src/test/codegen/adjustments.rs @@ -10,6 +10,8 @@ // compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] + // Hack to get the correct size for the length part in slices // CHECK: @helper([[USIZE:i[0-9]+]]) #[no_mangle] diff --git a/src/test/codegen/coercions.rs b/src/test/codegen/coercions.rs index 2a136d7024d..c8c9f5b407c 100644 --- a/src/test/codegen/coercions.rs +++ b/src/test/codegen/coercions.rs @@ -10,6 +10,8 @@ // compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] + static X: i32 = 5; // CHECK-LABEL: @raw_ptr_to_raw_ptr_noop diff --git a/src/test/codegen/extern-functions.rs b/src/test/codegen/extern-functions.rs index 4c30b5ce02f..ff9d54e67e4 100644 --- a/src/test/codegen/extern-functions.rs +++ b/src/test/codegen/extern-functions.rs @@ -10,6 +10,7 @@ // compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] #![feature(unwind_attributes)] extern { diff --git a/src/test/codegen/function-arguments.rs b/src/test/codegen/function-arguments.rs index 7706c97380b..90ced88324e 100644 --- a/src/test/codegen/function-arguments.rs +++ b/src/test/codegen/function-arguments.rs @@ -10,6 +10,7 @@ // compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] #![feature(allocator)] pub struct S { diff --git a/src/test/codegen/gdb_debug_script_load.rs b/src/test/codegen/gdb_debug_script_load.rs new file mode 100644 index 00000000000..efaca29752b --- /dev/null +++ b/src/test/codegen/gdb_debug_script_load.rs @@ -0,0 +1,25 @@ +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// ignore-tidy-linelength +// ignore-windows +// ignore-macos + +// compile-flags: -g -C no-prepopulate-passes + +#![feature(start)] + +// CHECK-LABEL: @main +// CHECK: load volatile i8, i8* getelementptr inbounds ([[B:\[[0-9]* x i8\]]], [[B]]* @__rustc_debug_gdb_scripts_section__, i32 0, i32 0), align 1 + +#[start] +fn start(_: isize, _: *const *const u8) -> isize { + return 0; +} diff --git a/src/test/codegen/link_section.rs b/src/test/codegen/link_section.rs index 99b43552b0d..5ad3854c05c 100644 --- a/src/test/codegen/link_section.rs +++ b/src/test/codegen/link_section.rs @@ -10,6 +10,8 @@ // compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] + // CHECK: @VAR1 = constant i32 1, section ".test_one" #[no_mangle] #[link_section = ".test_one"] diff --git a/src/test/codegen/loads.rs b/src/test/codegen/loads.rs index b51da69fef2..21f23b6ea18 100644 --- a/src/test/codegen/loads.rs +++ b/src/test/codegen/loads.rs @@ -10,6 +10,8 @@ // compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] + pub struct Bytes { a: u8, b: u8, diff --git a/src/test/codegen/stores.rs b/src/test/codegen/stores.rs index 72862ea8b6f..5d2d47e1bf3 100644 --- a/src/test/codegen/stores.rs +++ b/src/test/codegen/stores.rs @@ -10,6 +10,8 @@ // compile-flags: -C no-prepopulate-passes +#![crate_type = "lib"] + pub struct Bytes { a: u8, b: u8, -- cgit 1.4.1-3-g733a5