Skip to content

Introduce InstanceKind::LlvmIntrinsic - #159183

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
bjorn3:instance_llvm_intrinsic
Jul 15, 2026
Merged

Introduce InstanceKind::LlvmIntrinsic#159183
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
bjorn3:instance_llvm_intrinsic

Conversation

@bjorn3

@bjorn3bjorn3 commented Jul 12, 2026

Copy link
Copy Markdown
Member

View all comments

This way codegen backends don't have to check for a magic symbol name prefix to detect LLVM intrinsic calls and thus can more easily handle them separately as necessary.

@rustbot

Copy link
Copy Markdown
Collaborator

miri is developed in its own repository. If possible, consider making this change to rust-lang/miri instead.

cc @rust-lang/miri

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

Some changes occurred to the CTFE / Miri interpreter

cc @rust-lang/miri

Some changes occurred to the CTFE machinery

cc @RalfJung, @oli-obk, @lcnr

This PR changes rustc_public

cc @oli-obk, @celinval, @ouz-a, @makai410

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 12, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @folkertdev

rustbot has assigned @folkertdev.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 75 candidates
  • Random selection from 18 candidates

@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from e14ca78 to b7990f6CompareJuly 12, 2026 16:24
Comment threadsrc/tools/miri/src/intrinsics/mod.rs Outdated
@rust-log-analyzer

This comment has been minimized.

@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from b7990f6 to caeec62CompareJuly 12, 2026 17:11
@rust-log-analyzer

This comment has been minimized.

@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from caeec62 to 1f3938aCompareJuly 12, 2026 18:03
@rust-log-analyzer

This comment has been minimized.

@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from 1f3938a to a06a06eCompareJuly 12, 2026 18:12
@rust-log-analyzer

This comment has been minimized.

@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from a06a06e to cb285feCompareJuly 12, 2026 19:52
@rust-log-analyzer

This comment has been minimized.

@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from cb285fe to 04d1d47CompareJuly 12, 2026 20:38
Comment threadcompiler/rustc_const_eval/src/interpret/machine.rs Outdated
Comment threadsrc/tools/miri/src/intrinsics/mod.rs Outdated
Comment threadsrc/tools/miri/src/intrinsics/mod.rs Outdated
@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from dac9874 to 2354759CompareJuly 13, 2026 12:56
Comment threadsrc/tools/miri/src/intrinsics/mod.rs Outdated
Comment threadsrc/tools/miri/src/shims/foreign_items.rs Outdated

@RalfJungRalfJung left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me on the Miri changes

View changes since this review

@RalfJung

Copy link
Copy Markdown
Member

Oh wait nvm there was the EmulateItemResult discussion.

@bjorn3

Copy link
Copy Markdown
MemberAuthor

Ok if I squash the first four commits?

@RalfJungRalfJung left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now for real, r=me on the Miri parts. :)

And yeah fine for me to squash.

View changes since this review

bjorn3 added 2 commits July 13, 2026 14:20
This way codegen backends don't have to check for a magic symbol name
prefix to detect LLVM intrinsic calls and thus can more easily handle
them separately as necessary.
@bjorn3
bjorn3force-pushed the instance_llvm_intrinsic branch from 0d67630 to aec727fCompareJuly 13, 2026 14:20
@folkertdev

Copy link
Copy Markdown
Contributor

Nice!

@bors r=RalfJung,folkertdev

@rust-bors

rust-borsBot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

📌 Commit aec727f has been approved by RalfJung,folkertdev

It is now in the queue for this repository.

