Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
f2c0c3d
Add testing for Arm64EC Windows
dpaoliello Aug 10, 2025
f9bc63d
Drop no longer needed feature gates
nikic Aug 20, 2025
135de7c
Use intrinsics for some s390x operations
nikic Aug 14, 2025
4a8b823
Add missing avx512vl target features
nikic Aug 20, 2025
92f6310
Work around selection failure without avx512vl
nikic Aug 20, 2025
3302e3e
Adjust immediate for vrndscalepd tests
nikic Aug 20, 2025
fe3a9b7
Merge pull request #1897 from nikic/dummy
folkertdev Aug 20, 2025
fa163a1
s390x: define `unpack_low` using `core::intrinsics::simd`
folkertdev Aug 20, 2025
c5ec096
s390x: add `assert_instr` for `vec_round`
folkertdev Aug 20, 2025
97d6466
s390x: add `assert_instr` for `vec_extend`
folkertdev Aug 20, 2025
1cda88a
s390x: implement `vec_mule` using `core::intrinsics::simd`
folkertdev Aug 20, 2025
d5cb1c4
wasm: use `{read, write}_unaligned` methods
folkertdev Aug 14, 2025
e1a1b1d
s390x: implement `vec_mulo` using `core::intrinsics::simd`
folkertdev Aug 20, 2025
dfa95c6
s390x: implement `vec_subc_u128` using `overflowing_sub`
folkertdev Aug 20, 2025
e9162f2
s390x: implement `vec_sld` using `fshl`
folkertdev Aug 20, 2025
45af206
s390x: link to a missed optimization
folkertdev Aug 20, 2025
6d74280
Merge pull request #1899 from dpaoliello/arm64ec
folkertdev Aug 20, 2025
0b0c424
Merge pull request #1901 from folkertdev/wasm-read-unaligned
Amanieu Aug 20, 2025
98bd1d7
use `simd_saturating_{add, sub}` on neon
folkertdev Jun 1, 2025
e8b818d
Merge pull request #1575 from folkertdev/neon-simd-saturating-add-sub
Amanieu Aug 21, 2025
b2189b8
Merge pull request #1903 from folkertdev/s390x-llvm-21-fixes
Amanieu Aug 21, 2025
ae648be
use `llvm.roundeven` on arm
folkertdev Aug 29, 2025
00b27f4
Remove FreeBSD CI
Amanieu Aug 29, 2025
6da36e6
Merge pull request #1907 from Amanieu/remove-cirrus
folkertdev Aug 29, 2025
bbb222f
Merge pull request #1906 from folkertdev/arm-roundeven
Amanieu Aug 29, 2025
18fa6d9
Remove some llvm workarounds
nikic Sep 2, 2025
bb3598e
use `qemu-user` instead of `qemu-user-static` for loongarch CI
folkertdev Sep 2, 2025
60874ec
Merge pull request #1912 from folkertdev/loongarch-qemu-user
sayantn Sep 2, 2025
4679533
RISC-V: Lower requirements of `clmul` and `clmulh`
a4lg Aug 30, 2025
0a97662
Merge pull request #1909 from a4lg/riscv-clmul-lower-requirements
sayantn Sep 3, 2025
e1a3b8b
Merge pull request #1911 from nikic/remove-hack
folkertdev Sep 3, 2025
93101b5
s390x: use the new `u128::funnel_shl`
folkertdev Sep 6, 2025
d5bed4b
Merge pull request #1913 from folkertdev/s390x-vector-funnel-shift
sayantn Sep 6, 2025
589515b
update Cargo.lock
folkertdev Sep 7, 2025
d70ef4f
move `compare_outputs` implementation into `SupportedArchitectureTest…
folkertdev Sep 7, 2025
6ab097b
move platform headers into `SupportedArchitectureTest`
folkertdev Sep 7, 2025
916424f
move more constants into `SupportedArchitectureTest`
folkertdev Sep 7, 2025
9d9ca01
move `print_result_c` into the inner intrinsic type
folkertdev Sep 7, 2025
2ba0a6e
move `print_result_c` into the trait
folkertdev Sep 7, 2025
1697f36
remove `trait IntrinsicDefinition`
folkertdev Sep 7, 2025
ccec202
move `build_c_file` and `build_rust_file` into `SupportedArchitecture…
folkertdev Sep 7, 2025
4b549a7
move target-specific definitions into constants
folkertdev Sep 7, 2025
dcddb44
Merge pull request #1914 from folkertdev/architecture-test
folkertdev Sep 9, 2025
614dab3
loongarch: Align intrinsic signatures with LLVM
heiher Sep 10, 2025
e54cc43
RISC-V: "Lower" requirements of `aes64im`
a4lg Sep 11, 2025
342a73b
Merge pull request #1915 from heiher/fix-signatures
Amanieu Sep 11, 2025
bb31725
Remove big-endian swizzles from `vreinterpret`
sayantn Sep 11, 2025
269cecc
Merge pull request #1918 from a4lg/riscv-aes64im-lower-requirements
sayantn Sep 11, 2025
221eb1f
intrinsic-test: Make Clippy happy
a4lg Sep 12, 2025
a3b7aad
stdarch-gen-arm: Make Clippy happy
a4lg Sep 12, 2025
05133f2
examples: Make Clippy happy
a4lg Sep 12, 2025
3338743
Merge pull request #1920 from a4lg/clippy-warnings-2025.09
folkertdev Sep 12, 2025
8df078a
RISC-V: Improvements of inline assembly uses
a4lg Sep 13, 2025
5dd0fdc
Merge pull request #1919 from sayantn/fix-vreinterpret
folkertdev Sep 15, 2025
c1242fa
Merge pull request #1921 from a4lg/riscv-inline-asm-general-improvements
sayantn Sep 15, 2025
ea8bacc
rustc_codegen_llvm: Name major version of LLVM
a4lg Sep 17, 2025
d9f67cb
rustc_codegen_llvm: Simplify `arch` conversion
a4lg Sep 17, 2025
a1a3cd0
rustc_codegen_llvm: Reorder conversion cases
a4lg Sep 17, 2025
f900758
std: Fix WASI implementation of `remove_dir_all`
alexcrichton Sep 17, 2025
6e74905
Set lto="fat" automatically when compiling with RUSTFLAGS="-Zautodif…
Hayden602 Sep 3, 2025
7f55f57
Allow windows resource compiler to be overridden
erickt Sep 12, 2025
86b2f4f
chore(compiletest): Use newest anstyle-svg version
Muscraft Sep 16, 2025
6375083
test: Use SVG for terminal url test
Muscraft Sep 16, 2025
45e5c76
fix tidy spellchecking on windows
beepster4096 Sep 18, 2025
a08e649
move `mod canonical` out of `eval_ctxt`
lcnr Sep 16, 2025
b83c0f0
canonical: yeet `EvalCtxt`, mk `Canonicalizer` private
lcnr Sep 16, 2025
ca7276a
Rollup merge of #146229 - Hayden602:issue-142796-fix, r=ZuseZ4
jhpratt Sep 19, 2025
cd1ed51
Rollup merge of #146615 - a4lg:codegen-llvm-feature-conversion-tidyin…
jhpratt Sep 19, 2025
3834bf3
Rollup merge of #146638 - lcnr:canonical-separate-module, r=BoxyUwU
jhpratt Sep 19, 2025
dc017d1
Rollup merge of #146663 - erickt:win, r=wesleywiser
jhpratt Sep 19, 2025
026d57c
Rollup merge of #146691 - alexcrichton:wasip1-remove-dir-all-buffer, …
jhpratt Sep 19, 2025
831e40e
Rollup merge of #146709 - a4lg:stdarch-sync-20250917, r=Kobzol
jhpratt Sep 19, 2025
6d62ae3
Rollup merge of #146731 - Muscraft:svg-test-terminal-url, r=jdonszelmann
jhpratt Sep 19, 2025
795550c
Rollup merge of #146738 - beepster4096:widnows, r=jieyouxu
jhpratt Sep 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,9 @@ dependencies = [

[[package]]
name = "anstyle-svg"
version = "0.1.10"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc03a770ef506fe1396c0e476120ac0e6523cf14b74218dd5f18cd6833326fa9"
checksum = "26b9ec8c976eada1b0f9747a3d7cc4eae3bef10613e443746e7487f26c872fde"
dependencies = [
"anstyle",
"anstyle-lossy",
Expand Down Expand Up @@ -674,7 +674,7 @@ checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
dependencies = [
"serde",
"termcolor",
"unicode-width 0.1.14",
"unicode-width 0.2.1",
]

[[package]]
Expand Down
3 changes: 3 additions & 0 deletions bootstrap.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,9 @@
# Defaults to the Python interpreter used to execute x.py.
#build.python = "python"

# The path to (or name of) the resource compiler executable to use on Windows.
#build.windows-rc = "rc.exe"

# The path to the REUSE executable to use. Note that REUSE is not required in
# most cases, as our tooling relies on a cached (and shrunk) copy of the
# REUSE output present in the git repository and in our source tarballs.
Expand Down
42 changes: 20 additions & 22 deletions compiler/rustc_codegen_llvm/src/llvm_util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -217,27 +217,16 @@ impl<'a> IntoIterator for LLVMFeature<'a> {
/// Rust can also be build with an external precompiled version of LLVM which might lead to failures
/// if the oldest tested / supported LLVM version doesn't yet support the relevant intrinsics.
pub(crate) fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> Option<LLVMFeature<'a>> {
let arch = if sess.target.arch == "x86_64" {
"x86"
} else if sess.target.arch == "arm64ec" {
"aarch64"
} else if sess.target.arch == "sparc64" {
"sparc"
} else if sess.target.arch == "powerpc64" {
"powerpc"
} else {
&*sess.target.arch
let raw_arch = &*sess.target.arch;
let arch = match raw_arch {
"x86_64" => "x86",
"arm64ec" => "aarch64",
"sparc64" => "sparc",
"powerpc64" => "powerpc",
_ => raw_arch,
};
let (major, _, _) = get_version();
match (arch, s) {
("x86", "sse4.2") => Some(LLVMFeature::with_dependencies(
"sse4.2",
smallvec![TargetFeatureFoldStrength::EnableOnly("crc32")],
)),
("x86", "pclmulqdq") => Some(LLVMFeature::new("pclmul")),
("x86", "rdrand") => Some(LLVMFeature::new("rdrnd")),
("x86", "bmi1") => Some(LLVMFeature::new("bmi")),
("x86", "cmpxchg16b") => Some(LLVMFeature::new("cx16")),
("x86", "lahfsahf") => Some(LLVMFeature::new("sahf")),
("aarch64", "rcpc2") => Some(LLVMFeature::new("rcpc-immo")),
("aarch64", "dpb") => Some(LLVMFeature::new("ccpp")),
("aarch64", "dpb2") => Some(LLVMFeature::new("ccdp")),
Expand All @@ -260,14 +249,23 @@ pub(crate) fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> Option<LLVMFea
("aarch64", "fpmr") => None, // only existed in 18
("arm", "fp16") => Some(LLVMFeature::new("fullfp16")),
// Filter out features that are not supported by the current LLVM version
("loongarch32" | "loongarch64", "32s") if get_version().0 < 21 => None,
("loongarch32" | "loongarch64", "32s") if major < 21 => None,
("powerpc", "power8-crypto") => Some(LLVMFeature::new("crypto")),
("sparc", "leoncasa") => Some(LLVMFeature::new("hasleoncasa")),
("x86", "sse4.2") => Some(LLVMFeature::with_dependencies(
"sse4.2",
smallvec![TargetFeatureFoldStrength::EnableOnly("crc32")],
)),
("x86", "pclmulqdq") => Some(LLVMFeature::new("pclmul")),
("x86", "rdrand") => Some(LLVMFeature::new("rdrnd")),
("x86", "bmi1") => Some(LLVMFeature::new("bmi")),
("x86", "cmpxchg16b") => Some(LLVMFeature::new("cx16")),
("x86", "lahfsahf") => Some(LLVMFeature::new("sahf")),
// Enable the evex512 target feature if an avx512 target feature is enabled.
("x86", s) if s.starts_with("avx512") => Some(LLVMFeature::with_dependencies(
s,
smallvec![TargetFeatureFoldStrength::EnableOnly("evex512")],
)),
("sparc", "leoncasa") => Some(LLVMFeature::new("hasleoncasa")),
("powerpc", "power8-crypto") => Some(LLVMFeature::new("crypto")),
("x86", "avx10.1") => Some(LLVMFeature::new("avx10.1-512")),
("x86", "avx10.2") => Some(LLVMFeature::new("avx10.2-512")),
("x86", "apxf") => Some(LLVMFeature::with_dependencies(
Expand Down
2 changes: 0 additions & 2 deletions compiler/rustc_codegen_ssa/messages.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ codegen_ssa_aix_strip_not_used = using host's `strip` binary to cross-compile to

codegen_ssa_archive_build_failure = failed to build archive at `{$path}`: {$error}

codegen_ssa_autodiff_without_lto = using the autodiff feature requires using fat-lto

codegen_ssa_bare_instruction_set = `#[instruction_set]` requires an argument

codegen_ssa_binary_output_to_tty = option `-o` or `--emit` is used to write binary output type `{$shorthand}` to stdout, but stdout is a tty
Expand Down
4 changes: 0 additions & 4 deletions compiler/rustc_codegen_ssa/src/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,6 @@ pub(crate) struct CguNotRecorded<'a> {
pub cgu_name: &'a str,
}

#[derive(Diagnostic)]
#[diag(codegen_ssa_autodiff_without_lto)]
pub struct AutodiffWithoutLto;

#[derive(Diagnostic)]
#[diag(codegen_ssa_unknown_reuse_kind)]
pub(crate) struct UnknownReuseKind {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ enum CanonicalizeMode {
},
}

pub struct Canonicalizer<'a, D: SolverDelegate<Interner = I>, I: Interner> {
pub(super) struct Canonicalizer<'a, D: SolverDelegate<Interner = I>, I: Interner> {
delegate: &'a D,

// Immutable field.
Expand All @@ -83,7 +83,7 @@ pub struct Canonicalizer<'a, D: SolverDelegate<Interner = I>, I: Interner> {
}

impl<'a, D: SolverDelegate<Interner = I>, I: Interner> Canonicalizer<'a, D, I> {
pub fn canonicalize_response<T: TypeFoldable<I>>(
pub(super) fn canonicalize_response<T: TypeFoldable<I>>(
delegate: &'a D,
max_input_universe: ty::UniverseIndex,
variables: &'a mut Vec<I::GenericArg>,
Expand Down Expand Up @@ -112,7 +112,6 @@ impl<'a, D: SolverDelegate<Interner = I>, I: Interner> Canonicalizer<'a, D, I> {
let (max_universe, variables) = canonicalizer.finalize();
Canonical { max_universe, variables, value }
}

fn canonicalize_param_env(
delegate: &'a D,
variables: &'a mut Vec<I::GenericArg>,
Expand Down Expand Up @@ -195,7 +194,7 @@ impl<'a, D: SolverDelegate<Interner = I>, I: Interner> Canonicalizer<'a, D, I> {
///
/// We want to keep the option of canonicalizing `'static` to an existential
/// variable in the future by changing the way we detect global where-bounds.
pub fn canonicalize_input<P: TypeFoldable<I>>(
pub(super) fn canonicalize_input<P: TypeFoldable<I>>(
delegate: &'a D,
variables: &'a mut Vec<I::GenericArg>,
input: QueryInput<I, P>,
Expand Down
Loading
Loading