1a28b8d78SJordan Rupprechtllvm-size - print size information 2a28b8d78SJordan Rupprecht================================== 3a28b8d78SJordan Rupprecht 4a28b8d78SJordan Rupprecht.. program:: llvm-size 5a28b8d78SJordan Rupprecht 6a28b8d78SJordan RupprechtSYNOPSIS 7a28b8d78SJordan Rupprecht-------- 8a28b8d78SJordan Rupprecht 9e8ed9326SJames Henderson:program:`llvm-size` [*options*] [*input...*] 10a28b8d78SJordan Rupprecht 11a28b8d78SJordan RupprechtDESCRIPTION 12a28b8d78SJordan Rupprecht----------- 13a28b8d78SJordan Rupprecht 14e8ed9326SJames Henderson:program:`llvm-size` is a tool that prints size information for binary files. 15e8ed9326SJames HendersonIt is intended to be a drop-in replacement for GNU's :program:`size`. 16e8ed9326SJames Henderson 17e8ed9326SJames HendersonThe tool prints size information for each ``input`` specified. If no input is 18e8ed9326SJames Hendersonspecified, the program prints size information for ``a.out``. If "``-``" is 19e8ed9326SJames Hendersonspecified as an input file, :program:`llvm-size` reads a file from the standard 20e8ed9326SJames Hendersoninput stream. If an input is an archive, size information will be displayed for 21e8ed9326SJames Hendersonall its members. 22e8ed9326SJames Henderson 23e8ed9326SJames HendersonOPTIONS 24e8ed9326SJames Henderson------- 25e8ed9326SJames Henderson 26e8ed9326SJames Henderson.. option:: -A 27e8ed9326SJames Henderson 28e8ed9326SJames Henderson Equivalent to :option:`--format` with a value of ``sysv``. 29e8ed9326SJames Henderson 30e8ed9326SJames Henderson.. option:: --arch=<arch> 31e8ed9326SJames Henderson 32e8ed9326SJames Henderson Architecture(s) from Mach-O universal binaries to display information for. 33e8ed9326SJames Henderson 34e8ed9326SJames Henderson.. option:: -B 35e8ed9326SJames Henderson 36e8ed9326SJames Henderson Equivalent to :option:`--format` with a value of ``berkeley``. 37e8ed9326SJames Henderson 38e8ed9326SJames Henderson.. option:: --common 39e8ed9326SJames Henderson 40e8ed9326SJames Henderson Include ELF common symbol sizes in bss size for ``berkeley`` output format, or 41e8ed9326SJames Henderson as a separate section entry for ``sysv`` output. If not specified, these 42eefbc358SJames Henderson symbols are ignored. 43e8ed9326SJames Henderson 44e8ed9326SJames Henderson.. option:: -d 45e8ed9326SJames Henderson 46e8ed9326SJames Henderson Equivalent to :option:`--radix` with a value of ``10``. 47e8ed9326SJames Henderson 48e8ed9326SJames Henderson.. option:: -l 49e8ed9326SJames Henderson 50e8ed9326SJames Henderson Display verbose address and offset information for segments and sections in 51e8ed9326SJames Henderson Mach-O files in ``darwin`` format. 52e8ed9326SJames Henderson 53e8ed9326SJames Henderson.. option:: --format=<format> 54e8ed9326SJames Henderson 55e8ed9326SJames Henderson Set the output format to the ``<format>`` specified. Available ``<format>`` 56e8ed9326SJames Henderson options are ``berkeley`` (the default), ``sysv`` and ``darwin``. 57e8ed9326SJames Henderson 58e8ed9326SJames Henderson Berkeley output summarises text, data and bss sizes in each file, as shown 59e8ed9326SJames Henderson below for a typical pair of ELF files: 60e8ed9326SJames Henderson 61e8ed9326SJames Henderson .. code-block:: console 62e8ed9326SJames Henderson 63e8ed9326SJames Henderson $ llvm-size --format=berkeley test.o test2.o 64e8ed9326SJames Henderson text data bss dec hex filename 65e8ed9326SJames Henderson 182 16 5 203 cb test.elf 66e8ed9326SJames Henderson 82 8 1 91 5b test2.o 67e8ed9326SJames Henderson 68e8ed9326SJames Henderson For Mach-O files, the output format is slightly different: 69e8ed9326SJames Henderson 70e8ed9326SJames Henderson .. code-block:: console 71e8ed9326SJames Henderson 72e8ed9326SJames Henderson $ llvm-size --format=berkeley macho.obj macho2.obj 73e8ed9326SJames Henderson __TEXT __DATA __OBJC others dec hex 74e8ed9326SJames Henderson 4 8 0 0 12 c macho.obj 75e8ed9326SJames Henderson 16 32 0 0 48 30 macho2.obj 76e8ed9326SJames Henderson 77e8ed9326SJames Henderson Sysv output displays size and address information for most sections, with each 78e8ed9326SJames Henderson file being listed separately: 79e8ed9326SJames Henderson 80e8ed9326SJames Henderson .. code-block:: console 81e8ed9326SJames Henderson 82e8ed9326SJames Henderson $ llvm-size --format=sysv test.elf test2.o 83e8ed9326SJames Henderson test.elf : 84e8ed9326SJames Henderson section size addr 85e8ed9326SJames Henderson .eh_frame 92 2097496 86e8ed9326SJames Henderson .text 90 2101248 87e8ed9326SJames Henderson .data 16 2105344 88e8ed9326SJames Henderson .bss 5 2105360 89e8ed9326SJames Henderson .comment 209 0 90e8ed9326SJames Henderson Total 412 91e8ed9326SJames Henderson 92e8ed9326SJames Henderson test2.o : 93e8ed9326SJames Henderson section size addr 94e8ed9326SJames Henderson .text 26 0 95e8ed9326SJames Henderson .data 8 0 96e8ed9326SJames Henderson .bss 1 0 97e8ed9326SJames Henderson .comment 106 0 98e8ed9326SJames Henderson .note.GNU-stack 0 0 99e8ed9326SJames Henderson .eh_frame 56 0 100e8ed9326SJames Henderson .llvm_addrsig 2 0 101e8ed9326SJames Henderson Total 199 102e8ed9326SJames Henderson 103e8ed9326SJames Henderson ``darwin`` format only affects Mach-O input files. If an input of a different 104e8ed9326SJames Henderson file format is specified, :program:`llvm-size` falls back to ``berkeley`` 105e8ed9326SJames Henderson format. When producing ``darwin`` format, the tool displays information about 106e8ed9326SJames Henderson segments and sections: 107e8ed9326SJames Henderson 108e8ed9326SJames Henderson .. code-block:: console 109e8ed9326SJames Henderson 110e8ed9326SJames Henderson $ llvm-size --format=darwin macho.obj macho2.obj 111e8ed9326SJames Henderson macho.obj: 112e8ed9326SJames Henderson Segment : 12 113e8ed9326SJames Henderson Section (__TEXT, __text): 4 114e8ed9326SJames Henderson Section (__DATA, __data): 8 115e8ed9326SJames Henderson total 12 116e8ed9326SJames Henderson total 12 117e8ed9326SJames Henderson macho2.obj: 118e8ed9326SJames Henderson Segment : 48 119e8ed9326SJames Henderson Section (__TEXT, __text): 16 120e8ed9326SJames Henderson Section (__DATA, __data): 32 121e8ed9326SJames Henderson total 48 122e8ed9326SJames Henderson total 48 123e8ed9326SJames Henderson 124e8ed9326SJames Henderson.. option:: --help, -h 125e8ed9326SJames Henderson 126e8ed9326SJames Henderson Display a summary of command line options. 127e8ed9326SJames Henderson 128e8ed9326SJames Henderson.. option:: -m 129e8ed9326SJames Henderson 130e8ed9326SJames Henderson Equivalent to :option:`--format` with a value of ``darwin``. 131e8ed9326SJames Henderson 132e8ed9326SJames Henderson.. option:: -o 133e8ed9326SJames Henderson 134e8ed9326SJames Henderson Equivalent to :option:`--radix` with a value of ``8``. 135e8ed9326SJames Henderson 136e8ed9326SJames Henderson.. option:: --radix=<value> 137e8ed9326SJames Henderson 138e8ed9326SJames Henderson Display size information in the specified radix. Permitted values are ``8``, 139e8ed9326SJames Henderson ``10`` (the default) and ``16`` for octal, decimal and hexadecimal output 140e8ed9326SJames Henderson respectively. 141e8ed9326SJames Henderson 142e8ed9326SJames Henderson Example: 143e8ed9326SJames Henderson 144e8ed9326SJames Henderson .. code-block:: console 145e8ed9326SJames Henderson 146e8ed9326SJames Henderson $ llvm-size --radix=8 test.o 147e8ed9326SJames Henderson text data bss oct hex filename 148e8ed9326SJames Henderson 0152 04 04 162 72 test.o 149e8ed9326SJames Henderson 150e8ed9326SJames Henderson $ llvm-size --radix=10 test.o 151e8ed9326SJames Henderson text data bss dec hex filename 152e8ed9326SJames Henderson 106 4 4 114 72 test.o 153e8ed9326SJames Henderson 154e8ed9326SJames Henderson $ llvm-size --radix=16 test.o 155e8ed9326SJames Henderson text data bss dec hex filename 156e8ed9326SJames Henderson 0x6a 0x4 0x4 114 72 test.o 157e8ed9326SJames Henderson 158e8ed9326SJames Henderson.. option:: --totals, -t 159e8ed9326SJames Henderson 160e8ed9326SJames Henderson Applies only to ``berkeley`` output format. Display the totals for all listed 161e8ed9326SJames Henderson fields, in addition to the individual file listings. 162e8ed9326SJames Henderson 163e8ed9326SJames Henderson Example: 164e8ed9326SJames Henderson 165e8ed9326SJames Henderson .. code-block:: console 166e8ed9326SJames Henderson 167e8ed9326SJames Henderson $ llvm-size --totals test.elf test2.o 168e8ed9326SJames Henderson text data bss dec hex filename 169e8ed9326SJames Henderson 182 16 5 203 cb test.elf 170e8ed9326SJames Henderson 82 8 1 91 5b test2.o 171e8ed9326SJames Henderson 264 24 6 294 126 (TOTALS) 172e8ed9326SJames Henderson 173e8ed9326SJames Henderson.. option:: --version 174e8ed9326SJames Henderson 175e8ed9326SJames Henderson Display the version of the :program:`llvm-size` executable. 176e8ed9326SJames Henderson 177e8ed9326SJames Henderson.. option:: -x 178e8ed9326SJames Henderson 179e8ed9326SJames Henderson Equivalent to :option:`--radix` with a value of ``16``. 180e8ed9326SJames Henderson 181e8ed9326SJames Henderson.. option:: @<FILE> 182e8ed9326SJames Henderson 183e8ed9326SJames Henderson Read command-line options from response file ``<FILE>``. 184e8ed9326SJames Henderson 185e8ed9326SJames HendersonEXIT STATUS 186e8ed9326SJames Henderson----------- 187e8ed9326SJames Henderson 188e8ed9326SJames Henderson:program:`llvm-size` exits with a non-zero exit code if there is an error. 189e8ed9326SJames HendersonOtherwise, it exits with code 0. 190e8ed9326SJames Henderson 191e8ed9326SJames HendersonBUGS 192e8ed9326SJames Henderson---- 193e8ed9326SJames Henderson 194*bbce75e3SChuanqi XuTo report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-size/>. 195