@rust-borsrust-borsBot added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jul 14, 2026
@rust-borsrust-borsBot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 14, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 14, 2026
…RalfJung,folkertdev
Introduce InstanceKind::LlvmIntrinsic
This way codegen backends don't have to check for a magic symbol name prefix to detect LLVM intrinsic calls and thus can more easily handle them separately as necessary.
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 14, 2026
…RalfJung,folkertdev
Introduce InstanceKind::LlvmIntrinsic
This way codegen backends don't have to check for a magic symbol name prefix to detect LLVM intrinsic calls and thus can more easily handle them separately as necessary.
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 14, 2026
…RalfJung,folkertdev
Introduce InstanceKind::LlvmIntrinsic
This way codegen backends don't have to check for a magic symbol name prefix to detect LLVM intrinsic calls and thus can more easily handle them separately as necessary.
This was referenced Jul 14, 2026
rust-borsBot pushed a commit that referenced this pull request Jul 14, 2026
…uwer
Rollup of 22 pull requests
Successful merges:
- #156047 (Fix trait method resolution on an adjusted never type)
- #157824 (Comptime inherent impls)
- #158235 (Store `DefId` instead of `EiiDecl` in `EiiImplResolution::Known`)
- #158723 (Support EII on Windows MSVC)
- #158993 (rerun in original typing mode if we meet any opaques in post analysis)
- #159160 (Make `HasTokens` a sub-trait of `HasAttrs`.)
- #159183 (Introduce InstanceKind::LlvmIntrinsic)
- #159251 (Bump rustc-perf submodule)
- #155013 (Suggest the `[const] Destruct` bound for type parameters in const functions when missing)
- #159155 (unstable book: Document `diagnostic_on_unknown` feature)
- #159235 (Add regression test for #95719)
- #159243 (inline Once wait and wait_force)
- #159255 (Replace shortened type with `_` instead of `...` as placeholder)
- #159259 (Add regression test for #144033)
- #159265 (bootstrap: skip intrinsic-test when rustfmt is unavailable)
- #159269 (disable range-len-try-from.rs on s390x)
- #159272 (slice: make swap delegate to swap_unchecked)
- #159274 (bootstrap: Rename `std_crates_for_run_make` to `std_crates_for_make_run`)
- #159275 (remove obsolete comment)
- #159277 (Construct `tokens` for attrs made by `mk_attr_word` and other variants)
- #159283 (Remove obsolete verbose flag from deref/ref suggestions)
- #159290 (rustc-dev-guide subtree update)
rust-borsBot pushed a commit that referenced this pull request Jul 15, 2026
…uwer
Rollup of 22 pull requests
Successful merges:
- #156047 (Fix trait method resolution on an adjusted never type)
- #157824 (Comptime inherent impls)
- #158235 (Store `DefId` instead of `EiiDecl` in `EiiImplResolution::Known`)
- #158723 (Support EII on Windows MSVC)
- #158993 (rerun in original typing mode if we meet any opaques in post analysis)
- #159160 (Make `HasTokens` a sub-trait of `HasAttrs`.)
- #159183 (Introduce InstanceKind::LlvmIntrinsic)
- #159251 (Bump rustc-perf submodule)
- #155013 (Suggest the `[const] Destruct` bound for type parameters in const functions when missing)
- #159155 (unstable book: Document `diagnostic_on_unknown` feature)
- #159235 (Add regression test for #95719)
- #159243 (inline Once wait and wait_force)
- #159255 (Replace shortened type with `_` instead of `...` as placeholder)
- #159259 (Add regression test for #144033)
- #159265 (bootstrap: skip intrinsic-test when rustfmt is unavailable)
- #159269 (disable range-len-try-from.rs on s390x)
- #159272 (slice: make swap delegate to swap_unchecked)
- #159274 (bootstrap: Rename `std_crates_for_run_make` to `std_crates_for_make_run`)
- #159275 (remove obsolete comment)
- #159277 (Construct `tokens` for attrs made by `mk_attr_word` and other variants)
- #159283 (Remove obsolete verbose flag from deref/ref suggestions)
- #159290 (rustc-dev-guide subtree update)
@rust-bors
rust-borsBot merged commit 09e4f79 into rust-lang:mainJul 15, 2026
13 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Jul 15, 2026
rust-timer added a commit that referenced this pull request Jul 15, 2026
Rollup merge of #159183 - bjorn3:instance_llvm_intrinsic, r=RalfJung,folkertdev
Introduce InstanceKind::LlvmIntrinsic
This way codegen backends don't have to check for a magic symbol name prefix to detect LLVM intrinsic calls and thus can more easily handle them separately as necessary.
RalfJung pushed a commit to RalfJung/miri that referenced this pull request Jul 15, 2026
…uwer
Rollup of 22 pull requests
Successful merges:
- rust-lang/rust#156047 (Fix trait method resolution on an adjusted never type)
- rust-lang/rust#157824 (Comptime inherent impls)
- rust-lang/rust#158235 (Store `DefId` instead of `EiiDecl` in `EiiImplResolution::Known`)
- rust-lang/rust#158723 (Support EII on Windows MSVC)
- rust-lang/rust#158993 (rerun in original typing mode if we meet any opaques in post analysis)
- rust-lang/rust#159160 (Make `HasTokens` a sub-trait of `HasAttrs`.)
- rust-lang/rust#159183 (Introduce InstanceKind::LlvmIntrinsic)
- rust-lang/rust#159251 (Bump rustc-perf submodule)
- rust-lang/rust#155013 (Suggest the `[const] Destruct` bound for type parameters in const functions when missing)
- rust-lang/rust#159155 (unstable book: Document `diagnostic_on_unknown` feature)
- rust-lang/rust#159235 (Add regression test for rust-lang/rust#95719)
- rust-lang/rust#159243 (inline Once wait and wait_force)
- rust-lang/rust#159255 (Replace shortened type with `_` instead of `...` as placeholder)
- rust-lang/rust#159259 (Add regression test for rust-lang/rust#144033)
- rust-lang/rust#159265 (bootstrap: skip intrinsic-test when rustfmt is unavailable)
- rust-lang/rust#159269 (disable range-len-try-from.rs on s390x)
- rust-lang/rust#159272 (slice: make swap delegate to swap_unchecked)
- rust-lang/rust#159274 (bootstrap: Rename `std_crates_for_run_make` to `std_crates_for_make_run`)
- rust-lang/rust#159275 (remove obsolete comment)
- rust-lang/rust#159277 (Construct `tokens` for attrs made by `mk_attr_word` and other variants)
- rust-lang/rust#159283 (Remove obsolete verbose flag from deref/ref suggestions)
- rust-lang/rust#159290 (rustc-dev-guide subtree update)
@bjorn3
bjorn3 deleted the instance_llvm_intrinsic branch July 15, 2026 08:39
github-actionsBot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Jul 20, 2026
…uwer
Rollup of 22 pull requests
Successful merges:
- rust-lang/rust#156047 (Fix trait method resolution on an adjusted never type)
- rust-lang/rust#157824 (Comptime inherent impls)
- rust-lang/rust#158235 (Store `DefId` instead of `EiiDecl` in `EiiImplResolution::Known`)
- rust-lang/rust#158723 (Support EII on Windows MSVC)
- rust-lang/rust#158993 (rerun in original typing mode if we meet any opaques in post analysis)
- rust-lang/rust#159160 (Make `HasTokens` a sub-trait of `HasAttrs`.)
- rust-lang/rust#159183 (Introduce InstanceKind::LlvmIntrinsic)
- rust-lang/rust#159251 (Bump rustc-perf submodule)
- rust-lang/rust#155013 (Suggest the `[const] Destruct` bound for type parameters in const functions when missing)
- rust-lang/rust#159155 (unstable book: Document `diagnostic_on_unknown` feature)
- rust-lang/rust#159235 (Add regression test for rust-lang/rust#95719)
- rust-lang/rust#159243 (inline Once wait and wait_force)
- rust-lang/rust#159255 (Replace shortened type with `_` instead of `...` as placeholder)
- rust-lang/rust#159259 (Add regression test for rust-lang/rust#144033)
- rust-lang/rust#159265 (bootstrap: skip intrinsic-test when rustfmt is unavailable)
- rust-lang/rust#159269 (disable range-len-try-from.rs on s390x)
- rust-lang/rust#159272 (slice: make swap delegate to swap_unchecked)
- rust-lang/rust#159274 (bootstrap: Rename `std_crates_for_run_make` to `std_crates_for_make_run`)
- rust-lang/rust#159275 (remove obsolete comment)
- rust-lang/rust#159277 (Construct `tokens` for attrs made by `mk_attr_word` and other variants)
- rust-lang/rust#159283 (Remove obsolete verbose flag from deref/ref suggestions)
- rust-lang/rust#159290 (rustc-dev-guide subtree update)
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 22, 2026
…RalfJung,folkertdev
Introduce InstanceKind::LlvmIntrinsic
This way codegen backends don't have to check for a magic symbol name prefix to detect LLVM intrinsic calls and thus can more easily handle them separately as necessary.
Kobzol pushed a commit to Kobzol/rustc_codegen_cranelift that referenced this pull request Jul 23, 2026
…uwer
Rollup of 22 pull requests
Successful merges:
- rust-lang/rust#156047 (Fix trait method resolution on an adjusted never type)
- rust-lang/rust#157824 (Comptime inherent impls)
- rust-lang/rust#158235 (Store `DefId` instead of `EiiDecl` in `EiiImplResolution::Known`)
- rust-lang/rust#158723 (Support EII on Windows MSVC)
- rust-lang/rust#158993 (rerun in original typing mode if we meet any opaques in post analysis)
- rust-lang/rust#159160 (Make `HasTokens` a sub-trait of `HasAttrs`.)
- rust-lang/rust#159183 (Introduce InstanceKind::LlvmIntrinsic)
- rust-lang/rust#159251 (Bump rustc-perf submodule)
- rust-lang/rust#155013 (Suggest the `[const] Destruct` bound for type parameters in const functions when missing)
- rust-lang/rust#159155 (unstable book: Document `diagnostic_on_unknown` feature)
- rust-lang/rust#159235 (Add regression test for rust-lang/rust#95719)
- rust-lang/rust#159243 (inline Once wait and wait_force)
- rust-lang/rust#159255 (Replace shortened type with `_` instead of `...` as placeholder)
- rust-lang/rust#159259 (Add regression test for rust-lang/rust#144033)
- rust-lang/rust#159265 (bootstrap: skip intrinsic-test when rustfmt is unavailable)
- rust-lang/rust#159269 (disable range-len-try-from.rs on s390x)
- rust-lang/rust#159272 (slice: make swap delegate to swap_unchecked)
- rust-lang/rust#159274 (bootstrap: Rename `std_crates_for_run_make` to `std_crates_for_make_run`)
- rust-lang/rust#159275 (remove obsolete comment)
- rust-lang/rust#159277 (Construct `tokens` for attrs made by `mk_attr_word` and other variants)
- rust-lang/rust#159283 (Remove obsolete verbose flag from deref/ref suggestions)
- rust-lang/rust#159290 (rustc-dev-guide subtree update)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@bjorn3@rustbot@rust-log-analyzer@RalfJung@folkertdev