diff --git a/src/librustc/driver/config.rs b/src/librustc/driver/config.rs index 72e2d244ad333..56212ee1bff44 100644 --- a/src/librustc/driver/config.rs +++ b/src/librustc/driver/config.rs @@ -180,7 +180,6 @@ debugging_opts!( GC, PRINT_LINK_ARGS, PRINT_LLVM_PASSES, - LTO, AST_JSON, AST_JSON_NOEXPAND, LS, @@ -219,7 +218,6 @@ pub fn debugging_opts_map() -> Vec<(&'static str, &'static str, u64)> { ("print-llvm-passes", "Prints the llvm optimization passes being run", PRINT_LLVM_PASSES), - ("lto", "Perform LLVM link-time optimizations", LTO), ("ast-json", "Print the AST as JSON and halt", AST_JSON), ("ast-json-noexpand", "Print the pre-expansion AST as JSON and halt", AST_JSON_NOEXPAND), ("ls", "List the symbols defined by a library crate", LS), @@ -353,6 +351,8 @@ cgoptions!( "system linker to link outputs with"), link_args: Vec = (Vec::new(), parse_list, "extra arguments to pass to the linker (space separated)"), + lto: bool = (false, parse_bool, + "perform LLVM link-time optimizations"), target_cpu: String = ("generic".to_string(), parse_string, "select target processor (llc -mcpu=help for details)"), target_feature: String = ("".to_string(), parse_string, diff --git a/src/librustc/driver/session.rs b/src/librustc/driver/session.rs index d7ed5d3e1ffa4..0de0bcc09bf93 100644 --- a/src/librustc/driver/session.rs +++ b/src/librustc/driver/session.rs @@ -168,7 +168,7 @@ impl Session { self.debugging_opt(config::PRINT_LLVM_PASSES) } pub fn lto(&self) -> bool { - self.debugging_opt(config::LTO) + self.opts.cg.lto } pub fn no_landing_pads(&self) -> bool { self.debugging_opt(config::NO_LANDING_PADS) diff --git a/src/test/compile-fail/issue-11154.rs b/src/test/compile-fail/issue-11154.rs index aac5eebaf4af9..1ff6812337406 100644 --- a/src/test/compile-fail/issue-11154.rs +++ b/src/test/compile-fail/issue-11154.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// compile-flags: -Z lto -C prefer-dynamic +// compile-flags: -C lto -C prefer-dynamic // error-pattern: cannot prefer dynamic linking diff --git a/src/test/debuginfo/cross-crate-type-uniquing.rs b/src/test/debuginfo/cross-crate-type-uniquing.rs index 8f718add2a312..4a29ecff06f3b 100644 --- a/src/test/debuginfo/cross-crate-type-uniquing.rs +++ b/src/test/debuginfo/cross-crate-type-uniquing.rs @@ -14,7 +14,7 @@ extern crate cross_crate_debuginfo_type_uniquing; // no-prefer-dynamic -// compile-flags:-g -Zlto +// compile-flags:-g -C lto pub struct C; pub fn p() -> C { diff --git a/src/test/run-make/issue-14500/Makefile b/src/test/run-make/issue-14500/Makefile index c1087b0f55ecf..446c6e5c81b69 100644 --- a/src/test/run-make/issue-14500/Makefile +++ b/src/test/run-make/issue-14500/Makefile @@ -8,7 +8,7 @@ all: $(RUSTC) foo.rs --crate-type=rlib - $(RUSTC) bar.rs --crate-type=staticlib -Zlto -L. -o $(TMPDIR)/libbar.a + $(RUSTC) bar.rs --crate-type=staticlib -C lto -L. -o $(TMPDIR)/libbar.a $(CC) foo.c -lbar -o $(call RUN_BINFILE,foo) $(EXTRACFLAGS) $(call RUN,foo) diff --git a/src/test/run-make/lto-smoke-c/Makefile b/src/test/run-make/lto-smoke-c/Makefile index 6c7e9aa1d59fd..c678a3c472b1b 100644 --- a/src/test/run-make/lto-smoke-c/Makefile +++ b/src/test/run-make/lto-smoke-c/Makefile @@ -4,6 +4,6 @@ CC := $(CC:-g=) all: - $(RUSTC) foo.rs -Z lto + $(RUSTC) foo.rs -C lto $(CC) bar.c -lfoo -o $(call RUN_BINFILE,bar) $(EXTRACFLAGS) -lstdc++ $(call RUN,bar) diff --git a/src/test/run-make/lto-smoke/Makefile b/src/test/run-make/lto-smoke/Makefile index 4652556d34401..020252e1f8cd3 100644 --- a/src/test/run-make/lto-smoke/Makefile +++ b/src/test/run-make/lto-smoke/Makefile @@ -2,5 +2,5 @@ all: $(RUSTC) lib.rs - $(RUSTC) main.rs -Z lto + $(RUSTC) main.rs -C lto $(call RUN,main) diff --git a/src/test/run-make/lto-syntax-extension/Makefile b/src/test/run-make/lto-syntax-extension/Makefile index c522f30e2df13..5f2b7a701a7c4 100644 --- a/src/test/run-make/lto-syntax-extension/Makefile +++ b/src/test/run-make/lto-syntax-extension/Makefile @@ -14,5 +14,5 @@ all: $(DOTEST) dotest: env $(RUSTC) lib.rs - $(RUSTC) main.rs -Z lto + $(RUSTC) main.rs -C lto $(call RUN,main) diff --git a/src/test/run-pass/sepcomp-lib-lto.rs b/src/test/run-pass/sepcomp-lib-lto.rs index 51fd83a54ccb1..f0b6a505929c6 100644 --- a/src/test/run-pass/sepcomp-lib-lto.rs +++ b/src/test/run-pass/sepcomp-lib-lto.rs @@ -8,11 +8,11 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// Check that we can use `-Z lto` when linking against libraries that were +// Check that we can use `-C lto` when linking against libraries that were // separately compiled. // aux-build:sepcomp_lib.rs -// compile-flags: -Z lto +// compile-flags: -C lto // no-prefer-dynamic extern crate sepcomp_lib;