deinline two big functions
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 1 Jun 2010 21:16:46 +0000 (23:16 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 1 Jun 2010 21:16:46 +0000 (23:16 +0200)
function                                             old     new   delta
xz_dec_lzma2_run                                       -    1483   +1483
decode_one_format                                      -     715    +715
decode_format_string                                 840      98    -742
unpack_xz_stream                                    4014    2377   -1637
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/2 up/down: 2198/-2379)       Total: -181 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
archival/libunarchive/unxz/xz_dec_lzma2.c
coreutils/od_bloaty.c

index c22dc5ba5a7796c39002cbb10c068e2c371b3c13..37de6fc32e80757525a1e18dc376b49da6401db2 100644 (file)
@@ -915,7 +915,7 @@ static bool XZ_FUNC lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b)
  * Take care of the LZMA2 control layer, and forward the job of actual LZMA
  * decoding or copying of uncompressed chunks to other functions.
  */
-XZ_EXTERN enum xz_ret XZ_FUNC xz_dec_lzma2_run(
+XZ_EXTERN NOINLINE enum xz_ret XZ_FUNC xz_dec_lzma2_run(
                struct xz_dec_lzma2 *s, struct xz_buf *b)
 {
        uint32_t tmp;
index 6a532fa9daeb70e6a68b1007175d3453e43b4b6a..6aba0f6bb8c97d18281099c6d8c2aca509a9b912 100644 (file)
@@ -521,7 +521,7 @@ check_and_close(void)
    S_ORIG is solely for reporting errors.  It should be the full format
    string argument. */
 
-static const char *
+static NOINLINE const char *
 decode_one_format(const char *s_orig, const char *s, struct tspec *tspec)
 {
        enum size_spec size_spec;