-fverbose-asm
Put extra commentary information in the generated assembly code to make it more readable. This option is generally only of use to those who actually need to read the generated assembly code (perhaps while debugging the compiler itself).
-O3
gcc -O3 -fverbose-asm -o t.s t.c |
.arch armv8-a .file "t.c" // GNU C17 (GCC) version 9.2.0 (aarch64-unknown-linux-gnu) // compiled by GNU C version 9.2.0, GMP version 6.1.2, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.21-GMP // GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 // options passed: t.c -march=armv8-a -mlittle-endian -mabi=lp64 // -auxbase-strip 3 -O3 -fverbose-asm // options enabled: -fPIC -fPIE -faggressive-loop-optimizations // -falign-functions -falign-jumps -falign-labels -falign-loops // -fassume-phsa -fasynchronous-unwind-tables -fauto-inc-dec // -fbranch-count-reg -fcaller-saves -fcode-hoisting // -fcombine-stack-adjustments -fcommon -fcompare-elim -fcprop-registers // -fcrossjumping -fcse-follow-jumps -fdefer-pop // -fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively // -fdwarf2-cfi-asm -fearly-inlining -feliminate-unused-debug-types // -fexpensive-optimizations -fforward-propagate -ffp-int-builtin-inexact // -ffunction-cse -fgcse -fgcse-after-reload -fgcse-lm -fgnu-runtime // -fgnu-unique -fguess-branch-probability -fhoist-adjacent-loads -fident // -fif-conversion -fif-conversion2 -findirect-inlining -finline // -finline-atomics -finline-functions -finline-functions-called-once // -finline-small-functions -fipa-bit-cp -fipa-cp -fipa-cp-clone -fipa-icf // -fipa-icf-functions -fipa-icf-variables -fipa-profile -fipa-pure-const // -fipa-ra -fipa-reference -fipa-reference-addressable -fipa-sra // -fipa-stack-alignment -fipa-vrp -fira-hoist-pressure // -fira-share-save-slots -fira-share-spill-slots // -fisolate-erroneous-paths-dereference -fivopts -fkeep-static-consts // -fleading-underscore -flifetime-dse -floop-interchange // -floop-unroll-and-jam -flra-remat -flto-odr-type-merging -fmath-errno // -fmerge-constants -fmerge-debug-strings -fmove-loop-invariants // -fomit-frame-pointer -foptimize-sibling-calls -foptimize-strlen // -fpartial-inlining -fpeel-loops -fpeephole -fpeephole2 -fplt // -fpredictive-commoning -fprefetch-loop-arrays -free -freg-struct-return // -freorder-blocks -freorder-functions -frerun-cse-after-loop // -fsched-critical-path-heuristic -fsched-dep-count-heuristic // -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic // -fsched-pressure -fsched-rank-heuristic -fsched-spec // -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fschedule-fusion // -fschedule-insns -fschedule-insns2 -fsection-anchors // -fsemantic-interposition -fshow-column -fshrink-wrap // -fshrink-wrap-separate -fsigned-zeros -fsplit-ivs-in-unroller // -fsplit-loops -fsplit-paths -fsplit-wide-types -fssa-backprop // -fssa-phiopt -fstack-protector-strong -fstdarg-opt -fstore-merging // -fstrict-aliasing -fstrict-volatile-bitfields -fsync-libcalls // -fthread-jumps -ftoplevel-reorder -ftrapping-math -ftree-bit-ccp // -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-coalesce-vars // -ftree-copy-prop -ftree-cselim -ftree-dce -ftree-dominator-opts // -ftree-dse -ftree-forwprop -ftree-fre -ftree-loop-distribute-patterns // -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-im // -ftree-loop-ivcanon -ftree-loop-optimize -ftree-loop-vectorize // -ftree-parallelize-loops= -ftree-partial-pre -ftree-phiprop -ftree-pre // -ftree-pta -ftree-reassoc -ftree-scev-cprop -ftree-sink // -ftree-slp-vectorize -ftree-slsr -ftree-sra -ftree-switch-conversion // -ftree-tail-merge -ftree-ter -ftree-vrp -funit-at-a-time // -funswitch-loops -funwind-tables -fverbose-asm // -fversion-loops-for-strides -fzero-initialized-in-bss // -mfix-cortex-a53-835769 -mfix-cortex-a53-843419 -mglibc -mlittle-endian // -momit-leaf-frame-pointer -mpc-relative-literal-loads .text .ident "GCC: (GNU) 9.2.0" .section .note.GNU-stack,"",@progbits |
-Og
gcc -Og -fverbose-asm -o t.s t.c |
.arch armv8-a .file "t.c" // GNU C17 (GCC) version 9.2.0 (aarch64-unknown-linux-gnu) // compiled by GNU C version 9.2.0, GMP version 6.1.2, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.21-GMP // GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 // options passed: t.c -march=armv8-a -mlittle-endian -mabi=lp64 // -auxbase-strip 3 -Og -fverbose-asm // options enabled: -fPIC -fPIE -faggressive-loop-optimizations // -fassume-phsa -fasynchronous-unwind-tables -fauto-inc-dec // -fcombine-stack-adjustments -fcommon -fcompare-elim -fcprop-registers // -fdefer-pop -fdelete-null-pointer-checks -fdwarf2-cfi-asm // -fearly-inlining -feliminate-unused-debug-types -fforward-propagate // -ffp-int-builtin-inexact -ffunction-cse -fgcse-lm -fgnu-runtime // -fgnu-unique -fguess-branch-probability -fident -finline // -finline-atomics -fipa-profile -fipa-pure-const -fipa-reference // -fipa-reference-addressable -fipa-stack-alignment -fira-hoist-pressure // -fira-share-save-slots -fira-share-spill-slots -fivopts // -fkeep-static-consts -fleading-underscore -flifetime-dse // -flto-odr-type-merging -fmath-errno -fmerge-constants // -fmerge-debug-strings -fomit-frame-pointer -fpeephole -fplt // -fprefetch-loop-arrays -freg-struct-return -freorder-blocks // -fsched-critical-path-heuristic -fsched-dep-count-heuristic // -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic // -fsched-pressure -fsched-rank-heuristic -fsched-spec // -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fschedule-fusion // -fsection-anchors -fsemantic-interposition -fshow-column -fshrink-wrap // -fshrink-wrap-separate -fsigned-zeros -fsplit-ivs-in-unroller // -fsplit-wide-types -fssa-backprop -fstack-protector-strong -fstdarg-opt // -fstrict-volatile-bitfields -fsync-libcalls -ftoplevel-reorder // -ftrapping-math -ftree-builtin-call-dce -ftree-ccp -ftree-ch // -ftree-coalesce-vars -ftree-copy-prop -ftree-cselim -ftree-dce // -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre // -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon // -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop // -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-slsr -ftree-ter // -funit-at-a-time -funwind-tables -fverbose-asm -fzero-initialized-in-bss // -mfix-cortex-a53-835769 -mfix-cortex-a53-843419 -mglibc -mlittle-endian // -momit-leaf-frame-pointer -mpc-relative-literal-loads .text .ident "GCC: (GNU) 9.2.0" .section .note.GNU-stack,"",@progbits |
References
GCC Options – https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html