about summary refs log tree commit diff
path: root/tests/codegen/patchable-function-entry/patchable-function-entry-no-flag.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-03-29 00:24:01 +0000
committerbors <bors@rust-lang.org>2024-03-29 00:24:01 +0000
commit211b585c609d4dfe5e826c540b89277745680913 (patch)
tree67b187d8048759e6e2cf1fb994f20cd9f6af0f8a /tests/codegen/patchable-function-entry/patchable-function-entry-no-flag.rs
parent1ee4ae9eb2e31cb5ce5f256f93116e86b46e4f59 (diff)
parentc8cb091e1eae71416c3fd1514de3332a7e173f81 (diff)
downloadrust-211b585c609d4dfe5e826c540b89277745680913.tar.gz
rust-211b585c609d4dfe5e826c540b89277745680913.zip
Auto merge of #122671 - Mark-Simulacrum:const-panic-msg, r=Nilstrieb
Codegen const panic messages as function calls

This skips emitting extra arguments at every callsite (of which there
can be many). For a librustc_driver build with overflow checks enabled,
this cuts 0.7MB from the resulting shared library (see [perf]).

A sample improvement from nightly:

```
        leaq    str.0(%rip), %rdi
        leaq    .Lalloc_d6aeb8e2aa19de39a7f0e861c998af13(%rip), %rdx
        movl    $25, %esi
        callq   *_ZN4core9panicking5panic17h17cabb89c5bcc999E@GOTPCREL(%rip)
```

to this PR:

```
        leaq    .Lalloc_d6aeb8e2aa19de39a7f0e861c998af13(%rip), %rdi
        callq   *_RNvNtNtCsduqIKoij8JB_4core9panicking11panic_const23panic_const_div_by_zero@GOTPCREL(%rip)
```

[perf]: https://perf.rust-lang.org/compare.html?start=a7e4de13c1785819f4d61da41f6704ed69d5f203&end=64fbb4f0b2d621ff46d559d1e9f5ad89a8d7789b&stat=instructions:u
Diffstat (limited to 'tests/codegen/patchable-function-entry/patchable-function-entry-no-flag.rs')
0 files changed, 0 insertions, 0 deletions