about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-03-14 01:04:37 +0000
committerbors <bors@rust-lang.org>2015-03-14 01:04:37 +0000
commitf7453f940b6cbc2b07a2c0d7612a11fa435aad95 (patch)
treed5ecadd4a52db48d83a6dbdf4f85d1de8a6c08bb /src/libsyntax/parse
parent3e4be02b80a3dd27bce20870958fe0aef7e7336d (diff)
parent9c0057df58fbc4c79720f9a0104dda46d4d7074e (diff)
downloadrust-f7453f940b6cbc2b07a2c0d7612a11fa435aad95.tar.gz
rust-f7453f940b6cbc2b07a2c0d7612a11fa435aad95.zip
Auto merge of #22948 - rprichard:simple-panic-opt, r=alexcrichton
Reduce code size overhead from core::panicking::panic

core::panicking::panic currently creates an Arguments structure using
format_args!("{}", expr), which formats the expr str using the Display::fmt.
Display::fmt pulls in Formatter::pad, which then also pulls in string-related
code for truncation and padding.

If core::panicking::panic instead creates an Arguments structure with a string
piece, it is possible that the Display::fmt function for str can be optimized
out of the program.

In my testing with a 32-bit x86 bare metal program, the change tended to save
between ~100 bytes and ~5500 bytes, depending on what other panic* functions
the program invokes and whether the panic_fmt lang item uses the Arguments
value.
Diffstat (limited to 'src/libsyntax/parse')
0 files changed, 0 insertions, 0 deletions