Rollup merge of #105736 - chenyukang:yukang/add-mir-opt-level-testing, r=jyn514
Test that the compiler/library builds with validate-mir Fixes #105706
This commit is contained in:
commit
b90a385f26
@ -666,6 +666,9 @@ changelog-seen = 2
|
|||||||
# LTO entirely.
|
# LTO entirely.
|
||||||
#lto = "thin-local"
|
#lto = "thin-local"
|
||||||
|
|
||||||
|
# Build compiler with the optimization enabled and -Zvalidate-mir, currently only for `std`
|
||||||
|
#validate-mir-opts = 3
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Options for specific targets
|
# Options for specific targets
|
||||||
#
|
#
|
||||||
|
@ -1915,6 +1915,13 @@ pub fn cargo(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if matches!(mode, Mode::Std) {
|
||||||
|
if let Some(mir_opt_level) = self.config.rust_validate_mir_opts {
|
||||||
|
rustflags.arg("-Zvalidate-mir");
|
||||||
|
rustflags.arg(&format!("-Zmir-opt-level={}", mir_opt_level));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Cargo { command: cargo, rustflags, rustdocflags, allow_features }
|
Cargo { command: cargo, rustflags, rustdocflags, allow_features }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,6 +173,7 @@ pub struct Config {
|
|||||||
pub rust_profile_use: Option<String>,
|
pub rust_profile_use: Option<String>,
|
||||||
pub rust_profile_generate: Option<String>,
|
pub rust_profile_generate: Option<String>,
|
||||||
pub rust_lto: RustcLto,
|
pub rust_lto: RustcLto,
|
||||||
|
pub rust_validate_mir_opts: Option<u32>,
|
||||||
pub llvm_profile_use: Option<String>,
|
pub llvm_profile_use: Option<String>,
|
||||||
pub llvm_profile_generate: bool,
|
pub llvm_profile_generate: bool,
|
||||||
pub llvm_libunwind_default: Option<LlvmLibunwind>,
|
pub llvm_libunwind_default: Option<LlvmLibunwind>,
|
||||||
@ -770,6 +771,7 @@ struct Rust {
|
|||||||
// ignored; this is set from an env var set by bootstrap.py
|
// ignored; this is set from an env var set by bootstrap.py
|
||||||
download_rustc: Option<StringOrBool> = "download-rustc",
|
download_rustc: Option<StringOrBool> = "download-rustc",
|
||||||
lto: Option<String> = "lto",
|
lto: Option<String> = "lto",
|
||||||
|
validate_mir_opts: Option<u32> = "validate-mir-opts",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1149,6 +1151,7 @@ fn parse_inner<'a>(args: &[String], get_toml: impl 'a + Fn(&Path) -> TomlConfig)
|
|||||||
.as_deref()
|
.as_deref()
|
||||||
.map(|value| RustcLto::from_str(value).unwrap())
|
.map(|value| RustcLto::from_str(value).unwrap())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
config.rust_validate_mir_opts = rust.validate_mir_opts;
|
||||||
} else {
|
} else {
|
||||||
config.rust_profile_use = flags.rust_profile_use;
|
config.rust_profile_use = flags.rust_profile_use;
|
||||||
config.rust_profile_generate = flags.rust_profile_generate;
|
config.rust_profile_generate = flags.rust_profile_generate;
|
||||||
|
@ -23,6 +23,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
|
|
||||||
RUN curl -sL https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-x64.tar.xz | tar -xJ
|
RUN curl -sL https://nodejs.org/dist/v16.9.0/node-v16.9.0-linux-x64.tar.xz | tar -xJ
|
||||||
ENV PATH="/node-v16.9.0-linux-x64/bin:${PATH}"
|
ENV PATH="/node-v16.9.0-linux-x64/bin:${PATH}"
|
||||||
|
ENV RUST_CONFIGURE_ARGS="--set rust.validate-mir-opts=3"
|
||||||
|
|
||||||
# Install es-check
|
# Install es-check
|
||||||
# Pin its version to prevent unrelated CI failures due to future es-check versions.
|
# Pin its version to prevent unrelated CI failures due to future es-check versions.
|
||||||
RUN npm install es-check@6.1.1 eslint@8.6.0 -g
|
RUN npm install es-check@6.1.1 eslint@8.6.0 -g
|
||||||
@ -38,7 +40,7 @@ COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/
|
|||||||
|
|
||||||
ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
|
ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
|
||||||
ENV SCRIPT python3 ../x.py --stage 2 test src/tools/expand-yaml-anchors && \
|
ENV SCRIPT python3 ../x.py --stage 2 test src/tools/expand-yaml-anchors && \
|
||||||
python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu --all-targets && \
|
python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu && \
|
||||||
python3 ../x.py build --stage 0 src/tools/build-manifest && \
|
python3 ../x.py build --stage 0 src/tools/build-manifest && \
|
||||||
python3 ../x.py test --stage 0 src/tools/compiletest && \
|
python3 ../x.py test --stage 0 src/tools/compiletest && \
|
||||||
python3 ../x.py test --stage 0 core alloc std test proc_macro && \
|
python3 ../x.py test --stage 0 core alloc std test proc_macro && \
|
||||||
|
Loading…
Reference in New Issue
Block a user