Break critical edges in inline asm before code generation by tmiasko · Pull Request #138073 · rust-lang/rust

@rustbot rustbot 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

Mar 5, 2025

bjorn3

bjorn3

@tmiasko

bjorn3

An inline asm terminator defines outputs along its target edges -- a
fallthrough target and labeled targets. Code generation implements this
by inserting code directly into the target blocks. This approach works
only if the target blocks don't have other predecessors.

Establish required invariant by extending existing code that breaks
critical edges before code generation.

@tmiasko

@bors bors added S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

and removed S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

labels

Mar 6, 2025

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Mar 7, 2025
… r=bjorn3

Break critical edges in inline asm before code generation

An inline asm terminator defines outputs along its target edges -- a
fallthrough target and labeled targets. Code generation implements this
by inserting code directly into the target blocks. This approach works
only if the target blocks don't have other predecessors.

Establish required invariant by extending existing code that breaks
critical edges before code generation.

Fixes rust-lang#137867.

r? `@bjorn3`

This was referenced

Mar 7, 2025

bors added a commit to rust-lang-ci/rust that referenced this pull request

Mar 7, 2025
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#137674 (Enable `f16` for LoongArch)
 - rust-lang#138034 (library: Use `size_of` from the prelude instead of imported)
 - rust-lang#138060 (Revert rust-lang#138019 after further discussion about how hir-pretty printing should work)
 - rust-lang#138073 (Break critical edges in inline asm before code generation)
 - rust-lang#138107 (`librustdoc`: clippy fixes)
 - rust-lang#138111 (Use `default_field_values` for `rustc_errors::Context`, `rustc_session::config::NextSolverConfig` and `rustc_session::config::ErrorOutputType`)

r? `@ghost`
`@rustbot` modify labels: rollup

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Mar 7, 2025
Rollup merge of rust-lang#138073 - tmiasko:inline-asm-critical-edges, r=bjorn3

Break critical edges in inline asm before code generation

An inline asm terminator defines outputs along its target edges -- a
fallthrough target and labeled targets. Code generation implements this
by inserting code directly into the target blocks. This approach works
only if the target blocks don't have other predecessors.

Establish required invariant by extending existing code that breaks
critical edges before code generation.

Fixes rust-lang#137867.

r? ``@bjorn3``

@tmiasko tmiasko deleted the inline-asm-critical-edges branch

March 7, 2025 17:15

github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request

Mar 14, 2025
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#137674 (Enable `f16` for LoongArch)
 - rust-lang#138034 (library: Use `size_of` from the prelude instead of imported)
 - rust-lang#138060 (Revert rust-lang#138019 after further discussion about how hir-pretty printing should work)
 - rust-lang#138073 (Break critical edges in inline asm before code generation)
 - rust-lang#138107 (`librustdoc`: clippy fixes)
 - rust-lang#138111 (Use `default_field_values` for `rustc_errors::Context`, `rustc_session::config::NextSolverConfig` and `rustc_session::config::ErrorOutputType`)

r? `@ghost`
`@rustbot` modify labels: rollup

@ojeda ojeda mentioned this pull request

Apr 9, 2025

48 tasks