เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เบžเบฒเบชเบฒเบเบฃเบฑเปˆเบ‡เปเบญเบชเบ›เบฒเป‚เบเบ™

Ad


OnWorks favicon

mips-linux-gnu-gnatgcc - เบญเบญเบ™เบฅเบฒเบเปƒเบ™เบ„เบฅเบฒเบง

เปเบฅเปˆเบ™ mips-linux-gnu-gnatgcc เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเบœเปˆเบฒเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ mips-linux-gnu-gnatgcc เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเป‚เบ”เบเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเบผเบฒเบเป†เบšเปˆเบญเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบ™เป„เบฅเบ™เปŒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบฑเปˆเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เป‚เบ„เบ‡เบเบฒเบ™:

NAME


gcc - GNU project C เปเบฅเบฐ C++ compiler

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก


gcc [-c|-S|-E] [-std=เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™]
[-g] [- เปœเป‰เบฒ] [-Oเบฅเบฐเบ”เบฑเบš]
[-Wเป€เบ•เบทเบญเบ™... ] [-Wpedantic]
[-Idir... ] [-Ldir... ]
[-Dเบกเบฐเบซเบฒเบžเบฒเบ[=defn]...] [-Uเบกเบฐเบซเบฒเบžเบฒเบ]
[-fเบ—เบฒเบ‡เป€เบฅเบทเบญเบ... ] [-mเบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹... ]
[-o outfile] [@เป€เบญเบเบฐเบชเบฒเบ™] infile...

เบžเบฝเบ‡เปเบ•เปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰; เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญ. g ++ เบเบญเบกเบฎเบฑเบš
เบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš gcc.

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”


เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡ GCC, เบกเบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบญเบ™, เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡.
"เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป‚เบ”เบเบฅเบงเบก" เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบขเบธเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ‡. เบชเปเบฒเบฅเบฑเบš
เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, the -c เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเบญเบเบงเปˆเบฒเบšเปเปˆเปƒเบซเป‰เปเบฅเปˆเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบงเบฑเบ”เบ–เบธ
เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เป‚เบ”เบเบœเบนเป‰เบ›เบฐเบเบญเบš.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบญเบทเปˆเบ™โ€‹เบ–เบทเบโ€‹เบชเบปเปˆเบ‡โ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹
preprocessor เปเบฅเบฐเบญเบทเปˆเบ™เป† compiler เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เปเบ•เปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐ
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ; เบชเปˆเบงเบ™เปƒเบซเบเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ„เปˆเบญเบเบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เปƒเบ”เป†.

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš GCC เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ C; เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบšเบžเบฒเบชเบฒเบญเบทเปˆเบ™ (เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง C ++), เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡. เบ–เป‰เบฒเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เปเบซเบผเปˆเบ‡เปƒเบ”เบซเบ™เบถเปˆเบ‡
เบžเบฒเบชเบฒ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ—เบธเบเบžเบฒเบชเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

เป„เบ”เป‰ gcc เป‚เบ„เบ‡เบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบฅเบฐเบŠเบทเปˆเป„เบŸเบฅเปŒเป€เบ›เบฑเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™. เบกเบตโ€‹เบซเบผเบฒเบโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบซเบผเบฒเบ
เบŠเบทเปˆเบ•เบปเบงเบญเบฑเบเบชเบญเบ™; เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ”เบฝเบงเบญเบฒเบ”เบˆเบฐ เบšเปเปˆ เบ–เบทเบเบˆเบฑเบ”เป€เบ›เบฑเบ™เบเบธเปˆเบก: -เบ”เบตเบงเบตเบ”เบต เปเบกเปˆเบ™เบซเบผเบฒเบ
เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบˆเบฒเบ -d -v.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบชเบปเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบญเบทเปˆเบ™เป†. เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰
เป€เบฅเบทเปˆเบญเบ‡. เบ„เปเบฒเบชเบฑเปˆเบ‡เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™; เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒ
เบ—เปˆเบฒเบ™เบฅเบฐเบšเบธ -L เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡, เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰,
เบเบฒเบ™เบšเบฑเบ™เบˆเบธเป€เบ‚เบปเป‰เบฒเบฎเบฝเบ™เบ‚เบญเบ‡ -l เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบซเบผเบฒเบเบกเบตเบŠเบทเปˆเบเบฒเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ -f เบซเบผเบทเบเบฑเบš -W---เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
-fmove-loop-invariants, -Wformat เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบชเปˆเบงเบ™เปƒเบซเบเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบ—เบฑเบ‡เบ—เบฒเบ‡เบšเบงเบเปเบฅเบฐเบ—เบฒเบ‡เบฅเบปเบš
เปเบšเบšเบŸเบญเบก; เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบฒเบ‡โ€‹เบฅเบปเบšโ€‹เบ‚เบญเบ‡โ€‹ -ffoo is -fno-foo. เป€เบญเบเบฐเบชเบฒเบ™เบ„เบนเปˆเบกเบทเบ™เบตเป‰เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบชเบญเบ‡เบฎเบนเบšเปเบšเบš, เบญเบฑเบ™เปƒเบ”เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

OPTIONS


เบ—เบฒเบ‡เป€เบฅเบทเบญเบ Summary
เบ™เบตเป‰เปเบกเปˆเบ™เบšเบปเบ”เบชเบฐเบซเบผเบธเบšเบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบฑเบ‡เปเบปเบ”, เบˆเบฑเบ”เบเบธเปˆเบกเบ•เบฒเบกเบ›เบฐเป€เบžเบ”. เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบขเบนเปˆเปƒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบžเบฒเบเบชเปˆเบงเบ™.

เป‚เบ”เบเบฅเบงเบก เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-c -S -E -o เป€เบญเบเบฐเบชเบฒเบ™ -no-canonical-prefixes - เบ›เบธเบš -pass-exit-codes -x เบžเบฒเบชเบฒ -v
-### - เบŠเปˆเบงเบ[=เบฅเบฐเบ”เบฑเบš[...]] --เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบเบฒเบ™โ€‹เบŠเปˆเบงเบโ€‹เป€เบซเบผเบทเบญโ€‹ - เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ - เบซเปเปˆ @เป€เบญเบเบฐเบชเบฒเบ™ -fplugin=เป€เบญเบเบฐเบชเบฒเบ™
-fplugin-arg-เบŠเบทเปˆ=arg -fdump-ada-spec[-เบšเบฒเบ‡] -fada-spec-parent=เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™
-fdump-go-spec=เป€เบญเบเบฐเบชเบฒเบ™

C เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-ansi -std=เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ -fgnu89-inline - เบ‚เปเป‰เบกเบนเบ™ aux เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™
-fallow-parameterless-variadic-functions -fno-asm -fno-builtin -fno-builtin-เบซเบ™เป‰เบฒเบ—เบตเปˆ
-fhosted - freestanding -fopenacc -fopenmp -fopenmp-simd -fms-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ
-fplan9-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ -trigraphs - เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก -cpp -fallow-single-precision
-fcond-เบšเปเปˆเบเบปเบ‡เบเบฑเบ™ -flax-vector-เปเบ›เบ‡ -fsigned-bitfields -fsigned-char
-funsigned-bitfields -funsigned-char

C ++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fabi-version=n -fno-access-control -fcheck-เปƒเปเปˆ -fconstexpr-depth=n
-ffriend-เบชเบฑเบเบขเบฒ -fno-elide-constructors -fno-enforce-eh-specs -ffor-scope
-fno-for-scope -fno-gnu-keywords -fno-implicit-templates
-fno-implicit-inline-templates -fno-implement-inlines -fms-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ
-fno-nonansi-builtins -fnotrow-opt -fno-operator-names -fno-optional-diags
-fpermissive -fno-pretty-templates -frepo -fno-rtti -fsized-deallocation -fstats
-ftemplate-backtrace-limit=n -ftemplate-depth=n -fno-threadsafe-statics
-fuse-cxa-atexit -fno-เบญเปˆเบญเบ™เปเบญ -nostdinc++ -fvisibility-inlines-hidden
-fvtable-verify=[std|เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™|none] -fvtv-เบ™เบฑเบš -fvtv-debug -fvisibility-ms-compat
-fext-เบ•เบปเบงเป€เบฅเบ-เบ•เบปเบงเปœเบฑเบ‡เบชเบท -Wabi=n -wabi-tag -Wconversion-null -Wctor-dtor-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ•เบปเบง
-Wdelete-เบšเปเปˆเปเบกเปˆเบ™ virtual-dtor -Wliteral-suffix - เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡โ€‹ - เบเบปเบเป€เบงเบฑเป‰เบ™ -Wnon-virtual-dtor
- เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹ -Weffc++ -Wstrict-null-sentinel -Wno-เบšเปเปˆเปเบกเปˆเบ™เปเบกเปˆเปเบšเบš-เป€เบžเบทเปˆเบญเบ™ -Wold-style-cast
-Woverloaded-virtual -Wno-pmf-เปเบ›เบ‡ -Wsign-promo

Objective-C เปเบฅเบฐ เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡-C++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fconstant-string-class=เบŠเบทเปˆโ€‹เบซเป‰เบญเบ‡โ€‹ -fgnu-runtime -fnext-runtime -fno-nil-receivers
-fobjc-abi-version=n -fobjc-call-cxx-cdtors -fobjc-เบชเบปเปˆเบ‡เป‚เบ”เบเบเบปเบ‡ -fobjc-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™
-fobjc-gc -fobjc-nilcheck -fobjc-std=objc1 -fno-local-ivars
-fivar-visibility=[เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ|เบ›เป‰เบญเบ‡เบเบฑเบ™|เบชเปˆเบงเบ™เบ•เบปเบง|เบŠเบธเบ”] -freplace-objc-classes
-fzero-link -gen-decls -Wassign-intercept -Wno-protocol - เบœเบนเป‰โ€‹เป€เบฅเบทเบญเบโ€‹
-Wstrict-select-match -Wunddeclared-เป€เบฅเบทเบญเบ

เบžเบฒเบชเบฒ เป€เบญเบเบฐเบฅเบฒเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fmessage-length=n -fdiagnostics-show-location=[เบ„เบฑเป‰เบ‡เบซเบ™เบถเปˆเบ‡|เบ—เบธเบเป€เบชเบฑเป‰เบ™]
-fdiagnostics-color=[เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”|เบšเปเปˆเป€เบ„เบตเบ|เบชเบฐเป€เบซเบกเบตเป„เบ›] -fno-diagnostics-show-option
-fno-diagnostics-show-caret

เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบž เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fsyntax เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ -fmax-errors=n -Wpedantic -pedantic เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹ -w -Wextra - เบเบฒ
-waddress -Waggregate-เบเบฑเบšเบ„เบทเบ™ -Waggressive-loop-optimizations - Warray-bounds
-Warray-bounds=n -Wbool-เบ›เบฝเบšเบ—เบฝเบš - เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ Wnoโ€‹ -Wno-builtin-macro-redefined
-Wc90-c99-compat -Wc99-c11-compat -Wc++-compat -Wc++11-compat -Wc++14-compat
-Wcast-align -Wcast-qual -Wchar-subscripts - Wclobbered - เบ„เปเบฒเป€เบซเบฑเบ™
- เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ•เบฒเบกโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹ - เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹ -Wcoverage-mismatch -Wdate-time
-Wdelete-เบšเปเปˆเบชเบปเบกเบšเบนเบ™ -Wno-cpp -Wno-deprecated -Wno-deprecated-เบ›เบฐเบเบฒเบ”
-Wno-designated-init -Wdisabled-optimization -Wno-discarded-qualifiers
-Wno-discarded-array-qualifiers -Wno-div-by-zero - เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เป€เบชเบตเบกโ€‹เบชเบญเบ‡โ€‹เบ„เบฑเป‰เบ‡โ€‹ - เบฎเปˆเบฒเบ‡เบเบฒเบเบญเปˆเบญเบ™เป€เบžเบ
-Wenum เบ›เบฝเบšเบ—เบฝเบš -wno-endif-labels - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹ -Wror=* - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” Wfatalโ€‹ -Wfloat-เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™
-Wformat -Wformat=2 -Wno-format-contains-nul -Wno-format-extra-args
-Wformat-nonliteral -Wformat เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹ - เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹ -Wformat-y2k
-Wframe-larger-than=len -Wno-free-nonheap-object -Wjump-misses-init
-Wignored-qualifiers -Wincompatible-pointer-types - Wimplicit
-Wimplicit-function-เบ›เบฐเบเบฒเบ” -Wimplicit-int - เบงเบดเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹ - Winline
-Wno-int-เปเบ›เบ‡ -Wno-int-to-pointer-cast -Wno-invalid-offsetof -Winvalid-pch
-Wlarger-than=len -Wunsafe-loop-optimizations -Wlogical-op -Wlogical-not-partheses
- เบเบฒเบง - เบเบฒเบง - เบœเบนเป‰เบเบดเบ‡ -Wmaybe-unitialized -Wmemset-transposed-args -Wmissing-braces
-Wmissing-field-initializers -Wmissing-include-dirs -Wno-multichar -Wnonnull
-Wnormalized=[none|id|nfc|nfkc]
-Wodr -Wno-เบฅเบปเป‰เบ™ -Wopenmp-simd -Woverlength-strings - เบซเปเปˆ
-Wpacked-bitfield-compat - เปเบœเปˆเบ™เปเบž -Wparentheses -Wpedantic-ms-format
-Wno-pedantic-ms-format -Wpointer-arith -Wno-pointer-to-int-cast -Wredundant-decls
-Wno-return-local-addr - เบ›เบฐโ€‹เป€เบžเบ” Wreturnโ€‹ - เบฅเปเบฒเบ”เบฑเบšเบˆเบธเบ” - เป€เบ‡เบปเบฒ -Wno-shadow-ivar
-Wshift-เบ™เบฑเบš-เบฅเบปเบš -Wshift-count-overflow -Wsign-เบ›เบฝเบšเบ—เบฝเบš -Wsign เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
- เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ Wfloatโ€‹ -Wsizeof-pointer-memaccess -Wsizeof-array-argument
-Wstack-protector -Wstack-usage=len - เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเป‰เบฒเบชเบธเบ” -Wstrict-aliasing=n
-Wstrict-เบฅเบปเป‰เบ™ -Wstrict-overflow=n -Wsuggest-attribute=[เบšเปเบฅเบดเบชเบธเบ”|const|noreturn|เบฎเบนเบšเปเบšเบš]
-Wsuggest-final-types -Wsuggest-final-methods -Wsuggest-override
-Wmissing-format-attribute - เบชเบฐเบซเบงเบดเบ” -Wswitch-default -Wwwitch-enum -Wswitch-bool
-Wsync-nand -Wsystem-headers -Wtrampoline -Wtrigraphs -Wtype- limits -Wundef
- เบ›เบฐเบเบฒเบ” -Wunknown-pragmas -Wno-pragmas -Wunsuffixed-float-constants
- เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -Wunused-function -Wunused-label -Wunused-local-typedefs -Wunused-เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต
-Wno-unused-เบœเบปเบ™ -Wunused-value -Wunused-variable -Wunused-but-set-parameter
-Wunused-but-set-variable -Wuseless-cast -Wvariadic-macros
-Wvector-เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™-เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš -Wvla -Wvolatile-register-var -Write-strings
-Wzero-as-null-pointer-constant

C เปเบฅเบฐ เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡-C-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบž เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-Wbad-function-cast -Wmissing เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹ -Wmissing-parameter-type
-Wmissing-prototypes -Wnested-externs -Wold-style-เบ›เบฐเบเบฒเบ” -Wold-style-เบ™เบดเบเบฒเบก
-Wstrict-prototypes - เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก - เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปเบšเบšโ€‹เบ”เบฑเป‰เบ‡โ€‹เป€เบ”เบตเบกโ€‹
-Wdeclaration เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ–เบฐโ€‹เปเบซเบผเบ‡โ€‹เบเบฒเบ™โ€‹ -Wpointer-เป€เบŠเบฑเบ™โ€‹

Debugging เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-dเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ - dumpspecs - เป€เบ„เบทเปˆเบญเบ‡โ€‹เบ‚เบตเป‰โ€‹เบเบธเปˆเบ™ - dumpversion -fsanitize=เปเบšเบš -fsanitize-เบŸเบทเป‰เบ™เบ•เบปเบง
-fsanitize-recover=เปเบšเบš -fasan-shadow-offset=เบˆเปเบฒเบ™เบงเบ™
-fsanitize-undefined-trap-on-error -fcheck-pointer-bounds -fchkp-check-incomplete-type
-fchkp-first-field-has-own-bounds -fchkp-เปเบ„เบš-เบ‚เบญเบšเป€เบ‚เบ”
-fchkp-narrow-to-innermost-array -fchkp-optimize -fchkp-use-fast-string-functions
-fchkp-use-nochk-string-functions -fchkp-use-static-bounds
-fchkp-use-static-const-bounds -fchkp-treat-zero-dynamic-size-as-infinite
-fchkp-check-read -fchkp-check-read -fchkp-check-write -fchkp-store-bounds
-fchkp-instrument-calls -fchkp-instrument-marked-only -fchkp-use-wrappers
-fdbg-cnt-list -fdbg-cnt=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบเบฒเบ™เบ•เป‰เบฒเบ™เบกเบนเบ™เบ„เปˆเบฒ -fdisable-ipa-pass_name
-fdisable-rtl-pass_name -fdisable-rtl-เบŠเบทเปˆโ€‹เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ -fdisable-tree-pass_name
-fdisable-tree-เบŠเบทเปˆโ€‹เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ -fdump-noaddr -fdump-เบšเปเปˆเบกเบตเบ•เบปเบงเป€เบฅเบ
-fdump-unnumbered-links -fdump-translation-unit[-n] -fdump-class-hierarchy[-n]
-fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline -fdump-เบœเปˆเบฒเบ™ -fdump-เบชเบฐเบ–เบดเบ•เบด
-fdump-tree-เบ—เบฑเบ‡เปเบปเบ” -fdump-เบ•เบปเป‰เบ™เป„เบกเป‰-เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš[-n] -fdump-tree-optimized[-n] -fdump-tree-cfg
-fdump-tree-alias -fdump-tree-ch -fdump-tree-ssa[-n] -fdump-tree-pre[-n]
-fdump-tree-ccp[-n] -fdump-tree-dce[-n] -fdump-tree-gimple[- เบ”เบดเบš] -fdump-tree-dom[-n]
-fdump-tree-dse[-n] -fdump-tree-phiprop[-n] -fdump-tree-phiopt[-n]
-fdump-tree-forwprop[-n] -fdump-tree-copyrename[-n] -fdump-tree-nrv -fdump-tree-vect
-fdump-tree-sink -fdump-tree-sra[-n] -fdump-tree-forwprop[-n] -fdump-tree-free[-n]
-fdump-tree-vtable-verify -fdump-tree-vrp[-n] -fdump-tree-storeccp[-n]
-fdump-final-insns=เป€เบญเบเบฐเบชเบฒเบ™ -fcompare-debug[=เป€เบฅเบทเบญเบ] -fcompare-debug-เบงเบดเบ™เบฒเบ—เบต
-feliminate-dwarf2-dups -fno-eliminate-unused-debug-types
-feliminate-unused-debug-เบชเบฑเบ™เบเบฒเบฅเบฑเบ -femit-class-debug-เบชเบฐเป€เปเบต -fenable-เบ›เบฐเป€เบžเบ”-เบœเปˆเบฒเบ™
-fenable-เบ›เบฐเป€เบžเบ”-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ -fdebug-types-section -fmem-report-wpa -fmem เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™
-fpre-ipa-mem-เบฅเบฒเบเบ‡เบฒเบ™ -fpost-ipa-mem-report -fprofile-arcs -fopt-info
- fopt-เบ‚เปเป‰โ€‹เบกเบนเบ™-เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™[=เป€เบญเบเบฐเบชเบฒเบ™] -frandom-seed=เบˆเปเบฒเบ™เบงเบ™ -fsched-verbose=n -fsel-sched-verbose
-fsel-sched-dump-cfg -fsel-sched-pipelining-verbose -fstack เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -ftest-เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹
-ftime เบฅเบฒเบโ€‹เบ‡เบฒเบ™โ€‹ -fvar-เบ•เบดเบ”เบ•เบฒเบก -fvar-tracking-assignments
-fvar-tracking-assignments-toggle -g -gเบฅเบฐเบ”เบฑเบš -gtoggle -gcoff -gdwarf-เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ -ggdb
-grecord-gcc-เบชเบฐเบซเบผเบฑเบš -gno-record-gcc-switches -gstabs -gstabs+ -gstrict-dwarf
-gno-strict-dwarf -gvms -gxcoff -gxcoff+ -gz[=เบ›เบฐเป€เบžเบ”] -fno-merge-debug-strings
-fno-dwarf2-cfi-asm -fdebug-prefix-map=เบญเบฒเบเบธ=เปƒเบซเบกเปˆ -femit-struct-debug-baseonly
-femit-struct-debug-เบซเบผเบธเบ”เบฅเบปเบ‡ -femit-struct-debug-เบฅเบฒเบเบฅเบฐเบญเบฝเบ”[=เบฅเบฒเบเบŠเบทเปˆเบชเบฐเป€เบžเบฒเบฐ] -p - เปœเป‰เบฒ
-print-file-name=เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” -print-libgcc-file-name -print-multi-directory
-print-multi-lib -print-multi-os-directory -print-prog-name=เป‚เบ„เบ‡เบเบฒเบ™
-print-search-dirs -Q -print-sysroot -print-sysroot-headers-suffix - save-tempsโ€‹
-save-temps=cwd -save-temps=obj เป€เบงเบฅเบฒ[=เป€เบญเบเบฐเบชเบฒเบ™]

เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-faggressive-loop-optimizations -falign-functions[=n] -falign-jumps[=n]
-falign-labels[=n] -falign-loops[=n] -fassociative-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” -fauto-profile
-fauto-profile[=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡] -fauto-inc, เบ„เบฐ -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
-fbranch-target-load-optimize -fbranch-target-load-optimize2 -fbtr-bb-เบชเบฐเป€เบžเบฒเบฐ
-fcaller-เบ›เบฐเบซเบเบฑเบ” -fcheck-data-deps -fcombine-stack-เบ›เบฑเบš -fconserve-stack
-fcompare-elim -fcprop-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fcx-fortran-เบเบปเบ”เบฅเบฐเบšเบฝเบš -fcx-limited-range -fdata-sections -fdce -fdelayed-เบชเบฒเบ‚เบฒ
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fdevirtualize-at-ltrans -fdse - เบ„เบงเบฒเบกโ€‹เบขเป‰เบฒเบ™โ€‹เบเบปเบงโ€‹, inliningโ€‹ -fipa-sra -fexpensive-optimizations
-ffat-lto-เบงเบฑเบ”เบ–เบธ -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹ -ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ - เบฎเป‰เบฒเบ™เบ‚เบฒเบเป€เบ„เบทเปˆเบญเบ‡เบเปˆเบญเบ
-fexcess-precision=เปเบšเบš -fforward-เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™ -ffp-เบชเบฑเบ™เบเบฒ=เปเบšเบš -function-sections
-fgcse -fgcse-after-reload -fgcse-las -fgcse-lm -fgraphite-เบ•เบปเบงเบ•เบปเบ™ -fgcse-sm
-fhoist-adjacent-loads -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹ -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ 2โ€‹ -findirect-inlining
-finline-functions -finline-functions-called-one เบ”เบฝเบง -finline-limit=n
-finline-small-functions -fipa-cp -fipa-cp-clone -fipa-cp-alignment -fipa-pta
-fipa-profile -fipa-pure-const -fipa เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹ -fipa-icf -fira-algorithm=เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบงเบดเบ—เบต
-fira-region=เบžเบนเบกเบดเบžเบฒเบ -fira-hoist-pressure -fira-loop-pressure -fno-ira-share-save-slots
-fno-ira-share-spill-slots -fira-verbose=n -fisolate-erroneous-paths-dereference
-fisolate-erroneous-paths-attribute -fivopts -fkeep-inline-เบŸเบฑเบ‡เบŠเบฑเบ™
-fkeep-static-consts -flive-range-shrinkage -floop-block -floop-interchange
-floop-strip-mine -floop-unroll-and- jam -floop-nest-optimize -floop-parallelize-เบ—เบฑเบ‡เปเบปเบ”
-flra-remat -flto -flto-compression-level -flto-partition=เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ” flto-เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™
-flto-report-wpa -fmerge-เบ—เบฑเบ‡เปเบปเบ”-เบ„เบปเบ‡เบ—เบตเปˆ -fmerge-เบ„เบปเบ‡เบ—เบตเปˆ -fmodulo-sched
-fmodulo-sched-allow-regmoves -fmove-loop-invariants -fno-branch-count-reg
-fno-defer-pop -fno-function-cse -fno-guess-branch-probability -fno-inline
-fno-math-errno -fno-peephole -fno-peephole2 -fno-sched-interblock -fno-sched-spec
-fno-เป€เบŠเบฑเบ™เบŠเบทเปˆ-เบชเบนเบ™ -fno-toplevel-reorder -fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”
-fno-zero-initialized-in-bss -fomit-frame-pointer -foptimize-sibling-calls
-fpartial-inlining -fpeel-loops -fpredictive-commoning -fprefetch-loop-arrays
-fprofile-report -fprofile-เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹ -fprofile-dir=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ -fprofile-generate
-fprofile-generate=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ -fprofile-เปƒเบŠเป‰ -fprofile-use=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ -fprofile-เบ„เปˆเบฒ
-fprofile-reorder-functions -freciprocal-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” เบŸเบฃเบต -frename-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
-freorder-เบ•เบฑเบ™ -freorder-blocks-and-partition -freorder - เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹
-frerun-cse-after-loop -freschedule-modulo-schedule-loops - เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹
-fsched2-use-superblocks -fsched-เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™ -fsched-spec-load
-fsched-spec-load-เบญเบฑเบ™เบ•เบฐเบฅเบฒเบ -fsched-stalled-insns-dep[=n] -fsched-stalled-insns[=n]
-fsched-group-heuristic -fsched-critical-path-heuristic -fsched-spec-insn-heuristic
-fsched-rank-heuristic -fsched-last-insn-heuristic -fsched-dep-count-heuristic
-fschedule-fusion -fschedule-insns -fschedule-insns2 -fsection-anchors
-fselective-เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹ -fselective-เบเบณเบ™เบปเบ”โ€‹เป€เบงเบฅเบฒ2 -fsel-sched-pipelining
-fsel-sched-pipelining-outer-loops -fsemantic-interposition -fshrink-wrap
-fsignaling-nans -fsingle-precision-constant -fsplit-ivs-in-unroller
-fsplit-wide-types -fssa-phiopt -stack-protector -fstack-protector-เบ—เบฑเบ‡เปเบปเบ”
-fstack-protector-strong -fstack-protector-explicit -fstdarg-opt -fstrict-aliasing
-fstrict-เบฅเบปเป‰เบ™ -fthread-jumps -ftracer -ftree-bit-ccp -ftree-builtin-call-dce
-ftree-ccp -ftre-ch -ftree-coalesce-inline-vars -ftree-coalesce-vars -ftree-copy-prop
-free-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop
- เบŸเบฃเบตโ€‹เบŸเบฃเบตโ€‹ -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im
-ftree-phiprop -ftree-loop-เบเบฒเบ™เปเบœเปˆเบเบฐเบˆเบฒเบ -ftree-loop-distribute-patterns
-ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize -ftree-loop-vectorize
-ftree-parallelize-loops=n -ftre-pre -ftree-partial-pre -ftree-pta -ftree-reassoc
- เบญเปˆเบฒเบ‡เบฅเป‰เบฒเบ‡เบกเบท -ftree-slsr -ftree-sra -ftre-switch-เปเบ›เบ‡ -ftree-tail-merge
- เบซเป‰เบฒโ€‹เบ›เบตโ€‹ -ftree-vectorize -ftree-vrp -funit-at-a-time -funroll-all-loops
-funroll-loops -funsafe-loop-optimizations -funsafe-math-optimizations
-funswitch-loops -fipa-ra -fvariable-expansion-in-unroller -fvect-cost-model -fvpt
-fweb - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ -fwpa -fuse-linker-plugin --param เบŠเบทเปˆ=เบกเบนเบ™เบ„เปˆเบฒ -O -O0 -O1 -O2
-O3 -เบญเบช - เป„เบง - เบญเบˆ

เป‚เบ›เป€เบˆเบฑเบเป€เบ•เบตเป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-Aเบ„เปเบฒเบ–เบฒเบก=เบ„เปเบฒเบ•เบญเบš -HAS-เบ„เปเบฒเบ–เบฒเบก[=เบ„เปเบฒเบ•เบญเบš] -C -dD -dI -dM -dN -Dเบกเบฐเบซเบฒเบžเบฒเบ[=defn] -E -H
-idirafter dir - เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹ เป€เบญเบเบฐเบชเบฒเบ™ - เป„เบญเบกเบฒเป‚เบ„เบฃ เป€เบญเบเบฐเบชเบฒเบ™ - เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบกโ€‹ เป€เบญเบเบฐเบชเบฒเบ™ -iwithprefix dir
-iwithprefix เบเปˆเบญเบ™ dir - เบฅเบฐเบšเบปเบš dir -Imultilib dir -isysroot dir -M เป€เบญเบฑเบก -MF -MG
-MP -MQ -MT -nostdinc -P -fdebug-cpp -ftrack-macro-เบ‚เบฐเบซเบเบฒเบ -fworking-directory
-remap -trigraphs -undef -Uเบกเบฐเบซเบฒเบžเบฒเบ -Wpโ€‹,เบ—เบฒเบ‡เป€เบฅเบทเบญเบ - เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Xpre เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -no-integrated-cpp

เบ„เบปเบ™เบฅเบญเบšเบชเบฑเบ‡เบซเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
- เบง.เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -Xassembler เบ—เบฒเบ‡เป€เบฅเบทเบญเบ

เบœเบนเป‰เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
object-file-name -fuse-ld=linker -lเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” -nostartfiles -nodefaultlibs -nostdlib
-pie -rdynamic -s -static -static-libgcc -static-libstdc++ -static-libasan
-static-libtsan -static-liblsan -static-libubsan -static-libmpx -static-libmpxwrappers
- เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹ -shared-libgcc - เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹ -T script -Wl,เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -Xlinker เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -u เบชเบฑเบ™เบเบฒเบฅเบฑเบ -z
เบ„เปเบฒ

Directory เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-Bเบ„เบณ เบ™เบณ เปœเป‰เบฒ -Idir -iplugindir=dir -iquotedir -Ldir -spec=เป€เบญเบเบฐเบชเบฒเบ™ -AND- --sysroot=dir
--no-sysroot-suffix

เป€เบ„เบทเปˆเบญเบ‡ เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
AAArch64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mabi=เบŠเบทเปˆ -mbig-endian -mlittle-endian -mgeneral-regs-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
-mcmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ -mcmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ -mcmodel=เปƒเบซเบเปˆ -mstrict-align -momit-leaf-frame-pointer
-mno-omit-leaf-frame-pointer -mtls-dialect=desc -mtls-dialect=เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
-mfix-cortex-a53-835769 -mno-fix-cortex-a53-835769 -mfix-cortex-a53-843419
-mno-fix-cortex-a53-843419 - เบกเบตเบ™เบฒ=เบŠเบทเปˆ -mcpu=เบŠเบทเปˆ -mtune=เบŠเบทเปˆ

Adapteva Epiphany เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mhalf-reg-file -mprefer-short-insn-regs -mbranch-cost=num
-mcmove -mnops=num -msoft-cmpsf -msplit-lohi -mpost-inc -mpost-เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹
-mstack-offset=num -mround-เปƒเบเป‰เบ—เบตเปˆเบชเบธเบ” -mlong-เป‚เบ— -mshort-เป‚เบ— -msmall16 -mfp-mode=เบฎเบนเบšเปเบšเบšเบเบฒเบ™
-mvect-double -max-vect-align=num -msplit-vecmove-เบ•เบปเป‰เบ™ -m1reg-reg

ARC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mbarrel-shifter -mcpu=cpu -mA6 -mARC600 -mA7 -mARC700 -mdpfp
-mdpfp-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ” -mdpfp-เป„เบง -mno-dpfp-lrsr - เป€เบก -mno-mpy - mmul32x16 -mmul64 -mnorm
-mspfp -mspfp-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ” -mspfp-เป„เบง -msimd -msoft-float -mswap -mcrc -mdsp-packa -mdvbf
- mlock -mmac-d16 -mmac-24 -mrtsc -mswpe - เป‚เบ—โ€‹เบฅเบฐโ€‹เบชเบฑเบš -mxy - misize -mannotate-align
-marclinux -marclinux_prof -mepilogue-cfi -mlong-เป‚เบ— -เป‚เบ—เบ›เบฒเบ™เบเบฒเบ‡ -msdata
-mucb-mcount -mvolatile-cache -malign-เป‚เบ— -mauto-modify-reg -mbbit-peephole -mno-brcc
-mcase-vector-pcrel -mcompact-casesi -mno-cond-exec -mearly-cbranchsi -mexpand-adddi
-mindexed-loads -mlra -mlra-priority-none -mlra-priority-compact mlra เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”-
เบšเปเปˆเบเบฐเบ—เบฑเบ”เบฎเบฑเบ” -mno-millicode - เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบกโ€‹ -mq-เบŠเบฑเป‰เบ™ -mRcq -mRcw -msize-level=เบฅเบฐเบ”เบฑเบš
-mtune=cpu -mmultcost=num -munalign-prob-threshold=เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™

ARM เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mapcs-frame -mno-apcs-frame -mabi=เบŠเบทเปˆ -mapcs-stack-เบเบงเบ”
-mno-apcs-stack-check -mapcs-float -mno-apcs-float -mapcs-reentrant
-mno-apcs-reentrant -msched-prolog -mno-sched-prolog -mlittle-endian -mbig-endian
-mfloat-abi=เบŠเบทเปˆ -mfp16-format=เบŠเบทเปˆ -mthumb-interwork -mno-thumb-interwork -mcpu=เบŠเบทเปˆ
- เบกเบตเบ™เบฒ=เบŠเบทเปˆ -mfpu=เบŠเบทเปˆ -mtune=เบŠเบทเปˆ -mprint-tune-info -mstructure-size-boundary=n
-mabort-on-norturn -mlong-เป‚เบ— -mno-long-calls -msingle-pic-base
-mno-single-pic-base -mpic เบกเบฑเบเบชเบฐเบกเบฒเบŠเบดเบ =reg -mnop-fun-dllimport -mpoke-function-name
- เป‚เบ›เป‰เบกเบท - เบกเบฒเบก -mtpcs-frame -mtpcs-เปƒเบš-เบเบญเบš -mcaller-super-interworking
-mcallee-super-interworking -mtp=เบŠเบทเปˆ -mtls-เบžเบฒเบชเบฒ =เบžเบฒเบชเบฒ -mword เบเบฒเบ™โ€‹เบเบปเบโ€‹เบเป‰เบฒเบโ€‹
-mfix-cortex-m3-ldrd -munaligned-เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹ -mneon-for-64bits -mslow-flash-data
-masm-syntax-unified - เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบกเบฑเบ™โ€‹

APR เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mmcu=mcu -maccumulate-args -mbranch-cost=เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ -mcall-prologues - mint8
-mn_flash=เบ‚เบฐเบซเบ™เบฒเบ” -mno-interrupts -mrelax -mrmw -mstrict-X -mtiny-stack -nodevicelib
-Waddr-space-เปเบ›เบ‡

เบ”เบณ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=cpu[-sirevision] - เบŠเบดเบก -momit-leaf-frame-pointer
-mno-omit-leaf-frame-pointer -mspecld-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด -mno-specld-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด -mcsync-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
-mno-csync-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด -mlow-64k -mno-low64k -mstack-check-l1 - เบซเปเบชเบฐเปเบธเบ”เบเบฒเบ‡
-mno-id-shared-library -mshared-library-id=n -mleaf-id-shared-library
-mno-leaf-id-shared-library -msep-เบ‚เปเป‰เบกเบนเบ™ -mno-sep-data -mlong-เป‚เบ— -mno-long-calls
-mfast-fp -minline-plt - mmulticore - mcorea -mcoreb -msdram -micplb

C6X เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mbig-endian -mlittle-endian - เบกเบตเบ™เบฒ=cpu - เบŠเบดเบก -msdata=เบ›เบฐเป€เบžเบ” sdata

CRIS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=cpu - เบกเบตเบ™เบฒ=cpu -mtune=cpu -mmax-stack-frame=n
-melinux-stacksize=n -metrax4 -metrax100 -mpdebug -mcc-init -mno-เบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡
-mstack-align -mdata-align -mconst-align -m32-เบšเบดเบ” -m16-เบšเบดเบ” -m8-เบšเบดเบ”
-mno-prologue-epilogue -mno-gotplt -melf - maout -melinux -mlinux -เบŠเบดเบก -sim2
-mmul-bug-เปเบเป‰เป„เบ‚ -mno-mul-bug-เปเบเป‰เป„เบ‚

CR16 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mmac -mcr16cplus -mcr16c - เบŠเบดเบก - mint32 -mbit-ops -mdata-model=เบฎเบนเบšเปเบšเบš

Darwin เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -all_load -allowable_client -เป‚เบ„เป‰เบ‡ -arch_errors_fatal -arch_only
-bind_at_load - เบกเบฑเบ” -bundle_loader -client_name -compatibility_version
- เบฎเบธเปˆเบ™_เบ›เบฐเบˆเบธเบšเบฑเบ™ -dead_strip -dependency-file -dylib_file -dylinker_install_name
- เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง -dynamiclib -exported_symbols_list - เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹ -flat_namespace
-force_cpusubtype_ALL -force_flat_namespace -headerpad_max_install_names - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹
-image_base -เปƒเบ™โ€‹เบกเบฑเบ™ -install_name -keep_private_externs -multi_module
-multiply_defined -multiply_defined_unused -noall_load
-no_dead_strip_inits_and_terms -nofixprebinding - เบ™เบฒเบกเบชเบฐเบเบธเบ™ - noprebind
-noseglinkedit -pagezero_size - prebind -prebind_all_twolevel_modules -private_bundle
-read_only_relocs -sectalign -sectobject เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹ - เป€เบ›เบฑเบ™โ€‹เบซเบเบฑเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹ -seg1 addr -sectcreate
-sectobject เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹ - เบ‚เบฐโ€‹เปเบซเบ™เบ‡โ€‹เบเบฒเบ™โ€‹ -segaddr -segs_read_only_addr -segs_read_write_addr
-seg_addr_table -seg_addr_table_filename -seglinkedit -segprot -segs_read_only_addr
-segs_read_write_addr -single_module -static -sub_library -sub_umbrella
- twolevel_namespace - เบ„เบฑเบ™เบฎเบปเปˆเบก - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹ -unexported_symbols_list
-weak_reference_mismatch - whatsloaded -F -gused - gfull -mmacosx-version-min=เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ
- mkernel -mone-byte-bool

DEC Alpha เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mno-fp-regs -msoft-float -เบกเบตเปˆ -mieee-with-inexact
-mieee-เบชเบญเบ”เบ„เปˆเบญเบ‡ -mfp-trap-mode=เบฎเบนเบšเปเบšเบšเบเบฒเบ™ -mfp-rounding-mode=เบฎเบนเบšเปเบšเบšเบเบฒเบ™ -mtrap-precision=เบฎเบนเบšเปเบšเบšเบเบฒเบ™
-mbuild-เบ„เบปเบ‡เบ—เบตเปˆ -mcpu=cpu-type -mtune=cpu-type -mbwx -mmax -mfix -mcix
-mfloat-vax -mfloat-ieee -mexplicit-relocs -msmall-เบ‚เปเป‰เบกเบนเบ™ -mlarge-data -msmall-text
- เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹ -mmemory-latency=เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ

FR30 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -msmall-เปเบšเบš -mno-lsim

LIF เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 -mhard-float -msoft-float
-malloc-cc -mfixed-cc -mdword -mno-dword -mdouble -mno-double - เบชเบทเปˆโ€‹เบกเบงเบ™โ€‹เบŠเบปเบ™ -mno-media
- เบกเบปเบงเบฅเบฑเบ” -mno-muladd -mfdpic -minline-plt -mgrel-ro -multilib-library-pic
-mlinked-fp -mlong-เป‚เบ— -malign-labels -mlibrary-pic -macc-4 -macc-8 -mpack
-mno-pack -mno-เบ—เบธเบ‡ -mcond-เบเป‰เบฒเบ -mno-cond-move -moptimize-membar
-mno-optimize-membar -mscc -mno-scc -mcond-exec -mno-cond-exec -mvliw-เบชเบฒเบ‚เบฒ
-mno-vliw-เบชเบฒเบ‚เบฒ -Mmulti-cond-exec-exec -mno-multi-cond-exec -mnested-cond-exec
-mno-nested-cond-exec -mtomcat-เบชเบฐเบ–เบดเบ•เบด -mTLS -mtls -mcpu=cpu

GNU / Linux เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mglibc - muclibc -mbionic -mandroid -tno-android-cc -tno-android-ld

H8 / 300 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mrelax -mh -เบ™เบฒเบ‡โ€‹เบชเบฒเบง - เบ™ -mexr -mno-exr - mint32 -malign-300

HPPA เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบกเบตเบ™เบฒ=เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ -mdisable-fpregs -mdisable-indexing
-mfast-indirect-calls - เบกเบ -mgnu-ld -mhp-ld -mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
-mjump-in-delay -mlinker-opt -mlong-เป‚เบ— -mlong-load-store -mno-disable-fpregs
-mno-disable-indexing -mno-fast-indirect-calls -mno-gas -mno-jump-in-delay
-mno-long-load-store -mno-portable-runtime -mno-soft-float -mno-space-regs
-msoft-float -mpa-risc-1-0 -mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime
-mschedule=cpu-type -mspace-regs -msio -mwsio -muix=unix-std -nolibdld -static
- เบเบฐเบ—เบนเป‰

IA-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic
-mvolatile-asm-stop -mregister-names -msdata -mno-sdata -mconstant-gp -mauto-pic
-mfused-madd -minline-float-divide-min-latency -minline-float-divide-max-throughput
-mno-inline-float-divide -minline-int-divide-min-latency
-minline-int-divide-max-throughput -mno-inline-int-divide -minline-sqrt-min-latency
-minline-sqrt-max-throughput -mno-inline-sqrt -mdwarf2-asm -mearly-stop-bits
-mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -mtls-size=tls-size -mtune=cpu-type -milp32 -mlp64
-msched-br-data-spec -msched-ar-data-spec -msched-control-spec -msched-br-in-data-spec
-msched-ar-in-data-spec -msched-in-control-spec -msched-spec-ldc
-msched-spec-control-ldc -msched-prefer-non-data-spec-insns
-msched-prefer-non-control-spec-insns -msched-stop-bits-เบซเบผเบฑเบ‡เบˆเบฒเบ-เบ—เบธเบเป†เบฎเบญเบšเบงเบฝเบ™
-msched-count-spec-in-critical-path -msel-sched-dont-check-control-spec
-msched-fp-mem-deps-zero-cost -msched-max-memory-insns-hard-limit
-msched-max-memory-insns=max-insns

LM32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mbarrel-shift-enabled -mdivide-เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ - multiply-enabled
-msign-extend-enabled -muser-enabled

M32R/D เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -m32r2 -m32rx -m32r -mdebug -malign-loops -mno-align-loops
-missue-rate=เบˆเปเบฒเบ™เบงเบ™ -mbranch-cost=เบˆเปเบฒเบ™เบงเบ™ -mmodel=code-size-model-type -msdata=เบ‚เปเป‰เบกเบนเบ™-
เบ›เบฐเป€เบžเบ” -mno-flush-func -mflush-func=เบŠเบทเปˆ -mno-flush-เบ”เบฑเบ -mflush-trap=เบˆเปเบฒเบ™เบงเบ™ -G num

M32C เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=cpu - เบŠเบดเบก -memregs=เบˆเปเบฒเบ™เบงเบ™

M680x0 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡ -mcpu=cpu -mtune=เบ›เบšเบฑ -m68000 -m68020 -m68020-40
-m68020-60 -m68030 -m68040 -m68060 -mcpu32 -m5200 -m5206e -m528x -m5307 -m5407
-mcfv4e -mbitfield -mno-bitfield -mc68000 -mc68020 -mnobitfield -mrtd -mno-rtd
-mdiv -mno-div -mshort -mno-เบชเบฑเป‰เบ™ -mhard-float -m68881 -msoft-float -mpcrel
-malign-int -mstrict-align -msep-เบ‚เปเป‰เบกเบนเบ™ -mno-sep-data -mshared-library-id=n
- เบซเปเบชเบฐเปเบธเบ”เบเบฒเบ‡ -mno-id-shared-library -mxgot -mno-xgot

MCore เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mhardlit -mno-hardlit -mdiv -mno-div -mrelax เบ—เบฑเบ™เบ—เบต
-mno-เบœเปˆเบญเบ™เบ„เบฒเบ-เบ—เบฑเบ™เบ—เบต -mwide-bitfields -mno-wide-bitfields -m4byte functions
-mno-4byte-functions -mcallgraph-data -mno-callgraph-data -mslow-bytes
-mno-slow-bytes -mno-lsim -mlittle-endian -mbig-endian -m210 -m340
-mstack-increment

เป€เบกเบ› เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mabsdiff -mall-opts - เบชเบฐเป€เบฅเปˆเบ -mbased=n - เบšเบดเบ” -mc=n -mclip
-mconfig=เบŠเบทเปˆ -mcop -mcop32 -mcop64 -mivc2 -mdc -mdiv -เป€เบกเบš -mel -mio-volatile -ml
-mleaz -เบกเบก -mminmax - mmult -mno-opts -mrepeat -เบ™เบฒเบ‡โ€‹เบชเบฒเบง -msatur -msdram - เบŠเบดเบก -msimnovec
-mtf -mtiny=n

MicroBlaze เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -msoft-float -mhard-float -msmall-divides -mcpu=cpu -mmmcpy
-mxl-soft-mul -mxl-soft-div -mxl-barrel-shift -mxl-pattern-เบ›เบฝเบšเบ—เบฝเบš -mxl-stack-เบเบงเบ”
-mxl-gp-opt -mno-clearbss -mxl-เบ„เบนเบ™-เบชเบนเบ‡ -mxl-float-เปเบ›เบ‡ -mxl-float-sqrt
-mbig-endian -mlittle-endian -mxl-เบชเบฑเปˆเบ‡เบ„เบทเบ™เปƒเปเปˆ -mxl-mode-app-model

MIPS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - THE -EB - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡ -mtune=เป‚เบ„เป‰เบ‡ -mips1 -mips2 -mips3 -mips4
-mips32 -mips32r2 -mips32r3 -mips32r5 -mips32r6 -mips64 -mips64r2 -mips64r3
-mips64r5 -mips64r6 -mips16 -mno-mips16 -mflip-mips16 -minterlink-เบšเบตเบšเบญเบฑเบ”
-mno-interlink-compressed -minterlink-mips16 -mno-interlink-mips16 -mabi=เบŠเปˆเบงเบเป€เบซเบฅเบทเบญ
- mabicalls -mno-abicalls -mshared -mno-เปเบšเปˆเบ‡เบ›เบฑเบ™ -mplt -mno-plt -mxgot -mno-xgot
-mgp32 -mgp64 -mfp32 -mfpx -mfp64 -mhard-float -msoft-float -mno-float
-msingle-float -mdouble-float -modd-spreg -mno-odd-spreg -mabs=เบฎเบนเบšเปเบšเบšเบเบฒเบ™ -mnan=เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”
-mdsp -mno-dsp -MDSPR2 -mno-dspr2 -mmcu -mmno-mcu - เป€เบกเบงเบฒ -mno-eva -mvirt -mno-virt
-mxpa -mno-xpa -mmmicromips -mno-micromips -mfpu=fpu-type -msmartmips -mno-smartmips
- เบ„เบนเปˆเบ”เบฝเบง -mno-paired-single -mdmx -mno-mdmx -mips3d -mno-mips3d -mmt
-mno-mt -mllsc -mno-llsc -mlong64 -mlong32 -msym32 -mno-sym32 -Gnum
-mlocal-sdata -mno-local-sdata -mextern-sdata -mno-extern-sdata -mgpopt -mno-gopt
-membedded-data -mno-embedded-data -muninit-const-in-rodata
-mno-uninit-const-in-rodata -mcode-readable=เบ•เบฑเป‰เบ‡ -msplit-เบ—เบตเปˆเบขเบนเปˆ
-mno-split-addresses -mexplicit-relocs -mno-explicit-relocs -mcheck-เบชเบนเบ™-เบžเบฐเปเบ™เบ
-mno-check-zero-division -mdivide-เบเบฑเบšเบ”เบฑเบ -mdivide-breaks -mmmcpy -mno-memcpy
-mlong-เป‚เบ— -mno-long-calls - เบšเป‰เบฒ -mno-mad - mimadd -mno-imadd -mfused-madd
-mno-fused-madd -nocpp -mfix-24k -mno-fix-24k -mfix-r4000 -mno-fix-r4000
-mfix-r4400 -mno-fix-r4400 -mfix-r10000 -mno-fix-r10000 -mfix-rm7000 -mno-fix-rm7000
-mfix-vr4120 -mno-fix-vr4120 -mfix-vr4130 -mno-fix-vr4130 -mfix-sb1 -mno-fix-sb1
-mflush-func=เบกเปˆเบงเบ™ -mno-flush-func -mbranch-cost=num - เบชเบฒเบ‚เบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
-mno-เบชเบฒเบ‚เบฒ-เบญเบฒเบ”เบˆเบฐ -mfp-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ -mno-fp-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ -mvr4130-เบˆเบฑเบ”เบฎเบฝเบ‡ -mno-vr4130-align
-msynci -mno-sync -mrelax-pic-เป‚เบ— -mno-relax-pic-calls -mmcount-ra-เบ—เบตเปˆเบขเบนเปˆ

MMIX เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mlibfuncs -mno-libfuncs - mepsilon -mno-epsilon -mabi=gnu
-mabi=mmixware -mzero-extend -mknutdiv -mtoplevel - เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹ -melf -mbranch-เบ„เบฒเบ”
-mno-branch-predict -mbase-เบ—เบตเปˆเบขเบนเปˆ -mno-base-dresses -msingle-เบญเบญเบ
-mno-single-เบญเบญเบ

MN10300 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เปเบกเบ‡เป„เบกเป‰เบซเบผเบฒเบ -mno-mult-bug -mno-am33 -เปเบกเปˆ33 -mam33-2 -เปเบกเปˆ34 -mtune=cpu-
เบ›เบฐเป€เบžเบ” -mreturn-pointer-on-d0 -mno-crt0 -mrelax - เบกเบฐเบฅเบต -msetlb

Moxie เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -เป€เบกเบš -mel -mmul.x -mno-crt0

MSP430 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบŠเบดเบก -masm-hex -mmcu= -mcpu= - เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹ -msall -mrelax -mhwmult= - minrt

NDS32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mbig-endian -mlittle-endian -mreduced-regs -mful-regs -mcmov -mno-cmov
-mperf-ext -mno-perf-ext -mv3push -mno-v3push -m16bit -mno-16bit -misr-vector-size=num
-mcache-block-size=num - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡ -mcmodel=code-model -mctor-dtor -mrelax

Nios II เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -G num -mgpopt=เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -mgpopt -mno-gpopt -mel -เป€เบกเบš -mno-bypass-cache
-mbypass-cache -mno-cache-volatile -mcache-volatile -mno-fast-sw-div -mfast-sw-div
-mhw-mul -mno-hw-mul -mhw-mulx -mno-hw-mulx -mno-hw-div -mhw-div -mcustom-insn=N
-mno- custom-insn -mcustom-fpu-cfg=เบŠเบทเปˆ - mhal -msmallc -msys-crt0=เบŠเบทเปˆ -msys-lib=เบŠเบทเปˆ

Nvidia PTX เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -m32 -m64 -mmainkernel

PDP-11 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 -mbcopy
-mbcopy-builtin - mint32 -mno-int16 - mint16 -mno-int32 -mfloat32 -mno-float64
-mfloat64 -mno-float32 - mabshi -mno-abshi -เบชเบฒเบ‚เบฒ-เปเบžเบ‡ -เบชเบฒเบ‚เบฒ-เบฅเบฒเบ„เบฒเบ–เบทเบ
-munix-asm -mdec-asm

picoChip เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mae=ae_type -mvliw-lookahead=N -msymbol-as-address
-mno-inefficient-เป€เบ•เบทเบญเบ™

เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ PC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เป€เบšเบดเปˆเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบ RS/6000 เปเบฅเบฐ PowerPC.

RL78 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบŠเบดเบก -mmul=เบšเปเปˆเบกเบต -mmul=g13 -mmul=rl78 -m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ -m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ

RS / 6000 เปเบฅเบฐ เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ PC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=cpu-type -mtune=cpu-type -mcmodel=code-model
-mpowerpc64 -maltivec -mno-altivec -mpowerpc-gpopt -mno-powerpc-gpopt
-mpowerpc-gfxopt -mno-powerpc-gfxopt -mmfcrf -mno-mfcrf -mpopcntb -mno-popcntb
-mpopcntd -mno-popcntd -mfprnd -mno-fprnd -mcmpb -mno-cmpb -mmfpgpr -mno-mfpgpr
-mhard-dfp -mno-hard-dfp -mful-toc -เปœเป‰เบญเบเบชเบธเบ”-toc -mno-fp-in-toc -mno-sum-in-toc
-m64 -m32 -mxl-compat -mno-xl-compat -mpe -malign-power -malign-natural
-msoft-float -mhard-float - เบซเบผเบฒเบ -mno-เบซเบผเบฒเบ -msingle-float -mdouble-float
-msimple-fpu -mstring -mno-string - เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹ -mno-เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹ -mavoid-indexed-addresses
-mno-avoid-indexed-addresses -mfused-madd -mno-fused-madd -mbit-align
-mno-bit-align -mstrict-align -mno-strict-align - เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰ -mno-relocateable
-mrelocatable-lib -mno-relocateable-lib -mtoc -mno-toc - เปœเป‰เบญเบ -mlittle-endian
- เปƒเบซเบเปˆ -mbig-endian -mdynamic-no-pic -maltivec -mswdiv -msingle-pic-base
-mprioritize-restricted-insns=เบšเบนเบฅเบดเบกเบฐเบชเบดเบ” -msched-costly-dep=dependence_type
-minsert-sched-nops=เป‚เบ„เบ‡เบเบฒเบ™ -mcall-sysv -mcall-netbsd -maix-struct-return
-msvr4-struct-return -mabi=เบ›เบฐเป€เบžเบ” Abi -msecure-plt -mbss-plt
-mblock-move-inline-limit=num -misel -mno-isel -misel=เปเบกเปˆเบ™ -misel=เบšเปเปˆ -mspe -mno-spe
-mspe=เปเบกเปˆเบ™ -mspe=เบšเปเปˆ - เบ„เบนเปˆ -mgen-cell-microcode -mwarn-cell-microcode -mvrsave
-mno-vrsave - mmulhw -mno-mulhw -mdlmzb -mno-dlmzb -mfloat-gprs=เปเบกเปˆเบ™ -mfloat-gprs=เบšเปเปˆ
-mfloat-gprs=เบ”เปˆเบฝเบง -mfloat-gprs=เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ -mprototype -mno-prototype - เบŠเบดเบก -mmvme
- เบšเป‰เบฒ - myellowknife - memb -msdata -msdata=เป€เบฅเบทเบญเบ -mvxworks -G num - เบเบฐเบ—เบนเป‰ -mrecip
-mrecip=เป€เบฅเบทเบญเบ -mno-recip -mrecip-precision -mno-recip-precision -mveclibabi=เบ›เบฐเป€เบžเบ” -mfriz
-mno-friz -mpointers-to-nested-functions -mno-pointers-to-nested-functions
-msave-toc-เบ—เบฒเบ‡เบญเป‰เบญเบก -mno-save-toc-indirect -mpower8-fusion -mno-mpower8-fusion
-mpower8-vector -mno-power8-vector -mcrypto -mno-crypto -mdirect-เบเป‰เบฒเบ -mno-direct-เบเป‰เบฒเบ
-mquad เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹ -mno-quad-memory -mquad-memory-atomic -mno-quad-memory-atomic
-mcompat-align-parm -mno-compat-align-parm -mupper-regs-df -mno-upper-regs-df
-mupper-regs-sf -mno-upper-regs-sf -mupper-regs -mno-upper-regs

RX เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ -m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ -fpu -nofpu -mcpu= -mbig-endian-data
-mlittle-endian-data -msmall-เบ‚เปเป‰เบกเบนเบ™ - เบŠเบดเบก -mno-sim -mas100- syntax -mno-as100-syntax
-mrelax -mmax-constant-size= -mint-register= - mpid -mno-warn-multiple-fast-interrupts
-msave-acc-in-interrupts

S / 390 เปเบฅเบฐ zSeries เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mtune=cpu-type - เบกเบตเบ™เบฒ=cpu-type -mhard-float -msoft-float
-mhard-dfp -mno-hard-dfp -mlong-double-64 -mlong-double-128 -mbackchain
-mno-backchain -mpacked-stack -mno-packed-stack -msmall-exec -mno-small-exec
-mmvcle -mno-mvcle -m64 -m31 -mdebug -mno-debug -เป€เบกเบŠเบฒ -mzarch -mtpf-trace
-mno-tpf-trace -mfused-madd -mno-fused-madd -mwarn-framesize -mwar-dynamicstack
-mstack เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹ -mstack-เบเบญเบ‡ -mhotpatch=เบ„เปเบฒเป€เบ„เบดเปˆเบ‡,เบ„เปเบฒเป€เบ„เบดเปˆเบ‡

เบœเบฐเบฅเบดเบ”เปเบ™เบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -เป€เบกเบš -mel -mnhwloop -muls -mmac - เบ„เบฐโ€‹เปเบ™เบ™ 5 - เบ„เบฐเปเบ™เบ™ 5u - เบ„เบฐโ€‹เปเบ™เบ™ 7 -mscore7d

SH เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -m1 -m2 -m2e -m2a-nofpu -m2a-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ -m2a-เบ”เบฝเบง -m2a -m3 -m3e
-m4-nofpu -m4-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ -m4-เบ”เบฝเบง -m4 -m4a-nofpu -m4a-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ -m4a-เบ”เบฝเบง
-m4a -m4al -m5-64media -m5-64media-nofpu -m5-32media -m5-32media-nofpu -m5-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”
-m5-compact-nofpu -mb -ml -mdalign -mrelax -migtable -mfmovd -mhitachi -mrenesas
-mno-renesas -mnomacsave -เบกเบตเปˆ -mno-ieee - เบšเบดเบ” - misize -minline-ic_invalidate
- เบ‚เบปเบง -mspace - เบกเบฑเบ -musermode -multcost=เบˆเปเบฒเบ™เบงเบ™ -mdiv=เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”
-mdivsi3_libfunc=เบŠเบทเปˆ -mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -mindexed-addressing
-mgettrcost=เบˆเปเบฒเบ™เบงเบ™ -mpt-เปเบเป‰เป„เบ‚ -maccumulate-outgoing-args -minvalid-เบชเบฑเบ™เบเบฒเบฅเบฑเบ
-matomic-model=เบฎเบนเบšเปเบšเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน -mbranch-cost=num -mzdcbranch -mno-zdcbranch
-mcbranch-force-delay-slot -mfused-madd -mno-fused-madd -mfsca -mno-fsca -mfsrra
-mno-fsrra -mpretend-cmove -mtas

เปเบชเบ‡เบญเบฒเบ—เบดเบ” 2 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mclear-hwcap -mno-clear-hwcap - เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ” -mno- impure-text
- เบเบฐเบ—เบนเป‰ - เบเบฐเบ—เบนเป‰

SPARC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=cpu-type -mtune=cpu-type -mcmodel=code-model -mmemory-model=mem-
เบฎเบนเบšเปเบšเบš -m32 -m64 -mapp-regs -mno-app-regs -mfaster-structs -mno-เป„เบง-เป‚เบ„เบ‡เบชเป‰เบฒเบ‡
-mflat -mno-เปเบ› -mfpu -mno-fpu -mhard-float -msoft-float -mhard-quad-float
-msoft-quad-float -mstack-เบญเบฐเบ„เบฐเบ•เบด -mno-stack-bias -munaligned-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
-mno-unaligned-doubles -muser-mode -mno-user-mode -mv8plus -mno-v8plus -mvis
-mno-vis -mvis2 -mno-vis2 -mvis3 -mno-vis3 -mcbcond -mno-cbcond -mfmaf -mno-fmaf
-mpopc -mno-popc -mfix-at697f -mfix-ut699

SPU เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mwar-reloc -merror-reloc -msafe-dma -munsafe-dma -branch - เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹
-msmall-mem -mlarge-mem -mstdmain -mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -mea32 -mea64
-maddress-space-เปเบ›เบ‡ -mno-address-space-เบเบฒเบ™เปเบ›เบ‡ -mcache-size=เบ‚เบฐเบซเบ™เบฒเบ” cache
- เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡ matomicโ€‹ -mno-atomic-เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”

เบฅเบฐเบšเบปเบš V เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบ–เบฒเบก -Qn -YP,เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ -Ym,dir

TILE-Gx เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=CPU -m32 -m64 -mbig-endian -mlittle-endian -mcmodel=code-model

TILEPro เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=cpu -m32

V850 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mlong-เป‚เบ— -mno-long-calls -mep -mno-ep -mprolog-function
-mno-prolog-function -mspace -mtda=n -msda=n -mzda=n -mapp-regs -mno-app-regs
-mdisable-callt -mno-disable-callt -mv850e2v3 -mv850e2 -mv850e1 -mv850es -mv850e
-mv850 -mv850e3v5 - เบกเบปเบง -mrelax -mlong-เป‚เบ”เบ” -msoft-float -mhard-float -mgcc-abi
-mrh850-abi -mbig-เบชเบฐเบซเบผเบฑเบš

Vax เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบกเบ -mgnu - munix

เบงเบดเป„เบชเบ—เบฑเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mdebug - เบŠเบดเบก -mfpu -mno-fpu -mhard-float -msoft-float -mcpu=cpu-type
-mtune=cpu-type -msv-mode -muser-mode

เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ VMS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mvms-return-codes -mdebug-main=เบ„เบณ เบ™เบณ เปœเป‰เบฒ - mmalloc64 -mpointer-size=เบ‚เบฐเบซเบ™เบฒเบ”

VxWorks เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mrtp - เบšเปเปˆเบชเบฐเบ–เบดเบ” -Bstatic -Bdynamic -Xbind-lazy -Xbind-เบ”เบฝเบงเบ™เบตเป‰

x86 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mtune=cpu-type - เบกเบตเบ™เบฒ=cpu-type -mtune-ctrl=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”
-mdump-tune-เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” -mno-default -mfpmath=เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™ -masm=เบžเบฒเบชเบฒ -mno-fancy-math-387
-mno-fp-ret-in-387 -msoft-float -mno-wide-เบ„เบนเบ™ -mrtd -malign-double
-mpreferred-stack-boundary=num -mincoming-stack-boundary=num -mcld -mcx16 -msahf
- mmovbe -mcrc32 -mrecip -mrecip=เป€เบฅเบทเบญเบ -mvzeroupper -mprefer-avx128 -mmmx -msse -msse2
-msse3 -mssse3 -msse4.1 -msse4.2 -msse4 -mavx -mavx2 -mavx512f -mavx512pf -mavx512er
-mavx512cd -msha - เปเบกเปˆ -mpclmul -mfsgsbase -mrdrnd -mf16c -mfma -mprefetchwt1
-mclflushopt -mxsavec -mxsaves -msse4a -m3dnow -mpopcnt - mabm -mbmi -mtbm -mfma4 -mxop
-mlzcnt -mbmi2 -mfxsr -mxsave -mxsaveopt -mrtm -mlwp -mmpx -mmwaitx -mthreads
-mno-align-stringops -minline-all-stringops -minline-stringops-เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ
-mstringop-strategy=เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ” -mmemcpy-strategy=เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ” -mmemset-strategy=เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”
-mpush-args -maccumulate-outgoing-args -m128bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ -m96bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
-mlong-double-64 -mlong-double-80 -mlong-double-128 -mregparm=num -msseregparm
-mveclibabi=เบ›เบฐเป€เบžเบ” -mvect8-ret-in-mem -mpc32 -mpc64 -mpc80 -mstackrealign
-momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs -mcmodel=code-model
-mabi=เบŠเบทเปˆ -maddress-mode=เบฎเบนเบšเปเบšเบšเบเบฒเบ™ -m32 -m64 -mx32 -m16 -mlarge-data-threshold=num
-msse2avx -mfentry -mrecord-mcount -mnop-mcount -m8bit-idiv
-mavx256-split-unaligned-load -mavx256-split-unaligned-store -malign-data=เบ›เบฐเป€เบžเบ”
-mstack-protector-guard=เบเบญเบ‡

x86 Windows เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mconsole -mcygwin -mno-cygwin -mdll -mnop-fun-dllimport -mthread
-municode -mwin32 - เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก -fno-set-stack-executable

Xstormy16 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบŠเบดเบก

Xtensa เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mconst16 -mno-const16 -mfused-madd -mno-fused-madd -mforce-no-pic
-mserialize-volatile -mno-serialize-volatile -mtext-section-literals
-mno-text-section-literals -mtarget-align -mno-target-align -mlongcalls
-mno-longcalls

zSeries เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เป€เบšเบดเปˆเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบ S/390 เปเบฅเบฐ zSeries.

เบฅเบฐเบซเบฑเบ” เบเบฒเบ™เบœเบฐเบฅเบดเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fcall-เบšเบฑเบ™เบ—เบถเบ-reg -fcall-เปƒเบŠเป‰-reg - เบ„เบปเบ‡โ€‹เบ—เบตเปˆ -reg - เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹ -fnon-call-exceptions
-fdelete-dead-exceptions -funwind-เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ -fasynchronous-unwind-เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ -fno-gnu-เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ
-finhibit-size-directive - finstrument - เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹
-finstrument-functions-exclude-function-list=เบŠเบดเบก,เบŠเบดเบก...
-finstrument-functions-exclude-file-list=เป€เบญเบเบฐเบชเบฒเบ™,เป€เบญเบเบฐเบชเบฒเบ™... -fno-เบ—เบปเปˆเบงเป„เบ› -fno-ident
-fpcc-struct-return -fpic -fPIC -fpie -fPIE -fno-jump-tables -frecord-gcc-เบชเบฐเบซเบผเบฑเบš
-freg-struct-return -fshort-enums -fshort-double -fshort-wchar -fverbose-asm
-fpack-struct[=n] -fstack-เบเบงเบ”โ€‹เบชเบญเบšโ€‹ -fstack-limit-register=reg -fstack-limit-symbol=เบŠเบดเบก
-fno-stack-เบˆเบณเบเบฑเบ” -fsplit-stack -fleading-underscore -ftls-model=เบฎเบนเบšเปเบšเบš
-fstack-reuse=reuse_level -ftrapv -fwrapv -fbounds-เบเบงเบ”โ€‹เบชเบญเบšโ€‹
-fvisibility=[Default|เบžเบฒเบเปƒเบ™|เป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰|เบ›เป‰เบญเบ‡เบเบฑเบ™] -fstrict-volatile-bitfields
-fsync-libcalls

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก เป„เบ”เป‰ เบ›เบฐเป€เบžเบ” of เบœเบปเบ™เบœเบฐเบฅเบดเบ”
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเบฒเบกเบฒเบ”เบกเบตเป€เบ–เบดเบ‡เบชเบตเปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™: preprocessing, compilation เป€เบซเบกเบฒเบฐเบชเบปเบก, เบ›เบฐเบเบญเบšเปเบฅเบฐ
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡, เบชเบฐเป€เบซเบกเบตเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบฑเป‰เบ™. GCC เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบฅเบฐเบฅเบงเบšเบฅเบงเบกเบซเบผเบฒเบเป†เบขเปˆเบฒเบ‡
เป„เบŸเบฅโ€‹เปŒโ€‹เบšเปเปˆโ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เบซเบผเบทโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ assemblerโ€‹; เปเบฅเป‰เบง
เปเบ•เปˆเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™เบ›เบฐเบเบญเบšเบ›เบฐเบเบญเบšเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ, เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เบซเบกเบปเบ”
เป„เบŸเบฅเปŒ (เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเปƒเบซเบกเปˆ, เปเบฅเบฐเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™ input) เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰.

เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ”เบ™เบถเปˆเบ‡, เบ™เบฒเบกเบชเบฐเบเบธเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบˆเบฐเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™
เป€เบฎเบฑเบ”เปเบฅเป‰เบง:

เป€เบญเบเบฐเบชเบฒเบ™.c
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ C เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.i
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ C เบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.ii
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ C++ เบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.m
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Objective-C. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš libobjc เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™
เบงเบฝเบเป‚เบ„เบ‡เบเบฒเบ™ Objective-C.

เป€เบญเบเบฐเบชเบฒเบ™.เป„เบก
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Objective-C เบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™mm
เป€เบญเบเบฐเบชเบฒเบ™.M
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Objective-C++. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš libobjc เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰
เป‚เบ›เบฃเปเบเบฃเบก Objective-C++ เป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ .M เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบท M.

เป€เบญเบเบฐเบชเบฒเบ™.mii
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Objective-C++ เบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.h
C, C++, Objective-C เบซเบผเบท Objective-C++ header file เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ precompiled
header (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™), เบซเบผเบท C, C++ header เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ Ada spec (เบœเปˆเบฒเบ™
-fdump-ada-spec เบชเบฐเบซเบผเบฑเบš).

เป€เบญเบเบฐเบชเบฒเบ™cc
เป€เบญเบเบฐเบชเบฒเบ™.cp
เป€เบญเบเบฐเบชเบฒเบ™.cxx
เป€เบญเบเบฐเบชเบฒเบ™.cpp
เป€เบญเบเบฐเบชเบฒเบ™.CPP
เป€เบญเบเบฐเบชเบฒเบ™.c++
เป€เบญเบเบฐเบชเบฒเบ™.C
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ C++ เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™ .cxx, เบชเบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบ
เบ—เบฑเบ‡เบชเบญเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบท x. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, .C เปเบฒเบเป€เบ–เบดเบ‡เบ•เบปเบงเปœเบฑเบ‡เบชเบท C.

เป€เบญเบเบฐเบชเบฒเบ™mm
เป€เบญเบเบฐเบชเบฒเบ™.M
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Objective-C++ เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.mii
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Objective-C++ เบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.เบŠเบก
เป€เบญเบเบฐเบชเบฒเบ™.H
เป€เบญเบเบฐเบชเบฒเบ™.hp
เป€เบญเบเบฐเบชเบฒเบ™.hxx
เป€เบญเบเบฐเบชเบฒเบ™.hp
เป€เบญเบเบฐเบชเบฒเบ™.HPP
เป€เบญเบเบฐเบชเบฒเบ™.h++
เป€เบญเบเบฐเบชเบฒเบ™.tcc
เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบง C++ เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเป„เบงเป‰เบเปˆเบญเบ™ เบซเบผเบท Ada spec.

เป€เบญเบเบฐเบชเบฒเบ™.f
เป€เบญเบเบฐเบชเบฒเบ™.เบชเปเบฒเบฅเบฑเบš
เป€เบญเบเบฐเบชเบฒเบ™.ftn
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Fortran เบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.F
เป€เบญเบเบฐเบชเบฒเบ™.FOR
เป€เบญเบเบฐเบชเบฒเบ™.fpp
เป€เบญเบเบฐเบชเบฒเบ™.FPP
เป€เบญเบเบฐเบชเบฒเบ™.FTN
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Fortran เบ„เบปเบ‡เบ—เบตเปˆเบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™ (เบเบฑเบšเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
preprocessor).

เป€เบญเบเบฐเบชเบฒเบ™.f90
เป€เบญเบเบฐเบชเบฒเบ™.f95
เป€เบญเบเบฐเบชเบฒเบ™.f03
เป€เบญเบเบฐเบชเบฒเบ™.f08
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Fortran เบŸเบฃเบตเบ—เบตเปˆเบšเปเปˆเบ„เบงเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เป€เบญเบเบฐเบชเบฒเบ™.F90
เป€เบญเบเบฐเบชเบฒเบ™.F95
เป€เบญเบเบฐเบชเบฒเบ™.F03
เป€เบญเบเบฐเบชเบฒเบ™.F08
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Fortran เบŸเบฃเบตเบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™ (เบเบฑเบšเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
preprocessor).

เป€เบญเบเบฐเบชเบฒเบ™.เป„เบ›
เป„เบ›เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡.

เป€เบญเบเบฐเบชเบฒเบ™.เป‚เบ„เบชเบฐเบ™เบฒ
เป„เบŸเบฅเปŒเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Ada เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบซเบปเบงเปœเปˆเบงเบเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” (เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡ a
package, subprogram, or generic, or a generic instantiation), เบซเบผเบท เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”
เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบŠเบทเปˆโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ” (เบŠเบธเบ”โ€‹, เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹, เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบŠเบทเปˆโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบเปˆเบญเบโ€‹)โ€‹. เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เป„เบŸเบฅเปŒเบเบฑเบ‡เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบ‚เปเป‰เบเปเบฒเบซเบ™เบปเบ”.

เป€เบญเบเบฐเบชเบฒเบ™.adb
เป„เบŸเบฅเปŒเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Ada เบ—เบตเปˆเบกเบตเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” (เป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบ เบซเบผเบทเป€เบ™เบทเป‰เบญเปƒเบ™เบŠเบธเบ”).
เป„เบŸเบฅเปŒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบ‡เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบฎเปˆเบฒเบ‡เบเบฒเบ.

เป€เบญเบเบฐเบชเบฒเบ™.s
เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบš.

เป€เบญเบเบฐเบชเบฒเบ™.S
เป€เบญเบเบฐเบชเบฒเบ™sx
เบฅเบฐเบซเบฑเบ” Assembler เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™.

เบญเบทเปˆเบ™เป†
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบˆเบฐเบ›เป‰เบญเบ™เป‚เบ”เบเบเบปเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡. เบŠเบทเปˆเป„เบŸเบฅเปŒเปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰
suffix เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบžเบฒเบชเบฒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบ”เป‰เบงเบ -x เบ•เบปเบงเป€เบฅเบทเบญเบ:

-x เบžเบฒเบชเบฒ
เบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡ เบžเบฒเบชเบฒ เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰ (เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบญเบเปƒเบซเป‰
compiler เป€เบฅเบทเบญเบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบŠเบทเปˆเป„เบŸเบฅเปŒ suffix). เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ—เบธเบเบ„เบปเบ™
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบปเบ™เบเปˆเบงเบฒเบ•เปเปˆเป„เบ› -x เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš เบžเบฒเบชเบฒ เปเบกเปˆเบ™:

c c-header cpp-output
c++ c++-header c++-cpp-output
objective-c objective-c-header objective-c-cpp-output
objective-c++ objective-c++-header objective-c++-cpp-output
assembler-with-cpp
ada
f77 f77-cpp-input f95 f95-cpp-input
go
java

-x none
เบ›เบดเบ”เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบžเบฒเบชเบฒเปƒเบ”เบ™เบถเปˆเบ‡, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบŸเบฅเปŒเบ•เปเปˆเบกเบฒเบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™
เบญเบตเบ‡โ€‹เบ•เบฒเบกโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹เบŠเบทเปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒ (เบ”เบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปเบกเปˆเบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹ -x เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”).

-pass-exit-codes
เบ—เบณ เบกเบฐเบ”เบฒ gcc เป‚เบ›เบฅเปเบเบฅเบกเบญเบญเบเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ” 1 เบ–เป‰เบฒเป„เบฅเบเบฐเปƒเบ”เบ™เบถเปˆเบ‡เบ‚เบญเบ‡ compiler เบเบฑเบšเบ„เบทเบ™เบกเบฒ
เบฅเบฐเบซเบฑเบ”เบเบฑเบšเบ„เบทเบ™เบกเบฒเบ—เบตเปˆเบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธ -pass-exit-codes, เบเบฒเบ™ gcc เป‚เบ„เบ‡เบเบฒเบ™เปเบ—เบ™
เบ•เบญเบšเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบชเบนเบ‡เบ—เบตเปˆเบชเบธเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบเป„เบฅเบเบฐเปƒเบ”เป†เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”
เบ•เบปเบงเบŠเบตเป‰เบšเบญเบ. เบ”เป‰เบฒเบ™เปœเป‰เบฒเบ‚เบญเบ‡ C, C++, เปเบฅเบฐ Fortran เบเบฑเบšเบ„เบทเบ™เบกเบฒ 4 เบ–เป‰เบฒเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบžเบฒเบเปƒเบ™
เปเบกเปˆเบ™เบžเบปเบš.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบšเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ -x (เบซเบผเบทเบŠเบทเปˆเป„เบŸเบฅเปŒเบ•เปเปˆเบ—เป‰เบฒเบ)
เบšเบญเบ gcc เบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -c, -S, เบซเบผเบท -E เป€เบงเบปเป‰เบฒเบขเบนเปˆเปƒเบช gcc เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ
เบขเบธเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบšเบฒเบ‡เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, -x cpp-output -E) เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹ gcc to do
เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบเบฑเบ‡โ€‹เป€เบฅเบตเบ.

-c เบฅเบงเบšเบฅเบงเบกเบซเบผเบทเบ›เบฐเบเบญเบšเป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เปเบ•เปˆเบšเปเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ
เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบŠเบทเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™เบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบ .c,
.i, .s, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เบเบฑเบš .o.

เป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ, เบšเปเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™ เบซเบผเบทเบเบฒเบ™เบ›เบฐเบเบญเบš, เปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

-S เบขเบธเบ”เป€เบŠเบปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก; เบขเปˆเบฒโ€‹เป€เบ•เบปเป‰เบฒโ€‹เป‚เบฎเบก. เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบฅเบฐโ€‹เบซเบฑเบ” assembler เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบกเบฒโ€‹เบŠเบดเบโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบŠเบทเปˆเป„เบŸเบฅเปŒ assembler เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™เบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบ
.c, .i, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เบเบฑเบš .s.

เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

-E เบขเบธเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™; เบšเปเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ compiler เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ preprocessed, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

-o เป€เบญเบเบฐเบชเบฒเบ™
เบงเบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบ™เป„เบŸเบฅเปŒ เป€เบญเบเบฐเบชเบฒเบ™. เบ™เบตเป‰เปƒเบŠเป‰เบเบฑเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ›เบฐเป€เบžเบ”เปƒเบ”เบเปเปˆเบ•เบฒเบก,
เบšเปเปˆโ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป„เบ”เป‰โ€‹, เป„เบŸเบฅโ€‹เปŒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹, เป„เบŸเบฅโ€‹เปŒ assembler เบซเบผเบท preprocessed C
เบฅเบฐเบซเบฑเบ”.

If -o เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰ เบ, เบงเบฑเบ”เบ–เบธ
file for source.suffix in เปเบซเบผเปˆเบ‡.o, เป€เบญเบเบฐเบชเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบ•เบปเบ™เปƒเบ™ source.s, เป€เบ›เบฑเบ™ precompiled
เป„เบŸเบฅเปŒเบซเบปเบงเปƒเบ™ source.suffix.gch, เปเบฅเบฐเปเบซเบผเปˆเบ‡ C preprocessed เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

-v เบžเบดเบก (เบ•เบฒเบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบญเบญเบ) เบ„เปเบฒเบชเบฑเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบดเบกเบˆเปเบฒเบ™เบงเบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเป„เบ”เป€เบงเบต compiler เปเบฅเบฐเบ‚เบญเบ‡
preprocessor เปเบฅเบฐ compiler เป€เบซเบกเบฒเบฐเบชเบปเบก.

-###
เบ„เบท -v เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ–เบฝเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เปเบ•เปˆโ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹
เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบ เบซเบผเบท "./-_". เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบš shell scripts
เบˆเบฑเบšเบšเบฑเบ™เบ—เบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเป‰เบฒเบ‡เป‚เบ”เบเบ„เบปเบ™เบ‚เบฑเบš.

- เบ›เบธเบš
เปƒเบŠเป‰เบ—เปเปˆเบซเบผเบฒเบเบเบงเปˆเบฒเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบšเบฒเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ•เบปเบงเบ›เบฐเบเบญเบšเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰
เบˆเบฒเบเบ—เปเปˆ; เปเบ•เปˆเบœเบนเป‰เบ›เบฐเบเบญเบš GNU เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ.

- เบŠเปˆเบงเบ
เบžเบดเบก (เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”) เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ”เบ
gccเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -v เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹ - เบŠเปˆเบงเบ เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเบปเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบ•เปˆเบฒเบ‡เป†โ€‹
เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เป‚เบ”เบโ€‹ gcc, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ
เบเบญเบกโ€‹เบฎเบฑเบš. เบ–เป‰เบฒ -Wextra เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰ (เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹ - เบŠเปˆเบงเบ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹)
เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™
เบชเบฐเปเบ”เบ‡.

--เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบเบฒเบ™โ€‹เบŠเปˆเบงเบโ€‹เป€เบซเบผเบทเบญโ€‹
เบžเบดเบก (เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”) เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบฐเป€เบžเบฒเบฐเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบท. เบชเบณเบฅเบฑเบšเบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบ เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเป€เบ›เบปเป‰เบฒเปเบฒเบเบžเบดเป€เบชเบ”เบญเบฒเบ”เป€เบ›เบฑเบ™
เบžเบดเบกเบญเบญเบ.

--help={เบฅเบฐเบ”เบฑเบš|[^]เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”}[...]
เบžเบดเบก (เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”) เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ”เบ
compiler เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹:

เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเป‚เบ”เบ compiler.

เบ„เปเบฒเป€เบ•เบทเบญเบ™
เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบเบ„เบญเบกเบžเบตเบงเป€เบ•เบต.

เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ
เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเป€เบ›เบปเป‰เบฒเปเบฒเบ. เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš --เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบเบฒเบ™โ€‹เบŠเปˆเบงเบโ€‹เป€เบซเบผเบทเบญโ€‹ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ เปเบฅเบฐเบ•เบปเบงเบ›เบฐเบเบญเบšเบšเปเปˆเป„เบ”เป‰เบชเบฐเปเบ”เบ‡. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบเป‰เบญเบ™โ€‹เบงเปˆเบฒ
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ --help= syntax

params
เบชเบฐเปเบ”เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบฎเบฑเบšเบฎเบนเป‰เป‚เบ”เบ --param เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบžเบฒเบชเบฒ
เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš เบžเบฒเบชเบฒ, เบšเปˆเบญเบ™เบ—เบตเปˆ เบžเบฒเบชเบฒ เปเบกเปˆเบ™โ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹
เบžเบฒเบชเบฒเบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเปƒเบ™ GCC เบฅเบธเป‰เบ™เบ™เบตเป‰.

เบ—เบปเปˆเบงเป„เบ›
เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบ•เบปเบงโ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบ—เบธเบโ€‹เบžเบฒโ€‹เบชเบฒโ€‹.

เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš:

เบšเปเปˆเบกเบตเบซเบผเบฑเบเบ–เบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™
เบชเบฐเปเบ”เบ‡เบžเบฝเบ‡เปเบ•เปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™.

เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก
เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเปเบ”เบ‡เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบ—เบตเปˆเบ›เบฐเบเบปเบ”เบ‚เบถเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฑเบ™เบเบฒเบ™เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™เปƒเบ™เบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™
เบ‚เปเป‰เบ„เบงเบฒเบกเบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เป€เบŠเบฑเปˆเบ™: --help=เป€เบ›เบปเป‰เบฒเปเบฒเบ.

เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเปเบ”เบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบ›เบฒเบเบปเบ”เป€เบ›เบฑเบ™เบ„เปเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เป€เบŠเบฑเปˆเบ™: -o output-file.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ—เบธเบเบชเบฐเบซเบผเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบธเบ™เป‚เบ”เบ
compiler เป„เบ”เป‰, เปƒเบŠเป‰:

--help=เป€เบ›เบปเป‰เบฒเปเบฒเบ,เบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™

เบ„เบงเบฒเบกโ€‹เบฎเบนเป‰โ€‹เบชเบถเบโ€‹เบ‚เบญเบ‡โ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบชเบฒโ€‹เบกเบฒเบ” inverted เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เบซเบ™เป‰เบฒโ€‹เบกเบฑเบ™โ€‹เบเบฑเบšโ€‹ ^ เบฅเบฑเบเบชเบฐเบ™เบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบชเบญเบ‡โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ” (เป€เบŠเบฑเปˆเบ™โ€‹, เบซเบ™เบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ—เบฑเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เบซเบผเบทโ€‹เบ›เบดเบ”โ€‹
เปเบฅเบฐเบšเปเปˆเป€เบญเบปเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡) เบ—เบตเปˆเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ, เปƒเบŠเป‰:

--help=warnings,^เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก,^เบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™

เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบš --help= เบšเปเปˆเบ„เบงเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบตเป‰เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบˆเปเบฒเบเบฑเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบซเบผเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡. เบเปเบฅเบฐเบ™เบตเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปเบกเปˆเบ™เป€เบงเบฅเบฒ
เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เปเบกเปˆเบ™ เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ—เบธเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฐเป€เบžเบฒเบฐ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เปƒเบŠเป‰:

--help=เป€เบ›เบปเป‰เบฒเปเบฒเบ,เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš

เป„เบ”เป‰ --help= เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบŠเป‰เปเบฒเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡
เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™, เบ‚เป‰เบฒเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเบชเบฐเปเบ”เบ‡เปเบฅเป‰เบง.

เบ–เป‰เบฒ -Q เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเปˆเบญเบ™ --help= เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹
เบ‚เปเป‰เบ„เบงเบฒเบกเบญเบฐเบ—เบดเบšเบฒเบเบชเบฐเปเบ”เบ‡เป‚เบ”เบ --help= เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹, เบเบฒเบ™โ€‹เบŠเบตเป‰โ€‹เบšเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบงเปˆเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹, เบ›เบดเบ”โ€‹เบซเบผเบทโ€‹เบ•เบฑเป‰เบ‡โ€‹
เบเบฑเบšเบ„เปˆเบฒเบชเบฐเป€เบžเบฒเบฐ (เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ compiler เบฎเบนเป‰เบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบˆเบธเบ”เบ—เบตเปˆ
--help= เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹)โ€‹.

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เบฑเบ”เบญเบญเบเบˆเบฒเบเบžเบญเบ” ARM เบ‚เบญเบ‡ gcc:

% gcc -Q -mabi=2 --help=target -c
เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบเบชเบฐเป€เบžเบฒเบฐ:
-mabi=2
-mabort-on-noreturn [เบ„เบปเบ™เบžเบดเบเบฒเบ™]
- เปเบœเบ™เบ—เบตเปˆ [เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™]

เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบญเปˆเบญเบ™เป„เบซเบงเบ•เปเปˆเบเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ”เบ—เบตเปˆเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆ -O2 เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹:

-Q -O2 --help=optimizers

เบญเบตเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš binary เปƒเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -O3 เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹:

gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts
gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts
diff /tmp/O2-opts /tmp/O3-opts | grep เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™

-no-canonical-prefixes
เบšเปเปˆเบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเปƒเบ”เป†, เปเบเป‰เป„เบ‚เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡ /../ or /./, เบซเบผเบทเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡
เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

- เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบชเบฐเปเบ”เบ‡เปเบฒเบเป€เบฅเบเป€เบงเบตเบŠเบฑเบ™ เปเบฅเบฐเบฅเบดเบ‚เบฐเบชเบดเบ”เบ‚เบญเบ‡ GCC เบ—เบตเปˆเบ–เบทเบเบฎเบฝเบเบฎเป‰เบญเบ‡.

- เบซเปเปˆ
เป€เบญเบตเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเปˆเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบžเบฒเบเปƒเบ•เป‰เป‚เบ„เบ‡เบเบฒเบ™ wrapper. เบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ wrapper เปเบฅเบฐ
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป€เบ›เบฑเบ™เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

gcc -c tc -wrapper gdb,--args

เบ™เบตเป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ gcc เบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™ gdb --args, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เบ‚เบญเบ‡ cc1 is
gdb --args cc1 ....

-fplugin=เบŠเบทเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™,
เป‚เบซเบฅเบ”เบฅเบฐเบซเบฑเบ” plugin เปƒเบ™เป„เบŸเบฅเปŒ เบŠเบทเปˆ.so, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป€เบžเบทเปˆเบญ dlopen'd เป‚เบ”เบ
compiler เป„เบ”เป‰. เบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบ•เบปเบงเบ›เบฅเบฑเบเบญเบดเบ™
เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ (เป€เบšเบดเปˆเบ‡ -fplugin-arg-เบŠเบทเปˆ-เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™=เบกเบนเบ™เบ„เปˆเบฒ เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰). เปเบ•เปˆเบฅเบฐ
plugin เบ„เบงเบ™เบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ callback เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ Plugins API.

-fplugin-arg-เบŠเบทเปˆ-เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™=เบกเบนเบ™เบ„เปˆเบฒ
เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ เบ”เป‰เบงเบเบกเบนเบ™เบ„เปˆเบฒ เบกเบนเบ™เบ„เปˆเบฒ เบชเปเบฒเบฅเบฑเบš plugin เป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบŠเบทเปˆ.

-fdump-ada-spec[-เบšเบฒเบ‡]
เบชเปเบฒเบฅเบฑเบšเปเบซเบผเปˆเบ‡ C เปเบฅเบฐ C ++ เปเบฅเบฐเบ›เบฐเบเบญเบšเบกเบตเป„เบŸเบฅเปŒ, เบชเป‰เบฒเบ‡ specs Ada เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™.

-fada-spec-parent=เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™
เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš -fdump-ada-spec[-เบšเบฒเบ‡] เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบชเป‰เบฒเบ‡ Ada specs เป€เบ›เบฑเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบนเบเบ‚เบญเบ‡
เบžเปเปˆเปเบกเปˆ เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™.

-fdump-go-spec=เป€เบญเบเบฐเบชเบฒเบ™
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เป„เบŸเบฅเปŒเปƒเบ™เบžเบฒเบชเบฒเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบชเป‰เบฒเบ‡เบเบฒเบ™เบ›เบฐเบเบฒเบ” Go เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เปƒเบ™ เป€เบญเบเบฐเบชเบฒเบ™. เบ™เบตเป‰
เบชเป‰เบฒเบ‡เบเบฒเบ™เบ›เบฐเบเบฒเบ” Go "const", "type", "var", เปเบฅเบฐ "func" เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.
เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ‚เบฝเบ™เบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆ Go เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™.

@เป€เบญเบเบฐเบชเบฒเบ™
เบญเปˆเบฒเบ™เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบˆเบฒเบ เป€เบญเบเบฐเบชเบฒเบ™. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบญเปˆเบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เปƒเบชเปˆโ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบ‚เบญเบ‡โ€‹
เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš @เป€เบญเบเบฐเบชเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ–เป‰เบฒ เป€เบญเบเบฐเบชเบฒเบ™ เบšเปเปˆเบกเบต, เบซเบผเบทเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบดเปˆเบ™โ€‹เบ›เบปเบงโ€‹เบ—เบตเปˆโ€‹เบฎเบนเป‰โ€‹เบซเบ™เบฑเบ‡โ€‹เบชเบทโ€‹, เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป‚เบเบโ€‹เบเป‰เบฒเบโ€‹เบญเบญเบโ€‹.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปˆเบฒเบ‡เป†เปƒเบ™ เป€เบญเบเบฐเบชเบฒเบ™ เบ–เบทเบเปเบเบเบญเบญเบเป‚เบ”เบเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡. เบญเบฒเบ”เบกเบตเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เปƒเบชเปˆเบ™เบณ
เปƒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป‚เบ”เบเบเบฒเบ™เบญเป‰เบญเบกเบฎเบญเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบงเบปเบ‡เบขเบทเบกเบ”เบฝเบงเบซเบผเบทเบ„เบนเปˆ. เปƒเบ”
เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ (เบฅเบงเบกเบ—เบฑเบ‡ backslash) เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเบซเบ™เป‰เบฒเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
เบฅเบงเบกเป„เบ›เบ”เป‰เบงเบ backslash. เป„เบ”เป‰ เป€เบญเบเบฐเบชเบฒเบ™ เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบญเบฒเบ”เบˆเบฐเบกเบต @ เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบญเบเบฐเบชเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ; เปƒเบ”
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบšเบš recursively.

เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก C ++ เป‚เบ„เบ‡เบเบฒเบ™
เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡ C++ เบ•เบฒเบกเบ—เบณเบกเบฐเบ”เบฒเปƒเบŠเป‰เปœเบถเปˆเบ‡เปƒเบ™เบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบ .C, cc, .cpp, .CPP, .c++, .cp, เบซเบผเบท
.cxx; เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบง C++ เบกเบฑเบเบˆเบฐเปƒเบŠเป‰ .เบŠเบก, .hp, .H, เบซเบผเบท (เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปเบกเปˆเปเบšเบšเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™) .tcc; เปเบฅเบฐ
เป„เบŸเบฅเปŒ C++ preprocessed เปƒเบŠเป‰เบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบ .ii. GCC เบฎเบฑเบšเบฎเบนเป‰เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ เปเบฅเบฐ
เบฅเบงเบšเบฅเบงเบกเบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เป‚เบ›เปเบเบก C ++ เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเป‚เบ—เบซเบฒ compiler เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เป‚เบ›เบฃเปเบเบฃเบก C (เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบตเบŠเบทเปˆ gcc).

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ gcc เบšเปเปˆเป„เบ”เป‰เป€เบžเบตเปˆเบกเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” C++. g ++ เปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ GCC เปเบฅเบฐ
เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C ++. เบกเบฑเบ™เบ›เบดเปˆเบ™เบ›เบปเบง .c, .h เปเบฅเบฐ .i เป„เบŸเบฅเปŒเป€เบ›เบฑเบ™
เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡ C++ เปเบ—เบ™เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡ C เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -x เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ precompiling เป„เบŸเบฅเปŒเบซเบปเบง C เบเบฑเบš a .h เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™ C++. เบชเบธเบ”
เบซเบผเบฒเบโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹, g ++ เบเบฑเบ‡เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ”เป‰เบงเบเบŠเบทเปˆ c ++.

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป‚เบ›เปเบเบผเบก C ++, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เบซเบผเบฒเบเบญเบฑเบ™
เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบžเบฒเบชเบฒเปƒเบ”เบเปเปˆเบ•เบฒเบก; เบซเบผเบทเบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบš C
เปเบฅเบฐเบžเบฒเบชเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡; เบซเบผเบทเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ C ++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก C เบžเบฒเบชเบฒ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบžเบฒเบชเบฒเบ‚เบญเบ‡ C (เบซเบผเบทเบžเบฒเบชเบฒเบ—เบตเปˆเบกเบฒเบˆเบฒเบ C, เป€เบŠเบฑเปˆเบ™ C++,
Objective-C เปเบฅเบฐ Objective-C++) เบ—เบตเปˆ compiler เบเบญเบกเบฎเบฑเบš:

-ansi
เปƒเบ™เป‚เบซเบกเบ” C, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -std=c90. เปƒเบ™เป‚เบซเบกเบ” C ++, เบกเบฑเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš
-std=c++98.

เบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบดเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡ GCC เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš ISO C90 (เป€เบกเบทเปˆเบญ
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ” C), เบซเบผเบทเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ (เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ” C ++), เป€เบŠเบฑเปˆเบ™ "asm" เปเบฅเบฐ
"typeof" เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™, เปเบฅเบฐ macros เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเป€เบŠเบฑเปˆเบ™ "unix" เปเบฅเบฐ "vax" เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”.
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰. เบกเบฑเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ ISO เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ เปเบฅเบฐเบšเปเปˆเบ„เปˆเบญเบเป„เบ”เป‰เปƒเบŠเป‰
เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ” trigraphโ€‹. เบชเปเบฒเบฅเบฑเบš C compiler, เบกเบฑเบ™เบ›เบดเบ”เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบ‚เบญเบ‡ C++ style //
เบ„เปเบฒเบ„เบดเบ”เบ„เปเบฒเป€เบซเบฑเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "inline".

เบ„เบณเบชเบฑเบšเบชเบณเบฎเบญเบ‡ "__asm__", "__extension__", "__inline__" เปเบฅเบฐ "__typeof__"
เบชเบทเบšเบ•เปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ -ansi. เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ ISO C,
เปเบ™เปˆเบ™เบญเบ™, เปเบ•เปˆเบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐเป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒ header เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบฎเบฑเบ”เบ”เป‰เบงเบ -ansi. เบชเบฐเบซเบผเบฑเบšเบกเบฒเป‚เบ„เบฃเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒเป€เบŠเบฑเปˆเบ™ "__unix__" เปเบฅเบฐ
"__vax__" เบเบฑเบ‡เบกเบตเบขเบนเปˆ, เบกเบตเบซเบผเบทเบšเปเปˆเบกเบต -ansi.

เป„เบ”เป‰ -ansi เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ ISO เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เป‚เบ”เบเบšเปเปˆเป€เบชเบเบ„เปˆเบฒ. เบชเปเบฒเบฅเบฑเบš
เบงเปˆเบฒ, -Wpedantic เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ -ansi.

เบกเบฐเบซเบฒเบžเบฒเบ "__STRICT_ANSI__" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒเป€เบกเบทเปˆเบญ -ansi เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบšเบฒเบ‡เบชเปˆเบงเบ™เบซเบปเบง
เป„เบŸโ€‹เบฅเปŒโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบชเบฑเบ‡โ€‹เป€เบเบ”โ€‹เป€เบซเบฑเบ™โ€‹เบกเบฐโ€‹เบซเบฒโ€‹เบžเบฒเบโ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹เบฅเบฐโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบšเบฒเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹
เบกเบฐเบซเบฒเบžเบฒเบเบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO เบšเปเปˆเป„เบ”เป‰เบฎเบฝเบเบฎเป‰เบญเบ‡; เบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เปเบŠเบเปเบŠเบ‡
เบเบฑเบšเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบŠเบทเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†.

เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เปเบ•เปˆเบšเปเปˆเบกเบต semantics เบเปเบฒเบ™เบปเบ”เป‚เบ”เบ ISO C (เป€เบŠเบฑเปˆเบ™
เป€เบ›เบฑเบ™ "alloca" เปเบฅเบฐ "ffs") เบšเปเปˆเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™เป€เบกเบทเปˆเบญ -ansi เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-std=
เบเปเบฒเบ™เบปเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบฒเบชเบฒ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบฅเบงเบšเบฅเบงเบก C เบซเบผเบท C++.

compiler เบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡, เป€เบŠเบฑเปˆเบ™: c90 or c++98, เปเบฅเบฐเบžเบฒเบชเบฒ GNU
เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เป€เบŠเบฑเปˆเบ™: gnu90 or gnu++98. เป€เบกเบทเปˆเบญเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ–เบทเบเบฅเบฐเบšเบธ, the
compiler เบเบญเบกเบฎเบฑเบšเบ—เบธเบเป‚เบ„เบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ™เบฑเป‰เบ™เบšเบงเบเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU
เบงเปˆเบฒเบšเปเปˆเบ‚เบฑเบ”เบกเบฑเบ™. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, -std=c90 เบ›เบดเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡ GCC
เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš ISO C90, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒ "asm" เปเบฅเบฐ "typeof" เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™.
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเปƒเบ™ ISO C90, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบฅเบฐเป€เบงเบฑเป‰เบ™
เบ„เปเบฒเบชเบฑเบšเบเบฒเบ‡เบ‚เบญเบ‡ "?:" เบชเบฐเปเบ”เบ‡เบญเบญเบ. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เป€เบกเบทเปˆเบญเบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ compiler เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบšเบฒเบ‡เบญเบฑเบ™เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”
เป‚เบ„เบ‡เบเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบ -Wpedantic เบเบฒเบ™เบฅเบฐเบšเบธ
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบ”เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU เบ—เบตเปˆเปƒเบซเป‰เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฐเบšเบฑเบšเบ™เบฑเป‰เบ™. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡
-std=gnu90 -Wpedantic เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเปเบšเบš C++ // เบ„เปเบฒเป€เบซเบฑเบ™, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ -std=gnu99 -Wpedantic
เบšเปเปˆ.

เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰; เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบกเปˆเบ™

c90
c89
iso9899:1990
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบธเบเป‚เบ„เบ‡เบเบฒเบ™ ISO C90 (เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU เบ—เบตเปˆเบ‚เบฑเบ”เบเบฑเบš ISO C90
เบ–เบทเบเบ›เบดเบ”). เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -ansi เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” C.

iso9899:199409
ISO C90 เบ•เบฒเบกโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚ 1.

c99
c9x
iso9899:1999
iso9899:199x
ISO C99. เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบซเบผเบงเบ‡โ€‹เบซเบผเบฒเบโ€‹, เปเบกเบ‡โ€‹เป„เบกเป‰ modulo เปเบฅเบฐโ€‹
เบšเบฑเบ™เบซเบฒเบˆเบธเบ”เบฅเบญเบ (เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เปเบ•เปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบ C99
เบˆเบฒเบเป€เบญเบเบฐเบชเบฒเบ™เบŠเป‰เบญเบ™เบ—เป‰เบฒเบ F เปเบฅเบฐ G). เป€เบšเบดเปˆเบ‡http://gcc.gnu.org/c99status.html> เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ‚เปเป‰เบกเบนเบ™. เบŠเบทเปˆ c9x เปเบฅเบฐ iso9899:199x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

c11
c1x
iso9899:2011
ISO C11, เบเบฒเบ™เปเบเป‰เป„เบ‚เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C เบ›เบต 2011. เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ
เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹, เปเบกเบ‡โ€‹เป„เบกเป‰ moduloโ€‹, เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰ (เบชเปˆเบงเบ™โ€‹เปƒเบซเบเปˆโ€‹เปเบกเปˆเบ™โ€‹เปเบ•เปˆโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹
เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบ C11 เบˆเบฒเบเป€เบญเบเบฐเบชเบฒเบ™เบŠเป‰เบญเบ™เบ—เป‰เบฒเบ F เปเบฅเบฐ G) เปเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™เบ„เบฑเบ”เบ•เบดเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบ K
(Bounds-checking interfaces) เปเบฅเบฐ L (Analyzability). เบŠเบทเปˆ c1x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

gnu90
gnu89
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ ISO C90 (เบฅเบงเบกเบ—เบฑเบ‡เบšเบฒเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐ C99).

gnu99
gnu9x
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ ISO C99. เบŠเบทเปˆ gnu9x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

gnu11
gnu1x
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ ISO C11. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” C. เบŠเบทเปˆ gnu1x is
เป€เบŠเบปเบฒเปƒเบŠเป‰เปเบฅเป‰เบง.

c++98
c++03
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C++ เบ›เบต 1998 เบšเบงเบเบเบฑเบš corrigendum เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™ 2003 เปเบฅเบฐ เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบšเบฒเบ‡เบญเบฑเบ™
เบšเบปเบ”โ€‹เบฅเบฒเบโ€‹เบ‡เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบšเบปเบโ€‹เบœเปˆเบญเบ‡โ€‹. เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -ansi เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” C++.

gnu++98
gnu++03
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ -std=c++98. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” C++.

c++11
c++0x
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C++ เบ›เบต 2011 เบšเบงเบเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚. เบŠเบทเปˆ c++0x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

gnu++11
gnu++0x
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ -std=c++11เบ—เบตเปˆเบขเบนเปˆ เบŠเบทเปˆ gnu++0x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

c++14
c++1y
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C++ เบ›เบต 2014 เบšเบงเบเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚. เบŠเบทเปˆ c++1y เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

gnu++14
gnu++1y
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ -std=c++14เบ—เบตเปˆเบขเบนเปˆ เบŠเบทเปˆ gnu++1y เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

c++1z
เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C++ เบ•เปเปˆเป„เบ›, เบงเบฒเบ‡เปเบœเบ™เป„เบงเป‰เบขเปˆเบฒเบ‡เบšเปเปˆเบขเบธเบ”เบขเบฑเป‰เบ‡เบชเบณเบฅเบฑเบšเบ›เบต 2017. เบชเบฐเปœเบฑเบšเบชเบฐเปœเบนเบ™
เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบฅเบญเบ‡โ€‹เบชเบนเบ‡, เปเบฅเบฐโ€‹เป€เบเบทเบญเบšโ€‹เปเบ™เปˆโ€‹เบ™เบญเบ™โ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปƒเบ™โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เปƒเบ™
เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

gnu++1z
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ -std=c++1z. เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเบนเบ‡, เปเบฅเบฐเป€เบเบทเบญเบšเบˆเบฐ
เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-fgnu89-inline
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fgnu89-inline เบšเบญเบ GCC เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเบชเบฑเบš GNU เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบชเปเบฒเบฅเบฑเบš "inline"
เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” C99.

เบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ "gnu_inline".
เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ inline เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fno-gnu89-inline เบšเบญเบ GCC เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เปƒเบซเป‰เปƒเบŠเป‰ C99 semantics เบชเปเบฒเบฅเบฑเบš
"inline" เป€เบกเบทเปˆเบญเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” C99 เบซเบผเบท gnu99 (ie, เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบžเบถเบ”เบ•เบดเบเปเบฒเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™). เบ™เบตเป‰
เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™ -std=c90 or -std=gnu90 mode

เบกเบฒเป‚เบ„เบฃเป‚เบ›เบฃเป€เบŠเบชเป€เบŠเบตเบเปˆเบญเบ™ "__GNUC_GNU_INLINE__" เปเบฅเบฐ "__GNUC_STDC_INLINE__" เบญเบฒเบ”เบˆเบฐเบ–เบทเบเปƒเบŠเป‰
เป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ„เบงเบฒเบกเบซเบกเบฒเบเปƒเบ”เบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ "inline".

- เบ‚เปเป‰เบกเบนเบ™ aux เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™
เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเปƒเบซเป‰เป„เบงเป‰เบชเบณเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบ›เบฐเบเบฒเบ” เปเบฅเบฐ/เบซเบผเบท
เบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบเบฒเบ™เปเบ›, เบฅเบงเบกเบ—เบฑเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ header. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบšเปเปˆเบชเบปเบ™เปƒเบˆเบขเปˆเบฒเบ‡เบ‡เบฝเบšเป†เปƒเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ C.

เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹, เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™โ€‹เบŠเบตเป‰โ€‹เบšเบญเบโ€‹, เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบ„เบดเบ”โ€‹เป€เบซเบฑเบ™โ€‹, เบ•เบปเป‰เบ™โ€‹เบเปเบฒโ€‹เป€เบ™เบตเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบ„เบปเบ™โ€‹
(เปเบซเบผเปˆเบ‡เป„เบŸเบฅเปŒเปเบฅเบฐเปเบ–เบง), เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ” implicit, prototyped เบซเบผเบท
เบšเปเปˆเบกเบตเบ•เบปเป‰เบ™เปเบšเบš (I, N เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เปƒเบซเบกเปˆโ€‹เบซเบผเบทโ€‹ O เบชเปเบฒเบฅเบฑเบšเบญเบฒเบเบธ, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เปเบฒเบญเบดเบ”เบซเบผเบฑเบ‡เบˆเบฒเบ
เบ•เบปเบงเป€เบฅเบเป€เบชเบฑเป‰เบ™ เปเบฅเบฐเบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”), เปเบฅเบฐเบšเปเปˆเบงเปˆเบฒเบˆเบฐเบกเบฒเบˆเบฒเบเบ„เปเบฒเบ›เบฐเบเบฒเบ” เบซเบผเบทเบ„เปเบฒเบ™เบดเบเบฒเบก
(C or F, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰). เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ„เปเบฒเบ™เบดเบเบฒเบก, เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเปเบšเบš K&R เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เป€เบŠเบฑเปˆเบ™เบเบฑเบ™
เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰, เบžเบฒเบเปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”.

-fallow-parameterless-variadic-functions
เบเบญเบกเบฎเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ varidic เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบŠเบทเปˆ.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™
เบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆ C เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบ C++.

-fno-asm
เบขเปˆเบฒเบฎเบฑเบšเบฎเบนเป‰ "asm", "inline" เบซเบผเบท "typeof" เป€เบ›เบฑเบ™เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เป€เบ›เบฑเบ™เบ•เบปเบงเบฅเบฐเบšเบธ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "__asm__", "__inline__" เปเบฅเบฐ
"__typeof__" เปเบ—เบ™. -ansi implies -fno-asm.

เปƒเบ™ C ++, เบชเบฐเบซเบผเบฑเบšเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆ "เบ›เบฐเป€เบžเบ”" เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ "asm" เปเบฅเบฐ "inline" เปเบกเปˆเบ™.
เบ„เปเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ -fno-gnu-keywords เบ—เบธเบ‡เปเบ—เบ™, เบ—เบตเปˆเบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ”เบฝเบงเบเบฑเบ™. เปƒเบ™เป‚เบซเบกเบ” C99 (-std=c99 or -std=gnu99), เบชเบฐเบซเบผเบฑเบšเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป‰
"asm" เปเบฅเบฐ "typeof" เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ "inline" เป€เบ›เบฑเบ™เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปƒเบ™ ISO C99.

-fno-builtin
-fno-builtin-เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบšเปเปˆเบฎเบฑเบšเบฎเบนเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบงเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ __เบเปเปˆเบชเป‰เบฒเบ‡_ เป€เบ›เบฑเบ™เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ.

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด GCC เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบžเบดเป€เบชเบ”เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบงเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš; เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป‚เบ—เบซเบฒ "alloca" เบญเบฒเบ”เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฝเบง
เบ›เบฑเบš stack เป‚เบ”เบเบเบปเบ‡, เปเบฅเบฐเบเบฒเบ™เป‚เบ—เบซเบฒ "memcpy" เบญเบฒเบ”เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™ inline copy loops. เป„เบ”เป‰
เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบกเบฑเบเบˆเบฐเบกเบตเบ—เบฑเบ‡เบ™เป‰เบญเบเบเบงเปˆเบฒ เปเบฅเบฐเป„เบงเบเบงเปˆเบฒ, เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบšเปเปˆเบกเบต
เบ”เบปเบ™เบเบงเปˆเบฒเบ™เบฑเป‰เบ™เบ›เบฐเบเบปเบ”เบ‚เบถเป‰เบ™, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เบˆเบธเบ”เบขเบธเบ”เปƒเบ™เบเบฒเบ™เป‚เบ—เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป„เบ”เป‰
เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป‚เบ”เบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญ
เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™, GCC เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบฑเป‰เบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบทเปˆเบญเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบฑเป‰เบ™, เบซเบผเบทเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบžเบฒเบšโ€‹, เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฑเบ‡โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบซเบฒโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ™เบฑเป‰เบ™โ€‹. เบชเปเบฒเบฅเบฑเบš
เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹, เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เปƒเบซเป‰โ€‹เบเบฑเบšโ€‹ -Wformat เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบตเปˆเบšเปเปˆเบ”เบตเบเบฑเบš "printf" เป€เบกเบทเปˆเบญ "printf" เปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เปเบฅเบฐ "strlen" เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบšเปเปˆเบ”เบฑเบ”เปเบ›เบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบปเปˆเบงเป‚เบฅเบ.

เบกเบต -fno-builtin-เบซเบ™เป‰เบฒเบ—เบตเปˆ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เปƒเบ™โ€‹เบ•เบปเบงโ€‹ เบซเบ™เป‰เบฒเบ—เบตเปˆ เป€เบ›เบฑเบ™เบ„เบปเบ™เบžเบดเบเบฒเบ™.
เบซเบ™เป‰เบฒเบ—เบตเปˆ เบšเปเปˆเบ„เบงเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ __เบเปเปˆเบชเป‰เบฒเบ‡_. เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบ•เบฑเป‰เบ‡เบŠเบทเปˆเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบ•เบปเบง
เปƒเบ™ GCC เบฅเบธเป‰เบ™เบ™เบตเป‰, เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เบšเปเปˆเบกเบตเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™
-fbuiltin-เบซเบ™เป‰เบฒเบ—เบตเปˆ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ; เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบกเบทเปˆเบญเปƒเบ”
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fno-builtin or - freestanding, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบเปเบฒเบ™เบปเบ” macro เป€เบŠเบฑเปˆเบ™:

#define abs(n) __builtin_abs ((n))
#define strcpy(d,s) __builtin_strcpy ((d), (s))

-fhosted
เบขเบทเบ™เบขเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ -fbuiltin. A
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ, เปเบฅเบฐเปƒเบ™
เป€เบŠเบดเปˆเบ‡ "เบ•เบปเป‰เบ™เบ•เป" เบกเบตเบ›เบฐเป€เบžเบ”เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เบ‚เบญเบ‡ "int". เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป€เบเบทเบญเบšเบ—เบธเบเบขเปˆเบฒเบ‡เบเบปเบเป€เบงเบฑเป‰เบ™ a
เปเบเปˆเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -fno-freestanding.

- freestanding
เบขเบทเบ™เบขเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบชเบฑเบ‡เบฅเบงเบกเปเบกเปˆเบ™เปเบ™เปƒเบชเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ
-fno-builtin. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆ
เบกเบตเบขเบนเปˆ, เปเบฅเบฐเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ„เบ‡เบเบฒเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆ "เบ•เบปเป‰เบ™เบ•เป". เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบˆเบฐเปเบˆเป‰เบ‡เบ—เบตเปˆเบชเบธเบ”
เป€เบ›เบฑเบ™ OS kernel. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -fno-hosted.

-fopenacc
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบณเบชเบฑเปˆเบ‡ OpenACC "#pragma acc" เปƒเบ™ C/C++ เปเบฅเบฐ "!$acc" เปƒเบ™ Fortran.
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fopenacc เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, compiler เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบฅเบฑเปˆเบ‡เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™
OpenACC Application Programming Interface v2.0http://www.openacc.org/>. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
implies - เบเบฐเบ—เบนเป‰, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
- เบเบฐเบ—เบนเป‰.

เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบปเบ”เบฅเบญเบ‡, เบšเปเปˆเบชเบปเบกเบšเบนเบ™, เปเบฅเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”
เบฅเบธเป‰เบ™เบ‚เบญเบ‡ GCC. เป€เบšเบดเปˆเบ‡https://gcc.gnu.org/wiki/OpenACC> เบชเบณ เบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

-fopenmp
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ OpenMP "#pragma omp" เปƒเบ™ C/C++ เปเบฅเบฐ "!$omp" เปƒเบ™ Fortran.
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fopenmp เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, compiler เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ™เบ•เบฒเบก
OpenMP Application Program Interface v4.0http://www.openmp.org/>. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
implies - เบเบฐเบ—เบนเป‰, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
- เบเบฐเบ—เบนเป‰. -fopenmp implies -fopenmp-simd.

-fopenmp-simd
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบณเบชเบฑเปˆเบ‡ SIMD เบ‚เบญเบ‡ OpenMP เบ”เป‰เบงเบ "#pragma omp" เปƒเบ™ C/C++ เปเบฅเบฐ "!$omp" เปƒเบ™
เบŸเปเบฃเบฑเบ™. เบ„เบณเบชเบฑเปˆเบ‡ OpenMP เบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

-fcilkplus
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฒเบชเบฒ Cilk Plus เบชเปเบฒเบฅเบฑเบš C/C++. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบ
-fcilkplus เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฒเบชเบฒ Cilk Plus
เบชเปเบฒเบฅเบฑเบš C/C++. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก ABI เบฎเบธเปˆเบ™ 1.2. เบ™เบตเป‰เปเบกเปˆเบ™
เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบšเบฒเบ‡เบชเปˆเบงเบ™, เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เปƒเบ™ GCC เบฎเบธเปˆเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฐเป€เบžเบฒเบฐเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ—เบฑเบ‡เบซเบกเบปเบ”
เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปเบ•เปˆ "_Cilk_for" เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.

-fgnu-tm
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fgnu-tm เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, compiler เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš Linux
เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ Transactional Memory ABI เบ‚เบญเบ‡ Intel (เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡
1.1, 6 เบžเบถเบ”เบชเบฐเบžเบฒ 2009). เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบฅเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เบ—เบตเปˆโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปƒเบ™โ€‹
เบฅเบธเป‰เบ™ GCC เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เบชเบฐเป€เบžเบฒเบฐเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™. เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰.

เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡ GCC เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ,

เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเบณเปเบกเปˆเบ™เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ”เป‰เบงเบเบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป‚เบ—
(-fnon-call-exceptions).

-fms-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ
เบเบญเบกเบฎเบฑเบšเบšเบฒเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡ Microsoft.

เปƒเบ™เบฅเบฐเบซเบฑเบ” C ++, เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบŠเบทเปˆเบชเบฐเบกเบฒเบŠเบดเบเปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ
เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

typedef int UOW;
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ ABC {
UOW UOW;
};

เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ—เบปเปˆเบ‡เบ™เบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบŠเบทเปˆเปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ›เบดเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบ•เปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ x86 เป‚เบ”เบเปƒเบŠเป‰ ms-abi.

-fplan9-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ
เบเบญเบกเบฎเบฑเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบœเบ™ 9.

เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ -fms-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบปเปˆเบ‡เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ
เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก, เปเบฅเบฐ
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เป‚เบ”เบโ€‹เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹เบŠเปˆเบญเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบŠเบทเปˆโ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เป‚เบ”เบโ€‹เปƒเบŠเป‰ typedefโ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆ
เบฎเบญเบ‡เบฎเบฑเบš C, เบšเปเปˆเปเบกเปˆเบ™ C ++.

-trigraphs
เบฎเบญเบ‡เบฎเบฑเบš ISO C trigraphs. เป„เบ”เป‰ -ansi เบ—เบฒเบ‡เป€เบฅเบทเบญเบ (เปเบฅเบฐ -std เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบš ISO C เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”
เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡) เปเบฒเบเป€เบ–เบดเบ‡ -trigraphs.

- เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
-cpp
เปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบžเบฐเบเบฒเบเบฒเบกเป€เบฎเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C compiler เบเปˆเบญเบ™.
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -E เบชเบฐเบซเบผเบฑเบš. preprocessor เบชเบทเบšเบ•เปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เป‚เปเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเปˆเบญเบ™. เป€เบšเบดเปˆเบ‡เบ„เบนเปˆเบกเบท GNU CPP เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

-fcond-เบšเปเปˆเบเบปเบ‡เบเบฑเบ™
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบเบปเบ‡โ€‹เบเบฑเบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ–เบฝเบ‡โ€‹เบ—เบตโ€‹เบชเบญเบ‡โ€‹เปเบฅเบฐโ€‹เบ—เบตโ€‹เบชเบฒเบกโ€‹.
เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เป‚เบกเบ„เบฐ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš C++.

-flax-vector-เปเบ›เบ‡
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ implicit เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡ vectors เบกเบตโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เปเบฅเบฐ / เบซเบผเบทโ€‹
เบ›เบฐเป€เบžเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ.

-funsigned-char
เปƒเบซเป‰เบ›เบฐเป€เบžเบ” "char" เบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™, เป€เบŠเบฑเปˆเบ™ "unsigned char".

เปเบ•เปˆเบฅเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบกเบตเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆ "char" เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™. เบกเบฑเบ™เบ„เบทเบเบฑเบ™
"unsigned char" เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบซเบผเบทเบ„เป‰เบฒเบเบ„เบท "signed char" เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เป‚เบ”เบเบซเบฅเบฑเบเบเบฒเบ™เปเบฅเป‰เบง, เป‚เบ›เบฃเปเบเบฃเบกเป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเบ„เบงเบ™เปƒเบŠเป‰ "signed char" เบซเบผเบท "unsigned char" เป€เบกเบทเปˆเบญเบกเบฑเบ™
เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เป€เบŠเบฑเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ. เปเบ•เปˆเป‚เบ„เบ‡เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰
เบ—เปเบฒเบกเบฐเบ”เบฒ "char" เปเบฅเบฐเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ™เบฒเบก, เบซเบผเบทเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐ unsigned, เบ‚เบถเป‰เบ™เบเบฑเบš
เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เบชเปเบฒเบฅเบฑเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เปเบฅเบฐเบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™, เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เป€เบŠเบฑเปˆเบ™เบ™เบฑเป‰เบ™
เป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก.

เบ›เบฐเป€เบžเบ” "char" เปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบตเป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเปเบ•เปˆเบฅเบฐ "char signed char" เบซเบผเบท "unsigned
char ", เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบกเบฑเบ™เบชเบฐเป€เบซเบกเบตเบ„เบทเบเบฑเบ™เบเบฑเบšเบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบญเบ‡เบ™เบฑเป‰เบ™.

-fsigned-char
เปƒเบซเป‰เบ›เบฐเป€เบžเบ” "char" เบ–เบทเบเป€เบŠเบฑเบ™, เป€เบŠเบฑเปˆเบ™ "เป€เบŠเบฑเบ™ char".

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบเบฑเบš -fno-unsigned-char, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบฅเบปเบšเบ‚เบญเบ‡
-funsigned-char. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fno-signed-char เป€เบ—เบปเปˆเบฒเบเบฑเบš
-funsigned-char.

-fsigned-bitfields
-funsigned-bitfields
-fno-signed-bitfields
-fno-unsigned-bitfields
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบšเปเปˆโ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™ bit-field เบ–เบทเบโ€‹เป€เบŠเบฑเบ™โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบŠเบฑเบ™โ€‹, เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹
เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ "เป€เบŠเบฑเบ™" เบซเบผเบท "เบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™". เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเป€เบŠเบฑเบ™,
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡: เบ›เบฐเป€เบžเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบŠเบฑเปˆเบ™ "int" เปเบกเปˆเบ™เบ›เบฐเป€เบžเบ”เป€เบŠเบฑเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก C ++ เบžเบฒเบชเบฒ
เบžเบฒเบเบ™เบตเป‰เบญเบฐเบ—เบดเบšเบฒเบเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก GNU เบชเปˆเบงเบ™เปƒเบซเบเปˆเป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบžเบฒเบชเบฒเปƒเบ”เบเปเปˆเบ•เบฒเบกเบ‚เบญเบ‡เป‚เบ›เบผเปเบเบผเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™
เบขเบนเปˆเปƒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒ firstClass.C เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

g++ -g -frepo -O -c firstClass.C

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆ -frepo เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ C ++; เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบ—เบตเปˆเบกเบตเบžเบฒเบชเบฒเปƒเบ”เบเปเป„เบ”เป‰เบ—เบตเปˆ GCC เบฎเบญเบ‡เบฎเบฑเบš.

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™ เบžเบฝเบ‡เปเบ•เปˆ เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™ C++โ€‹:

-fabi-version=n
เปƒเบŠเป‰เบชเบฐเบšเบฑเบš n เบ‚เบญเบ‡ C++ ABI. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบฅเบธเป‰เบ™ 0.

เป€เบงเบตเบŠเบฑเปˆเบ™ 0 เบซเบกเบฒเบเป€เบ–เบดเบ‡เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบฐเป€เบžเบฒเบฐ C++ ABI.
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, ABI เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเปƒเบŠเป‰เป€เบงเบตเบŠเบฑเบ™ 0 เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบธเป‰เบ™เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡ G++
เบเป‰เบญเบ™เบงเปˆเบฒเปเบกเบ‡เป„เบกเป‰ ABI เบ–เบทเบเปเบเป‰เป„เบ‚.

เป€เบงเบตเบŠเบฑเปˆเบ™ 1 เปเบกเปˆเบ™เบฅเบธเป‰เบ™เบ‚เบญเบ‡ C++ ABI เบ—เบตเปˆเบ›เบฐเบเบปเบ”เบ•เบปเบงเบ—เบณเบญเบดเบ”เปƒเบ™ G++ 3.2.

เป€เบงเบตเบŠเบฑเปˆเบ™ 2 เปเบกเปˆเบ™เบฅเบธเป‰เบ™เบ‚เบญเบ‡ C++ ABI เบ—เบตเปˆเบ›เบฐเบเบปเบ”เบ•เบปเบงเบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”เปƒเบ™ G++ 3.4, เปเบฅเบฐเปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบœเปˆเบฒเบ™ G++ 4.9.

เป€เบงเบตเบŠเบฑเบ™ 3 เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบขเบนเปˆเบ„เบปเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบกเปˆเปเบšเบš.

เป€เบงเบตเบŠเบฑเปˆเบ™ 4, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบปเบ”เปƒเบ™ G++ 4.5 เบ—เบณเบญเบดเบ”, เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบณเบฅเบฑเบš vector
เบ›เบฐเป€เบžเบ”

เป€เบงเบตเบŠเบฑเปˆเบ™ 5, เป€เบŠเบดเปˆเบ‡เบ›เบฒเบเบปเบ”เปƒเบ™ G++ 4.6 เบ—เบณเบญเบดเบ”, เปเบเป‰เป„เบ‚เบเบฒเบ™เบซเบผเบญเบเบฅเบงเบ‡เบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”
const/volatile เปƒเบ™เบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™, decltype เบ‚เบญเบ‡ decl เบ—เปเบฒเบกเบฐเบ”เบฒ, เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ a
เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบญเบทเปˆเบ™.

เป€เบงเบตเบŠเบฑเปˆเบ™ 6, เป€เบŠเบดเปˆเบ‡เบ›เบฒเบเบปเบ”เปƒเบ™ G++ 4.7 เบ—เบณเบญเบดเบ”, เปเบเป‰เป„เบ‚เบžเบถเบ”เบ•เบดเบเบณเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบกเบ‚เบญเบ‡ C++11
enums เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบ‚เบญเบ‡โ€‹เบŠเบญเบ‡ argument เปเบกเปˆโ€‹เปเบšเบšโ€‹, const/static_castโ€‹, เบ„เปเบฒโ€‹เบ™เปเบฒโ€‹เบซเบ™เป‰เบฒ ++
เปเบฅเบฐ --, เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบšเป€เบ‚เบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบญเบฒเบเบดเบงเป€เบกเบฑเบ™เปเบกเปˆเปเบšเบš.

เป€เบงเบตเบŠเบฑเปˆเบ™ 7, เป€เบŠเบดเปˆเบ‡เบ›เบฒเบเบปเบ”เปƒเบ™ G++ 4.8 เบ—เบณเบญเบดเบ”, เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆ nullptr_t เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ” buildin.
เปเบฅเบฐเปเบเป‰เป„เบ‚เบเบฒเบ™เบซเบผเบญเบเบฅเบงเบ‡เบ‚เบญเบ‡ lambdas เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เป€เบงเบตเบŠเบฑเบ™ 8, เป€เบŠเบดเปˆเบ‡เบ›เบฒเบเบปเบ”เปƒเบ™ G++ 4.9 เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”, เปเบเป‰เป„เบ‚เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ‚เบญเบ‡
เบ›เบฐเป€เบžเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบต function-cv-qualifiers.

เป€เบšเบดเปˆเบ‡ - เบงเบฒเบšเบต.

-fabi-compat-version=n
เบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡, G++ เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ mangling เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡
alias เบ—เบตเปˆเบกเบตเบŠเบทเปˆ mangled เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เบŠเบทเปˆโ€‹เบชเบฒโ€‹เบเบปเบ™โ€‹. เบชเบฐเบซเบผเบฑเบšเบ™เบตเป‰เบฅเบฐเบšเบธเบงเปˆเบฒ ABI เบฅเบธเป‰เบ™เปƒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบชเบณเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡.

เบเบฑเบš -fabi-version=0 (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™), เบ™เบตเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ 2. เบ–เป‰เบฒเบฅเบธเป‰เบ™ ABI เบญเบทเปˆเบ™เปเบกเปˆเบ™
เป€เบฅเบทเบญเบเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡, เบ™เบตเป‰เบเบณเบ™เบปเบ”เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ 0.

เบชเบฐเบšเบฑเบšเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ -Wabi=n.

-fno-access-control
เบ›เบดเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบฑเบ‡เปเบปเบ”. เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบกเบฒเบ™เปเบกเบ‡เป„เบกเป‰เปƒเบ™
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹.

-fcheck-เปƒเปเปˆ
เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ”เบ "operator new" เบšเปเปˆเปเบกเปˆเบ™ null เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบก
เปเบเป‰เป„เบ‚เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰. เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ™เบตเป‰เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒ C ++
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ "เบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปƒเบซเบกเปˆ" เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบšเบ„เบทเบ™ 0 เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ” "เบ–เบดเป‰เบก()", เปƒเบ™
เบเปเบฅเบฐเบ™เบตเปƒเบ”เบ—เบตเปˆเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เปƒเบ™
เบเปเบฅเบฐเบ™เบตเบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ”, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ "operator เปƒเบซเบกเปˆ" เบกเบตเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบšเปเปˆเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ, เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ
เบ„เบงเบฒเบกเบญเบดเบ”เป€เบกเบทเปˆเบญเบเปเบกเปˆเบ™เบชเบฑเบ™เบเบฒเบ™เป‚เบ”เบเบเบฒเบ™เบ–เบดเป‰เบก "std::bad_alloc". เป€เบšเบดเปˆเบ‡เบ™เบณ เปƒเบซเบกเปˆ (เป‚เบ™เบ™เป‚เบ—เบฃ).

-fconstexpr-depth=n
เบเบณเบ™เบปเบ”เบ„เบงเบฒเบกเป€เบฅเบดเบเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™เบชเบนเบ‡เบชเบธเบ”เบชเบณเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ C++11 constexpr เป€เบ›เบฑเบ™ n. เบ‚เบตเบ”เบˆเบณเบเบฑเบ”
เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบเบงเบ”เบžเบปเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™เบ„เบทเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ—เบตเปˆเบชเบดเป‰เบ™เบชเบธเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบœเบปเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. เป„เบ”เป‰
เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ 512.

-fdeduce-init-list
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบซเบฑเบเบ„เปˆเบฒเบžเบฒเบฃเบฒเบกเบตเป€เบ•เบตเบ›เบฐเป€เบžเบ”เปเบกเปˆเปเบšเบšเป€เบ›เบฑเบ™ "std::initializer_list" เบˆเบฒเบเบงเบปเบ‡เป€เบฅเบฑเบš-
enclosed เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, ie

เปเบกเปˆเปเบšเบš auto forward(T t) -> decltype (realfn (t))
{
เบเบฑเบšเบ„เบทเบ™ realfn (t);
}

void f()
{
forward({1,2}); // เป‚เบ—โ€‹เป„เบ›โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹ >
}

เบเบฒเบ™เบซเบฑเบเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เบชเบฐเป€เบซเบ™เบตเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™
semantics เบชเปเบฒเบฅเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++11, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบธเบ”เบ—เป‰เบฒเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เปเบกเปˆเบ™
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบฅเบถเบšเบญเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”
เบฅเบธเป‰เบ™ G++.

-ffriend-เบชเบฑเบเบขเบฒ
เบชเบฑเบเบขเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เปเบนเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบŠเปˆเบญเบ‡เบŠเบทเปˆเบ—เบตเปˆเบ›เบดเบ”เบฅเป‰เบญเบก, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบžเบงเบเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบžเบฒเบเบ™เบญเบ
เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบžเบทเปˆเบญเบ™เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰
เป€เบฎเบฑเบ”เบงเบฝเบเบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰เปƒเบ™ Annotated C++ Reference Manual. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™ ISO C++ a
เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบทเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบ›เบดเบ”เบฅเป‰เบญเบกเบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบเบฒเบ™เบŠเบญเบเบซเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ‚เบถเป‰เบ™เบเบฑเบš. GCC เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ G++ เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-fno-elide-constructors
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบŠเบปเปˆเบงเบ„เบฒเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบงเบฑเบ”เบ–เบธเบญเบทเปˆเบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™. เบเบฒเบ™เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบฑเป‰เบ™, เปเบฅเบฐเบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰ G ++ เป‚เบ—เบซเบฒเบ•เบปเบงเบชเป‰เบฒเบ‡เบชเปเบฒเป€เบ™เบปเบฒเปƒเบ™เบ—เบธเบเบเปเบฅเบฐเบ™เบต.

-fno-enforce-eh-specs
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบฅเบฐเป€เบกเบตเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”เปƒเบ™
เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ” "NDEBUG". เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰
เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เป€เบกเบตเบ”โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹; เป„เบ”เป‰
compiler เบเบฑเบ‡เบ„เบปเบ‡ optimize เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ–เบดเป‰เบกเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”
เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™.

-fextern-tls-init
-fno-extern-tls-init
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ 11 เปเบฅเบฐ OpenMP เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบปเบงเปเบ› "thread_local" เปเบฅเบฐ "threadprivate" เป€เบžเบทเปˆเบญ
เบกเบตเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง (runtime). เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบตเป‰, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบœเปˆเบฒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ wrapper เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปเบฅเบฐโ€‹เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบกโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปเบกเปˆเบ™โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบซเบ™เปˆเบงเบโ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹, overhead เบ™เบตเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹
เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ optimized เบ—เบฑเบ™เบ—เบต, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบกเบต
เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ overhead เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ•เบปเบงเปเบ›เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบชเบฒเบกเบฒเบ”เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›เปƒเบ™ non-
เบเบฒเบ™เบเปเบฒเบ™เบปเบ” TU เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฐเบ•เบธเป‰เบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง (เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เปเบกเปˆเบ™
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฒเบ‡เบชเบฐเบ–เบดเบ•เบด, เบซเบผเบทเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ” TU เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”
เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™ TU เบญเบทเปˆเบ™), เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบซเบผเบตเบเบฅเป‰เบฝเบ‡เบเบฒเบ™ overhead เบ™เบตเป‰เบเบฑเบš
-fno-extern-tls-init เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ™เบฒเบกเปเบเบ‡, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fextern-tls-init. เป€เบ›เบปเป‰เบฒเปเบฒเบ
เบ—เบตเปˆเบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ™เบฒเบกเปเบเบ‡, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-extern-tls-init.

-ffor-scope
-fno-for-scope
If -ffor-scope เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบ™ a for-init-statement
เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆ "เบชเปเบฒเบฅเบฑเบš" loop เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เบ•เบฒเบกเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++. เบ–เป‰เบฒ
-fno-for-scope เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบ™ a for-init-statement
เบ‚เบฐเบซเบเบฒเบเป„เบ›เป€เบ–เบดเบ‡เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบ›เบดเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ G++ เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒ, เปเบฅเบฐ
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบทเปˆเบ™เป† (เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก) เบ‚เบญเบ‡ C++.

เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบ—เบธเบ‡เบ—เบฑเบ‡เบชเบญเบ‡, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปเบฅเบฐเปƒเบซเป‰
เบ„เปเบฒเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปเบšเบšเป€เบเบปเปˆเบฒเบ—เบตเปˆเบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบซเบผเบทเบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบžเบถเบ”เบ•เบด เบเบณ.

-fno-gnu-keywords
เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบฎเบนเป‰ "typeof" เป€เบ›เบฑเบ™เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™
เบ•เบปเบงเบฅเบฐเบšเบธ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "__typeof__" เปเบ—เบ™. -ansi implies
-fno-gnu-keywords.

-fno-implicit-templates
เบšเปเปˆเป€เบ„เบตเบเบ›เปˆเบญเบเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเปเบกเปˆเปเบšเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เปเบ–เบงเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบญเบญเบเบ—เบฑเบ™เบ—เบตเป‚เบ”เบ implicitly (เป€เบŠเบฑเปˆเบ™: เป‚เบ”เบ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰); เบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบญเบเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš instantiations เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™.

-fno-implicit-inline-templates
เบขเปˆเบฒเบ›เปˆเบญเบเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบฑเบ™เบ—เบตเป‚เบ”เบเบซเบเปเป‰เบ‚เบญเบ‡เปเบกเปˆเปเบšเบšเปƒเบ™เปเบ–เบง, เบ„เบทเบเบฑเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบš inlines เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบŠเบธเบ”เบ”เบฝเบงเบเบฑเบ™เบ‚เบญเบ‡ instantiations เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™.

-fno-implement-inlines
เป€เบžเบทเปˆเบญเบ›เบฐเบขเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆ, เบขเปˆเบฒเบ›เปˆเบญเบเบชเบณเป€เบ™เบปเบฒเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เปเบ–เบงเบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบ
"#pragma เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”". เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เป‰เบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
inlined เบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบญเบตเป‰เบ™เบงเปˆเบฒ.

-fms-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ
เบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™ Wpedantic เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ MFC, เป€เบŠเบฑเปˆเบ™ implicit int เปเบฅเบฐ
เป„เบ”เป‰เบฎเบฑเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบกเบฒเบŠเบดเบเป‚เบ”เบเบœเปˆเบฒเบ™ syntax เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

-fno-nonansi-builtins
เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เปƒเบ™โ€‹เบ•เบปเบงโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบกเบญเบšโ€‹เบซเบกเบฒเบโ€‹เป‚เบ”เบ ANSI/ISO C. เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰
เบ›เบฐเบเบญเบšเบกเบต "ffs", "alloca", "_exit", "index", "bzero", "conjf", เปเบฅเบฐเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒ.

-fnotrow-opt
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ "เบ–เบดเป‰เบก()" เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™ "เบšเปเปˆเบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™" เบชเบฐเป€เบžเบฒเบฐ
เบซเบผเบธเบ” เบซเบผเบทเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ‚เบฐเปœเบฒเบ”เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบขเบนเปˆเป€เบ—เบดเบ‡เบซเบปเบงเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™
เบชเบฐเป€เบžเบฒเบฐ. เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบกเบตเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเป†เบ™เป‰เบญเบเป†
destructors, เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบ™เบ•เบปเบงเบˆเบดเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เป‰เบญเบเบฅเบปเบ‡เป€เบžเบฒเบฐเบงเปˆเบฒ
เบเบฒเบ™เบญเบฐเบ™เบฒเป„เบก EH เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฑเบšเปƒเบซเป‰เป€เปเบฒเบฐเบชเบปเบกเป„เบ”เป‰เบ—เบฑเบ™เบ—เบต. เบœเบปเบ™เบเบฐเบ—เบปเบš semantic เปเบกเปˆเบ™
เบงเปˆเบฒเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบ–เบทเบเบ–เบดเป‰เบกเบญเบญเบเบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบกเบตเบเบฒเบ™เป‚เบ—เบซเบฒ "เบขเบธเบ”" เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ "เบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”".

-fno-operator-names
เบขเปˆเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฑเบšเบ„เปเบฒเบ—เบตเปˆเปƒเบŠเป‰เบŠเบทเปˆเบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™ "เปเบฅเบฐ", "bitand", "bitor", "compl", "not", "เบซเบผเบท"
เปเบฅเบฐ "xor" เป€เบ›เบฑเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบทเบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™.

-fno-optional-diags
เบ›เบดเบ”เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบšเบญเบเบงเปˆเบฒเบ„เบญเบกเบžเบตเบงเป€เบŠเบตเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบญเบญเบ.
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ”เบฝเบงเบ—เบตเปˆเบญเบญเบเป‚เบ”เบ G ++ เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบกเบตเบŠเบทเปˆ
เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบซเบผเบฒเบโ€‹เปƒเบ™โ€‹เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™โ€‹.

-fpermissive
เบ”เบฒเบงเป€เบเบฃเบ”เบเบฒเบ™เบงเบดเบ™เบดเป„เบชเบšเบฒเบ‡เบญเบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™เบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบ•เบทเบญเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™,
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fpermissive เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡.

-fno-pretty-templates
เป€เบกเบทเปˆเบญเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบŠเปˆเบฝเบงเบŠเบฒเบ™เบ‚เบญเบ‡เปเบกเปˆเปเบšเบšเบŸเบฑเบ‡เบŠเบฑเบ™, compiler
เบ›เบปเบเบเบฐเบ•เบดเบžเบดเบกเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เปเบกเปˆเปเบšเบšเบ•เบฒเบกเบ”เป‰เบงเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบกเปˆเปเบšเบš เปเบฅเบฐ
typedefs เบซเบผเบท typenames เปƒเบ™เบฅเบฒเบเป€เบŠเบฑเบ™ (เป€เบŠเบฑเปˆเบ™: "void f(T) [with T = int]" เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ.
เบเปˆเบงเบฒ "void f (int)") เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเปเบกเปˆเปเบšเบšเปƒเบ”เบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบก. เป€เบกเบทเปˆเบญโ€‹เป€เบเบตเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹
เบ‚เปเป‰เบ„เบงเบฒเบกเบซเบกเบฒเบเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบŠเปˆเบฝเบงเบŠเบฒเบ™เบ‚เบญเบ‡เปเบกเปˆเปเบšเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™, compiler เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบ”เป†
เบญเบฒเบเบดเบงเป€เบกเบฑเบ™เปเบกเปˆเปเบšเบšเบ—เบตเปˆเบเบปเบ‡เบเบฑเบšเบญเบฒเบเบดเบงเป€เบกเบฑเบ™เปเบกเปˆเปเบšเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเปเบกเปˆเปเบšเบšเบ™เบฑเป‰เบ™. เบ–เป‰เบฒ
เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‚เปเป‰เบ„เบงเบฒเบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
เบ‡เปˆเบฒเบโ€‹เบ‚เบถเป‰เบ™โ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -fno-pretty-templates เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

-frepo
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบฐเบ•เบธเป‰เบ™เปเบกเปˆเปเบšเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบ‡เบซเบกเบฒเบเป€เบ–เบดเบ‡
-fno-implicit-templates.

-fno-rtti
เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ—เบธเบเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™ virtual เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบ
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบเบฒเบ™เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™ C++ ("dynamic_cast" เปเบฅเบฐ "typeid"). เบ–เป‰เบฒโ€‹เป€เบˆเบปเป‰เบฒ
เบขเปˆเบฒเปƒเบŠเป‰เบžเบฒเบเบชเปˆเบงเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบซเบเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเบšเบฒเบ‡เบขเปˆเบฒเบ‡เป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบ—เบธเบ‡เบ™เบตเป‰.
เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™, เปเบ•เปˆ G++ เบชเป‰เบฒเบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™
เบ•เป‰เบญเบ‡เบเบฒเบ™. เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "dynamic_cast" เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™, เป€เบŠเบฑเปˆเบ™: เป‚เบเบ™เป€เบ›เบฑเบ™ "void *" เบซเบผเบทเป„เบ›เบซเบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™.

-fsized-deallocation
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบปเปˆเบงเป‚เบฅเบเปƒเบ™เบ•เบปเบง

void operator เบฅเบปเบš (void *, std::size_t) noexcept;
void operator delete[] (void *, std::size_t) noexcept;

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เปเบ™เบฐเบ™เปเบฒเปƒเบ™ C++14. เบญเบฑเบ™เบ™เบตเป‰เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบŠเป‰เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เป„เบงเบ‚เบถเป‰เบ™.
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบžเบฒเบเปƒเบ•เป‰ -std=c++14 เปเบฅเบฐเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เบ—เบธเบ‡ - เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เปเบšเปˆเบ‡โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹ เป€เบ•เบทเบญเบ™
เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เปเบฒเบ™เบดเบเบฒเบก.

-fstats
เบ›เปˆเบญเบเบชเบฐเบ–เบดเบ•เบดเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ™เบตเป‰
เป‚เบ”เบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเบฑเบšโ€‹เบ—เบตเบกโ€‹เบ‡เบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒ G++ .

-fstrict-enums
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเปƒเบŠเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” enumerated
เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เปœเบถเปˆเบ‡เปƒเบ™เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ enumeration (เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C++;
เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบ„เปˆเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡ bits เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
เป€เบ›เบฑเบ™โ€‹เบ•เบปเบงโ€‹เปเบ—เบ™โ€‹เบ‚เบญเบ‡โ€‹เบœเบนเป‰โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹)โ€‹. เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเป‚เบ„เบ‡เบเบฒเบ™เปƒเบŠเป‰
เบ„เบฒเบชเบ—เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบ„เปˆเบฒเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบเบณเบ™เบปเบ”เป€เบญเบ‡เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบ™เบฑเบšเบˆเบณเบ™เบงเบ™.

-ftemplate-backtrace-limit=n
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบเบฐเบ•เบธเป‰เบ™เปเบกเปˆเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ”เบฝเบงเบซเบผเบทเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”
to n. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

-ftemplate-depth=n
เบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเป€เบฅเบดเบ instantiation เบชเบนเบ‡เบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เปเบกเปˆเปเบšเบš n. เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบš
เบ„เบงเบฒเบกเป€เบฅเบดเบ instantiation เบ‚เบญเบ‡เปเบกเปˆเปเบšเบšเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบเบงเบ”เบžเบปเบš recursions เบ—เบตเปˆเบšเปเปˆเบกเบตเบ—เบตเปˆเบชเบดเป‰เบ™เบชเบธเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เปเบกเปˆเปเบšเบš
เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบŠเบฑเป‰เบ™. เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš ANSI/ISO C++ เบˆเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเบญเบตเบ‡เปƒเบชเปˆเบชเบนเบ‡เบชเบธเบ”
เบ„เบงเบฒเบกเป€เบฅเบดเบเบซเบผเบฒเบเบเบงเปˆเบฒ 17 (เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ 1024 เปƒเบ™ C++11). เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 900, เป€เบ›เบฑเบ™
compiler เบชเบฒเบกเบฒเบ”เบซเบกเบปเบ”เบžเบทเป‰เบ™เบ—เบตเปˆ stack เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ•เบต 1024 เปƒเบ™เบšเบฒเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™.

-fno-threadsafe-statics
เบขเปˆเบฒเบ›เปˆเบญเบเบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ C++ ABI เบชเปเบฒเบฅเบฑเบš thread-
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบชเบฐเบ–เบดเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”
เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบญเบ”เป„เบž thread.

-fuse-cxa-atexit
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ destructors เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเป„เบฅเบเบฐเป€เบงเบฅเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ”เป‰เบงเบ "__cxa_atexit"
เป€เบฎเบฑเบ”เบงเบฝเบเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ "atexit". เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™
เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ•เบฒเบกโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบฅเบฒเบโ€‹เบชเบฐโ€‹เบ–เบดเบ”โ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ” C เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹
เบฎเบญเบ‡เบฎเบฑเบš "__cxa_atexit".

-fno-use-cxa-get-exception-ptr
เบขเปˆเบฒเปƒเบŠเป‰ "__cxa_get_exception_ptr" เบ›เบฐเบˆเบณเป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบชเบฒเป€เบซเบ”เบ™เบตเป‰
"std::uncaught_exception" เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบ•เปˆเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ–เป‰เบฒ runtime routine เปเบกเปˆเบ™.
เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบŠเป‰โ€‹เป„เบ”เป‰.

-fvisibility-inlines-hidden
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ›เบฐเบเบฒเบ”เบงเปˆเบฒเบœเบนเป‰เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบ›เบฝเบšเบ—เบฝเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเปƒเบ™เปเบ–เบง
เบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบชเบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™.

เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒ GCC เบญเบฒเบ”เบˆเบฐ, เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™, เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เปƒเบ™เปเบ–เบง
"__attribute__ ((เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ ("เป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰")))" เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบžเบงเบเบกเบฑเบ™เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบญเบญเบ.
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡ DSO เปเบฅเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ PLT indirection เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบžเบฒเบเปƒเบ™ DSO.
เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ•เปเปˆเป€เบงเบฅเบฒเป‚เบซเบผเบ”เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡ DSO เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™
เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบปเปˆเบ‡เบญเบญเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบ™เบฑเบ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบกเปˆเปเบšเบš.

เบžเบถเบ”เบ•เบดเบเบณเบ‚เบญเบ‡เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบšเปเปˆเบ„เบทเบเบฑเบšเบเบฒเบ™เปเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰
เป‚เบ”เบเบเบปเบ‡, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ•เบปเบงเปเบ› static เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ•เปเปˆเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบทเบชเบฒเป€เบซเบ”
compiler เป€เบžเบทเปˆเบญ deduce เบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™.

เบ—เปˆเบฒเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบซเบกเบฒเบโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เป€เบเบ”โ€‹เป€เบซเบฑเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ‚เบญเบ‡โ€‹
เบชเบฐเบซเบผเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ™เบฑเป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒ a
เบงเบดเบ—เบตเบเบฒเบ™เปƒเบ™เปเบ–เบงเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบซเบกเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบกเบตเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™. เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ
เบเบฒเบ™เบ›เบดเบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ”เป‰เบงเบเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบซเบเบฑเบ‡เป€เบฅเบตเบ.

เบงเบดเบ—เบตเบเบฒเบ™ inline เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ
เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐเบ‚เป‰เบฒเบกเบ‚เบญเบšเป€เบ‚เบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™.

-fvisibility-ms-compat
เบ—เบธเบ‡เบ™เบตเป‰เบžเบฐเบเบฒเบเบฒเบกเปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ C++ เบ‚เบญเบ‡ GCC
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš Microsoft Visual Studio.

เบ—เบธเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เปเปˆเบเบฑเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡ GCC:

1. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ "เป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰", เบ„เบท -fvisibility=hidden.

2. เบ›เบฐเป€เบžเบ”, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเบกเบฒเบŠเบดเบเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

3. เบเบปเบ”เบฅเบฐเบšเบฝเบšเบซเบ™เบถเปˆเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเปเบกเปˆเบ™เบœเปˆเบญเบ™เบ„เบฒเบเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™
เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเปœเบถเปˆเบ‡เบญเบฑเบ™: เบเบฒเบ™เบ›เบฐเบเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ–เป‰เบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰.

เปƒเบ™เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ -fvisibility=hidden เปเบฅเบฐเบชเบปเปˆเบ‡เบญเบญเบเบซเป‰เบญเบ‡เบฎเบฝเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบžเบฒเบเบ™เบญเบ. เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเบฐเบญเบตเบ‡เปƒเบชเปˆ,
เบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เบกเบตเป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™, เบเปˆเบฝเบงเบเบฑเบšเบžเบถเบ”เบ•เบดเบเปเบฒ Visual Studio.

เปƒเบ™เบšเบฑเบ™เบ”เบฒเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบชเบฐเบกเบฒเบŠเบดเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™
เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เปเบ•เปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบซเบ™เบถเปˆเบ‡เบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡; เปเบฅเบฐเบ—เบตเปˆเบŠเบตเป‰เป„เบ›เบซเบฒเบชเบฐเบกเบฒเบŠเบดเบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เปƒเบ™
เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบปเบกเบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบ™. เป€เบกเบทเปˆเบญเบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰, เบกเบฑเบ™เปเบกเปˆเบ™ เบ
เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ” ODR เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-fvtable-verify=[std|เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™|none]
เป€เบ›เบตเบ” (เบซเบผเบทเบ›เบดเบ”, เบ–เป‰เบฒเปƒเบŠเป‰ -fvtable-verify=เบšเปเปˆเบกเบต) เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹เบ—เบตเปˆโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ—เบตเปˆโ€‹
เปเบฅเปˆเบ™เป€เบงเบฅเบฒ, เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบเบฒเบ™เป‚เบ— virtual, เบงเปˆเบฒเบ•เบปเบงเบŠเบตเป‰ vtable เบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ—เปเบกเปˆเบ™
เป€เบฎเบฑเบ”เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ, เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบชเบเบซเบฒเบเบซเบผเบทเบ‚เบฝเบ™เบ—เบฑเบš.
เบ–เป‰เบฒเบ•เบปเบงเบŠเบตเป‰ vtable เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เบทเบเบเบงเบ”เบžเบปเบšเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™, เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบ–เบทเบเบฅเบฒเบเบ‡เบฒเบ™เปเบฅเบฐ
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เป‚เบ„เบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹, เป€เบŠเบดเปˆเบ‡โ€‹เปเบกเปˆเบ™โ€‹
เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบŠเบตเป‰ vtable. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ std เปเบฅเบฐ เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ เบ„เบงเบšโ€‹เบ„เบธเบก
เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เบเปเบฅเบฐเบ™เบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™
เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ–เบดเบ‡ "เบ•เบปเป‰เบ™เบ•เป". เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fvtable-verify=std เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเป‚เบซเบฅเบ”เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
-fvtable-verify=preinit เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™
เป‚เบซเบฅเบ”โ€‹เปเบฅเบฐโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹.

เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบฒเบเบปเบ”เบซเบผเบฒเบเบ„เบฑเป‰เบ‡เปƒเบ™เปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบฅเบฐเบšเบธ, none เป€เบญเบปเบฒเบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบชเบนเบ‡เบชเบธเบ”เบ—เบฑเบ‡เบชเบญเบ‡ std เปเบฅเบฐ เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™; เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ เปƒเบŠเป‰เป€เบงเบฅเบฒ
เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบซเบผเบฒเบเบเบงเปˆเบฒ std.

-fvtv-debug
เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบš -fvtable-verify=std or -fvtable-verify=preinit, เบชเบฒเป€เบซเบ”
เบชเบฐเบšเบฑเบš debug เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ runtime เบชเปเบฒเบฅเบฑเบšเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบš vtable เบˆเบฐเป€เบ›เบฑเบ™
เป€เบญเบตเป‰เบ™เบงเปˆเบฒ. เบ—เบธเบ‡เบ™เบตเป‰เบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš vtable เปƒเบ”
เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบ—เบตเปˆเบกเบฑเบ™เบŠเบญเบเบซเบฒเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเป‰เบญเบ‡เบฎเบฝเบ™. เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆ
vtv_set_ptr_data.log เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป‚เบ”เบเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก VTV_LOGS_DIR
เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ™เบตเป‰โ€‹ เป€เบžเบตเปˆเบกเป€เบ•เบตเบก เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบชเบปเบ”, เป€เบ›เบฑเบ™
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบˆเบฐเบฅเบถเบšเบญเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบญเบญเบ.

-fvtv-เบ™เบฑเบš
เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบธเบ‡เบ”เบตเบšเบฑเบ. เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบš -fvtable-verify=std or
-fvtable-verify=preinit, เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบ•เบดเบ”เบ•เบฒเบกเบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡
เบเบฒเบ™เป‚เบ— virtual เบ—เบตเปˆเบกเบฑเบ™เบžเบปเบšเปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบ—เบตเปˆเบกเบฑเบ™เปƒเบชเปˆ. เบกเบฑเบ™เบเบฑเบ‡
เบ™เบฑเบšเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบšเบฒเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบกเบฑเบ™เปƒเบชเปˆ เปเบฅเบฐ
เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบก. compiler เบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰
เบเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆ vtv_count_data.log เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป‚เบ”เบเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก
VTV_LOGS_DIR เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เบกเบฑเบ™เบเบฑเบ‡
เบ™เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบŠเบธเบ”เบ•เบปเบงเบŠเบตเป‰ vtable เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเป‰เบญเบ‡เบฎเบฝเบ™, เปเบฅเบฐเบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰
to vtv_class_set_sizes.log เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ™เบตเป‰โ€‹ เป€เบžเบตเปˆเบกเป€เบ•เบตเบก เบ‚เปเป‰เบกเบนเบ™เป„เบ›เบเบฑเบ‡เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบชเบปเบ”, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ
เบฅเบถเบšเบญเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบญเบญเบ.

-fno-เบญเปˆเบญเบ™เปเบญ
เบขเปˆเบฒเปƒเบŠเป‰เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, G++
เปƒเบŠเป‰เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญเบ–เป‰เบฒเบžเบงเบเบกเบฑเบ™เบกเบตเบขเบนเปˆ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เปเบฅเบฐ
เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบ; เบกเบฑเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ” inferior เปเบฅเบฐเบšเปเปˆเบกเบตเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ G++ เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-nostdinc++
เบขเปˆเบฒเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒ header เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบเบฑเบš C ++, เปเบ•เปˆเป€เบฎเบฑเบ”
เบเบฑเบ‡เบŠเบญเบเบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบญเบทเปˆเบ™เป†. (เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” C++.)

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž, เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™ C++โ€‹:

- เบงเบฒเบšเบต (C, Objective-C, C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเปเบˆเป‰เบ‡ -fabi-version=n เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เป€เบฎเบฑเบ”เปƒเบซเป‰ G ++ เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบกเบฑเบ™เบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš vendor-neutral C++ ABI. เบ•เบฑเป‰เบ‡เปเบ•เปˆ G++ เบ”เบฝเบงเบ™เบตเป‰
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ -fabi-version=0, - เบงเบฒเบšเบต เบšเปเปˆเบกเบตเบœเบปเบ™เปƒเบ”เป†เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒ ABI เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒเปเบกเปˆเบ™
เป€เบฅเบทเบญเบ (เบกเบต -fabi-version=n) เบซเบผเบทเบฅเบธเป‰เบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ—เบตเปˆเป€เบเบปเปˆเบฒเบเบงเปˆเบฒเบ–เบทเบเป€เบฅเบทเบญเบ (เบเบฑเบš
-Wabi=n or -fabi-compat-version=n).

โ€‹เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เป„เบ”เป‰โ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบžเบฐเบเบฒเบเบฒเบกโ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบ•เบทเบญเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเปเบฅเบฐเบ™เบตโ€‹เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงโ€‹เบ—เบฑเบ‡โ€‹เปเบปเบ”, โ€‹เปเบ•เปˆโ€‹เบญเบฒเบ”โ€‹เบกเบตโ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡
เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ•เบทเบญเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ G++ เบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.
เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

เบ—เปˆเบฒเบ™เบ„เบงเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบš
เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ G ++ เบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ„เบนเปˆเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ
compilers เบญเบทเปˆเบ™เป†.

- เบงเบฒเบšเบต เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบเบฑเบšเปเบฒเบเป€เบฅเบเป€เบงเบตเบŠเบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เป€เบžเบทเปˆเบญเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰
เบชเบฐเป€เบžเบฒเบฐ - เบชเบฐโ€‹เบšเบฑเบš Fabiโ€‹ เบฅเบฐเบ”เบฑเบš, เบ•เบปเบงเบขเปˆเบฒเบ‡ -Wabi=2 เป€เบžเบทเปˆเบญเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš
-fabi-version=2. เบเบฒเบ™เบฅเบฐเบšเบธเปเบฒเบเป€เบฅเบเป€เบงเบตเบŠเบฑเบ™เบเบฑเบ‡เบเบณเบ™เบปเบ” -fabi-compat-version=n.

เบ„เบงเบฒเบกเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™ -fabi-version=2 (เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ GCC 3.4 เบซเบฒ
4.9) เบฅเบงเบกเบกเบต:

* เปเบกเปˆเปเบšเบšเบ—เบตเปˆเบกเบตเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปเบกเปˆเปเบšเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เป„เบ”เป‰เบ–เบทเบเบ—เปเบฒเบฅเบฒเบ
เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡:

extern int N;
เปเบกเปˆเปเบšเบš เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ S {};
void n (เบช ) {2}

เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ -fabi-version=3.

* เบ›เบฐเป€เบžเบ” vector เบ‚เบญเบ‡ SIMD เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบŠเป‰ "__attribute ((vector_size))" เป„เบ”เป‰เบ–เบทเบเบ—เปเบฒเบฅเบฒเบเปƒเบ™
เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ overloading เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบดเบ™ vectors
เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

mangling เป„เบ”เป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™ -fabi-version=4.

* "__attribute ((const))" เปเบฅเบฐ "noreturn" เบ–เบทเบเบ—เปเบฒเบฅเบฒเบเป€เบ›เบฑเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”, เปเบฅเบฐ
"decltype" เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เปเบฒเบกเบฐเบ”เบฒเบ–เบทเบเบžเบฑเบšเบญเบญเบเป„เบ›.

เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เปƒเบ™โ€‹ -fabi-version=5.

* เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบเบณเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบ•เปเปˆเบเบฑเบšเปœเป‰เบฒเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบกเบ„เบท
unscoped enumerators, เป€เบฎเบฑเบ”เปƒเบซเป‰ "va_arg" เบˆเบปเปˆเบก. เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰
เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบœเปˆเบฒเบ™ ABI, เบเป‰เบญเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เบ—เบตเปˆเบˆเบฐเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡
เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ "int".

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, ABI เป„เบ”เป‰เบ›เปˆเบฝเบ™เบเบฒเบ™เบšเบตเบšเบšเบฑเบ‡เบ„เบฑเบšเบ‚เบญเบ‡เบŠเบธเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบกเปˆเปเบšเบš, "const_cast",
"static_cast", prefix increment/decrement, เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบšเป€เบ‚เบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™ a
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบกเปˆเปเบšเบš.

เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ -fabi-version=6.

* Lambdas เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเบ—เปเบฒเบฅเบฒเบเบขเปˆเบฒเบ‡เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบฅเบฐ ABI เป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡.
เบเบฒเบ™เบซเบผเบญเบเบฅเบงเบ‡เบ‚เบญเบ‡ "nullptr_t".

เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ -fabi-version=7.

* เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบต function-cvโ€‹-qualifiersโ€‹, เบšเปเปˆโ€‹เบกเบตโ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹
เบ›เบฐเป€เบžเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบ–เบฒเบ™เบฐเบœเบนเป‰เบชเบฐเปเบฑเบเปเบ—เบ™.

เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ -fabi-version=8.

เบกเบฑเบ™เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš psABI. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ psABI เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™เบˆเบธเบ”เบ™เบตเป‰
เบ›เบฐเบเบญเบšเบกเบต:

* เบชเปเบฒเบฅเบฑเบš SysV/x86-64, เบชเบฐเบซเบฐเบžเบฑเบ™เบ—เบตเปˆเบกเบตเบชเบฐเบกเบฒเบŠเบดเบ "เบ„เบนเปˆเบเบฒเบง" เปเบกเปˆเบ™เบœเปˆเบฒเบ™เปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ
เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ psABI. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

เบชเบฐเบซเบฐเบžเบฑเบ™ U {
long double ld;
int i;
};

"เบชเบฐเบซเบฐเบžเบฑเบ™ U" เปเบกเปˆเบ™เบœเปˆเบฒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบชเบฐเป€เบซเบกเบต.

-wabi-tag (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเปเบ—เบฑเบ ABI เบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบšเปเบฅเบดเบšเบปเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเปเบ—เบฑเบ ABI เบ™เบฑเป‰เบ™.
เป€เบšเบดเปˆเบ‡ C ++ เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš tags ABI.

-Wctor-dtor-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ•เบปเบง (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบซเป‰เบญเบ‡เบฎเบฝเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เป€เบžเบฒเบฐเบงเปˆเบฒเบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เบซเบผเบทเบ•เบปเบงเบ—เปเบฒเบฅเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ™เบฑเป‰เบ™
เบŠเบฑเป‰เบ™เบฎเบฝเบ™เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ•เบปเบง, เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเบกเบตเบ—เบฑเบ‡เป€เบžเบทเปˆเบญเบ™เบซเบผเบทเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบกเบฒเบŠเบดเบเบชเบฐเบ–เบดเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ.
เป€เบ•เบทเบญเบ™เบญเบตเบเบงเปˆเบฒเบšเปเปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบ•เบปเบง, เปเบฅเบฐเบกเบตเบชเบฐเบกเบฒเบŠเบดเบเบชเปˆเบงเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เปœเป‰เบญเบเปœเบถเปˆเบ‡เบ„เบปเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ constructor เบซเบผเบท destructor.

-Wdelete-เบšเปเปˆเปเบกเปˆเบ™ virtual-dtor (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญ "เบฅเบถเบš" เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ—เปเบฒเบฅเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบกเบต virtual
เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเบ•เบปเบงเบ—เปเบฒเบฅเบฒเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ virtual. เบกเบฑเบ™เบšเปเปˆเบ›เบญเบ”เป„เบžเบ—เบตเปˆเบˆเบฐเบฅเบถเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบกเบฒเบˆเบฒเบ
class เบœเปˆเบฒเบ™ pointer เบซเบฒ base class เบ–เป‰เบฒ base class เบšเปเปˆเบกเบต virtual
เบœเบนเป‰เบ—เบณเบฅเบฒเบ. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wliteral-suffix (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบชเบฐเบ•เบฃเบดเบ‡ เบซเบผเบทเบ•เบปเบงเปœเบฑเบ‡เบชเบทเบ–เบทเบเบ•เบฒเบกเบ”เป‰เบงเบ ud-suffix เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ‚เบตเบ”เบเป‰เบญเบ‡. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡, GCC เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเบ—เป‰เบฒเบเป€เบŠเบฑเปˆเบ™:
tokens preprocessing เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡เบเบฑเบšเบฅเบฐเบซเบฑเบ”
เบ—เบตเปˆเปƒเบŠเป‰เบฎเบนเบšเปเบšเบš macro เบˆเบฒเบ " ". เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

#define __STDC_FORMAT_MACROS
#เบฅเบงเบกเบ—เบฑเบ‡
#เบฅเบงเบก

int เบ•เบปเป‰เบ™เบ•เป () {
int64_t i64 = 123;
printf("int64 เบ‚เบญเบ‡เบ‚เป‰เบญเบ: %"PRId64"\n", i64);
}

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, "PRId64" เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™ token preprocessing เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡โ€‹ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เปเบ„เบšเบ—เบตเปˆเบซเป‰เบฒเบกเป‚เบ”เบ C++11 เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบžเบฒเบเปƒเบ™ { }, เบ•เบปเบงเบขเปˆเบฒเบ‡

int i = { 2.2 }; // error: เปเบ„เบšเบˆเบฒเบ double เบเบฑเบš int

เบ—เบธเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ - เบเบฒ เปเบฅเบฐ -Wc++11-compat.

เบเบฑเบš -std=c++11, -Wno-เปเบ„เบš เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.
เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ”เบต; เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ—เบตเปˆโ€‹เปเบ„เบšโ€‹เบฅเบปเบ‡โ€‹
เบเบฑเบ‡เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบšเปเปˆเบ”เบตเบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™ SFINAE.

- เบเบปเบเป€เบงเบฑเป‰เบ™ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ noexcept-expression เบ›เบฐเป€เบกเบตเบ™เป€เบ›เบฑเบ™เบœเบดเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™
เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ–เบดเป‰เบก (เป€เบŠเบฑเปˆเบ™ "เบ–เบดเป‰เบก()" เบซเบผเบท
"noexcept") เปเบ•เปˆเป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเป‚เบ”เบ compiler เบงเปˆเบฒเบšเปเปˆเป€เบ„เบตเบเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™.

-Wnon-virtual-dtor (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบซเป‰เบญเบ‡เบฎเบฝเบ™เบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเป€เปเบทเบญเบ™ เปเบฅเบฐเบ•เบปเบงเบ—เบณเบฅเบฒเบเบ—เบตเปˆเบšเปเปˆเบชเบฐเป€เปเบทเบญเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰
เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบซเบผเบทเปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ polymorphic เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบ•เปˆ
เบšเปเปˆเบ›เบญเบ”เป„เบžเบ—เบตเปˆเบˆเบฐเบฅเบถเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเป„เบ”เป‰เบกเบฒเบˆเบฒเบเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ™เบฑเป‰เบ™เป€เบญเบ‡
เบซเบผเบทเบŠเบฑเป‰เบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ–เป‰เบฒ -Weffc++ เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

- เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบชเบฐเบกเบฒเบŠเบดเบเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบšเปเปˆเบเบปเบ‡เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡
เปƒเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹. เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ A {
int i;
int j ;
A(): j (0), i (1) { }
};

compiler เบˆเบฑเบ”เบฅเบฝเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฐเบกเบฒเบŠเบดเบเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบš "i" เปเบฅเบฐ "j" เป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบปเบ‡เบเบฑเบš
เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เบกเบฒโ€‹เบŠเบดเบโ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹, emitting เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ™เบฑเป‰เบ™โ€‹. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-fext-เบ•เบปเบงเป€เบฅเบ-เบ•เบปเบงเปœเบฑเบ‡เบชเบท (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบเบญเบกเบฎเบฑเบšเบ•เบปเบงเปœเบฑเบ‡เบชเบทเบ•เบฒเบกเบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™, เบˆเบธเบ”เบ„เบปเบ‡เบ—เบตเปˆ, เบซเบผเบทเบ•เบปเบงเปœเบฑเบ‡เบชเบทเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบฑเบ™ GNU
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ. เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบœเบนเป‰เปƒเบŠเป‰ C++11-
เบเบณเบ™เบปเบ”เบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบเบ•เบปเบงเป€เบฅเบเบ•เบฒเบกเบ•เบปเบงเปœเบฑเบ‡เบชเบท. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบšเบ—เบธเบเบžเบฒเบชเบฒเบเปˆเบญเบ™ C++11
เปเบฅเบฐเบžเบฒเบชเบฒ GNU เบ—เบฑเบ‡เปเบปเบ”: -std=c++98, -std=gnu++98, -std=gnu++11, -std=gnu++14. เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบ›เบดเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš ISO C++ 11 เป€เบ›เบฑเบ™โ€‹เบ•เบปเป‰เบ™โ€‹เป„เบ› (-std=c++11, ...).

เบ•เปเปˆเป„เบ›เบ™เบตเป‰ -เบง... เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เป‚เบ”เบโ€‹ - เบเบฒ.

-Weffc++ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ‚เปเป‰เปเบ™เบฐเบ™เบณเบฎเบนเบšเปเบšเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบˆเบฒเบ Scott Meyers' เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
C ++ เบŠเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ›เบถเป‰เบกโ€‹:

* เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบ•เบปเบงโ€‹เบชเป‰เบฒเบ‡โ€‹เบชเปเบฒโ€‹เป€เบ™เบปเบฒโ€‹เปเบฅเบฐโ€‹เบ•เบปเบงโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบกเบญเบšโ€‹เบซเบกเบฒเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เป„เบซเบง -
เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบˆเบฑเบ”เบชเบฑเบ™.

* เบกเบฑเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบเบฒเบ™เบกเบญเบšเปเบฒเบเปƒเบ™เบ•เบปเบงเบชเป‰เบฒเบ‡.

* เบกเบต "operator=" เบชเบปเปˆเบ‡เบ„เบทเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡ * เบ™เบตเป‰.

* เบขเปˆเบฒเบžเบฐเบเบฒเบเบฒเบกเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบกเบทเปˆเบญเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบชเบปเปˆเบ‡เบ„เบทเบ™เบงเบฑเบ”เบ–เบธ.

* เบˆเปเบฒโ€‹เปเบ™เบโ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบ„เปเบฒโ€‹เบ™เปเบฒโ€‹เบซเบ™เป‰เบฒโ€‹เปเบฅเบฐโ€‹เบฎเบนเบšโ€‹เปเบšเบš postfix เบ‚เบญเบ‡ increment เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบซเบผเบธเบ”โ€‹เบฅเบปเบ‡โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹.

* เบขเปˆเบฒเป‚เบซเบผเบ” "&&", "||", เบซเบผเบท ",".

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ -Wnon-virtual-dtor, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ C ++ เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบ„เบณเปเบ™เบฐเบ™เบณ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบ‚เบฐเบซเบเบฒเบเบญเบญเบเป„เบ›เป€เบžเบทเปˆเบญเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ‚เบฒเบ” virtual
destructor เปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ polymorphic เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เบ„เบทเบเบฑเบ™.

เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹, เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบงเปˆเบฒโ€‹เบซเบปเบงโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบŠเบทเปˆเบญโ€‹เบŸเบฑเบ‡โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹
เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰; เปƒเบŠเป‰ grep -v เป€เบžเบทเปˆเบญเบเบฑเปˆเบ™เบ•เบญเบ‡เบ„เบณเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบญเบญเบ.

-Wstrict-null-sentinel (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "NULL" เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบšเป„เบฅเปˆเป€เบ›เบฑเบ™ sentinel. เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš GCC
เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบชเบปเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบเป‰เบญเบ™เบงเปˆเบฒ "NULL" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ "__null". เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™ null
เบ•เบปเบงเบŠเบตเป‰เบ„เบปเบ‡เบ—เบตเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰ null, เบกเบฑเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฝเบงเบเบฑเบ™
เป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰. เปเบ•เปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเปƒเบ™เบ—เบปเปˆเบง compilers เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-Wno-เบšเปเปˆเปเบกเปˆเบ™เปเบกเปˆเปเบšเบš-เป€เบžเบทเปˆเบญเบ™ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบกเบทเปˆเบญเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบทเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เปเบกเปˆเปเบšเบšเบ–เบทเบเบ›เบฐเบเบฒเบ”เบžเบฒเบเปƒเบ™เปเบกเปˆเปเบšเบš.
เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบกเบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฐเป€เบžเบฒเบฐเปเบกเปˆเปเบšเบšเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เปƒเบ™ G++, เบ–เป‰เบฒเบŠเบทเปˆเบ‚เบญเบ‡
เปเบนเปˆเปเบกเปˆเบ™ ID เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (เป€เบŠเบฑเปˆเบ™: เบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™ foo(int)), เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบžเบฒเบชเบฒ C++
เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เป€เบžเบทเปˆเบญเบ™เบ›เบฐเบเบฒเบ”เบซเบผเบทเบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เปเบฒเบกเบฐเบ”เบฒ, nontemplate. (เบžเบฒเบ
14.5.3). เบเปˆเบญเบ™เบ—เบตเปˆ G++ เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™, ids เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเบงเปˆเบฒเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบŠเปˆเบฝเบงเบŠเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ templatized. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰
เบžเบถเบ”เบ•เบดเบเบณเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบšเปเปˆเปเบกเปˆเบ™เบžเบถเบ”เบ•เบดเบเบณเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบš G++,
-Wnon-เปเบกเปˆเปเบšเบš-เป€เบžเบทเปˆเบญเบ™ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบเบงเบ”เบชเบญเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
เบˆเบธเบ”เป† เปเบฅเบฐเป€เบ›เบตเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปƒเบซเบกเปˆเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เบ”เป‰เบงเบ
-Wno-เบšเปเปˆเปเบกเปˆเบ™เปเบกเปˆเปเบšเบš-เป€เบžเบทเปˆเบญเบ™, เป€เบŠเบดเปˆเบ‡เบฎเบฑเบเบชเบฒเบฅเบฐเบซเบฑเบ” compiler เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เปเบ•เปˆเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™
เป€เบ•เบทเบญเบ™เป„เบžเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.

-Wold-style-cast (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบฎเบนเบšเปเบšเบšเป€เบเบปเปˆเบฒ (C-style) cast เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ void เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ C++.
เบเบฒเบ™เบ„เบฒเบชเบ—เปŒเปเบšเบšเปƒเปเปˆ ("dynamic_cast", "static_cast", "reinterpret_cast", เปเบฅเบฐ
"const_cast") เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เปœเป‰เบญเบเบ•เปเปˆเบเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡เปƒเบˆ เปเบฅเบฐเบŠเบญเบเบซเบฒเป„เบ”เป‰เบ‡เปˆเบฒเบเบเบงเปˆเบฒ.

-Woverloaded-virtual (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบŠเบทเปˆเบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเป€เปเบทเบญเบ™เบˆเบฒเบเบŠเบฑเป‰เบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™:

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ A {
virtual void f();
};

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ B: เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ A {
void f(int);
};

เบฎเบธเปˆเบ™ "A" เบ‚เบญเบ‡ "f" เบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เปƒเบ™ "B", เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เป€เบŠเบฑเปˆเบ™:

เบ‚* เบ‚;
b->f();

เบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

-Wno-pmf-เปเบ›เบ‡ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบงเบดเบ™เบดเป„เบชเบชเบณเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเบœเบนเบเบกเบฑเบ”เป€เบ›เบฑเบ™เปœเป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบชเบฐเบกเบฒเบŠเบดเบเปƒเบซเป‰เป€เบ›เบฑเบ™เปเบšเบšเบ—เบณเบกเบฐเบ”เบฒ
เบ•เบปเบงเบŠเบตเป‰.

-Wsign-promo (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เปเบเป‰เป„เบ‚ overload เป€เบฅเบทเบญเบเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบกเบเบฒเบ™เบˆเบฒเบเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™เบซเบผเบท enumerated เบเบฑเบš
เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเบฅเบฒเบเป€เบŠเบฑเบ™, เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฝเบงเบเบฑเบ™. เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ
เบฅเบธเป‰เบ™ G ++ เบžเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบšเปเปˆเบฅเบปเบ‡เบ™เบฒเบก, เปเบ•เปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™
เบžเบถเบ”เบ•เบด เบเบณ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก Objective-C เปเบฅเบฐ เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡-C++ เบžเบฒเบชเบฒเบžเบฒเบชเบฒ
(เปเบฒเบเป€เบซเบ”: เบ„เบนเปˆเบกเบทเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบžเบฒเบชเบฒ Objective-C เปเบฅเบฐ Objective-C++
เบ•เบปเบงเป€เบญเบ‡

เบžเบฒเบเบ™เบตเป‰เบญเบฐเบ—เบดเบšเบฒเบเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบš Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™ Objective-C++. เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ GNU เบ—เบตเปˆเบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบžเบฒเบชเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒ some_class.m เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

gcc -g -fgnu-runtime -O -c some_class.m

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰, -fgnu-runtime เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš Objective-C เปเบฅเบฐ Objective-C ++
เป‚เบ„เบ‡เบเบฒเบ™; เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบเบฑเบšเบžเบฒเบชเบฒเปƒเบ”เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ GCC.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ Objective-C เป€เบ›เบฑเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบญเบ‡เบžเบฒเบชเบฒ C, Objective-C compilations
เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบš C front-end (เป€เบŠเบฑเปˆเบ™: - เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก). เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™,
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก Objective-C++ เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐ C++ (เป€เบŠเบฑเปˆเบ™: - เบงเบฒเบšเบต).

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™ เบžเบฝเบ‡เปเบ•เปˆ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก Objective-C เปเบฅเบฐ Objective-C++
เป‚เบ„เบ‡เบเบฒเบ™:

-fconstant-string-class=เบŠเบทเปˆโ€‹เบซเป‰เบญเบ‡โ€‹
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบŠเบทเปˆโ€‹เบซเป‰เบญเบ‡โ€‹ เป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เป€เบžเบทเปˆเบญ instantiate เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบชเบฒเบเบญเบฑเบเบชเบญเบ™
เบฅเบฐเบšเบธเบ”เป‰เบงเบ syntax "@"..."". เบŠเบทเปˆเบซเป‰เบญเบ‡เบฎเบฝเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ "NXConstantString" เบ–เป‰เบฒ
เป€เบงเบฅเบฒเปเบฅเปˆเบ™ GNU เบ–เบทเบเปƒเบŠเป‰, เปเบฅเบฐ "NSConstantString" เบ–เป‰เบฒเป€เบงเบฅเบฒเปเบฅเปˆเบ™ NeXT เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบ
เปƒเบŠเป‰ (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰). เป„เบ”เป‰ -fconstant-cfstrings เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ, เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™, overrides เป„เบ”เป‰
-fconstant-string-class เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ” "@"..."" เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เป€เบ›เบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆ
CoreFoundation strings.

-fgnu-runtime
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™ GNU Objective-C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆ.

-fnext-runtime
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™ NeXT. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš NeXT-based
เบฅเบฐเบšเบปเบš, เบฅเบงเบกเบ—เบฑเบ‡ Darwin เปเบฅเบฐ Mac OS X. เบกเบฐเบซเบฒเบžเบฒเบ "__NEXT_RUNTIME__" เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒเบ–เป‰เบฒ
(เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ) เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-fno-nil-receivers
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ‚เปเป‰เบ„เบงเบฒเบก Objective-C เบ—เบฑเบ‡เปเบปเบ”เบชเบปเปˆเบ‡เป„เบ› ("[เบ‚เปเป‰เบ„เบงเบฒเบกเบœเบนเป‰เบฎเบฑเบš: arg]") เปƒเบ™เบ™เบตเป‰
เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบœเบนเป‰เบฎเบฑเบšเบšเปเปˆเปเบกเปˆเบ™ "nil". เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™ runtime เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™
เบชเบปเบกเบ—เบปเบšเบเบฑเบš NeXT runtime เปเบฅเบฐ ABI เบฎเบธเปˆเบ™ 0 เบซเบผเบท 1.

-fobjc-abi-version=n
เปƒเบŠเป‰เบชเบฐเบšเบฑเบš n เบ‚เบญเบ‡ Objective-C ABI เบชเปเบฒเบฅเบฑเบš runtime เบ—เบตเปˆเป€เบฅเบทเบญเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™ NeXT. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบชเบฐเบšเบฑเบš 0 เปเบกเปˆเบ™
ABI เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก (32-เบšเบดเบ”) เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” เปเบฅเบฐเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡-C 2.0 เบญเบทเปˆเบ™เป†
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบฎเบธเปˆเบ™ 1 เปเบกเปˆเบ™ ABI เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก (32-เบšเบดเบ”) เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปเบฅเบฐ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก Objective-C 2.0 เบญเบทเปˆเบ™เป†. เบฎเบธเปˆเบ™ 2 เปเบกเปˆเบ™ ABI เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก (64-bit). เบ–เป‰เบฒเบšเปเปˆเบกเบตเบซเบเบฑเบ‡
เบฅเบฐเบšเบธเป„เบงเป‰, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบงเบตเบŠเบฑเบ™ 0 เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบ 32-เบšเบดเบ”, เปเบฅเบฐเป€เบงเบตเบŠเบฑเบ™ 2 เปƒเบ™ 64-เบšเบดเบ”.
เป€เบ„เบทเปˆเบญเบ‡โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹.

-fobjc-call-cxx-cdtors
เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเป‰เบญเบ‡เบฎเบฝเบ™ Objective-C, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ•เบปเบงเปเบ›เบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ”เบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™ C++ object
เบเบฑเบš constructor เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ trivial. เบ–เป‰เบฒเป€เบ›เบฑเบ™เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบฑเบ‡เป€เบ„เบฒเบฐเบžเบดเป€เบชเบ” "- (id)
.cxx_construct" instance method เบ—เบตเปˆเป€เบญเบตเป‰เบ™เปƒเบŠเป‰เบ•เบปเบงเบชเป‰เบฒเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบซเบเปเป‰เป†
เบ•เบปเบงเปเบ›เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™ "เบ•เบปเบ™เป€เบญเบ‡". เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบต
เบ•เบปเบงเปเบ› instance เปเบกเปˆเบ™เบงเบฑเบ”เบ–เบธ C ++ เบ—เบตเปˆเบกเบตเบ•เบปเบงเบ—เปเบฒเบฅเบฒเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเป†เบ™เป‰เบญเบเป†, เปเบฅเบฐเบ–เป‰เบฒเป€เบ›เบฑเบ™เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบฑเบ‡เป€เบ„เบฒเบฐ.
เบžเบดเป€เบชเบ” "- (void).cxx_destruct" เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ destructors เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ—เบฑเบ‡เบซเบกเบปเบ”, เปƒเบ™
เบ„เปเบฒเบชเบฑเปˆเบ‡เบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™.

เบงเบดเบ—เบตเบเบฒเบ™ "- (id).cxx_construct" เปเบฅเบฐ "- (void).cxx_destruct" เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบชเป‰เบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆ
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเปเบ› instance เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™ Objective-C เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเบทเบšเบ—เบญเบ”เบกเบฒเบˆเบฒเบ superclasses. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบญเบ‡เป€เบงเบฅเบฒเปเบฅเปˆเบ™ Objective-C เป€เบžเบทเปˆเบญ
เบฎเบฝเบเบฎเป‰เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบฅเบณเบ”เบฑเบšเบเบฒเบ™เบชเบทเบšเบ—เบญเบ”เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ. The "- (id)
เบงเบดเบ—เบตเบเบฒเบ™ .cxx_construct" เบ–เบทเบเป€เบญเบตเป‰เบ™เป‚เบ”เบ runtime เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบงเบฑเบ”เบ–เบธเปƒเบซเบกเปˆ
เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบˆเบฑเบ”เบชเบฑเบ™; เบงเบดเบ—เบตเบเบฒเบ™ "- (void).cxx_destruct" เบ–เบทเบเป€เบญเบตเป‰เบ™เปƒเบ™เบ—เบฑเบ™เบ—เบต
เบเปˆเบญเบ™เบ—เบตเปˆ runtime เบˆเบฐ deallocate a object instance.

เปƒเบ™โ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฒเบโ€‹เบฅเบฑเบโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹เบ™เบตเป‰โ€‹, เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เปเบฅเปˆเบ™ NeXT เปƒเบ™ Mac OS X 10.4 เปเบฅเบฐโ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เป€เบญเบตเป‰เบ™เบงเบดเบ—เบตเบเบฒเบ™ "- (id).cxx_construct" เปเบฅเบฐ "- (void).cxx_destruct".

-fobjc-เบชเบปเปˆเบ‡เป‚เบ”เบเบเบปเบ‡
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฐเป‚เบ”เบ”เป„เบงเป„เบ›เบซเบฒเบ•เบปเบงเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก. เบเปˆเบฝเบงเบเบฑเบš Darwin เบ™เบตเป‰เปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”เป‚เบ”เบเบœเปˆเบฒเบ™
com เบซเบ™เป‰เบฒ.

-fobjc-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš syntactic เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปƒเบ™ Objective-C, เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš
เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเป‚เบ”เบ C ++ เปเบฅเบฐ Java. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ Objective-C
เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ @try, @throw, @catch, @finally เปเบฅเบฐ @synchronized. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰
เบเบฑเบšเบ—เบฑเบ‡เป€เบงเบฅเบฒเปเบฅเปˆเบ™ GNU เปเบฅเบฐเป€เบงเบฅเบฒเปเบฅเปˆเบ™ NeXT (เปเบ•เปˆเบšเปเปˆเบกเบตเปƒเบซเป‰เบฎเปˆเบงเบกเบเบฑเบš
เป€เบงเบฅเบฒเปเบฅเปˆเบ™ NeXT เปƒเบ™ Mac OS X 10.2 เปเบฅเบฐเบเปˆเบญเบ™เปœเป‰เบฒเบ™เบฑเป‰เบ™).

-fobjc-gc
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ (GC) เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Objective-C เปเบฅเบฐ Objective-C++. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš NeXT runtime เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™; GNU runtime เบกเบตเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบ—เบธเบ‡ compiler เบžเบดเป€เบชเบ”.

-fobjc-nilcheck
เบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™ NeXT เบเบฑเบšเบฅเบธเป‰เบ™ 2 เบ‚เบญเบ‡ ABI, เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบฎเบฑเบš nil
invocations เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ•เบปเบงเบˆเบดเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ -fno-objc-nilcheck. เบงเบดเบ—เบตเบเบฒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™ เปเบฅเบฐเบเบฒเบ™เป‚เบ— super เปเบกเปˆเบ™เบšเปเปˆเป€เบ„เบตเบเบ–เบทเบเบเบงเบ”เบชเบญเบš
เบชเปเบฒเบฅเบฑเบš nil เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบšเปเปˆเบงเปˆเบฒเบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เบธเบ‡เบ™เบตเป‰เป€เบฎเบฑเบ”
เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบกเบทเปˆเบญเป€เบงเบฅเบฒเปเบฅเปˆเบ™ GNU, เบซเบผเบทเบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒเบ‚เบญเบ‡ NeXT runtime ABI, เบ–เบทเบเปƒเบŠเป‰.

-fobjc-std=objc1
เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเป„เบงเบเบฐเบเบญเบ™เบžเบฒเบชเบฒเบ‚เบญเบ‡ Objective-C 1.0, เบžเบฒเบชเบฒเบ—เบตเปˆเบฎเบฑเบšเบฎเบนเป‰เป‚เบ”เบ GCC 4.0.
เบญเบฑเบ™เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบžเบตเปˆเบก Objective-C เบเบฑเบšเบžเบฒเบชเบฒ C/C++; เบกเบฑเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C/C++, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบžเบฒเบชเบฒ C/C++ เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เบ—เบธเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเปƒเบŠเป‰เบเบฑเบš Objective-C เบซเบผเบท Objective-C++
compiler, เบ—เบธเบ syntax Objective-C เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เป‚เบ”เบ GCC 4.0 เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบ™เบตเป‰
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบฅเบฐเบซเบฑเบ” Objective-C เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ
GCC เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒ.

-freplace-objc-classes
เบ›เปˆเบญเบเบ•เบปเบงเบŠเบตเป‰เบšเบญเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบžเบดเป€เบชเบ” ld(1โ€‹) เบšเปเปˆเปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบขเปˆเบฒเบ‡เบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เบงเบฑเบ”เบ–เบธเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
เป„เบŸเบฅเปŒ, เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ เบเป‰เบญเบก(1โ€‹) เป€เบžเบทเปˆเบญเป‚เบซเบผเบ”เบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™เปเบ—เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เปƒเบ™
เบชเบปเบกเบ—เบปเบšเบเบฑเบš Fix-and-Continue debugging mode, เบšเปˆเบญเบ™เบ—เบตเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบขเบนเปˆเปƒเบ™
เบ„เปเบฒเบ–เบฒเบกเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ„เบทเบ™เปƒเบซเบกเปˆเปเบฅเบฐเป‚เบซเบผเบ”เปƒเบซเบกเปˆเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปƒเบ™เป„เบฅเบเบฐเป‚เบ„เบ‡เบเบฒเบ™
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡ restart เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ•เบปเบงโ€‹เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹เป€เบญเบ‡โ€‹. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เปเบเป‰เป„เบ‚เปเบฅเบฐ
เบชเบทเบšเบ•เปเปˆเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบชเบปเบกเบ—เบปเบšเบเบฑเบš NeXT runtime เปƒเบ™ Mac เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
OS X 10.3 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-fzero-link
เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเปเบฅเปˆเบ™ NeXT, เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบ›เบปเบเบเบฐเบ•เบดเปเบ—เบ™เบเบฒเบ™เป‚เบ—เบซเบฒ
"objc_getClass("...")" (เป€เบกเบทเปˆเบญเบŠเบทเปˆเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เปเบกเปˆเบ™เบฎเบนเป‰เบˆเบฑเบเปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก) เบเบฑเบš
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบŠเบฑเป‰เบ™เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเป‚เบซเบผเบ”, เป€เบŠเบดเปˆเบ‡เบ›เบฑเบšเบ›เบธเบ‡เป€เบงเบฅเบฒเปเบฅเปˆเบ™
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธ -fzero-link เบ—เบธเบ‡เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบžเบถเบ”เบ•เบดเบเปเบฒเปเบฅเบฐเบชเบฒเป€เบซเบ”เบ™เบตเป‰
เป‚เบ—เบซเบฒ "objc_getClass("...")" เบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒเป„เบงเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™ Zero-Link
เป‚เบซเบกเบ” debugging, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰
เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹. เบ›เบฐเบˆเบธเบšเบฑเบ™ GNU runtime เบฎเบฑเบเบชเบฒเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒ
"objc_get_class("...")" เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

-fno-local-ivars
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ•เบปเบงเปเบ› instance เปƒเบ™ Objective-C เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เบ„เบทเบเบฑเบšเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™
เบ•เบปเบงเปเบ›เบˆเบฒเบเบžเบฒเบเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™
shadowing เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเปเบ› instance เปเบฅเบฐเบ•เบปเบงเปเบ›เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™
เบžเบฒเบเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบซเบผเบทเบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™. เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธ -fno-local-ivars
เบ—เบธเบ‡เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ™เบตเป‰เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบšเบฑเบ™เบซเบฒ shadowing เบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ›เบ‡.

-fivar-visibility=[เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ|เบ›เป‰เบญเบ‡เบเบฑเบ™|เบชเปˆเบงเบ™เบ•เบปเบง|เบŠเบธเบ”]
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ•เบปเบงเปเบ› instance เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบฑเป‰เบ™
เบ•เบปเบงเปเบ›เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเปเบเป‰เป„เบ‚เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปƒเบ”เป†เบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เป€เบเบ”โ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹.

-gen-decls
Dump เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเป€เบซเบฑเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆ
sourcename.decl.

-Wassign-intercept (Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบเบฒเบ™เบกเบญเบšเปเบฒเบ Objective-C เบ–เบทเบเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป‚เบ”เบเบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ.

-Wno-protocol (Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบ–เป‰เบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เป‚เบ•เบ„เบญเบ™, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เบญเบญเบเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบงเบดเบ—เบตเบเบฒเบ™
เปƒเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบซเป‰เบญเบ‡เบฎเบฝเบ™. เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ
เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ a
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบชเบทเบšเบ—เบญเบ”เบกเบฒเบˆเบฒเบ superclass. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -Wno-protocol
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเบทเบšเบ—เบญเบ”เบกเบฒเบˆเบฒเบ superclass เปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”,
เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

- เบœเบนเป‰โ€‹เป€เบฅเบทเบญเบโ€‹ (Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบงเบดเบ—เบตเบเบฒเบ™เบซเบผเบฒเบเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ”เบฝเบงเบเบฑเบ™เบžเบปเบšเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ a
"@selector(...)" เบชเบฐเปเบ”เบ‡เบญเบญเบ, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™เปเบกเปˆเบ™
เบžเบปเบšเป€เบซเบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฐเปเบเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡
เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบœเบฐเบฅเบดเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบกเปˆเบ™
เบšเปเปˆเบšเบฑเบ™เบฅเบธเป„เบ”เป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบซเบผเบทเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ
-fsyntax เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-Wstrict-select-match (Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบซเบผเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐ / เบซเบผเบทเบ›เบฐเป€เบžเบ”เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เปเบกเปˆเบ™เบžเบปเบšเป€เบซเบฑเบ™เบชเปเบฒเบฅเบฑเบš a
เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบซเป‰เปƒเบ™เป€เบงเบฅเบฒเบžเบฐเบเบฒเบเบฒเบกเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป„เบ›เบซเบฒเบœเบนเป‰เบฎเบฑเบš
เบžเบดเบก "id" เบซเบผเบท "Class". เป€เบกเบทเปˆเบญเบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเบ›เบดเบ” (เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™), the
compiler เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เป€เบ•เบทเบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ”เป†เบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™
เบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบชเบญเบ”เบ„เปˆเบญเบ‡.

-Wunddeclared-เป€เบฅเบทเบญเบ (Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ "@selector(...)" เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบฒเบ”. เบ
เป‚เบ•เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเบšเปเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ” เบ–เป‰เบฒเบšเปเปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ™เบฑเป‰เบ™เบ–เบทเบเบ›เบฐเบเบฒเบ”เบกเบฒเบเปˆเบญเบ™
เบชเบฐเปเบ”เบ‡เบญเบญเบ "@selector(...)" เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบขเบนเปˆเปƒเบ™ @interface เบซเบผเบท @protocol
เบ›เบฐเบเบฒเบ”, เบซเบผเบท implicitly เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™ @implementation. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเป€เบซเบกเบต
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบ‡เบกเบฑเบ™เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆ "@selector(...)" เบชเบฐเปเบ”เบ‡เบญเบญเบ, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ - เบœเบนเป‰โ€‹เป€เบฅเบทเบญเบโ€‹ เบžเบฝเบ‡เปเบ•เปˆ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบ‡เบ•เบปเบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ™เบตเป‰เบเบฑเบ‡เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”
เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบชเบฐเป„เบ•เบฅเปŒเบ—เบตเปˆเบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเบ•เบปเบงเป€เบฅเบทเบญเบเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-print-objc-runtime-info
เบชเป‰เบฒเบ‡เบชเปˆเบงเบ™เบซเบปเบง C เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เป‚เบ”เบเบกเบนเบ™เบ„เปˆเบฒ, เบ–เป‰เบฒเบกเบต.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ to เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช เบ‚เปเป‰เบ„เบงเบฒเบก เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเปเบšเบš
เบ•เบฒเบกเบ›เบฐเป€เบžเบ™เบต, เบ‚เปเป‰เบ„เบงเบฒเบกเบงเบดเบ™เบดเบ”เป„เบชเป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”
เบฅเบฑเบเบชเบฐเบ™เบฐ (เป€เบŠเบฑเปˆเบ™: เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™, ...). เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เบ‚เป‰เบฒเบ‡โ€‹เบฅเบธเปˆเบกโ€‹เบ™เบตเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹
เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช, เป€เบŠเบฑเปˆเบ™: เบˆเปเบฒเบ™เบงเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ•เปเปˆเปเบ–เบง, เป€เบฅเบทเป‰เบญเบเป†เป€เบ—เบปเปˆเบฒเปƒเบ”
เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบซเบผเปˆเบ‡เบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบฒเบเบ‡เบฒเบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบšเบฒเบ‡เบžเบฒเบชเบฒเบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเบญเบฒเบ”เบˆเบฐ
เบšเปเปˆเปƒเบซเป‰เบเบฝเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

-fmessage-length=n
เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบˆเบฑเบ”โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป€เบžเบทเปˆเบญโ€‹เปƒเบซเป‰โ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบซเบกเบฒเบฐโ€‹เบเบฑเบšโ€‹เป€เบชเบฑเป‰เบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹ n เบ•เบปเบงเบฅเบฐเบ„เบญเบ™. เบ–เป‰เบฒ n is
เบชเบนเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบšเปเปˆเบกเบตเบเบฒเบ™เบซเปเปˆเป€เบชเบฑเป‰เบ™เปเบกเปˆเบ™เป€เบฎเบฑเบ”; เปเบ•เปˆเบฅเบฐเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เปเบ–เบงเบ”เบฝเบง.
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเปˆเบงเบ™เปœเป‰เบฒเบ—เบฑเบ‡เปเบปเบ”.

-fdiagnostics-show-location=เบ„เบฑเป‰เบ‡เบ”เบฝเบง
เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบซเปเปˆโ€‹เป€เบชเบฑเป‰เบ™โ€‹. เปเบ™เบฐเบ™เบณเปƒเบซเป‰เบ™เบฑเบเบ‚เปˆเบฒเบงเบเบงเบ”เบซเบฒเบ‚เปเป‰เบ„เบงเบฒเบก
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบซเบผเปˆเบ‡ เบ„เบฑเป‰เบ‡เบซเบ™เบถเปˆเบ‡; เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเบเบฒเบงเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเป€เบซเบกเบฒเบฐ
เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ”เบฝเบงเปเบฅเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบซเปเปˆ, เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบซเบผเปˆเบ‡เบˆเบฐเบšเปเปˆเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ
(เป€เบ›เบฑเบ™เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ) เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบซเบผเบฒเบเบเบงเปˆเบฒเปเบฅเบฐเบซเบผเบฒเบเบเบงเปˆเบฒ, เปƒเบ™เบชเบฒเบเบ•เปเปˆเป†เบกเบฒ. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fdiagnostics-show-location=เบ—เบธเบเปเบ–เบง
เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบซเปเปˆโ€‹เป€เบชเบฑเป‰เบ™โ€‹. เปเบ™เบฐเบ™เบณเปƒเบซเป‰เบ™เบฑเบเบ‚เปˆเบฒเบงเบเบงเบ”เบซเบฒเบ‚เปเป‰เบ„เบงเบฒเบก
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบซเบผเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™ (เป€เบ›เบฑเบ™เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ) เบชเปเบฒเบฅเบฑเบšเป€เบชเบฑเป‰เบ™เบ•เบปเบงเบˆเบดเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบœเบปเบ™
เบˆเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เปเบฒเบฅเบฒเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบเบฒเบงเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเป€เบซเบกเบฒเบฐเปƒเบ™เปเบ–เบงเบ”เบฝเบง.

-fdiagnostics-color[=เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹]
-fno-diagnostics-เบชเบต
เปƒเบŠเป‰เบชเบตเปƒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ is เบšเปเปˆเป€เบ„เบตเบ, เบชเบฐเป€เบซเบกเบตเป„เบ›, เบซเบผเบท เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™
compiler เป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบญเบฑเบ™เปƒเบ”เบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡ เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบซเบผเบทโ€‹เบเบฑเบ‡โ€‹
เบšเปเปˆเป€เบ„เบตเบ if GCC_COLORS เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปเบกเปˆเบ™เบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก, เปเบฅเบฐ เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™. เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰เบชเบตเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบ›เบฑเบ™เบˆเบธเบ”. เป„เบ”เป‰
เบฎเบนเบšเปเบšเบš -fdiagnostics-เบชเบต เปเบฅเบฐ -fno-diagnostics-เบชเบต เปเบกเปˆเบ™เบ™เบฒเบกเปเบเบ‡เบชเปเบฒเบฅเบฑเบš
-fdiagnostics-color=เบชเบฐเป€เปเบต เปเบฅเบฐ -fdiagnostics-color=เบšเปเปˆเป€เบ„เบตเบ, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

เบชเบตเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก GCC_COLORS. เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹เปเบกเปˆเบ™โ€‹เบฅเปเบฒโ€‹เป„เบชเป‰
เบฅเบฒเบเบŠเบทเปˆเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเปเบเบเบญเบญเบ เปเบฅเบฐเป€เบฅเบทเบญเบเบชเบฒเบเบเปˆเบญเบเบ‚เบญเบ‡ Graphic Rendition (SGR). SGR
เบ„เปเบฒเบชเบฑเปˆเบ‡เบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเบซเบกเบฒเบเป‚เบ”เบ terminal เบซเบผเบท terminal emulator. (เป€เบšเบดเปˆเบ‡เบžเบฒเบเปƒเบ™
เป€เบญ เบเบฐ เบชเบฒเบ™ เบ‚เบญเบ‡ terminal เบ‚เปเป‰ เบ„เบงเบฒเบก เบ‚เบญเบ‡ เบ—เปˆเบฒเบ™ เบชเปเบฒ เบฅเบฑเบš เบ„เบธเบ™ เบ„เปˆเบฒ เบ—เบตเปˆ เบญเบฐ เบ™เบธ เบเบฒเบ” เปเบฅเบฐ เบ„เบงเบฒเบก เบซเบกเบฒเบ เบ‚เบญเบ‡ เป€เบ‚เบปเบฒ เป€เบˆเบปเป‰เบฒ เป€เบ›เบฑเบ™
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹
เปเบฅเบฐเบชเบฒเบกเบฒเบ” concatenated เบเบฑเบš semicolons. เบ„เปˆเบฒเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบˆเบฐเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบฅเบงเบกเบกเบต 1 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
เบเป‰เบฒเบซเบฒเบ™, 4 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ underline, 5 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบฐเบžเบดเบš, 7 เบชเปเบฒเบฅเบฑเบšเบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™, 39 เบชเปเบฒเบฅเบฑเบšเบชเบตเบžเบทเป‰เบ™เบซเบฅเบฑเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, 30
to 37 เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบชเบตโ€‹เบžเบทเป‰เบ™โ€‹เบซเบ™เป‰เบฒโ€‹, 90 to 97 เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ 16 เบชเบตโ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบชเบตโ€‹เบ—เบฒเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹, 38 5 0 to
38 5 255 เบชเปเบฒเบฅเบฑเบš 88 เบชเบตเปเบฅเบฐ 256 เป‚เบซเบกเบ”เบชเบตเบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒ, 49 เบชเปเบฒเบฅเบฑเบšเบžเบทเป‰เบ™เบซเบฅเบฑเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเบต, 40 to 47 เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบชเบตโ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹, 100 to 107 เบชเปเบฒเบฅเบฑเบšเบชเบตเบžเบทเป‰เบ™เบซเบผเบฑเบ‡เบ‚เบญเบ‡เป‚เปเบ” 16 เบชเบต,
เปเบฅเบฐ 48 5 0 to 48 5 255 เบชเปเบฒเบฅเบฑเบš 88-color เปเบฅเบฐ 256-color modes เบชเบตเบžเบทเป‰เบ™เบซเบฅเบฑเบ‡.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ GCC_COLORS is

error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01

เบšเปˆเบญเบ™เบ—เบตเปˆ 01 31 เป€เบ›เบฑเบ™เบชเบตเปเบ”เบ‡เป€เบ‚เบฑเป‰เบก, 01 35 เป€เบ›เบฑเบ™เบชเบตเบกเปˆเบงเบ‡เปเบ”เบ‡เป€เบ‚เบฑเป‰เบก, 01 36 เปเบกเปˆเบ™เบชเบตเบŸเป‰เบฒเป€เบ‚เบฑเป‰เบก, 01 32 เปเบกเปˆเบ™เบเป‰เบฒเบซเบฒเบ™
เบชเบตเบ‚เบฝเบงเปเบฅเบฐ 01 เปเบกเปˆเบ™เบเป‰เบฒเบซเบฒเบ™. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC_COLORS เป„เบ›เบซเบฒเบชเบฐเบ•เบฃเบดเบ‡เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบชเบต.
เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹.

"เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”="
SGR substring เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”: เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ.

"เบ„เบณเป€เบ•เบทเบญเบ™="
SGR substring เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž: เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ.

"เบซเบกเบฒเบเป€เบซเบ”="
SGR substring เบชเปเบฒเบฅเบฑเบšเบซเบกเบฒเบเป€เบซเบ”: เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ.

"caret="
SGR substring เบชเปเบฒเบฅเบฑเบšเป€เบชเบฑเป‰เบ™ cart.

"locus="
SGR substring เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ, file:line or file:line:column เปเบฅเบฐเบญเบทเปˆเบ™เป†

"quote="
SGR substring เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบžเบดเบกเบขเบนเปˆเปƒเบ™เบงเบปเบ‡เบขเบทเบก.

-fno-diagnostics-show-option
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบ›เบฐเบเบญเบšเบกเบตเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบŠเบตเป‰เบšเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡
เบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเป‚เบ”เบเบเบปเบ‡ (เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ). เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธ -fno-diagnostics-show-option เบ—เบธเบ‡โ€‹เบชเบฐโ€‹เบเบฑเบ”โ€‹เบเบฑเป‰เบ™โ€‹เบ™เบฑเป‰เบ™
เบžเบถเบ”เบ•เบด เบเบณ.

-fno-diagnostics-show-caret
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบฅเบงเบกเบกเบตเบชเบฒเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš เปเบฅเบฐ เบ„เบฒเบš '^'
เบŠเบตเป‰เบšเบญเบเบ–เบฑเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰. เป€เบชเบฑเป‰เบ™เปเบซเบผเปˆเบ‡เปเบกเปˆเบ™
เบ•เบฑเบ”เป€เบ›เบฑเบ™ n เบฅเบฑเบเบชเบฐเบ™เบฐ, เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -fmessage-length=n เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบซเป‰. เป€เบกเบทเปˆเบญเบœเบปเบ™เบœเบฐเบฅเบดเบ”
เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบเบฑเบš terminal, width เป„เบ”เป‰เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบเบฑเบš width เปƒเบซเป‰เป‚เบ”เบ เบชเบต
เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบซเบผเบท, เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡, เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปƒเบŠเป‰เป„เบŸเบŸเป‰เบฒ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ to เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป or เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™ เบ„เปเบฒเป€เบ•เบทเบญเบ™
เบ„เปเบฒเป€เบ•เบทเบญเบ™เปเบกเปˆเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบปเบ”เบ•เบปเบง
เบœเบดเบ”เบžเบฒเบ”เปเบ•เปˆเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบซเบผเบทเปเบ™เบฐเบ™เปเบฒเบงเปˆเบฒเบญเบฒเบ”เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบžเบฒเบชเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบ•เบทเบญเบ™เบชเบฐเป€เบžเบฒเบฐเปเบ•เปˆเบ„เบงเบšเบ„เบธเบก
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบ GCC.

-fsyntax เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบเบงเบ”เป€เบšเบดเปˆเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš syntax เบœเบดเบ”เบžเบฒเบ”, เปเบ•เปˆเบขเปˆเบฒเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบ™เบฑเป‰เบ™.

-fmax-errors=n
เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป€เบžเบทเปˆเบญโ€‹ n, เปƒเบ™เบˆเบธเบ”เบ™เบฑเป‰เบ™ GCC เบ›เบฐเบ•เบดเป€เบชเบ”เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ
เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบชเบทเบšเบ•เปเปˆเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡. เบ–เป‰เบฒ n เปเบกเปˆเบ™ 0 (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™),
เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบœเบฐเบฅเบดเบ”. เบ–เป‰เบฒ - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” Wfatalโ€‹ เปเบกเปˆเบ™เบเบฑเบ‡
เบฅเบฐเบšเบธ, เบˆเบฒเบเบ™เบฑเป‰เบ™ - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” Wfatalโ€‹ เบกเบตเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰.

-w เบเบฑเบšเบเบฑเป‰เบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

- เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹
เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

- เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” =โ€‹
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เบ•เบปเบงเบฅเบฐเบšเบธเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบ;
เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡ -Wrror=เบ›เปˆเบฝเบ™ เบ›เปˆเบฝเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบ—เบตเปˆโ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เป‚เบ”เบโ€‹ - เบชเบฐเบซเบงเบดเบ” เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹.
เบชเบฐเบซเบผเบฑเบšเบ™เบตเป‰เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบฅเบปเบš, เป€เบžเบทเปˆเบญเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเป€เบชเบ” - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเบฐเป€เบžเบฒเบฐ;
เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡ -Wno-error=เบชเบฐเบซเบผเบฑเบš เป€เบฎเบฑเบ”เปƒเบซเป‰ - เบชเบฐเบซเบงเบดเบ” เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹
เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบš.

เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเป„เบ”เป‰เบ›เบฐเบเบญเบšเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ„เบงเบšเบ„เบธเบก
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” =โ€‹ เปเบฅเบฐ -Wno-error= เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰
เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. (เบเบฒเบ™เบžเบดเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™
-fno-diagnostics-show-option เบ—เบธเบ‡.)

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบเปเบฒเบ™เบปเบ” - เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” =โ€‹เบŸเบน เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบซเบกเบฒเบเป€เบ–เบดเบ‡ -WเบŸเบนเบ—เบตเปˆเบขเบนเปˆ เป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, -Wno-error=เบŸเบน
เบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบซเบเบฑเบ‡.

- เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” Wfatalโ€‹
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบชเบทเบšเบ•เปเปˆเปเบฅเบฐเบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ•เบทเปˆเบกเบญเบตเบ.

เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ”เป‰เบงเบโ€‹ -W, เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡
- Wimplicit เป€เบžเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ” implicit. เปเบ•เปˆเบฅเบฐเบ„เปเบฒเป€เบ•เบทเบญเบ™เบชเบฐเป€เบžเบฒเบฐเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฑเบ‡เบกเบตเบฎเบนเบšเปเบšเบšเบฅเบปเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -Wno- เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹; เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
-Wno - implicit. เบ„เบนเปˆเบกเบทเบ™เบตเป‰เบชเบฐเปเบ”เบ‡เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบญเบ‡เบฎเบนเบšเปเบšเบš, เบญเบฑเบ™เปƒเบ”เบเปเปˆเบ•เบฒเบกเบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบžเบฒเบชเบฒเบชเบฐเป€เบžเบฒเบฐเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเบฑเบ‡เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡ C ++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เปเบฅเบฐ Objective-C
เปเบฅเบฐ เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡-C++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™.

เบšเบฒเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เป€เบŠเบฑเปˆเบ™: - เบเบฒ เปเบฅเบฐ -Wextra, เป€เบ›เบตเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™, เป€เบŠเบฑเปˆเบ™: - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบ—เบตเปˆ
เบญเบฒเบ”เบˆเบฐเป€เบ›เบตเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบŠเบฑเปˆเบ™: -Wunused-value. เบœเบปเบ™เบเบฐเบ—เบปเบšเบฅเบงเบกเบ‚เบญเบ‡เบšเบงเบเปเบฅเบฐ
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบฒเบ‡โ€‹เบฅเบปเบšโ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบซเบผเบฒเบโ€‹เบกเบตโ€‹เบšเบนโ€‹เบฅเบดโ€‹เบกเบฐโ€‹เบชเบดเบ”โ€‹เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบซเบ™เป‰เบญเบโ€‹,
เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบ•เปเบฒเปเปœเปˆเบ‡เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹,
เบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบกเบตเบœเบปเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบตเบ”เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบœเปˆเบฒเบ™ pragmas เบกเบตเบœเบปเบ™เบ„เบทเบเบฑเบšเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™
เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

เป€เบกเบทเปˆเบญเบกเบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡: - เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบšเปเปˆโ€‹เบฎเบนเป‰โ€‹เบˆเบฑเบโ€‹), GCC emits a
เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบฅเบฐเบšเบธเบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -Wno- เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹,
เบžเบถเบ”เบ•เบดเบเปเบฒเปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ: เบšเปเปˆเบกเบตเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปเบกเปˆเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš -Wno-unknown-เป€เบ•เบทเบญเบ™
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบญเบทเปˆเบ™เป†เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบœเบฐเบฅเบดเบ”. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เปƒเบซเบกเปˆ -Wno- เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
เบเบฑเบš compilers เป€เบเบปเปˆเบฒ, เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”, compiler เป€เบ•เบทเบญเบ™เบงเปˆเบฒ unrecognized
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™.

-Wpedantic
- pedantic
เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบ ISO C เปเบฅเบฐ ISO C++ เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”; เบ›เบฐเบ•เบดเป€เบชเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเบ–เบทเบเบซเป‰เบฒเบก, เปเบฅเบฐเบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก ISO C เปเบฅเบฐ ISO
C++. เบชเปเบฒเบฅเบฑเบš ISO C, เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเปƒเบ”เป† -std
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

เป‚เบ›เบฃเปเบเบฃเบก ISO C เปเบฅเบฐ ISO C++ เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ„เบงเบ™เบฅเบงเบšเบฅเบงเบกเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เป‚เบ”เบเบกเบต เบซเบผเบทเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
(เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบ—เบตเปˆเบซเบฒเบเบฒเบเบ•เป‰เบญเบ‡เบเบฒเบ™ -ansi เบซเบผเบท -std เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹
ISO C). เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU เปเบฅเบฐ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเปเบฅเบฐ
เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” C ++ เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™. เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”.

-Wpedantic เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเปเบฒเบฎเบญเบ‡เบ—เบตเปˆเบกเบต
เบŠเบทเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบฅเบปเบ‡เบ—เป‰เบฒเบเบ”เป‰เบงเบ __. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž Pedantic เบเบฑเบ‡เบ–เบทเบเบ›เบดเบ”เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™
เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก "__extension__". เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ„เบงเบ™เปƒเบŠเป‰เบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบซเบ™เบต; เป‚เบ„เบ‡เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ„เบงเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบžเบงเบเบกเบฑเบ™.

เบœเบนเป‰เปƒเบŠเป‰เบšเบฒเบ‡เบ„เบปเบ™เบžเบฐเบเบฒเบเบฒเบกเปƒเบŠเป‰ -Wpedantic เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบšเบฑเบ™โ€‹เบ”เบฒโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡ ISO C เบขเปˆเบฒเบ‡โ€‹เป€เบ‚เบฑเป‰เบกโ€‹เบ‡เบงเบ”โ€‹. เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบžเบปเบšเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™: เบกเบฑเบ™เบžเบปเบšเป€เบซเบฑเบ™เบšเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ ISO,
เปเบ•เปˆโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ” --- เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ—เบตเปˆ ISO C เบ•เป‰เบญเบ‡เบเบฒเบ™ เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช, เปเบฅเบฐเบšเบฒเบ‡เบญเบฑเบ™เบญเบทเปˆเบ™เป†เบชเปเบฒเบฅเบฑเบš
เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบžเบทเปˆเบญเบฅเบฒเบเบ‡เบฒเบ™เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก ISO C เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต,
เปเบ•เปˆเบˆเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบงเบฝเบเบ‡เบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปเบฅเบฐเบˆเบฐเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบ
-Wpedantic. เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบตเปเบœเบ™เบ—เบตเปˆเบˆเบฐเบฎเบญเบ‡เบฎเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฑเบ™เปƒเบเป‰เบ™เบตเป‰.

เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเบฑเบš -std เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒ GNU เบ‚เบฐเบซเบเบฒเบ C, เป€เบŠเบฑเปˆเบ™:
gnu90 or gnu99, เบกเบตเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ เบ–เบฒเบ™ เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ ISO C เบ—เบตเปˆ
เบžเบฒเบชเบฒ GNU เบ‚เบฐเบซเบเบฒเบเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ. เบ„เบณเป€เบ•เบทเบญเบ™เบˆเบฒเบ -Wpedantic เป„เบ”เป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰เบšเปˆเบญเบ™เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆ
เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. (เบกเบฑเบ™เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบžเบฒโ€‹เบชเบฒ GNU C เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹, เบ™เบฑเบšโ€‹เบ•เบฑเป‰เบ‡โ€‹เปเบ•เปˆโ€‹เป‚เบ”เบโ€‹เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบก GNUโ€‹
เบžเบฒเบชเบฒเบ‚เบญเบ‡ C เบ›เบฐเบเบญเบšเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆ compiler เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบซเป‰, เปเบฅเบฐ
เบˆเบฐโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบเบฑเบ‡โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ•เบทเบญเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹.)

-pedantic เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹
เปƒเบซเป‰เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆ เบ–เบฒเบ™ เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ (เป€เบšเบดเปˆเบ‡ -Wpedantic) เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช, เปƒเบ™
เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบญเบทเปˆเบ™เป†
เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.
เบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเป€เบ—เบปเปˆเบฒเบเบฑเบš -Wrror=pedantic, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบ›เบตเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบซเบผเบฑเบ‡โ€‹เปเบฅเบฐโ€‹เบเบปเบ‡โ€‹เบเบฑเบ™โ€‹เบ‚เป‰เบฒเบกโ€‹.

- เบเบฒ
เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ—เบฑเบ‡เบซเบกเบปเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบšเบฒเบ‡เบ„เบปเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ
เบ„เปเบฒเบ–เบฒเบก, เปเบฅเบฐเบ—เบตเปˆเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™ (เบซเบผเบทเบ”เบฑเบ”เปเบ›เบ‡เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™), เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบขเบนเปˆเปƒเบ™
เบชเบปเบกเบ—เบปเบšเบเบฑเบšเบกเบฐเบซเบฒเบžเบฒเบ. เบญเบฑเบ™เบ™เบตเป‰เบเบฑเบ‡เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเป€เบ•เบทเบญเบ™เบชเบฐเป€เบžเบฒเบฐเบžเบฒเบชเบฒเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰
in C ++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เปเบฅเบฐ Objective-C เปเบฅเบฐ เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡-C++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™.

- เบเบฒ เป€เบ›เบตเบ”เบ—เบธเบ‡เป€เบ•เบทเบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

-waddress -Warray-bounds=1 (เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -O2) -Wc++11-compat -Wc++14-compat
-Wchar-subscripts -Wenum เบ›เบฝเบšเบ—เบฝเบš (เปƒเบ™ C/ObjC; เบญเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบตเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ C++)
-Wimplicit-int (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) -Wimplicit-function-เบ›เบฐเบเบฒเบ” (เบ„ เปเบฅเบฐ
Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) - เบ„เปเบฒเป€เบซเบฑเบ™ -Wformat - เบœเบนเป‰เบเบดเบ‡ (เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš C/ObjC เปเบฅเบฐเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ
- freestanding) -Wmaybe-unitialized -Wmissing-braces (เบชเบฐเป€เบžเบฒเบฐ C/ObjC) -Wnonnull
-Wopenmp-simd -Wparentheses -Wpointer-เป€เบŠเบฑเบ™โ€‹ - เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹ - เบ›เบฐโ€‹เป€เบžเบ” Wreturnโ€‹ - เบฅเปเบฒเบ”เบฑเบšเบˆเบธเบ”
-Wsign-เบ›เบฝเบšเบ—เบฝเบš (เบชเบฐเป€เบžเบฒเบฐเปƒเบ™ C++) - เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเป‰เบฒเบชเบธเบ” -Wstrict-overflow=1 - เบชเบฐเบซเบงเบดเบ”
-Wtrigraphs - เบ›เบฐเบเบฒเบ” -Wunknown-pragmas -Wunused-function -Wunused-label
-Wunused-value -Wunused-variable -Wvolatile-register-var

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบธเบ‡เป€เบ•เบทเบญเบ™เป„เบžเบšเบฒเบ‡เบญเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ - เบเบฒ. เบšเบฒเบ‡เบ„เบปเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš
เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เบšเปเปˆเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบ›เบฑเบ™เบ„เปเบฒเบ–เบฒเบก, เปเบ•เปˆเบงเปˆเบฒ
เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡; เบ„เบปเบ™เบญเบทเปˆเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™
เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบซเบผเบทเบเบฒเบเบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เปเบฅเบฐเบšเปเปˆเบกเบตเบงเบดเบ—เบตเบ‡เปˆเบฒเบเป†เบ—เบตเปˆเบˆเบฐเบ”เบฑเบ”เปเบ›เบ‡
เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™. เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wextra เปเบ•เปˆเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ
เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™.

-Wextra
เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบšเบฒเบ‡เบ—เบธเบ‡เป€เบ•เบทเบญเบ™เป„เบžเบžเบดเป€เบชเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ. (เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰
เบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™ -W. เบŠเบทเปˆเป€เบเบปเปˆเบฒเปเบกเปˆเบ™เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เปเบ•เปˆเบŠเบทเปˆเปƒเบซเบกเปˆเปเบกเปˆเบ™เบซเบผเบฒเบ
เบญเบฐเบ—เบดเบšเบฒเบ.)

- Wclobbered - เบฎเปˆเบฒเบ‡เบเบฒเบเบญเปˆเบญเบ™เป€เบžเบ -Wignored-qualifiers -Wmissing-field-initializers
-Wmissing-parameter-type (C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) -Wold-style-เบ›เบฐเบเบฒเบ” (C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) -Woverride-init
-Wsign-เบ›เบฝเบšเบ—เบฝเบš -Wtype- limits - เบ›เบฐเบเบฒเบ” -Wunused-เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต (เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ or
- เบเบฒ) -Wunused-but-set-parameter (เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ or - เบเบฒ)

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -Wextra เบเบฑเบ‡เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

* เบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเป€เบฅเบเบชเบนเบ™เบ”เป‰เบงเบ "<", "<=", ">", เบซเบผเบท ">=".

* (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เบ•เบปเบงเบ™เบฑเบšเบˆเบณ เบ™เบงเบ™ เปเบฅเบฐ เบœเบนเป‰เบšเปเปˆเบˆเบณเปเบ™เบเบ—เบฑเบ‡เบชเบญเบ‡เบ›เบฐเบเบปเบ”เบขเบนเปˆเปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ.

* (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเบฐเป€เปเบทเบญเบ™เบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™.

* (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เบเบฒเบ™เบชเบฐเปเบฑเบเบชเบฐเบกเบฒเบŠเบดเบเบญเบฒเป€เบฃเบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒ "เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™".

* (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เป€เบญเบปเบฒเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒ "เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™".

* (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบ•เบปเบงเบชเป‰เบฒเบ‡เบชเบณเป€เบ™เบปเบฒเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบ—เบตเปˆเบกเบฒเบˆเบฒเบ.

-Wchar-subscripts
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ subscript array เบกเบตเบ›เบฐเป€เบžเบ” "char". เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฒเป€เบซเบ”เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เป€เบ›เบฑเบ™
เบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบกเบฑเบเบˆเบฐเบฅเบทเบกเบงเปˆเบฒเบ›เบฐเป€เบžเบ”เบ™เบตเป‰เบ–เบทเบเป€เบŠเบฑเบ™เปƒเบ™เบšเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

- เบ„เปเบฒเป€เบซเบฑเบ™
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบฅเบณเบ”เบฑเบšเบ„เบณเป€เบซเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ /* เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ a /* เบ„เปเบฒเป€เบซเบฑเบ™, เบซเบผเบทเบ—เบธเบเบ„เบฑเป‰เบ‡ a
Backslash-Newline เบ›เบฐเบเบปเบ”เบขเบนเปˆเปƒเบ™ a // เบ„เปเบฒเป€เบซเบฑเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wno- coverage-mismatch
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ„เปเบฒเบ„เบถเบ”เบ„เปเบฒเป€เบซเบฑเบ™เบšเปเปˆเบเบปเบ‡เบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fprofile-เปƒเบŠเป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ–เป‰เบฒ เบ
เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เปเบกเปˆเบ™เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฑเบš -fprofile-gen เปเบฅเบฐเบกเบต -fprofile-เปƒเบŠเป‰,
เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ„เปเบฒเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบปเบ‡เบเบฑเบšเป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป„เบ”เป‰ เปเบฅเบฐ GCC เบšเปเปˆเบชเบฒเบกเบฒเบ”
เปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ เปเบฅเบฐเป€เบ›เบฑเบ™
เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. -Wno- coverage-mismatch เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบซเบผเบท
-Wno-error= coverage-mismatch เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰. เบเบฒเบ™เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ” optimized เบšเปเปˆเบ”เบตเปเบฅเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡
เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เป€เบฅเบฑเบโ€‹เบ™เป‰เบญเบโ€‹เบซเบผเบฒเบโ€‹เป€เบŠเบฑเปˆเบ™โ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚ bug เบเบฑเบšโ€‹เบ–เบฒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปเบฅเป‰เบงโ€‹. เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เบšเปเปˆเปเบ™เบฐเบ™เปเบฒ.

-Wno-cpp
(C, Objective-C, C++, Objective-C++ เปเบฅเบฐ Fortran เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)

เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡ "#warning".

- เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เป€เบชเบตเบกโ€‹เบชเบญเบ‡โ€‹เบ„เบฑเป‰เบ‡โ€‹ (C, C++, Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เปƒเบซเป‰เบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "เป€เบฅเบทเปˆเบญเบ™" เบ–เบทเบเบชเบปเปˆเบ‡เป€เบชเบตเบกเป€เบ›เบฑเบ™ "เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ". CPUs
เบ”เป‰เบงเบ 32-bit "single-precision" เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ” "float" เปƒเบ™เบฎเบฒเบ”เปเบง,
เปเบ•เปˆเป€เบฎเบฑเบ”เบ•เบฒเบก "เบชเบญเบ‡" เปƒเบ™เบŠเบญเบšเปเบง. เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบฎเบฑเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ„เปˆเบฒ "เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ" เปเบกเปˆเบ™เบฅเบฒเบ„เบฒเปเบžเบ‡เบเบงเปˆเบฒเบซเบผเบฒเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบเบตเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบญเบšเปเบง
emulation.

เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป‚เบ”เบเบšเบฑเบ‡เป€เบญเบตเบ™เบ”เป‰เบงเบ "เบชเบญเบ‡" เป€เบžเบฒเบฐเบงเปˆเบฒเบˆเบธเบ”เบฅเบญเบ
เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเปเบกเปˆเบ™ implicitly เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "double". เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™:

เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™ (เบฅเบฑเบ”เบชเบฐเปเบตเบฅเบญเบ)
{
เบเบฑเบšเบ„เบทเบ™ 3.14159 * radius * radius;
}

compiler เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบ "double" เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเปเบกเปˆเบ™ "เบชเบญเบ‡".

-Wformat
-Wformat=n
เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒ "printf" เปเบฅเบฐ "scanf", เปเบฅเบฐเบญเบทเปˆเบ™เป†, เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡.
เบกเบตโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบดเบ‡โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹, เปเบฅเบฐโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบชเบฐเบ•เบฃเบดเบ‡เบฎเบนเบšเปเบšเบšเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบ. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เปเบฅเบฐ
เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบฎเบนเบšเปเบšเบš, เปƒเบ™ "printf", "scanf", "strftime" เปเบฅเบฐ
"strfmon" (เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ X/Open, เบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C) เบ„เบญเบšเบ„เบปเบง (เบซเบผเบทเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบญเบทเปˆเบ™เป†-
เบ„เบญเบšเบ„เบปเบงเบชเบฐเป€เบžเบฒเบฐ). เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เบ–เบทเบเบเบงเบ”เบชเบญเบšเป‚เบ”เบเบšเปเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš
เบเปเบฒเบ™เบปเบ”เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบชเบฐเบšเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบ, เปเบฅเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เป‚เบ”เบโ€‹ - freestanding or -fno-builtin.

เบฎเบนเบšเปเบšเบšเบ•เปˆเบฒเบ‡เป†เป„เบ”เป‰เบ–เบทเบเบเบงเบ”เบชเบญเบšเบ•เปเปˆเบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเป‚เบ”เบ GNU libc เป€เบงเบตเบŠเบฑเบ™ 2.2.
เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบฅเบงเบกเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” ISO C90 เปเบฅเบฐ C99 เบ—เบฑเบ‡เปเบปเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบˆเบฒเบ Single Unix
เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเปเบฅเบฐเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ BSD เปเบฅเบฐ GNU. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†เบญเบฒเบ”เบˆเบฐเบšเปเปˆ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”; GCC เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเป€เบเบตเบ™เบเบงเปˆเบฒ
เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบฐเป€เบžเบฒเบฐ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒ -Wpedantic เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš -Wformat,
เบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบšเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบ (เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™
เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบš "strfmon", เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C).

-Wformat=1
-Wformat
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -Wformat เป€เบ—เบปเปˆเบฒเบเบฑเบš -Wformat=1, เปเบฅเบฐ -Wno เบฎเบนเบšโ€‹เปเบšเบšโ€‹ เป€เบ—เบปเปˆเบฒเบเบฑเบš
-Wformat=0เบ—เบตเปˆเบขเบนเปˆ เบ•เบฑเป‰เบ‡เปเบ•เปˆ -Wformat เบเบฑเบ‡เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบฎเบนเบšเปเบšเบš null เบชเปเบฒเบฅเบฑเบšเบซเบผเบฒเบเป†เบญเบฑเบ™
เปœเป‰เบฒ เบ—เบตเปˆ, -Wformat เบเบฑเบ‡เปเบฒเบเป€เบ–เบดเบ‡ -Wnonnull. เบšเบฒเบ‡เบ”เป‰เบฒเบ™เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบฅเบฐเบ”เบฑเบšเบ™เบตเป‰
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบฒเบกเบฒเบ”เบ›เบดเบ”เป„เบ”เป‰เป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ: -Wno-format-contains-nul,
-Wno-format-extra-args, เปเบฅเบฐ -Wno-format-zero-length. -Wformat เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
- เบเบฒ.

-Wno-format-contains-nul
If -Wformat เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเปเบšเบšเบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบกเบต NUL bytes.

-Wno-format-extra-args
If -Wformat เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰, เบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป€เบเบตเบ™เป€เบ›เบฑเบ™ "printf" เบซเบผเบท
เบŸเบฑเบ‡เบŠเบฑเบ™เบฎเบนเบšเปเบšเบš "scanf". เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™
เบšเปเปˆเบชเบปเบ™เปƒเบˆ.

เบšเปˆเบญเบ™เบ—เบตเปˆเบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปเบกเปˆเบ™เบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เปเบฅเป‰เบงเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเบฑเบš $
เบ•เบปเบงเป€เบฅเบ operand เบชเบฐเป€เบžเบฒเบฐ, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบš, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบนเป‰เบงเปˆเบฒเบ›เบฐเป€เบžเบ”เปƒเบ”เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ "va_arg" เป€เบžเบทเปˆเบญเบ‚เป‰เบฒเบกเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš "scanf", เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปเบกเปˆเบ™เบ•เบปเบงเบŠเบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ Unix เบ”เบฝเบง
เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเบเปˆเบฒเบงเบงเปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”.

-Wno-format-zero-length
If -Wformat เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเปเบšเบšเบ„เบงเบฒเบกเบเบฒเบงเบชเบนเบ™. เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C
เบฅเบฐเบšเบธเบงเปˆเบฒเบฎเบนเบšเปเบšเบšเบ„เบงเบฒเบกเบเบฒเบงเบชเบนเบ™เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”.

-Wformat=2
เป€เบ›เบตเบ”เบ™เปเบฒเปƒเบŠเป‰ -Wformat เบšเบงเบเบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบฎเบนเบšเปเบšเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -Wformat
-Wformat-nonliteral -Wformat เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹ -Wformat-y2k.

-Wformat-nonliteral
If -Wformat เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบฎเบนเบšเปเบšเบšเบชเบฐเบ•เบฃเบดเบ‡เบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเปœเบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡
เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเป„เบ”เป‰, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบฎเบนเบšเปเบšเบšเบˆเบฐเปƒเบŠเป‰ arguments เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบกเบฑเบ™
เป€เบ›เบฑเบ™ "va_list".

-Wformat เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹
If -Wformat เป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™
เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ™เบตเป‰เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒ "printf" เปเบฅเบฐ
"scanf" เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบชเบฐเบ•เบฃเบดเบ‡เบฎเบนเบšเปเบšเบšเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบฎเบนเป‰เบซเบ™เบฑเบ‡เบชเบทเปเบฅเบฐเบšเปเปˆเบกเบต
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบš "printf (foo);". เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ‚เบธเบกเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบฎเบนเบšเปเบšเบšเบชเบฐเบ•เบฃเบดเบ‡เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป€เบŠเบทเปˆเบญเบ–เบท เปเบฅเบฐเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ %n. (เบ›เบฐเบˆเบธเบšเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™
เบŠเบธเบ”เบเปˆเบญเบเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆ -Wformat-nonliteral เป€เบ•เบทเบญเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เบญเบฐโ€‹เบ™เบฒโ€‹เบ„เบปเบ”โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹
เป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒ -Wformat เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹ เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™ -Wformat-nonliteral.)

- เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹
If -Wformat เป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบชเบฐเบ•เบฃเบดเบ‡เบฎเบนเบšเปเบšเบšเบ•เป‰เบญเบ‡เบเบฒเบ™ unsigned
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป„เบ”เป‰เบ–เบทเบเป€เบŠเบฑเบ™เปเบฅเบฐเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เปƒเบ™ Ubuntu 8.10 เปเบฅเบฐโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป€เบ›เบตเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš Cโ€‹,
C++, ObjC, ObjC++. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™, เปƒเบŠเป‰ -Wno-format-เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž, เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบฎเบนเบšเปเบšเบšเบ—เบฑเบ‡เบซเบกเบปเบ”
เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹ -Wformat=0. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบฎเบนเบšเปเบšเบšเบ•เบฒเบ, เปƒเบซเป‰เบฅเบฐเบšเบธ
-Werror=format-security.

-Wformat-y2k
If -Wformat เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเปเบšเบš "strftime" เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆ a
เบ›เบตเบชเบญเบ‡เบ•เบปเบงเป€เบฅเบ.

-Wnonnull
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ•เบปเบงเบŠเบตเป‰ null เบชเปเบฒเบฅเบฑเบšเบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบ—เบตเปˆเปเบฒเบเบงเปˆเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เปˆเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ null
เป‚เบ”เบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ "nonnull".

-Wnonnull เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ - เบเบฒ เปเบฅเบฐ -Wformat. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบเบฒเบ™เบ”เป‰เบงเบ -Wno-nonnull
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

- เบงเบดเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹ (C, C++, Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเปเบ› uninitialized เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡. เบซเบกเบฒเบเป€เบซเบ”เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฑเบšโ€‹ - เบ›เบฐเบเบฒเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบ•เบปเบงเบขเปˆเบฒเบ‡, GCC เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš "i" เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ - เบงเบดเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹ เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹:

int f()
{
int i = i;
เบเบฑเบšเบ„เบทเบ™ i;
}

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ เปƒเบ™ C++.

-Wimplicit-int (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wimplicit-function-เบ›เบฐเบเบฒเบ” (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เปƒเบซเป‰เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเปƒเบŠเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ›เบฐเบเบฒเบ”. เปƒเบ™เป‚เบซเบกเบ” C99
(-std=c99 or -std=gnu99), เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™
เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป‚เบ”เบ -pedantic เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

- Wimplicit (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -Wimplicit-int เปเบฅเบฐ -Wimplicit-function-เบ›เบฐเบเบฒเบ”. เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰
by - เบเบฒ.

-Wignored-qualifiers (C เปเบฅเบฐ C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ›เบฐเป€เบžเบ”เบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ›เบฐเป€เบžเบ”เป€เบŠเบฑเปˆเบ™ "const". เบชเปเบฒเบฅเบฑเบš ISO C
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ›เบฐเป€เบžเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเบกเบตเบœเบปเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบ„เปˆเบฒเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™
เบกเบนเบ™เบ„เปˆเบฒ. เบชเปเบฒเบฅเบฑเบš C ++, เบเบฒเบ™เป€เบ•เบทเบญเบ™เปเบกเปˆเบ™เบ›เปˆเบญเบเบญเบญเบเบกเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ” scalar เบซเบผเบท "void". ISO C
เบซเป‰เบฒเบกเบ›เบฐเป€เบžเบ”เบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™ "void" เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบงเบธเบ”เบ—เบดเปƒเบ™เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เบชเบฐเป€เบซเบกเบตเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wextra.

- เบœเบนเป‰เบเบดเบ‡
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ "เบ•เบปเป‰เบ™เบ•เป" เปเบกเปˆเบ™เบชเบปเบ‡เปƒเบช. "เบ•เบปเป‰เบ™เบ•เป" เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฑเบšเบžเบฒเบเบ™เบญเบ
linkage, เบเบฑเบšเบ„เบทเบ™ int, เป€เบญเบปเบฒเบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบชเบนเบ™ arguments, เบชเบญเบ‡, เบซเบผเบทเบชเบฒเบก arguments เบ‚เบญเบ‡
เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ C++ เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ—เบฑเบ‡เบชเบญเบ‡
- เบเบฒ or -Wpedantic.

-Wmissing-braces
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเบผเบทเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเบฐเบซเบฐเบžเบฑเบ™เปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบงเบปเบ‡เป€เบฅเบฑเบšเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™. เปƒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš "a" เบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบงเบปเบ‡เป€เบฅเบฑเบšเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ, เปเบ•เปˆเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบš "b" เปเบกเปˆเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™
เบงเบปเบ‡เป€เบฅเบฑเบš. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ เปƒเบ™ C.

int a[2][2] = { 0, 1, 2, 3 } ;
int b[2][2] = { { 0, 1 }, { 2, 3 } } ;

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wmissing-include-dirs (C, C++, Objective-C เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™ เบ–เป‰เบฒ เบซเบฒเบ เบงเปˆเบฒ เบœเบนเป‰ เปƒเบŠเป‰ เบชเบฐ เบซเบ™เบญเบ‡ เปƒเบซเป‰ เบ›เบฐ เบเบญเบš เบกเบต directory เบšเปเปˆ เบกเบต.

-Wparentheses
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบงเบปเบ‡เป€เบฅเบฑเบšเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™เปƒเบ™เบšเบฒเบ‡เบชเบฐเบžเบฒเบšเบเบฒเบ™, เป€เบŠเบฑเปˆเบ™: เป€เบกเบทเปˆเบญเบกเบต
เบเบฒเบ™เบกเบญเบšเปเบฒเบเปƒเบ™เบšเปเบฅเบดเบšเบปเบ”เบ—เบตเปˆเบ„เบฒเบ”เบเบฒเบ™เบ„เปˆเบฒเบ„เบงเบฒเบกเบˆเบดเบ‡, เบซเบผเบทเป€เบกเบทเปˆเบญเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰
เบ„เบปเบ™เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบฑเป‰เบ™เบกเบฑเบเบชเบฑเบšเบชเบปเบ™.

เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเป€เบŠเบฑเปˆเบ™ "x<=y<=z" เบ›เบฐเบเบปเบ”เบ‚เบถเป‰เบ™; เบญเบฑเบ™เบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบเบฑเบš "(x<=y ? 1 :
0) <= zโ€ เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบ•เบตเบ„เบงเบฒเบกเปเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ—เบณเบกเบฐเบ”เบฒ
เปเบ™เบงเบ„เบดเบ”.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบชเบฑเบšเบชเบปเบ™เบเบฑเบšเบ„เปเบฒเบงเปˆเบฒ "เบ–เป‰เบฒ" เป€เบ›เบฑเบ™
เบชเบฒเบ‚เบฒ "เบญเบทเปˆเบ™" เป€เบ›เบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง:

{
เบ–เป‰เบฒ (เบ)
เบ–เป‰เบฒ (เบ‚)
foo();
เบญเบทเปˆเบ™
เบšเบฒ ();
}

เปƒเบ™ C/C ++, เบ—เบธเบเป†เบชเบฒเบ‚เบฒ "เบญเบทเปˆเบ™" เป€เบ›เบฑเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก "เบ–เป‰เบฒ" เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡
เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เปเบกเปˆเบ™ "เบ–เป‰เบฒ (b)". เบ™เบตเป‰เบกเบฑเบเบˆเบฐเบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ„เบฒเบ”เป„เบงเป‰, เป€เบ›เบฑเบ™
เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เป‚เบ”เบเบเบฒเบ™เบซเบเปเป‰เบซเบ™เป‰เบฒเป‚เบ›เบฅเปเบเบฅเบกเป€เบฅเบทเบญเบ. เป€เบกเบทเปˆเบญเบกเบต
เบ—เปˆเบฒเปเบฎเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ™เบตเป‰, GCC เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”.
เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž, เปƒเบซเป‰เป€เบžเบตเปˆเบกเบงเบปเบ‡เป€เบฅเบฑเบšเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ›เบฐเบกเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก "เบ–เป‰เบฒ" เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”
เบšเปเปˆเบกเบตเบ—เบฒเบ‡เบ—เบตเปˆ "เบญเบทเปˆเบ™" เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ‚เบญเบ‡ "เบ–เป‰เบฒ". เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป€เบšเบดเปˆเบ‡
เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰:

{
เบ–เป‰เบฒ (เบ)
{
เบ–เป‰เบฒ (เบ‚)
foo();
เบญเบทเปˆเบ™
เบšเบฒ ();
}
}

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ GNU เบเบฑเบš "?:" เบ—เบตเปˆเบกเบต operand เบเบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™.
เป€เบกเบทเปˆเบญเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™ "?": operator เปเบกเปˆเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ boolean, เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบเปเบกเปˆเบ™
1. เป€เบฅเบทเป‰เบญเบเป†เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเบžเบฒเบเปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปเบ—เบ™.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

- เบฅเปเบฒเบ”เบฑเบšเบˆเบธเบ”
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฒเบ”เบกเบต semantics เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบฅเปเบฒเบ”เบฑเบš
เบเบปเบ”เบฅเบฐเบšเบฝเบšเบˆเบธเบ”เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C เปเบฅเบฐ C ++.

เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C เปเบฅเบฐ C ++ เบเปเบฒเบ™เบปเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบญเบญเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ C / C ++
เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡ เบฅเปเบฒเบ”เบฑเบš เบˆเบธเบ”, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบšเบฒเบ‡เบชเปˆเบงเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹: เบœเบนเป‰โ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบธเบ”โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹, เปเบฅเบฐโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบฑเป‰เบ™โ€‹
เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ (เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆ
เบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ), เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบœเบปเบ™เบ‚เบญเบ‡ operand เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ a
"&&", "||", "? :" เบซเบผเบท "," (เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”), เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เปœเบถเปˆเบ‡ (เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบ
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เป€เบกเบตเบ™โ€‹เบœเบปเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ–เบฝเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบโ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒโ€‹)โ€‹, เปเบฅเบฐโ€‹เปƒเบ™โ€‹
เบšเบฒเบ‡เบšเปˆเบญเบ™. เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป‚เบ”เบเบเบปเบ”เบฅเบฐเบšเบฝเบšเบˆเบธเบ”เบฅเปเบฒเบ”เบฑเบš, เบ„เปเบฒเบชเบฑเปˆเบ‡
เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™ subexpressions เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰. เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบญเบฐเบ—เบดเบšเบฒเบเบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเบชเบฑเปˆเบ‡เบšเบฒเบ‡เบชเปˆเบงเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบชเบญเบ‡
เบซเบ™เป‰เบฒเบ—เบตเปˆเบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบžเบฒเบเปƒเบ™เบซเบ™เบถเปˆเบ‡เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบˆเบธเบ”เบฅเปเบฒเบ”เบฑเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบงเบเบกเบฑเบ™, the
เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เบ„เบฐเบ™เบฐเบเปเบฒเบกเบฐเบเบฒเบ™เป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™.

เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบˆเบธเบ”เบฅเปเบฒเบ”เบฑเบšเบเบฑเบšเบ„เปˆเบฒเบ‚เบญเบ‡
เบงเบฑเบ”เบ–เบธเบกเบตเบœเบปเบ™. เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบถเป‰เบ™เบเบฑเบšเบ™เบตเป‰ เบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”;
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C เปเบฅเบฐ C ++ เบฅเบฐเบšเบธเบงเปˆเบฒ "เบฅเบฐเบซเบงเปˆเบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเบ•เปเปˆเป„เบ›เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡
เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เป„เบงเป‰โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปƒเบ™โ€‹เบซเบผเบฒเบโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ”เบฝเบงโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เป€เบกเบตเบ™โ€‹เบœเบปเบ™โ€‹เบ‚เบญเบ‡โ€‹
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบนเบ™เบ„เปˆเบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบˆเบฐเบ–เบทเบเบญเปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐ
เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰.". เบ–เป‰เบฒเป‚เบ„เบ‡เบเบฒเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบฅเบฐเป€เบกเบตเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เปเบกเปˆเบ™ "a = a++;", "a[n] = b[n++]" เปเบฅเบฐ "a[i++] =
i;". เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบงเบดเบ™เบดเบ”เป„เบชเป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เปเบฅเบฐเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเปƒเบซเป‰
เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบ—เบฒเบ‡เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบ•เปˆเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เบงเปˆเบฒเบกเบตเบœเบปเบ™เบ”เบตเบขเบนเปˆ
เบเบงเบ”เบžเบปเบšเบšเบฑเบ™เบซเบฒเปเบšเบšเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™.

เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเบšเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบกเบตเบเบฒเบ™เป‚เบ•เป‰เบงเบฒเบ—เบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™
เบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบˆเบธเบ”เบฅเปเบฒเบ”เบฑเบšเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ subtle. เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบปเบ™โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบ‚เบญเบ‡โ€‹
เบšเบฑเบ™เบซเบฒ, เบฅเบงเบกเบ—เบฑเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบต, เบญเบฒเบ”เบˆเบฐเบžเบปเบšเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบญเปˆเบฒเบ™ GCC,
เบขเบนเปˆhttp://gcc.gnu.org/readings.html>.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ เบชเปเบฒเบฅเบฑเบš C เปเบฅเบฐ C ++.

-Wno-return-local-addr
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ•เบปเบงเบŠเบตเป‰ (เบซเบผเบทเปƒเบ™ C ++, เป€เบญเบเบฐเบชเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡) เป„เบ›เบซเบฒเบ•เบปเบงเปเบ›เบ—เบตเปˆเป„เบ›
เบญเบญเบเบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒ.

- เบ›เบฐโ€‹เป€เบžเบ” Wreturnโ€‹
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบเบณเบ™เบปเบ”เบ”เป‰เบงเบเบ›เบฐเป€เบžเบ”เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ "int". เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆ "เบเบฑเบšเบ„เบทเบ™" เปƒเบ”เป†เบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบšเปเปˆเปเบกเปˆเบ™ "void" (เบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบญเบญเบเบˆเบฒเบเบเบฒเบ™เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเบเบฑเบšเบ„เบทเบ™เบกเบฒ
เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปˆเบฒ), เปเบฅเบฐเบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡ "เบเบฑเบšเบ„เบทเบ™" เบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™ "void".

เบชเปเบฒเบฅเบฑเบš C ++, เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบเบฑเบšเบ„เบทเบ™เบชเบฐเป€เบซเบกเบตเบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบ„เบงเบฒเบกเบงเบดเบ™เบดเบ”เป„เบช, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -Wno-return-type เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆ "เบ•เบปเป‰เบ™เบ•เป" เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ
เบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wshift-เบ™เบฑเบš-เบฅเบปเบš
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบเบฒเบ™เบ™เบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ›เบฑเบ™เบฅเบปเบš. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wshift-count-overflow
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ shift เบ™เบฑเบš >= width of type. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบชเบฐเบซเบงเบดเบ”
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ "เบชเบฐเบซเบผเบฑเบš" เบกเบตเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบ™เบฑเบš เปเบฅเบฐเบ‚เบฒเบ” "เบเปเบฅเบฐเบ™เบต"
เบชเปเบฒเบฅเบฑเบšเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ™เบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ™เบฑเป‰เบ™. (เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡ "เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™"
เบ›เป‰เบฒเบเบŠเบทเปˆเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰.) "เบเปเบฅเบฐเบ™เบต" เบ›เป‰เบฒเบเบŠเบทเปˆเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบ™เบฑเบš
เบเบฐเบ•เบธเป‰เบ™เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰ (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบ›เป‰เบฒเบเบŠเบทเปˆ "เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™"). เบ™เบตเป‰
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wswitch-default
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ‚เปเป‰เบ„เบงเบฒเบก "เบชเบฐเบซเบผเบฑเบš" เบšเปเปˆเบกเบตเบเปเบฅเบฐเบ™เบต "เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™".

-Wwwitch-enum
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ "เบชเบฐเบซเบผเบฑเบš" เบกเบตเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบ™เบฑเบš เปเบฅเบฐเบ‚เบฒเบ” "เบเปเบฅเบฐเบ™เบต"
เบชเปเบฒเบฅเบฑเบšเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ™เบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ™เบฑเป‰เบ™. เบ›เป‰เบฒเบ "เบเปเบฅเบฐเบ™เบต" เบขเบนเปˆเบ™เบญเบ
เบŠเปˆเบงเบ‡เบเบฒเบ™เบ™เบฑเบšเป€เบฅเบเบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเปƒเบŠเป‰. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆ
เบฅเบฐเบซเบงเปˆเบฒเบ‡ - เบชเบฐเบซเบงเบดเบ” เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบซเป‰เบ„เปเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฅเบฐเป€เบงเบฑเป‰เบ™
เบฅเบฐเบซเบฑเบ” enumeration เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเบฐเบกเบตเบ›เป‰เบฒเบ "เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™".

-Wswitch-bool
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ‚เปเป‰เบ„เบงเบฒเบก "เบชเบฐเบซเบผเบฑเบš" เบกเบตเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” boolean. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบญเบทเปˆเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
"เบšเบนเบฅ". เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

เบชเบฐเบซเบผเบฑเบš ((int) (a == 4))
{
...
}

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบšเป‚เบ›เบฃเปเบเบฃเบก C เปเบฅเบฐ C++.

-Wsync-nand (C เปเบฅเบฐ C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบง "__sync_fetch_and_nand" เปเบฅเบฐ "__sync_nand_and_fetch"
เปƒเบŠเป‰. เปœเป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเปเบฒเบเปƒเบ™ GCC 4.4.

-Wtrigraphs
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบžเบปเบš trigraphs เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™
(trigraphs เบžเบฒเบเปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš). เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wunused-but-set-parameter
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบกเบญเบšเปเบฒเบเปƒเบซเป‰, เปเบ•เปˆเบšเปเปˆเบ–เบทเบเปƒเบŠเป‰ (เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ
เบ–เบฐโ€‹เปเบซเบผเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™).

เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เปƒเบซเป‰เปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰".

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ เบžเป‰เบญเบกเบ”เป‰เบงเบ -Wextra.

-Wunused-but-set-variable
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ–เบทเบเบกเบญเบšเปเบฒเบเปƒเบซเป‰, เปเบ•เปˆเบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ (เบ™เบญเบเบˆเบฒเบเบกเบฑเบ™
เบ›เบฐเบเบฒเบ”). เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เปƒเบซเป‰เปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰".

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wunused-function
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบ–เบดเบ”เบ–เบทเบเบ›เบฐเบเบฒเบ”เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ” เบซเบผเบทเป€เบ›เบฑเบ™เบชเบฐเบ–เบดเบ”เบ—เบตเปˆเบšเปเปˆเบขเบนเปˆเปƒเบ™เปเบ–เบง
เบŸเบฑเบ‡เบŠเบฑเบ™เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wunused-label
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ›เป‰เบฒเบเบ–เบทเบเบ›เบฐเบเบฒเบ”เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เปƒเบซเป‰เปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰".

-Wunused-local-typedefs (C, Objective-C, C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ typedef เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wunused-เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบŸเบฑเบ‡เบŠเบฑเบ™เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ™เบญเบเบˆเบฒเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡เบกเบฑเบ™.

เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เปƒเบซเป‰เปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰".

-Wno-unused-เบœเบปเบ™
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบœเบนเป‰เป‚เบ—เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบซเบกเบฒเบเบ”เป‰เบงเบเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "warn_unused_result" เป€เบฎเบฑเบ”.
เบšเปเปˆเปƒเบŠเป‰เบกเบนเบ™เบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบกเบฑเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -Wunused เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹.

-Wunused-variable
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ เบซเบผเบทเบ•เบปเบงเปเบ›เบชเบฐเบ–เบดเบ”เบ—เบตเปˆเบšเปเปˆเบ„เบปเบ‡เบ—เบตเปˆเบˆเบฐเบšเปเปˆเบ–เบทเบเปƒเบŠเป‰เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เปƒเบซเป‰เปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰".

-Wunused-value
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ„เบณเบ–เบฐเปเบซเบผเบ‡เบ„เบณเบ™เบงเบ™เบœเบปเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡. เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เป€เบ›เบฑเบ™ "เป‚เบกเป‰". เบ™เบตเป‰โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบ -
เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ เบซเบผเบทเบ—เบฒเบ‡เบŠเป‰เบฒเบเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡.
เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™ "x[i,j]" เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ "x[(void)i,j]"
เบšเปเปˆ.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

- เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
เบ—เบฑเบ‡ เปเบปเบ” เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡ - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบฅเบงเบกโ€‹.

เป€เบžเบทเปˆเบญโ€‹เปƒเบซเป‰โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบ—เปˆเบฒเบ™โ€‹เบˆเบฐโ€‹เบ•เป‰เบญเบ‡โ€‹เบฅเบฐโ€‹เบšเบธโ€‹
-Wextra - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ (เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ - เบเบฒ implies - เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹), เบซเบผเบทเบฅเบฐเบšเบธเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
-Wunused-เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต.

- เบ›เบฐเบเบฒเบ”
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเปเบ›เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ–เบทเบเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเปˆเบญเบ™ เบซเบผเบทเบ–เป‰เบฒเบ•เบปเบงเปเบ›
เบญเบฒเบ”เบˆเบฐเบ–เบทเบ clobbed เป‚เบ”เบเบเบฒเบ™เป‚เบ— "setjmp". เปƒเบ™ C ++, เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเบ–เบดเบ” เบซเบผเบท เบšเปเปˆเปเบกเปˆเบ™.
เบชเบฐเบกเบฒเบŠเบดเบ "const" เบ„เบปเบ‡เบ—เบตเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบชเป‰เบฒเบ‡.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ„เปˆเบฒ uninitialized เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เปƒเบ™
initializer เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ - เบงเบดเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป€เบญเบ‡เบซเบผเบท clobbered เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™,
union เบซเบผเบท array variables เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเปเบ›เบ—เบตเปˆ uninitialized เบซเบผเบท clobbered
เป‚เบ”เบเบฅเบงเบก. เบžเบงเบเบกเบฑเบ™เบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบซเบผเบทเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบงเปˆเบฒ "เบเบฒเบ™เป€เบซเบ™เบฑเบ‡เบ•เบตเบ‡". เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบ•เบปเบงเปเบ›เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบซเบผเบทเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบกเบต
เบ„เปเบฒเป€เบ•เบทเบญเบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เปเบฅเบฐเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ GCC เบ—เบตเปˆเปƒเบŠเป‰.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบ„เปเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเปเบ›เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ„เบดเบ”เป„เบฅเปˆ a
เบ„เปˆเบฒเบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบšเปเปˆเป€เบ„เบตเบเบ–เบทเบเปƒเบŠเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบฅเบถเบšเป‚เบ”เบเบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™
เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบžเบดเบกเบ„เปเบฒเป€เบ•เบทเบญเบ™.

-Wmaybe-unitialized
เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ–เป‰เบฒเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เบซเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ•เบปเบงโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เบกเบตโ€‹เบšเบฒเบ‡โ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบญเบทเปˆเบ™เป†โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบ•เบปเบงเปเบ›เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, compiler เบ›เปˆเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบชเบนเบ”เป„เบ”เป‰
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ GCC เบšเปเปˆเบชเบฐเบซเบฅเบฒเบ”เบžเปเบ—เบตเปˆเบˆเบฐเป€เบซเบฑเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบฅเบฐเบซเบฑเบ”เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ•เป‰เบญเบ‡
เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ›เบฐเบเบปเบ”เบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป„เบ”เป‰:

{
intx;
เบชเบฐเบซเบผเบฑเบš (y)
{
เบเปเบฅเบฐเบ™เบต 1: x = 1;
เบ—เปเบฒเบฅเบฒเบ;
เบเปเบฅเบฐเบ™เบต 2: x = 4;
เบ—เปเบฒเบฅเบฒเบ;
เบเปเบฅเบฐเบ™เบต 3: x = 5;
}
foo(x);
}

เบ–เป‰เบฒเบ„เปˆเบฒเบ‚เบญเบ‡ "y" เปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบต 1, 2 เบซเบผเบท 3, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ "x" เบˆเบฐเบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฐเป€เบซเบกเบต, เปเบ•เปˆ GCC.
เบšเปเปˆเบฎเบนเป‰เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰. เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เบเปเบฅเบฐเบ™เบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบกเบต
เบขเบทเบ™เบขเบฑเบ™(0) เบซเบผเบทเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹เป€เบ•เบทเบญเบ™โ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ•เบปเบงโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เป€เบซเบตเบโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เป‚เบ”เบ a
เป‚เบ—เบซเบฒ "longjmp". เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

compiler เป€เบซเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป‚เบ—เบซเบฒ "setjmp". เบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบนเป‰เบงเปˆเบฒ "longjmp" เบˆเบฐเบขเบนเปˆเปƒเบช
เป€เบญเบตเป‰เบ™เบงเปˆเบฒ; เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบ•เบปเบงเบˆเบฑเบšเบชเบฑเบ™เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบˆเบธเบ”เปƒเบ”เบซเบ™เบถเปˆเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”. เป€เบ›เบฑเบ™
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเป€เบžเบฒเบฐเบงเปˆเบฒ "longjmp"
เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบญเบตเป‰เบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒ.

เบšเบฒเบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบ‚เบตเป‰เบฎเป‰เบฒเบเบชเบฒเบกเบฒเบ”เบซเบผเบตเบเบฅเปˆเบฝเบ‡เป„เบ”เป‰เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ›เบฐเบเบฒเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเปƒเบŠเป‰เบ™เบฑเป‰เบ™
เบšเปเปˆเป€เบ„เบตเบเบเบฑเบšเบ„เบทเบ™เบกเบฒเป€เบ›เบฑเบ™ "noreturn".

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ or -Wextra.

-Wunknown-pragmas
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบžเบปเบšเบ„เบณเบชเบฑเปˆเบ‡ "#pragma" เบ—เบตเปˆ GCC เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆ. เบ–เป‰เบฒเบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เบเบฑเบ‡เบญเบญเบเบชเปเบฒเบฅเบฑเบš pragmas เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™เบฅเบฐเบšเบปเบš
เป„เบŸเบฅเปŒเบซเบปเบง. เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ„เปเบฒเป€เบ•เบทเบญเบ™เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบ - เบเบฒ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

-Wno-pragmas
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰ pragmas เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เป€เบŠเบฑเปˆเบ™: เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, syntax เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบซเบผเบท
เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ pragmas. เป€เบšเบดเปˆเบ‡เบ™เบณ -Wunknown-pragmas.

- เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเป‰เบฒเบชเบธเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ -fstrict-aliasing เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เบกเบฑเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบงเปˆเบฒ
เบญเบฒเบ”เบˆเบฐเบ—เปเบฒเบฅเบฒเบเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”เบ—เบตเปˆ compiler เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.
เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบˆเบฑเบšโ€‹เบ—เบธเบโ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹, เปเบ•เปˆโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบˆเบฑเบšโ€‹เบซเบผเบฒเบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹
เบ‚เบธเบก. เบกเบฑเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ - เบเบฒ. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -Wstrict-aliasing=3

-Wstrict-aliasing=n
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ -fstrict-aliasing เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เบกเบฑเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบงเปˆเบฒ
เบญเบฒเบ”เบˆเบฐเบ—เปเบฒเบฅเบฒเบเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”เบ—เบตเปˆ compiler เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.
เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เบเบปเบ‡เบเบฑเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™ (เบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบซเบ™เป‰เบญเบเบฅเบปเบ‡). เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™
เบเบฑเบ‡เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบซเบผเบฒเบ, เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™ -O เบงเบฝเบเบ‡เบฒเบ™. - เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเป‰เบฒเบชเบธเบ” is
เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -Wstrict-aliasing=3.

เบฅเบฐเบ”เบฑเบš 1: เบฎเบธเบเบฎเบฒเบ™เบ—เบตเปˆเบชเบธเบ”, เป„เบง, เบ–เบทเบเบ•เป‰เบญเบ‡เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”. เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบกเบทเปˆเบญเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบ‚เบถเป‰เบ™
เบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™เปเบ•เปˆ -fstrict-aliasing เบเบฑเบ‡เบ—เปเบฒเบฅเบฒเบเบฅเบฐเบซเบฑเบ”, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบซเบผเบฒเบ
เบฅเบปเบš. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบกเบตเบ‚เปเป‰เบ”เบตเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ. เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบ•เบปเบงเบŠเบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”
เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเป€เบ„เบตเบเบญเป‰เบฒเบ‡เบญเบตเบ‡. เปเบฅเปˆเบ™เบขเบนเปˆเบ—เบฒเบ‡เบซเบ™เป‰เบฒ
เบชเบดเป‰เบ™เบชเบธเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบฅเบฐเบ”เบฑเบš 2: เบฎเบธเบเบฎเบฒเบ™, เป„เบง, เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เป€เบเบตเบ™เป„เบ›. เบญเบฒเบ”เบˆเบฐเบเบฑเบ‡เบกเบตเบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบฒเบ (เบšเปเปˆ
เป€เบ–เบดเบ‡เบงเปˆเบฒเบฅเบฐเบ”เบฑเบš 1), เปเบฅเบฐเบ‚เปเป‰เป€เบชเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปœเป‰เบญเบเปœเบถเปˆเบ‡ (เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเบซเบผเบฒเบเบเบงเปˆเบฒเบฅเบฐเบ”เบฑเบš 1).
เบšเปเปˆเบ„เบทเบเบฑเบšเบฅเบฐเบ”เบฑเบš 1, เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ—เบตเปˆเบขเบนเปˆเบ–เบทเบเป€เบญเบปเบฒ. เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเบ„เบปเบšเบ–เป‰เบงเบ™.
เปเบฅเปˆเบ™เบขเบนเปˆเบ”เป‰เบฒเบ™เปœเป‰เบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบฅเบฐเบ”เบฑเบš 3 (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš - เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเป‰เบฒเบชเบธเบ”): เบ„เบงเบ™เบกเบตเบ‚เปเป‰เบ”เบตเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบฒเบ เปเบฅเบฐเปœเป‰เบญเบเบซเบผเบฒเบ
เบ—เบฒเบ‡เบฅเบปเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบŠเป‰เบฒเบเบงเปˆเบฒเบฅเบฐเบ”เบฑเบš 1 เบซเบผเบท 2 เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.
เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™ pun + dereference เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒ:
"*(int*)&some_float". เบ–เป‰เบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบกเบฑเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบˆเบธเบ”เบซเบฅเบฑเบ‡, เบšเปˆเบญเบ™เบ—เบตเปˆ
เบกเบฑเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบซเบผเบฒเบเป‚เบ”เบเปƒเบŠเป‰เบˆเบธเบ”เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบ•เปเปˆเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเป„เบ›เบซเบฒเบ‚เปเป‰เบกเบนเบ™.
เป€เบ•เบทเบญเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเปเบ›เบ‡เปเบฅเป‰เบงเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบšเปเปˆเบ„เบปเบšเบ–เป‰เบงเบ™
เบ›เบฐเป€เบžเบ”

-Wstrict-เบฅเบปเป‰เบ™
-Wstrict-overflow=n
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ -fstrict-เบฅเบปเป‰เบ™ เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เบกเบฑเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบต
เบšเปˆเบญเบ™เบ—เบตเปˆ compiler optimize เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ—เบตเปˆเบฅเบปเบ‡เบ™เบฒเบก overflow เบšเปเปˆ
เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ—เบธเบเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบญเบฒเบ”เบˆเบฐเบฅเบปเป‰เบ™: เบกเบฑเบ™
เบžเบฝเบ‡เปเบ•เปˆเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆ compiler เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบตเป‰
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ™เบฒเบก overflow เบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปเบกเปˆเบ™เบ›เบญเบ”เป„เบžเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบ–เป‰เบฒ
เบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบกเปˆเบ™เปเบšเบšเบ—เบตเปˆ overflow เบšเปเปˆเป€เบ„เบตเบเป€เบฎเบฑเบ”, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡,
เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ: เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”
เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒ. เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบชเบธเบกเปƒเบชเปˆเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡
เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹. เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบญเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบเบตเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹เบเบฒเบ™โ€‹เบŠโ€‹เป‰โ€‹เปโ€‹เบฒ loop เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹, เป‚เบ”เบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปเบกเปˆเบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹
เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ loop เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”.

-Wstrict-overflow=1
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบ—เบฑเบ‡เบ„เปเบฒเบ–เบฒเบกเปเบฅเบฐเบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฑเบš
-fstrict-เบฅเบปเป‰เบ™, compiler simplifies "x + 1 > x" เป€เบ›เบฑเบ™ 1. เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰
-Wstrict-เบฅเบปเป‰เบ™ เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ; เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบšเปเปˆเปเบกเปˆเบ™, เปเบฅเบฐเบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เบฎเบฝเบเบฎเป‰เบญเบ‡เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

-Wstrict-overflow=2
เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเปเบกเปˆเบ™เบ‡เปˆเบฒเบเป€เบ›เบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡: "abs (x) >= 0". เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบ‡เปˆเบฒเบเบ”เบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -fstrict-เบฅเบปเป‰เบ™ เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบœเบปเบ™เบเบฐเบ—เบปเบš, เป€เบžเบฒเบฐเบงเปˆเบฒ "abs (INT_MIN)" overflows เบเบฑเบš "INT_MIN", เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบชเบนเบ™.
-Wstrict-เบฅเบปเป‰เบ™ (เบšเปเปˆเบกเบตเบฅเบฐเบ”เบฑเบš) เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš -Wstrict-overflow=2.

-Wstrict-overflow=3
เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡: "x + 1
> 1" เบ–เบทเบเปเบ›เป€เบ›เบฑเบ™ "x > 0".

-Wstrict-overflow=4
เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเบงเบกเป€เบญเบปเบฒเป‚เบ”เบเบเปเบฅเบฐเบ™เบตเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡: "(x * 10) / 5" เปเบกเปˆเบ™ simplified เบเบฑเบš "x * 2".

-Wstrict-overflow=5
เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆ compiler เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ„เบปเบ‡เบ—เบตเปˆ
เบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš. เบ•เบปเบงเบขเปˆเบฒเบ‡: "x + 2 > y" เบ–เบทเบเปเบ›เป€เบ›เบฑเบ™ "x + 1 >= y".
เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฒเบเบ‡เบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเป€เบ•เบทเบญเบ™เป„เบžเบชเบนเบ‡เบชเบธเบ”เป€เบžเบฒเบฐเบงเปˆเบฒเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ™เบตเป‰
เปƒเบŠเป‰เบเบฑเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบซเบผเบฒเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ
เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

-Wsuggest-attribute=[เบšเปเบฅเบดเบชเบธเบ”|const|noreturn|เบฎเบนเบšเปเบšเบš]
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”. เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹
เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบฅเบธเปˆเบกโ€‹เบ™เบตเป‰โ€‹.

-Wsuggest-attribute=เบšเปเบฅเบดเบชเบธเบ”
-Wsuggest-attribute=const
-Wsuggest-attribute=noreturn
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบšเปเบฅเบดเบชเบธเบ”", "const" เบซเบผเบท
"noreturn". compiler เบžเบฝเบ‡เปเบ•เปˆเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™เป†
เบซเบ™เปˆเบงเบเบซเบผเบท (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ "เบšเปเบฅเบดเบชเบธเบ”" เปเบฅเบฐ "const") เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบชเบนเบ”เป„เบ”เป‰เบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ
เบเบฑเบšเบ„เบทเบ™เบกเบฒเป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด. เบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเบเบฑเบšเบ„เบทเบ™เบกเบฒเบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบดเบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเบญเบฑเบ™เป€เบ›เบฑเบ™เบ™เบดเบ”
loop เบซเบผเบทเบเบฑเบšเบ„เบทเบ™เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเป‚เบ”เบเบเบฒเบ™เบ–เบดเป‰เบก, เป€เบญเบตเป‰เบ™เบงเปˆเบฒ "เป€เบญเบปเบฒเบฅเบนเบเบญเบญเบ" เบซเบผเบทเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ. เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ™เบตเป‰
เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fipa-pure-const, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.
เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ.

-Wsuggest-attribute=เบฎเบนเบšเปเบšเบš
-Wmissing-format-attribute
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบฎเบนเบšเปเบšเบš".
เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบšเปเปˆเปเบกเปˆเบ™เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡. GCC เป€เบ”เบปเบฒเบงเปˆเบฒ
เบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบฎเบนเบšเปเบšเบš" เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบ,
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบซเบผเบทเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ„เบงเบ™เบกเบตเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡
"format" attribute เปƒเบ™เบ›เบฐเป€เบžเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš. เป€เบŠเบฑเปˆเบ™: เบŠเป‰เบฒเบเบกเบทเบ‚เบญเบ‡
เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบซเบผเบทเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ•เบปเบงเปเบ›, เบซเบผเบทเบœเบปเบ™เบ•เบญเบšเปเบ—เบ™
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบ„เบงเบ™เบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบฎเบนเบšเปเบšเบš".
เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™.

GCC เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบ™เบดเบเบฒเบกเบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบš "เบฎเบนเบšเปเบšเบš"
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ. เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. GCC เป€เบ”เบปเบฒเบงเปˆเบฒ "เบฎเบนเบšเปเบšเบš"
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เป€เบŠเบฑเปˆเบ™โ€‹
"vprintf" เบซเบผเบท "vscanf", เปเบ•เปˆเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบฐเป€เบซเบกเบตเป„เบ›, เปเบฅเบฐเบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบชเปเบฒเบฅเบฑเบšเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบฎเบนเบšเปเบšเบš" เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบเบงเบ”เบžเบปเบš.

-Wsuggest-final-types
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™ virtual เบ—เบตเปˆเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบฅเบฐเบซเบฑเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ›เบฐเป€เบžเบ”
เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เบ”เป‰เบงเบเบ•เบปเบงเบฅเบฐเบšเบธ "เบชเบธเบ”เบ—เป‰เบฒเบ" C++ 11, เบซเบผเบท, เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบ›เบฐเบเบฒเบ”เปƒเบ™
namespace เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ devirtualize polymorphic
เป‚เบ—. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบšเปˆเบญเบ™เบ—เบตเปˆ
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เป€เบชเบฑเป‰เบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบŠเบฑเป‰เบ™โ€‹เบฎเบฝเบ™โ€‹เปเบกเปˆเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบซเบผเบฒเบโ€‹เบเบงเปˆเบฒโ€‹.

-Wsuggest-final-methods
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™ virtual เบ—เบตเปˆเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบฅเบฐเบซเบฑเบ”เบˆเบฐเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™
เบ›เบฐเบเบฒเบ”เบ”เป‰เบงเบเบ•เบปเบงเบฅเบฐเบšเบธ "เบชเบธเบ”เบ—เป‰เบฒเบ" C++11, เบซเบผเบท, เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบ™
namespace เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ เบซเบผเบทเบกเบตเบ•เบปเบงเบฅเบฐเบšเบธ "เบชเบธเบ”เบ—เป‰เบฒเบ". เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบ”เป‰เบงเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบšเปˆเบญเบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบŸเบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™เปเบกเปˆเบ™
เบชเบปเบกเบšเบนเบ™เบเบงเปˆเบฒ. เบกเบฑเบ™เปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปเบฒเบญเบดเบ”เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡
-Wsuggest-final-types เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเบ”เป‰เบงเบเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเปƒเบซเบกเปˆ.

-Wsuggest-override
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™ overriding เบŸเบฑเบ‡เบŠเบฑเบ™ virtual เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเบ”เป‰เบงเบ override keyword.

- Warray-bounds
-Warray-bounds=n
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ -ftree-vrp เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš -O2 เปเบฅเบฐเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡). เบกเบฑเบ™
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš subscripts เบเบฑเบš arrays เบชเบฐเป€เบซเบกเบตเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Warray-bounds=1
เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ‚เบญเบ‡ - Warray-bounds เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ; เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡
เบšเปเปˆเปเบกเปˆเบ™, เปเบฅเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

-Warray-bounds=2
เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบญเบญเบเบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเปเบฒเบฅเบฑเบš arrays เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐเบชเปเบฒเบฅเบฑเบš arrays เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰. เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ a
เบˆเปเบฒเบ™เบงเบ™เบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเปเบฅเบฐเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wbool-เบ›เบฝเบšเบ—เบฝเบš
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ boolean เบ—เบฝเบšเบเบฑเบšเบ„เปˆเบฒ integer เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบ
"เบˆเบดเบ‡"/"เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡". เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเบฐเป€เปเบต:

int n = 5;
...
เบ–เป‰เบฒ ((n > 1) == 2) { ... }

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wno-discarded-qualifiers (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเบŠเบตเป‰เบ›เบฐเป€เบžเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบ. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เป„เบ”เป‰
compiler เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเปเบ› "const char *" เบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰ "char
*" เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

-Wno-discarded-array-qualifiers (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ›เบฐเป€เบžเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบญเบฒเป€เบฃเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบเบ•เบปเบงเบŠเบตเป‰
เบเบปเบเป€เบฅเบตเบ. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, compiler เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเปเบ› "const int (*)[]" เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ.
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต "int (*)[]". เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

-Wno-incompatible-pointer-types (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบกเบตเบเบฒเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.
เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบšเปเปˆเบเบงเบกเป€เบญเบปเบฒเป‚เบ”เบ -Wno-pointer-sign, เป€เบŠเบดเปˆเบ‡เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰
argument passing เบซเบผเบทเบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบ—เบตเปˆเบกเบตเป€เบŠเบฑเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-Wno-int-เปเบ›เบ‡ (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบˆเปเบฒเบ™เบงเบ™เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰ เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก.
เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปƒเบˆเป€เบซเบฅเบทเป‰เบญเบกเปƒเบช implicit; เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ—เบตเปˆโ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹
-Wno-int-to-pointer-cast เปเบฅเบฐ -Wno-pointer-to-int-cast เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-Wno-div-by-zero
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเบเบฒเบ™เบซเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเป‚เบ”เบเบชเบนเบ™. เบเบฒเบ™เปเบšเปˆเบ‡เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เป‚เบ”เบ
เบชเบนเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš infinities เปเบฅเบฐ
NaNs.

-Wsystem-headers
เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš. เบ„เบณเป€เบ•เบทเบญเบ™เบˆเบฒเบ
เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปเบกเปˆเบ™เบ–เบทเบเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบกเบฑเบเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”
เบŠเบตเป‰เบšเบญเบเป€เบ–เบดเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡ เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เบญเบญเบเบ‚เบญเบ‡ compiler เบเบฒเบเบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เป„เบ”เป‰. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เบšเบญเบ GCC เปƒเบซเป‰เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบˆเบฒเบเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ„เบทเบเบฑเบšเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒ
เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ - เบเบฒ เบชเบปเบกเบ—เบปเบšเบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบšเปเปˆ เบšเปเปˆ เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš pragmas เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš --- เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบฑเป‰เบ™, -Wunknown-pragmas
เบเบฑเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เปƒเบŠเป‰.

-Wtrampoline
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš trampolines เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™. trampoline เป€เบ›เบฑเบ™
เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบซเบผเบทเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™เบขเบนเปˆเป€เบ—เบดเบ‡ stack เป€เบกเบทเปˆเบญเบ—เบตเปˆเบขเบนเปˆ
เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ nested เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ nested เป‚เบ”เบเบ—เบฒเบ‡เบญเป‰เบญเบก.
เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบžเบดเป€เบชเบ”.
เปเบ•เปˆ, เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบกเบฑเบ™เปเบกเปˆเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบต stack เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”
เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

-Wfloat-เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบเบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ„เบงเบฒเบกเบชเบฐเป€เปเบตเบžเบฒเบš.

เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบฅเบฑเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เบเปเปˆเบชเบฐเบ”เบงเบ (เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก) เป€เบžเบทเปˆเบญ
เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เบ„เปˆเบฒโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบกเบฒเบ™โ€‹เบเบฑเบšโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เปเบ—เป‰โ€‹เบˆเบดเบ‡โ€‹เบ—เบตเปˆโ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™ infinitely.
เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบ™เบตเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบดเบ”เป„เบฅเปˆ (เป‚เบ”เบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”, เบซเบผเบทเบšเบฒเบ‡
เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบญเบทเปˆเบ™เป†โ€‹) เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบซเบผเบทโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ—เบตเปˆโ€‹เบ„เปเบฒโ€‹เบ™เบงเบ™โ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹, เปเบฅเบฐโ€‹
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบกเบฑเบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ›เบฝเบšโ€‹เบ—เบฝเบš (เปเบฅเบฐโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เป€เบ›เบฑเบ™โ€‹
เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹)โ€‹. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบชเบฐเป€เบซเบกเบตเบžเบฒเบš, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡
เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เบฑเบ‡เบชเบญเบ‡เบ„เปˆเบฒเบกเบตเป„เบฅเบเบฐเบ—เบตเปˆเบ—เบฑเบšเบŠเป‰เบญเบ™เบเบฑเบ™; เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบเบฑเบš
เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ„เบงเบฒเบกเบชเบฐเป€เบซเบกเบตเบžเบฒเบšเปเบกเปˆเบ™เบญเบฒเบ”เบˆเบฐเบœเบดเบ”เบžเบฒเบ”.

- เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบเปเปˆเบชเป‰เบฒเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก เปเบฅเบฐ ISO C. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ ISO C เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก, เปเบฅเบฐ/เบซเบผเบทเบกเบตเบšเบฑเบ™เบซเบฒ
เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบ„เบงเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™.

* เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ Macro เบ—เบตเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบง macro. เปƒเบ™
เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบกเบฐเบซเบฒเบžเบฒเบ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบžเบฒเบเปƒเบ™เบ•เบปเบงเปœเบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡, เปเบ•เปˆเปƒเบ™ ISO C
เบกเบฑเบ™เบšเปเปˆ.

* เปƒเบ™ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก, เบšเบฒเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ preprocessor เบšเปเปˆเบกเบต. เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
preprocessors เบžเบฝเบ‡เปเบ•เปˆเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ # เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ–เบฑเบ™
1 เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™ - เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก เป€เบ•เบทเบญเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ”เบฑเป‰เบ‡โ€‹เป€เบ”เบตเบก C
เป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบ•เปˆเบšเปเปˆเบชเบปเบ™เปƒเบˆเป€เบžเบฒเบฐเบงเปˆเบฒ # เบšเปเปˆเบ›เบฒเบเบปเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เปเบฒเบญเบดเบ”
เป€เบชเบฑเป‰เบ™. เบกเบฑเบ™เบเบฑเบ‡เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบŠเบทเปˆเบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบŠเบฑเปˆเบ™ "#pragma" เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ”เบ
C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเป‚เบ”เบเบเบฒเบ™เบซเบเปเป‰เบซเบ™เป‰เบฒเบžเบงเบเบกเบฑเบ™. เบšเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”
เบฎเบฑเบšเบฎเบนเป‰ "#elif", เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

* เบกเบฐเบซเบฒเบžเบฒเบเบ„เป‰เบฒเบเบ„เบทเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ›เบฒเบเบปเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

* เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ unary plus.

* The U integer constant suffix, เบซเบผเบท F or L เบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบˆเบธเบ”เบฅเบญเบ.
(C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ L suffix เบชเบธเบ” integer constants.) เบซเบกเบฒเบเป€เบซเบ”, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
suffixes เบ›เบฐเบเบปเบ”เบขเบนเปˆเปƒเบ™ macros เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”,
เบ•เบปเบงเบขเปˆเบฒเบ‡ _MIN/_MAX เบกเบฐเบซเบฒเบžเบฒเบเปƒเบ™ " ". เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ macro เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰เบญเบฒเบ”เบˆเบฐ
เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž spurious, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก preprocessor เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡ GCC เบกเบต
เบชเบฐเบžเบฒเบšเบเบฒเบ™เบžเบฝเบ‡เบžเปเป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

* เบŸเบฑเบ‡เบŠเบฑเบ™เบ›เบฐเบเบฒเบ”เบžเบฒเบเบ™เบญเบเปƒเบ™เบซเบ™เบถเปˆเบ‡เบ•เบฑเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡
block.

* เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ "เบชเบฐเบซเบผเบฑเบš" เบกเบต operand เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "เบเบฒเบง".

* เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ "static" เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก "static" เบซเบ™เบถเปˆเบ‡. เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เบเบญเบกเบฎเบฑเบšเป‚เบ”เบเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡.

* เบ›เบฐเป€เบžเบ” ISO เบ‚เบญเบ‡เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบกเบตเบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡ เบซเบผเบท signedness เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™
เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบžเบทเป‰เบ™โ€‹เป€เบกเบทเบญเบ‡โ€‹. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™เบญเบญเบเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเปเบกเปˆเบ™เบชเบดเบš.
เป€เบŠเบฑเปˆเบ™: เบ„เปˆเบฒเป€เบฅเบเบ–เบฒเบ™เบชเบดเบšเบซเบปเบ เบซเบผเบทเบ„เปˆเบฒเป€เบฅเบเปเบ›เบ”, เป€เบŠเบดเปˆเบ‡เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบชเบฐเปเบ”เบ‡เป€เบ–เบดเบ‡เบฎเบนเบšเปเบšเบšเบšเบดเบ”, เบšเปเปˆเปเบกเปˆเบ™
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš.

* เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบญเบ‡ ISO string concatenation เบ–เบทเบโ€‹เบเบงเบ”โ€‹เบžเบปเบšโ€‹.

* เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบฅเบงเบกโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹.

* เบ•เบปเบงเบฅเบฐเบšเบธเบ‚เบฑเบ”เบเบฑเบšเบ›เป‰เบฒเบเบเบณเบเบฑเบš. เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก C เบ‚เบฒเบ” namespace เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบš
เบ›เป‰เบฒเบ เบเบณ เบเบฑเบš.

* เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเบฐเบซเบฐเบžเบฑเบ™. เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบชเบนเบ™, เบเบฒเบ™เป€เบ•เบทเบญเบ™เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™.
เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เปƒเบ™เบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰เบ›เบฒเบเบปเบ”
เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡ "__STDC__" เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เปเบฅเบฐเบญเบตเบ‡เปƒเบชเปˆ
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบชเบนเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบต C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก.

* เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เป‚เบ”เบโ€‹เบ•เบปเป‰เบ™โ€‹เปเบšเบšโ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบ„เปˆเบฒโ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆ / floating -เบˆเบธเบ”โ€‹เปเบฅเบฐโ€‹เบเบปเบ‡โ€‹เบเบฑเบ™โ€‹เบ‚เป‰เบฒเบกโ€‹. เป„เบ”เป‰
เบเบฒเบ™เบ‚เบฒเบ”เบ•เบปเบงเปเบšเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบเบฑเบš C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเป€เบฎเบฑเบ”เปƒเบซเป‰เบฎเป‰เบฒเบเปเบฎเบ‡
เบšเบฑเบ™เบซเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบŠเบธเบ”เบเปˆเบญเบเบ‚เบญเบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰; เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ”เป€เบ•เบฑเบก
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ - เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปเบšเบšโ€‹เบ”เบฑเป‰เบ‡โ€‹เป€เบ”เบตเบกโ€‹.

* เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบกโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบš ISO Cโ€‹. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™เบ•เบฑเป‰เบ‡เปƒเบˆ เบšเปเปˆ เบญเบญเบเบกเบฒ
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบ•เบปเป‰เบ™โ€‹เปเบšเบšโ€‹เบซเบผเบทโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ” ISO C เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹
เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบกเบทเปˆเบญเปƒเบŠเป‰ macro เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบ‚เบญเบ‡ libiberty,
"PARAMS" เปเบฅเบฐ "VPARAMS". เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเบ‚เป‰เบฒเบกเบœเปˆเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบงเบฒเบ‡เป„เบงเป‰
เป€เบžเบฒเบฐเบงเปˆเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GCC เปเบฅเป‰เบง เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก.

- เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปเบšเบšโ€‹เบ”เบฑเป‰เบ‡โ€‹เป€เบ”เบตเบกโ€‹ (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเป‰เบ™เปเบšเบšเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เปเบ›เบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™
เบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเปเบšเบš. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เปเบ›เบ‡เบ‚เบญเบ‡
เบˆเบธเบ”เบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบˆเบฐเป€เบฅเบทเปˆเบญเบ™เปเบฅเบฐเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™, เปเบฅเบฐเบเบฒเบ™เปเบ›เบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบซเบผเบท
เบเบฒเบ™เบฅเบปเบ‡เบ™เบฒเบกเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบˆเบธเบ”เบ„เบปเบ‡เบ—เบตเปˆเบเบปเบเป€เบงเบฑเป‰เบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบกเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™.

-Wdeclaration เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ–เบฐโ€‹เปเบซเบผเบ‡โ€‹เบเบฒเบ™โ€‹ (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เปƒเบ™เบšเบฅเบฑเบญเบ. เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ™เบตเป‰, เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ
เบˆเบฒเบ C ++, เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ”เป‰เบงเบ ISO C99 เปเบฅเบฐเบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ GCC. เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™
เบฎเบญเบ‡เบฎเบฑเบš ISO C90.

-Wundef
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบ–เบทเบเบ›เบฐเป€เบกเบตเบ™เบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ "#if".

-wno-endif-labels
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆ "#else" เบซเบผเบท "#endif" เบ–เบทเบเบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบ‚เปเป‰เบ„เบงเบฒเบก.

- เป€เบ‡เบปเบฒ
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ เบซเบผเบทเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ›เบฐเป€เบžเบ”เป€เบ›เบฑเบ™เป€เบ‡เบปเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบญเบทเปˆเบ™,
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เบ›เบฐเป€เบžเบ”, เบชเบฐเบกเบฒเบŠเบดเบเบŠเบฑเป‰เบ™เบฎเบฝเบ™ (เปƒเบ™ C ++), เบซเบผเบทเบ•เบปเบงเปเบ›เบ•เบปเบงเบขเปˆเบฒเบ‡ (เปƒเบ™ Objective-C) เบซเบผเบท
เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบงเปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบ‡เบปเบฒ. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™ C ++, compiler เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ a
เบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ‡เบปเบฒเป€เบ›เบฑเบ™ typedef เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ–เป‰เบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ‡เบปเบฒ struct/class/enum.

-Wno-shadow-ivar (เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบšเบฑเบ‡เบ•เบปเบงเปเบ›เบ•เบปเบงเปเบ›เปƒเบ™ Objective-C
เบงเบดเบ—เบตเบเบฒเบ™.

-Wlarger-than=len
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบงเบฑเบ”เบ–เบธเปƒเบซเบเปˆเบเบงเปˆเบฒ len bytes เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

-Wframe-larger-than=len
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบเบญเบšเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒ len เป„เบšเบ•เปŒ. เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹
เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบเบญเบš stack เปเบกเปˆเบ™เป‚เบ”เบเบ›เบฐเบกเบฒเบ™เปเบฅเบฐเบšเปเปˆเบญเบฐเบ™เบธเบฅเบฑเบ. เบ•เบปเบงเบˆเบดเบ‡
เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฒเบ”เบˆเบฐเบซเบผเบฒเบเบเบงเปˆเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡ len เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™. เปƒเบ™
เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ”เบเปเป„เบ”เป‰เบˆเบฑเบ”เบชเบฑเบ™เบœเปˆเบฒเบ™ "alloca", arrays เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›, เบซเบผเบทเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡
constructs เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป‚เบ”เบ compiler เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบˆเบฐเบญเบญเบเบซเบผเบทเบšเปเปˆ
เบ„เบณ เป€เบ•เบทเบญเบ™.

-Wno-free-nonheap-object
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเบ›เบปเบ”เบ›เปˆเบญเบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบˆเบฑเบ”เบชเบฑเบ™เบขเบนเปˆเปƒเบ™ heap.

-Wstack-usage=len
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบเบฒเบ™เปƒเบŠเป‰ stack เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเปƒเบซเบเปˆเบเบงเปˆเบฒ len เป„เบšเบ•เปŒ. เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹
เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ stack เปเบกเปˆเบ™เบญเบฐเบ™เบธเบฅเบฑเบ. เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ”เบเปเป„เบ”เป‰เบˆเบฑเบ”เบชเบฑเบ™เบœเปˆเบฒเบ™ "alloca",
variable-length arrays, เบซเบผเบท constructs เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบกเปˆเบ™เบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป‚เบ”เบ compiler เป€เบกเบทเปˆเบญ
เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบˆเบฐเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบซเบผเบทเบšเปเปˆ.

เบ‚เปเป‰เบ„เบงเบฒเบกเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเบเบฑเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ -fstack เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

* เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ stack เปเบกเปˆเบ™โ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ•เบฑเบกโ€‹เบ—เบตเปˆโ€‹เปเบ•เปˆโ€‹เป€เบเบตเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹, เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹:

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบเบฒเบ™เปƒเบŠเป‰ stack เปเบกเปˆเบ™ 1120 bytes

* เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ stack เปเบกเปˆเบ™ (เบšเบฒเบ‡โ€‹เบชเปˆเบงเบ™โ€‹) dynamic เปเบ•เปˆโ€‹เบกเบตโ€‹เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹, เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹:

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบเบฒเบ™เปƒเบŠเป‰ stack เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ 1648 bytes

* เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ stack เปเบกเปˆเบ™ (เบšเบฒเบ‡โ€‹เบชเปˆเบงเบ™โ€‹) dynamic เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹, เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹:

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบเบฒเบ™เปƒเบŠเป‰ stack เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”

-Wunsafe-loop-optimizations
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ loop เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเป„เบ”เป‰เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ compiler เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบตเบซเบเบฑเบ‡เบขเบนเปˆเปƒเบ™
เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ” loop. เบเบฑเบš -funsafe-loop-optimizations เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ compiler
เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

-Wno-pedantic-ms-format (เป€เบ›เบปเป‰เบฒเปเบฒเบ MinGW เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš -Wformat เปเบฅเบฐ - pedantic เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ GNU, เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ ISO "printf" / "scanf" เบ•เบปเบงเบฅเบฐเบšเบธเบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš
"I32", "I64", เปเบฅเบฐ "I" เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ Windows, เป€เบŠเบดเปˆเบ‡เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™ MS.

-Wpointer-arith
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เปƒเบ”เปเบ”เปˆเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบš "เบ‚เบฐเบซเบ™เบฒเบ”" เบ›เบฐเป€เบžเบ”เบŸเบฑเบ‡เบŠเบฑเบ™ เบซเบผเบท "เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ". GNU C
เบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ 1, เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ”เป‰เบงเบ "void *"
เบ•เบปเบงเบŠเบตเป‰เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ. เปƒเบ™ C ++, เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เป€เบฅเบเป€เบฅเบ
เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš "NULL". เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wpedantic.

-Wtype- limits
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เบชเบฐเป€เปเบต เบซเบผเบทเบœเบดเบ”เบชเบฐเป€เปเบตเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ”เบˆเบณเบเบฑเบ”เบ‚เบญเบ‡
เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™, เปเบ•เปˆเบšเปเปˆเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ„เบปเบ‡เบ—เบตเปˆ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบšเปเปˆเบกเบตเบฅเบฒเบเป€เบŠเบฑเบ™
เบ•เบปเบงเปเบ›เปเบกเปˆเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบชเบนเบ™เบ”เป‰เบงเบ "<" เบซเบผเบท ">=". เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
-Wextra.

-Wbad-function-cast (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเบเบปเบ‡เบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบกเบตเบเบฒเบ™เป‚เบ—
เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ›เบฐเป€เบžเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเปเบกเปˆเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰.

-Wc90-c99-compat (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™ ISO C90, เปเบ•เปˆเบกเบตเบขเบนเปˆเปƒเบ™ ISO C99. เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ array เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›, เบ›เบฐเป€เบžเบ” "เบเบฒเบงเบเบฒเบง", เบ›เบฐเป€เบžเบ” "bool", เบ›เบฐเบชเบปเบก
เบ•เบปเบงเบญเบฑเบเบชเบญเบ™, เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹. เบ„เบณเป€เบ•เบทเบญเบ™เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเบ•เปเปˆเป„เบ›เบ™เบตเป‰ "__extension__".

-Wc99-c11-compat (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™ ISO C99, เปเบ•เปˆเบกเบตเบขเบนเปˆเปƒเบ™ ISO C11. เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆเปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™, "_Atomic" qualifier,
"_Thread_local" เบ•เบปเบงเบฅเบฐเบšเบธเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, "_Alignas", เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "Alignof",
เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "_generic", เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบฎเบนเบšเปเบšเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.
เบ„เบณเป€เบ•เบทเบญเบ™เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเบ•เปเปˆเป„เบ›เบ™เบตเป‰ "__extension__".

-Wc++-compat (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ ISO C เบ—เบตเปˆเบขเบนเปˆเบ™เบญเบเบŠเบธเบ”เบเปˆเบญเบเบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡ ISO C เปเบฅเบฐ ISO
C++, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ›เปˆเบฝเบ™ implicit เบˆเบฒเบ "void *" เป„เบ›เบซเบฒ pointer เป€เบ›เบฑเบ™ non- "void"
เบ›เบฐเป€เบžเบ”

-Wc++11-compat (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ C++ เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเปเบฒเบเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ ISO C++ 1998 เปเบฅเบฐ ISO C++ 2011,
เบ•เบปเบงเบขเปˆเบฒเบ‡: เบ•เบปเบงเบฅเบฐเบšเบธเปƒเบ™ ISO C++ 1998 เบ—เบตเปˆเป€เบ›เบฑเบ™เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™เปƒเบ™ ISO C++ 2011. เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰
เป€เบ›เบตเบ” - เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡โ€‹ เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wc++14-compat (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ C++ เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเปเบฒเบเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ ISO C++ 2011 เปเบฅเบฐ ISO C++ 2014.
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wcast-qual
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบ•เบปเบงเบŠเบตเป‰เบšเบญเบเบ›เบฐเป€เบžเบ”เปƒเบ”เปœเบถเปˆเบ‡เบญเบญเบเบˆเบฒเบเบ›เบฐเป€เบžเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบ.
เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ "const char *" เบ–เบทเบเป‚เบเบ™เป„เบ›เบซเบฒ "char *".

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบ•เบทเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเบ›เบฐเป€เบžเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบ›เบญเบ”เป„เบž. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป‚เบเบ™ "char **" เป€เบ›เบฑเบ™ "const char **" เปเบกเปˆเบ™เบšเปเปˆเบ›เบญเบ”เป„เบž, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰:

/* p เปเบกเปˆเบ™ char ** เบ„เปˆเบฒ. */
const char **q = (const char **) p;
/* เบเบฒเบ™เบกเบญเบšเปเบฒเบเบ‚เบญเบ‡ readonly string เปƒเบซเป‰เบเบฑเบš const char * เปเบกเปˆเบ™ OK. */
*q = "string";
/* Now char** pointer pointer to read-only memory. */
**p = 'เบ‚';

-Wcast-align
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเป‚เบเบ™เบฅเบปเบ‡เป„เบ›เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบ•เบฒเบกเป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ "char *" เบ–เบทเบเป‚เบเบ™เป€เบ›เบฑเบ™ "int *" เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆ
เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบŠเบฒเบเปเบ”เบ™เบชเบญเบ‡เบซเบผเบทเบชเบตเปˆเป„เบš.

-Write-strings
เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบก C, เปƒเบซเป‰ string constants เบ›เบฐเป€เบžเบ” "const char[เบ„เบงเบฒเบกเบเบฒเบง]" เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบชเปเบฒเป€เบ™เบปเบฒ
เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบซเบ™เบถเปˆเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ "const" "char *" เบœเบฐเบฅเบดเบ”เบ„เปเบฒเป€เบ•เบทเบญเบ™. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบžเบฐเบเบฒเบเบฒเบกเบ‚เบฝเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบฐเบ•เบฃเบดเบ‡
เบ„เบปเบ‡เบ—เบตเปˆ, เปเบ•เปˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "const" เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”
เปเบฅเบฐเบ•เบปเป‰เบ™เปเบšเบš. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ„เบงเบฒเบกเบฅเบปเบšเบเบงเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ” - เบเบฒ
เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบก C ++, เป€เบ•เบทเบญเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบˆเบฒเบโ€‹เบ•เบปเบงโ€‹เบซเบ™เบฑเบ‡โ€‹เบชเบทโ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบดเบ‡โ€‹เป€เบ›เบฑเบ™ "char
*". เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ C++.

- Wclobbered
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบ "longjmp" เบซเบผเบท "vfork". เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™
เบเบฑเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบ -Wextra.

- เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ•เบฒเบกโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš (C++11 [intro.defs]).

- เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบ‡ implicit เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบกเบนเบ™เบ„เปˆเบฒ. เบ™เบตเป‰เบฅเบงเบกเบกเบตเบเบฒเบ™เปเบ›เบ‡
เบฅเบฐเบซเบงเปˆเบฒเบ‡เบˆเบดเบ‡ เปเบฅเบฐเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก, เป€เบŠเบฑเปˆเบ™ "abs (x)" เป€เบกเบทเปˆเบญ "x" เปเบกเปˆเบ™ "เบ„เบนเบ™"; เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡
เป€เบŠเบฑเบ™เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™, เป€เบŠเบฑเปˆเบ™ "unsigned ui = -1"; เปเบฅเบฐเบเบฒเบ™เปเบ›เบ‡เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เป€เบŠเบฑเปˆเบ™:
"sqrtf (M_PI)". เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฝเบ‡เป‚เบซเบงเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เป€เบŠเบฑเปˆเบ™ "abs ((int) x)" เปเบฅเบฐ "ui =
(unsigned) -1", เบซเบผเบทเบ–เป‰เบฒเบ„เปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเบเบฒเบ™เปเบ›เบ‡เป€เบŠเบฑเปˆเบ™เปƒเบ™ "abs (2.0)".
เบ„เบณเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบˆเบณเบ™เบงเบ™เบ—เบตเปˆเบฅเบปเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™ เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -Wno-sign-เปเบ›เบ‡.

เบชเปเบฒเบฅเบฑเบš C++, เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚ overload เบชเบฑเบšเบชเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰; เปเบฅเบฐ
เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ„เบตเบเปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบ›เบ‡เบ›เบฐเป€เบžเบ”: เบเบฒเบ™เปเบ›เบ‡เป€เบ›เบฑเบ™ "void", เบ”เบฝเบงเบเบฑเบ™
เบ›เบฐเป€เบžเบ”, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบซเบผเบทเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบžเบงเบเบกเบฑเบ™. เบ„เปเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบŠเบฑเบ™
เปเบฅเบฐเบˆเบณเบ™เบงเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ C++ เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -Wsign เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹ is
เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

-Wno-conversion-null (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ "NULL" เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเบŠเบตเป‰. -Wconversion-null is
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wzero-as-null-pointer-constant (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ•เบปเบงเปœเบฑเบ‡เบชเบท '0' เบ–เบทเบเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ•เบปเบงเบŠเบตเป‰ null. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบเบฑเบš
เบญเบณเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ "nullptr" เปƒเบ™ C++11.

-Wdate-time
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบžเบปเบšเบกเบฒเป‚เบ„เบฃ "__TIME__", "__DATE__" เบซเบผเบท "__TIMESTAMP__" เบเป‰เบญเบ™เบžเบงเบเบกเบฑเบ™
เบญเบฒเบ”เบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฒเบ™เปเบœเปˆเบžเบฑเบ™เบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ.

-Wdelete-เบšเปเปˆเบชเบปเบกเบšเบนเบ™ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบฅเบถเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเบ„เบปเบšเบ–เป‰เบงเบ™, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบขเบนเปˆ
เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wuseless-cast (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

- เบฎเปˆเบฒเบ‡เบเบฒเบเบญเปˆเบญเบ™เป€เบžเบ
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบฎเปˆเบฒเบ‡เบเบฒเบเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™ "เบ–เป‰เบฒ", "เบญเบทเปˆเบ™" เบซเบผเบท "เป€เบฎเบฑเบ”เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ". เบ„เบณเป€เบ•เบทเบญเบ™เบ™เบตเป‰
เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wextra.

-Wenum เบ›เบฝเบšเบ—เบฝเบš
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบ™เบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เปƒเบ™ C++ enumeral
เบšเปเปˆเบเบปเบ‡เบเบฑเบ™เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฑเบ‡เบ–เบทเบเบงเบดเบ™เบดเบ”เป„เบชเปเบฅเบฐเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปƒเบ™ C เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wjump-misses-init (C, Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ„เบณเบ–เบฐเปเบซเบผเบ‡ โ€œgotoโ€ เบซเบผเบท เบ„เบณเบ–เบฐเปเบซเบผเบ‡ โ€œเบชเบฐเบซเบผเบฑเบšโ€ เป‚เบ”เบ”เป„เบ›เบ‚เป‰เบฒเบ‡เปœเป‰เบฒ
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเปเบ›, เบซเบผเบทเป‚เบ”เบ”เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบ›เป‰เบฒเบเบŠเบทเปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ•เบปเบงเปเบ›เป„เบ”เป‰
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเปเบ›เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆ
เบ›เบฐเบเบฒเบ”. เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆ C เปเบฅเบฐ Objective-C; เปƒเบ™ C++ เบ›เบฐเป€เบžเบ”เบ™เบตเป‰
เบชเบฒเบ‚เบฒเปเบกเปˆเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเปƒเบ”เบเปเปˆเบ•เบฒเบก.

-Wjump-misses-init เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ -Wc++-compat. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบเบฒเบ™เบ”เป‰เบงเบ
-Wno-jump-misses-init เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-Wsign-เบ›เบฝเบšเบ—เบฝเบš
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปˆเบฒเบ—เบตเปˆเบฅเบปเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™ เปเบฅเบฐ เบšเปเปˆเป„เบ”เป‰เบฅเบปเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป€เบกเบทเปˆเบญเบ„เปˆเบฒเบ—เบตเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ unsigned. เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
by -Wextra; เป€เบžเบทเปˆเบญโ€‹เปƒเบซเป‰โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เบญเบทเปˆเบ™เป†โ€‹เบ‚เบญเบ‡โ€‹ -Wextra เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰, เปƒเบŠเป‰ -Wextra
-Wno-sign-เบ›เบฝเบšเบ—เบฝเบš.

-Wsign เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบ‡ implicit เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ‚เบญเบ‡เบ„เปˆเบฒ integer, เป€เบŠเบฑเปˆเบ™:
เบเบฒเบ™เบกเบญเบšเปเบฒเบเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบญเบญเบเปƒเบซเป‰เบเบฑเบšเบ•เบปเบงเปเบ›เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™. เบˆเบฐเปเบˆเป‰เบ‡
เป‚เบเบ™เบชเบฝเบ‡เป€เบ•เบทเบญเบ™เปƒเบซเป‰เบกเบดเบ”เบ‡เบฝเบš. เปƒเบ™ C, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹.

- เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ Wfloatโ€‹
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบ‡ implicit เบ—เบตเปˆเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบ™เบตเป‰
เบฎเบงเบกเป€เบ–เบดเบ‡เบเบฒเบ™เปเบ›เบ‡เบˆเบฒเบเบˆเบดเบ‡เป€เบ›เบฑเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก, เปเบฅเบฐเบˆเบฒเบเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบนเบ‡เบเบงเปˆเบฒเบˆเบดเบ‡เบซเบฒเบ•เปเปˆเบฒเบเบงเปˆเบฒ
เบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹.

- เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เปเบšเปˆเบ‡โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹ (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบณเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบ‚เบฐเปœเบฒเบ”

void operator เบฅเบปเบš (void *) noexcept;
void operator delete[] (void *) noexcept;

เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™

void operator เบฅเบปเบš (void *, std::size_t) noexcept;
void operator delete[] (void *, std::size_t) noexcept;

เบซเบผเบทเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wextra เบ„เบฝเบ‡เบ„เบนเปˆเบเบฑเบšเบเบฒเบ™ -fsized-deallocation.

-Wsizeof-pointer-memaccess
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ‡เป„เบชเบ•เปเปˆเบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡เปเบฅเบฐเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™
เบ–เป‰เบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปƒเบŠเป‰ "sizeof". เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰เป€เบ•เบทเบญเบ™ eg เบเปˆเบฝเบงเบเบฑเบš "memset (ptr, 0, sizeof
(ptr));" เบ–เป‰เบฒ "ptr" เบšเปเปˆเปเบกเปˆเบ™ array, เปเบ•เปˆเป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰, เปเบฅเบฐเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบซเบผเบท.
เบเปˆเบฝเบงเบเบฑเบš "memcpy (&foo, ptr, sizeof (&foo));". เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wsizeof-array-argument
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "sizeof" เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบญเบฒเป€เบฃ
เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบกโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบšเป‚เบ›เบฃเปเบเบฃเบก C เปเบฅเบฐ C++.

-Wmemset-transposed-args
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ‡เป„เบชเบเบฑเบš "memset" เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบง, เบ–เป‰เบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™.
เบšเปเปˆเปเบกเปˆเบ™เบชเบนเบ™ เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเบชเบฒเบกเปเบกเปˆเบ™เบชเบนเบ™. เบ™เบตเป‰เป€เบ•เบทเบญเบ™ eg@ เบเปˆเบฝเบงเบเบฑเบš "memset (buf, sizeof
buf, 0)" เป€เบŠเบดเปˆเบ‡เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ "memset (buf, 0, sizeof buf)" เปเบ—เบ™.
เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบˆเบฐเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเบชเบฒเบกเปเบกเปˆเบ™เบชเบนเบ™เบ•เบปเบงเปœเบฑเบ‡เบชเบท. เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบšเบฒเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเบ–เบทเบเบžเบฑเบšเป€เบ›เบฑเบ™เบชเบนเบ™, เบชเบฝเบ‡เป‚เบซเบงเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบนเบ™เป„เบ›เบซเบฒเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เบกเบฑเบ™เปเบกเปˆเบ™เบซเบ™เป‰เบญเบ
เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰เปเบฅเบเบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ.
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-waddress
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบ„เบงเบฒเบกเบˆเบณเบ—เบตเปˆเปœเป‰เบฒเบชเบปเบ‡เป„เบช. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบฅเบงเบกเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡ a
เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เป€เบŠเบฑเปˆเบ™ "void func(void); if (func)", เปเบฅเบฐ
เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบ—เบตเปˆเบขเบนเปˆเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบ‚เบญเบ‡เบ•เบปเบงเปœเบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡ เป€เบŠเบฑเปˆเบ™ "เบ–เป‰เบฒ (x == "abc")".
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป‚เบ”เบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบŠเบตเป‰โ€‹เบšเบญเบโ€‹เป€เบ–เบดเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹: เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เป€เบซเบกเบตโ€‹เป„เบ›โ€‹
เบ›เบฐเป€เบกเบตเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบกเบฑเบเบˆเบฐเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก
เบฅเบทเบกเบงเบปเบ‡เป€เบฅเบฑเบšเปƒเบ™เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™; เปเบฅเบฐเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบ•เบปเบงเปœเบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡
เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เป€เบเบตเบ”เบžเบถเบ”เบ•เบดเบเบณเบ—เบตเปˆเบšเปเปˆเบฅเบฐเบšเบธ เปเบฅเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเปƒเบ™ C, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเบกเบฑเบ™เบกเบฑเบเบˆเบฐเบŠเบตเป‰เบšเบญเบ
เบ—เบตเปˆเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ•เบฑเป‰เบ‡เปƒเบˆเปƒเบŠเป‰ "strcmp". เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wlogical-op
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ—เบตเปˆเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบชเบฐเบซเบฅเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบเปเบกเปˆเบ™เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบ–เบทเบเบ„เบฒเบ”เบซเบงเบฑเบ‡.

-Wlogical-not-partheses
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบซเบ”เบœเบปเบ™เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปƒเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เป‰เบฒเบ™เบŠเป‰เบฒเบเบกเบทเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ RHS operand เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ” boolean. เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ
เบเบงเบ”เบซเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปœเป‰เบฒเบชเบปเบ‡เป„เบชเป€เบŠเบฑเปˆเบ™:

int a;
...
เบ–เป‰เบฒ (!a > 1) { ... }

เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป‚เบ”เบเบเบฒเบ™เบซเปเปˆ LHS เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบงเบปเบ‡เป€เบฅเบฑเบš:

เบ–เป‰เบฒ ((!a) > 1) { ... }

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Waggregate-เบเบฑเบšเบ„เบทเบ™
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบซเบผเบทเบชเบฐเบซเบฐเบžเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบซเบผเบทเป€เบญเบตเป‰เบ™เบงเปˆเบฒ. (เปƒเบ™
เบžเบฒโ€‹เบชเบฒโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™ array เป„เบ”เป‰โ€‹, เบ™เบตเป‰โ€‹เบเบฑเบ‡ elicits เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹.

-Wno-aggressive-loop-optimizations
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบขเบนเปˆเปƒเบ™ loop เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡ reterations, compiler เบเบงเบ”เบžเบปเบšเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เบžเบถเบ”เบ•เบดเบเบณเปƒเบ™เบšเบฒเบ‡เบ„เบณเบ–เบฐเปเบซเบผเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบŠเป‰เบณเปœเบถเปˆเบ‡ เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™.

- เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ Wnoโ€‹
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒ "__attribute__" เบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”เบ–เบทเบเปƒเบŠเป‰, เป€เบŠเบฑเปˆเบ™: เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ,
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฑเบšโ€‹เบ•เบปเบงโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹, เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹. เบ™เบตเป‰โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹เบเบฒเบ™โ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

-Wno-builtin-macro-redefined
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบงเปˆเบฒเบกเบฒเป‚เบ„เปƒเบ™เบ•เบปเบงเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ–เบทเบเบเบณเบ™เบปเบ”เบ„เบทเบ™เปƒเปเปˆ. เบ™เบตเป‰เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเปเบฒเบฅเบฑเบš
เบ™เบดเบเบฒเบกเปƒเปเปˆเบ‚เบญเบ‡ "__TIMESTAMP__", "__TIME__", "__DATE__", "__FILE__", เปเบฅเบฐ
"__BASE_FILE__".

-Wstrict-prototypes (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เปœเบถเปˆเบ‡เบ–เบทเบเบ›เบฐเบเบฒเบ” เบซเบผเบทเบเบณเบ™เบปเบ”เป‚เบ”เบเบšเปเปˆเบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เบญเบฒเบเบดเบงเป€เบกเบฑเบ™. (เบญเบฑเบ™
เบ„เปเบฒเบ™เบดเบเบฒเบกเบŸเบฑเบ‡เบŠเบฑเบ™เปเบšเบšเป€เบเบปเปˆเบฒเปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ”เป‰เบงเบ a
เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.)

-Wold-style-เบ›เบฐเบเบฒเบ” (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบฅเป‰เบฒเบชเบฐเป„เบซเบก, เบญเบตเบ‡เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C, เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเบฅเบฐเบšเบธเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบŠเบฑเปˆเบ™ "static" เบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เปƒเบ™ a
เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wextra.

-Wold-style-เบ™เบดเบเบฒเบก (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเปƒเบŠเป‰เบ™เบดเบเบฒเบกเบŸเบฑเบ‡เบŠเบฑเบ™เปเบšเบšเป€เบเบปเปˆเบฒ. เบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเบฐเบกเบต
เบ•เบปเป‰เบ™เปเบšเบšเบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰.

-Wmissing-parameter-type (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบ•เบปเบงเบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เปเบšเบš K&R:

void foo(bar) { }

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wextra.

-Wmissing-prototypes (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ–เบทเบเบเบณเบ™เบปเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเป‰เบ™เปเบšเบšเบเปˆเบญเบ™เปœเป‰เบฒ. เบ™เบตเป‰
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เบญเบญเบเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ„เปเบฒเบ™เบดเบเบฒเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ•เบปเบงเปเบšเบš. เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰
เป€เบžเบทเปˆเบญเบเบงเบ”เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเป‰เบ™เปเบšเบšเบ—เบตเปˆเบเบปเบ‡เบเบฑเบ™เปƒเบ™ a
เป„เบŸเบฅเปŒเบซเบปเบง. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบš C++ เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”
เปƒเบซเป‰ prototypes เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบเบปเบ‡เบเบฑเบ™เบ›เบฐเบเบฒเบ” overload เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ
เบ‚เบฑเบ”เบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰. เปƒเบŠเป‰ -Wmissing เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹ เป€เบžเบทเปˆเบญโ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบ—เบตเปˆโ€‹เบ‚เบฒเบ”โ€‹เบซเบฒเบโ€‹เป„เบ›โ€‹
เบ›เบฐเบเบฒเบ”เปƒเบ™ C++.

-Wmissing เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ–เบทเบเบเบณเบ™เบปเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบเปˆเบญเบ™เปœเป‰เบฒ. เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ•เบปเป‰เบ™เปเบšเบš. เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเบงเบ”เบซเบฒเบ—เบปเปˆเบงเป‚เบฅเบ
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบ™เป„เบŸเบฅเปŒ header. เปƒเบ™ C, เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบญเบญเบเบชเปเบฒเบฅเบฑเบš
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ; เปƒเบŠเป‰ -Wmissing-prototypes เบเบฒเบ™เบเบงเบ”เบชเบญเบš
เบ•เบปเป‰เบ™เปเบšเบšเบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›. เปƒเบ™ C ++, เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเปเบฒเบฅเบฑเบšเปเบกเปˆเปเบšเบšเบŸเบฑเบ‡เบŠเบฑเบ™, เบซเบผเบทเบชเปเบฒเบฅเบฑเบš
เบŸเบฑเบ‡เบŠเบฑเบ™ inline, เบซเบผเบทเบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™ namespaces เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ.

-Wmissing-field-initializers
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบกเบตเบšเบฒเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบซเบฒเบเป„เบ›. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบฅเบฐเบซเบฑเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบžเบฒเบฐเบงเปˆเบฒ "xh" เปเบกเปˆเบ™เบชเบนเบ™ implicitly:

struct s { int f, g, h; } ;
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ sx = { 3, 4 };

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบšเปเปˆเบเบฐเบ•เบธเป‰เบ™เป€เบ•เบทเบญเบ™:

struct s { int f, g, h; } ;
struct sx = { .f = 3 , .g = 4 } ;

เปƒเบ™ C++ เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ { } เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡:

struct s { int f, g, h; } ;
sx = { };

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ -Wextra. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบญเบทเปˆเบ™เป† -Wextra เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰โ€‹,
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -Wextra -Wno-missing-field-initializers.

-Wno-multichar
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ–เป‰เบฒ multicharacter เบ„เบปเบ‡เบ—เบตเปˆ ('FOOF') เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบžเบงเบเป€เบ‚เบปเบฒเบŠเบตเป‰เบšเบญเบ a
typo เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบกเบนเบ™เบ„เปˆเบฒเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐเบšเปเปˆเบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบšเบšเบžเบปเบเบžเบฒ.

- เบ›เบปเบเบเบฐเบ•เบด[=<none|id|nfc|nfkc>]
เปƒเบ™ ISO C เปเบฅเบฐ ISO C ++, เบชเบญเบ‡เบ•เบปเบงเบฅเบฐเบšเบธเบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบ›เบฑเบ™เบฅเปเบฒเบ”เบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡
เบ•เบปเบงเบฅเบฐเบ„เบญเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป€เบกเบทเปˆเบญเบ•เบปเบงเบฅเบฐเบ„เบญเบ™เบขเบนเปˆเบ™เบญเบเบŠเบธเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ ASCII เบžเบทเป‰เบ™เบ–เบฒเบ™
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบชเบญเบ‡เบฅเปเบฒเบ”เบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™. เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™
เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™, เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO 10646 เบเปเบฒเบ™เบปเบ”เบšเบฒเบ‡เบญเบฑเบ™ เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด เบเบปเบ”เบฅเบฐเบšเบฝเบš เป€เบŠเบดเปˆเบ‡เป€เบกเบทเปˆเบญเบ™เบณเปƒเบŠเป‰เปเบฅเป‰เบง
เปƒเบซเป‰โ€‹เปเบ™เปˆโ€‹เปƒเบˆเบงเปˆโ€‹เบฒโ€‹เบงเปˆเบฒโ€‹เบชเบญเบ‡โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบ—เบตเปˆโ€‹เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบเบฒเบโ€‹เป€เบ›เบฑเบ™โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹. GCC
เบชเบฒเบกเบฒเบ”เป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบ›เบปเบเบเบฐเบ•เบด; เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบฑเป‰เบ™.

เบกเบตเบชเบตเปˆเบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ GCC. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -Wnormalized=nfc,
เป€เบŠเบดเปˆเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธเปƒเบ”เป†เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบ›เบปเบเบเบฐเบ•เบด ISO 10646 "C",
NFC. NFC เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆ. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš - เบ›เบปเบเบเบฐเบ•เบด.

เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบกเบตเบšเบฒเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบฅเบฐเบšเบธเป‚เบ”เบ ISO C เปเบฅเบฐ ISO C++
เบงเปˆเบฒ, เป€เบกเบทเปˆเบญเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ NFC, เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบฅเบฐเบšเบธ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบšเปเปˆเบกเบตเบ—เบฒเบ‡
เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™ ISO C เบซเบผเบท C++ เปเบšเบšเบžเบปเบเบžเบฒ เปเบฅเบฐเบกเบตเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™ NFC.
-Wnormalized=id เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเปเบฒเบฅเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบซเบงเบฑเบ‡เบงเปˆเบฒเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”
เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบˆเบฐเปเบเป‰เป„เบ‚เบญเบฑเบ™เบ™เบตเป‰, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเบเบฒเบ™เบ‚เบฝเบ™ -Wnormalized=none or
-Wno-เบ›เบปเบเบเบฐเบ•เบด. เบ—เปˆเบฒเบ™เบ„เบงเบ™เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบšเบฒเบ‡ normalization เบญเบทเปˆเบ™เป†
scheme (เป€เบŠเบฑเปˆเบ™ "D"), เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เปเบกเบ‡เป„เบกเป‰เบ—เบตเปˆเบฎเบนเป‰เบซเบ™เบฑเบ‡เบชเบทเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ
เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบšเบดเปˆเบ‡โ€‹.

เบšเบฒเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปƒเบ™ ISO 10646 เบกเบตเบ„เบงเบฒเบกเปเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡ เปเบ•เปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบเบฑเบ™เปƒเบ™เบšเบฒเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™
เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เบชเบฐเปเบ”เบ‡, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป€เบกเบทเปˆเบญเบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡
"\u207F", "SUPERSCRIPT Latin LETTER N", เบชเบฐเปเบ”เบ‡เบ„เบทเบเบฑเบ™เบเบฑเบš "n" เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆ
เป„เบ”เป‰เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เบ•เบปเบงเบซเบเปเป‰. ISO 10646 เบเปเบฒเบ™เบปเบ” NFKC เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹
เบ›เปˆเบฝเบ™เบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐ GCC เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเปเปˆเบขเบนเปˆเปƒเบ™
NFKC เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -Wnormalized=nfkc. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ—เบธเบเป†
เบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเบกเบตเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ O เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบชเบฑเบšเบชเบปเบ™เบเบฑเบšเบ•เบปเบงเป€เบฅเบ 0,
เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบ›เบฑเบ™เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบฅเบฐเบซเบฑเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบเป‰เป„เบ‚เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ•เบปเบงเบฅเบฐเบ„เบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™.

-Wno-deprecated
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ™เบณเปƒเบŠเป‰.

-Wno-deprecated-เบ›เบฐเบเบฒเบ”
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™, เบ•เบปเบงเปเบ›, เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบ–เบทเบเปเบฒเบเบงเปˆเบฒเบ–เบทเบเบเบปเบเป€เบฅเบตเบเป‚เบ”เบ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "เบ›เบฐเบ•เบดเป€เบชเบ”".

-Wno-เบฅเบปเป‰เบ™
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒ overflow เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ„เบปเบ‡เบ—เบตเปˆ.

-Wno-odr
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบซเบ™เบถเปˆเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ•เป‰เบญเบ‡เบเบฒเบ™
-flto-odr-type-merging เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wopenmp-simd
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเปเบšเบšเบฅเบฒเบ„เบฒ vectorizer overrides เบ„เปเบฒเบชเบฑเปˆเบ‡ OpenMP เบซเบผเบท Cilk Plus simd
เบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰. เป„เบ”เป‰ -fsimd-cost-model=เบšเปเปˆเบˆเบณเบเบฑเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบœเปˆเบญเบ™เบ„เบฒเบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ
model

-Woverride-init (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เบˆเบฐเบ–เบทเบ overridden เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”
เบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ -Wextra. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบญเบทเปˆเบ™เป† -Wextra เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰โ€‹,
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -Wextra -Wno-override-init.

- เบซเปเปˆ
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบกเปˆเบ™เปƒเบซเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบšเบฑเบ™เบˆเบธ, เปเบ•เปˆเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบšเบฑเบ™เบˆเบธเบšเปเปˆเบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบฎเบนเบšเปเบšเบšเบซเบผเบทเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡. เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเบœเบดเบ”
เบœเบปเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบžเบฝเบ‡โ€‹เป€เบฅเบฑเบโ€‹เบ™เป‰เบญเบโ€‹. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, เบ•เบปเบงเปเบ› "fx" เปƒเบ™ "struct bar" เปเบกเปˆเบ™
misaligned เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ "เปเบ–เบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡" เบšเปเปˆเบกเบตเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบšเบฑเบ™เบˆเบธ:

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ foo {
intx;
char a,b,c,d;
} __attribute __ ((เบšเบฑเบ™เบˆเบธ));
เปเบ–เบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ {
char z ;
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ foo f;
};

-Wpacked-bitfield-compat
เบŠเบธเบ” 4.1, 4.2 เปเบฅเบฐ 4.3 เบ‚เบญเบ‡ GCC เบšเปเปˆเบชเบปเบ™เปƒเบˆเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "packed" เปƒเบ™ bit-fields เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”.
"char". เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ GCC 4.4 เปเบ•เปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เป‚เบ„เบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹. GCC เปเบˆเป‰เบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เบฎเบนเป‰เป€เบกเบทเปˆเบญเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™ GCC
4.4. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบšเปเปˆเบกเบตเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡ 4-bit เบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก "a" เปเบฅเบฐ "b" เปƒเบ™เบ™เบตเป‰
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡:

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ foo
{
char a:4;
char b:8;
} __attribute__ ((เบšเบฑเบ™เบˆเบธ));

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปƒเบŠเป‰ -Wno-packed-bitfield-compat เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ™เบตเป‰
เบ„เบณ เป€เบ•เบทเบญเบ™.

- เปเบœเปˆเบ™เปเบž
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ padding เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบซเบผเบทเบเบฒเบ™เบˆเบฑเบ”เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”. เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป€เบกเบทเปˆเบญเบชเบดเปˆเบ‡เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบกเบฑเบ™เบเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
เป€เบžเบทเปˆเบญ rearrange เบ—เบปเปˆเบ‡เบ™เบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™ padding เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ.

-Wredundant-decls
เป€เบ•เบทเบญเบ™เบงเปˆเบฒเบกเบตเบญเบฑเบ™เปƒเบ”เบ–เบทเบเบ›เบฐเบเบฒเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ”เบฝเบงเบเบฑเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบต
เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบซเบผเบฒเบเบญเบฑเบ™เบ–เบทเบเบ•เป‰เบญเบ‡ เปเบฅเบฐเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ›เปˆเบฝเบ™เปเบ›เบ‡.

-Wnested-externs (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ” "extern" เบขเบนเปˆเปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™.

-Wno-inherited-variadic-ctor
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰ C++11 เบชเบทเบšเบ—เบญเบ”เบ•เบปเบงเบชเป‰เบฒเบ‡เป€เบกเบทเปˆเบญเบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™
เบชเบทเบšเบ—เบญเบ”เบกเบฒเบˆเบฒเบเบกเบตเบ•เบปเบงเบชเป‰เบฒเบ‡ C variadic; เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เป€เบ›เบตเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบžเบฒเบฐเบงเปˆเบฒ
ellipsis เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเบทเบšเบ—เบญเบ”.

- Winline
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™ inline เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบชเปˆเปƒเบ™เปเบ–เบงเป„เบ”เป‰. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, compiler เบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ inline เบ›เบฐเบเบฒเบ”เปƒเบ™
เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

compiler เปƒเบŠเป‰เบ„เบงเบฒเบกเบซเบฅเบฒเบเบซเบฅเบฒเบเบ‚เบญเบ‡ heuristics เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบˆเบฐ inline a เบซเบผเบทเบšเปเปˆ
เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ•เบปเบงเบขเปˆเบฒเบ‡, compiler เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™
inlined เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ inlining เบ—เบตเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปเบฅเป‰เบงเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™.
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปเบซเบผเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”
เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป‚เบ”เบโ€‹ - Winline เบ›เบฒเบเบปเบ” เบซเบผเบทเบซเบฒเบเป„เบ›.

-Wno-invalid-offsetof (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "offsetof" macro เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ POD. เบญเบตเบ‡โ€‹เบ•เบฒเบก
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C ++ เบ›เบต 2014, เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ "offsetof" เบเบฑเบšเบ›เบฐเป€เบžเบ”เป‚เบ„เบ‡เบฎเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™
เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”. เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” C ++ เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, "offsetof" เบกเบฑเบเบˆเบฐเปƒเบซเป‰
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบ. เบ—เบธเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบฎเบนเป‰เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบเปเบฒเบฅเบฑเบ‡เบ‚เบฝเบ™
เบฅเบฐเบซเบฑเบ” nonportable เปเบฅเบฐเบœเบนเป‰เบ—เบตเปˆเป„เบ”เป‰เป€เบฅเบทเบญเบเป‚เบ”เบเป€เบˆเบ”เบ•เบฐเบ™เบฒเบ—เบตเปˆเบˆเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆเบ„เปเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™.

เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบš "offsetof" เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ เบฎเบธเปˆเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-Wno-int-to-pointer-cast
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบˆเบฒเบเบ„เบฒเบชเบ—เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰เบ‚เบญเบ‡เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบ‚เบฐเปœเบฒเบ”เบ•เปˆเบฒเบ‡เบเบฑเบ™. เปƒเบ™
C++, เบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰เบ‚เบญเบ‡เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. Wint-to-pointer-cast is
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wno-pointer-to-int-cast (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบˆเบฒเบเบเบฒเบ™เบ„เบฒเบชเบ—เบˆเบฒเบเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-Winvalid-pch
เป€เบ•เบทเบญเบ™ เบ–เป‰เบฒเบžเบปเบšเป€เบซเบฑเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒเบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ„เบปเป‰เบ™เบซเบฒ เปเบ•เปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰.

- เบเบฒเบง - เบเบฒเบง
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ›เบฐเป€เบžเบ” "เบเบฒเบงเบเบฒเบง" เบ–เบทเบเปƒเบŠเป‰. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ—เบฑเบ‡เบชเบญเบ‡ -Wpedantic or
- เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก เปƒเบ™เป‚เปเบ” ISO C90 เปเบฅเบฐ C++ 98. เป€เบžเบทเปˆเบญเบเบฑเบšเบเบฑเป‰เบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™, เปƒเบŠเป‰
-Wno-เบเบฒเบง-เบเบฒเบง.

-Wvariadic-macros
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ macro variadic เบ–เบทเบเปƒเบŠเป‰เปƒเบ™เป‚เบซเบกเบ” ISO C90, เบซเบผเบทเบ–เป‰เบฒ syntax เบ—เบฒเบ‡เป€เบฅเบทเบญเบ GNU เปเบกเปˆเบ™
เปƒเบŠเป‰เปƒเบ™เป‚เบซเบกเบ” ISO C99. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ—เบฑเบ‡เบชเบญเบ‡ -Wpedantic or - เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบ—เบตเปˆเบขเบนเปˆ To
เบเบฑเบšเบเบฑเป‰เบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -Wno-variadic-macros.

-Wvarargs
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบกเบตเบ„เปเบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ macros เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเปเบ›เป€เบŠเบฑเปˆเบ™
"va_start". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบเบฑเบšเบเบฑเป‰เบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™, เปƒเบŠเป‰ -Wno-varargs.

-Wvector-เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™-เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” vector เบšเปเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบœเปˆเบฒเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” SIMD เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ.
เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” vector เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰
"piecewise", เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ scalar เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบ—เบธเบ vector
เบญเบปเบ‡เบ›เบฐเบเบญเบš; "เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™", เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ vector เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰
เป€เบเบฑเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบเบงเป‰เบฒเบ‡, เป€เบŠเบดเปˆเบ‡เบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ; เปเบฅเบฐ "เป€เบ›เบฑเบ™เป‚เบชเบ”
scalar", เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ vector เป€เบซเบกเบฒเบฐเบเบฑเบšเบ›เบฐเป€เบžเบ” scalar.

-Wno-virtual-move-assign
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบทเบšเบ—เบญเบ”เบˆเบฒเบเบ–เบฒเบ™เบชเบฐเป€เปเบทเบญเบ™เบˆเบดเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบเป‰เบฒเบ C++11 เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเป†เบ™เป‰เบญเบเป†
เบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบžเบทเป‰เบ™เบ–เบฒเบ™ virtual เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰
เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เบกเบฑเบ™เบ–เบทเบเบเป‰เบฒเบเบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบŠเบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เบชเบญเบ‡เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เปƒเบ™
เบเบฒเบ™โ€‹เบเป‰เบฒเบโ€‹เบญเบญเบโ€‹เบˆเบฒเบโ€‹เบฅเบฑเบ”โ€‹. เบ–เป‰เบฒเบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบเป‰เบฒเบเบ–เบทเบเบ‚เบฝเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบเป‰เบฒเบเบˆเบฒเบ
เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบเป‰เบฒเบเบกเบฒเบˆเบฒเบ, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰.

-Wvla
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒ array เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›เบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”. -Wno-vla เบ›เป‰เบญเบ‡เบเบฑเบ™เป„เบ”เป‰ -Wpedantic
เป€เบ•เบทเบญเบ™เบ‚เบญเบ‡เบญเบฒเป€เบฃเบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›.

-Wvolatile-register-var
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบ•เบปเบงเปเบ›เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบ•เบปเบงเปเบเป‰เป„เบ‚เบเบฒเบ™เบฅเบฐเป€เบซเบตเบเบšเปเปˆเป„เบ”เป‰
เบเบฑเบšเบเบฑเป‰เบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐ / เบซเบผเบทเบเบฒเบ™เบ‚เบฝเบ™เป€เบžเบทเปˆเบญเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบ•เบปเบงเปเบ›. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-Wdisabled-optimization
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›
เบŠเบตเป‰เบšเบญเบเบงเปˆเบฒเบกเบตเบญเบฑเบ™เปƒเบ”เบœเบดเบ”เบžเบฒเบ”เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ; เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ GCC เบ‚เบญเบ‡
optimizers เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™. เป€เบฅเบทเป‰เบญเบเป†, เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ
เบฅเบฐเบซเบฑเบ”เปƒเบซเบเปˆเป€เบเบตเบ™เป„เบ› เบซเบผเบทเบชเบฑเบšเบชเบปเบ™เป€เบเบตเบ™เป„เบ›; GCC เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ inordinate.

-Wpointer-เป€เบŠเบฑเบ™โ€‹ (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเบŠเบตเป‰เบœเปˆเบฒเบ™เบซเบผเบทเบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ™เบฒเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš C เปเบฅเบฐ Objective-C. เบกเบฑเบ™เบซเบกเบฒเบเป€เบ–เบดเบ‡ - เบเบฒ เปเบฅเบฐเป‚เบ”เบ
-Wpedantic, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบเบฒเบ™เบเบฑเบš -Wno-pointer-sign.

-Wstack-protector
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ -stack-protector เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เบกเบฑเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบต stack.

-Woverlength-strings
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เบ—เบตเปˆเบเบฒเบงเบเบงเปˆเบฒเบ„เบงเบฒเบกเบเบฒเบง "เบชเบนเบ‡เบชเบธเบ”เบ•เปเปˆเบฒเบชเบธเบ”".
เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง compilers เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ string เบ„เบปเบ‡เบ—เบตเปˆ
เบเบฒเบงเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เปเปˆเบฒเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เปเบ•เปˆเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เปเบšเบšเบžเบปเบเบžเบฒเบซเบผเบฒเบเบ„เบงเบ™
เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เปƒเบŠเป‰เบชเบฒเบเบเบฒเบง.

เบ‚เบตเบ”เบˆเบณเบเบฑเบ”เบ™เบณเปƒเบŠเป‰ เบซเบผเบฑเบ‡เบˆเบฒเบ string concatenation เบ„เบปเบ‡เบ—เบตเปˆ, เปเบฅเบฐเบšเปเปˆเบ™เบฑเบš trailing
NUL. เปƒเบ™ C90, เบ‚เบตเบ”เบˆเปเบฒเบเบฑเบ”เปเบกเปˆเบ™ 509 เบ•เบปเบงเบญเบฑเบเบชเบญเบ™; เปƒเบ™ C99, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเป€เบ›เบฑเบ™ 4095. C ++ 98 เบšเปเปˆ
เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบ„เปˆเบฒเบชเบนเบ‡เบชเบธเบ”เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบถเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบงเบดเบ™เบดเบ”เป„เบชเบชเบฒเบเป€เบŠเบทเบญเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบฒเบงเป€เบเบตเบ™
C++.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบ -Wpedantic, เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบเบฒเบ™เบเบฑเบš
-Wno-overlength-strings.

-Wunsuffixed-float-constants (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบญเบญเบเบ„เบณเป€เบ•เบทเบญเบ™เบชเบณเบฅเบฑเบšเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เปเปˆเบ—เป‰เบฒเบ. เป€เบกเบทเปˆเบญเปƒเบŠเป‰
เบžเป‰เบญเบกเบ”เป‰เบงเบ -Wsystem-headers เบกเบฑเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.
เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบเบฐเบเบฝเบกเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบš "FLOAT_CONST_DECIMAL64" pragma
เบˆเบฒเบเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เป€เบฅเบเบ–เบฒเบ™เบชเบดเบšเบซเบฒ C99.

-Wno-designated-init (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบกเบทเปˆเบญเบ•เบปเบงเบ•เบฑเป‰เบ‡เบ•เบปเบงเบ•เบฑเป‰เบ‡เบ•เบปเบงเบ•เบตเบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆ
เป„เบ”เป‰เบ–เบทเบเปเบฒเบเบ”เป‰เบงเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "designated_init".

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ Debugging เบ‚เบญเบ‡เบ—เปˆเบฒเบ™ เป‚เบ„เบ‡เบเบฒเบ™ or GCC
GCC เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบžเบดเป€เบชเบ”เบ•เปˆเบฒเบ‡เป†เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเบเบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™เบซเบผเบท GCC เบ‚เบญเบ‡เบ—เปˆเบฒเบ™:

-g เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™ debugging เปƒเบ™เบฎเบนเบšเปเบšเบšเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ (stabs, COFF,
XCOFF, เบซเบผเบท DWARF 2). GDB เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบ™เบตเป‰.

เปƒเบ™เบฅเบฐเบšเบปเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ—เบตเปˆเปƒเบŠเป‰เบฎเบนเบšเปเบšเบš stabs, -g เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆ GDB เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰; เบ‚เปเป‰เบกเบนเบ™เบžเบดเป€เบชเบ”เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเป€เบฎเบฑเบ”เบงเบฝเบเบ”เบตเบ‚เบถเป‰เบ™เปƒเบ™ GDB เปเบ•เปˆ
เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ debuggers เบญเบทเปˆเบ™เป†เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เบซเบผเบทเบ›เบฐเบ•เบดเป€เบชเบ”เบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™
เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เปเบ™เปˆโ€‹เบ™เบญเบ™โ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹, เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -gstabs+, -gstabs,
-gxcoff+, -gxcoff, เบซเบผเบท -gvms (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบก).

GCC เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰ -g เบเบฑเบš -O. เบ—เบฒเบ‡เบฅเบฑเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบญเบฒเบ”เบˆเบฐ
เป€เบ›เบฑเบ™เบšเบฒเบ‡เป‚เบญเบเบฒเบ”เบชเป‰เบฒเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆ: เบšเบฒเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ›เบฐเบเบฒเบ”เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบขเบนเปˆ
เบ—เบฑเบ‡เปเบปเบ”; เบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบญเบฒเบ”เบˆเบฐเป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป„เบฅเบเบฐเบชเบฑเป‰เบ™เป†เบ—เบตเปˆเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ„เบฒเบ”เบซเบงเบฑเบ‡; เบšเบฒเบ‡เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบญเบฒเบ”เบˆเบฐ
เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ„เบดเบ”เป„เบฅเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เบปเบ‡เบ—เบตเปˆเบซเบผเบทเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเบ—เบตเปˆเปเบฅเป‰เบง
เบกเบท; เบšเบฒเบ‡เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ•เปˆเบฒเบ‡เป†เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบเป‰เบฒเบเบญเบญเบเป„เบ›
เบ‚เบญเบ‡ loops.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบžเบดเบชเบนเบ”เป„เบ”เป‰เบงเปˆเบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐ debug เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™
เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบกเบตเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบกเบทเปˆเบญ GCC เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบซเบผเบฒเบเบเปˆเบงเบฒเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เบตเบšเบฑเบ.

-gsplit-dwarf
เปเบเบเบ‚เปเป‰เบกเบนเบ™ debugging dwarf เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เบ”เป‰เบงเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ .dwo. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบŸเบฅเปŒ
เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบ. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”, เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบปเบงเบ”เบตเบšเบฑเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”
เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒ .dwo.

-ggdb
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเป€เบžเบทเปˆเบญเปƒเบŠเป‰เป‚เบ”เบ GDB. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบชเบธเบ”
เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบกเบตเบขเบนเปˆ (DWARF 2, stabs, เบซเบผเบทเบฎเบนเบšเปเบšเบšเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ—เบฑเบ‡เบชเบญเบ‡เบญเบฑเบ™
เบฎเบญเบ‡เบฎเบฑเบš), เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ GDB เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

-gpubnames
เบชเป‰เบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™ .debug_pubnames dwarf เปเบฅเบฐ .debug_pubtypes.

-ggnu-pubnames
เบชเป‰เบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™ .debug_pubnames เปเบฅเบฐ .debug_pubtypes เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เปเบฒเบฐเบชเบปเบกเบเบฑเบš
เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบต GDB. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบ›เบฐเป‚เบซเบเบ”เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบชเบฒเบกเบฒเบ”
เบœเบฐเบฅเบดเบ”เบ”เบฑเบ”เบŠเบฐเบ™เบต GDB เบฎเบธเปˆเบ™ 7.

-gstabs
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™ debugging เปƒเบ™เบฎเบนเบšเปเบšเบš stabs (เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™), เป‚เบ”เบเบšเปเปˆเบกเบต GDB
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ DBX เปƒเบ™เบฅเบฐเบšเบปเบš BSD เบชเปˆเบงเบ™เปƒเบซเบเปˆ. เปƒเบ™ MIPS, Alpha เปเบฅเบฐ
System V Release 4 เบฅเบฐเบšเบปเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบœเบฐเบฅเบดเบ” stabs debugging output เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
เป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ”เบ DBX เบซเบผเบท SDB. เปƒเบ™ System V Release 4 เบฅเบฐเบšเบปเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ•เป‰เบญเบ‡เบเบฒเบ™ GNU
เบœเบนเป‰เบ›เบฐเบเบญเบš.

-feliminate-unused-debug-เบชเบฑเบ™เบเบฒเบฅเบฑเบ
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™ debugging เปƒเบ™เบฎเบนเบšเปเบšเบš stabs (เบ–เป‰เบฒเบ™เบฑเป‰เบ™เบ–เบทเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™), เบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบˆเบดเบ‡.

-femit-class-debug-เบชเบฐเป€เปเบต
เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ›เปˆเบญเบโ€‹เบญเบญเบโ€‹เบกเบฒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบซเป‰เบญเบ‡ C ++ เปƒเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹,
เบ›เปˆเบญเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เปเบปเบ”เป‚เบ”เบเปƒเบŠเป‰เบซเป‰เบญเบ‡เบฎเบฝเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš
debugger เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™ GCC เบ›เบปเบเบเบฐเบ•เบดเบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ
เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เปเบเป‰เบšเบฑเบ™เบซเบฒเป‚เบ”เบ
เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฑเบ”เป„เบˆเบ‚เบญเบ‡เบชเบญเบ‡.

-fdebug-types-section
เป€เบกเบทเปˆเบญเปƒเบŠเป‰ DWARF เบฎเบธเปˆเบ™ 4 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ, เบ›เบฐเป€เบžเบ” DIEs เบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡
เบžเบฒเบเบชเปˆเบงเบ™ ".debug_types" เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบžเบฒเบ ".debug_info". เบกเบฑเบ™
เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบงเบฒเบ‡เบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™ comdat เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
เป€เบญเบปเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบŠเปเป‰เบฒเบเบฑเบ™. เปเบ•เปˆเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ DWARF เบ—เบฑเบ‡เปเบปเบ”เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™ ".debug_types" เป€เบ—เบทเปˆเบญ
เปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เบงเบฑเบ”เบ–เบธ ".debug_types" เบœเบฐเบฅเบดเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ
เบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™.

-gstabs+
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™ debugging เปƒเบ™เบฎเบนเบšเปเบšเบš stabs (เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™), เป‚เบ”เบเปƒเบŠเป‰ GNU
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบ GNU debugger (GDB). เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ debugger เบญเบทเปˆเบ™เป†เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡ เบซเบผเบทเบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™.

-gcoff
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™ debugging เปƒเบ™เบฎเบนเบšเปเบšเบš COFF (เบ–เป‰เบฒเบงเปˆเบฒเบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš). เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ SDB เปƒเบ™เบฅเบฐเบšเบปเบš V เบชเปˆเบงเบ™เปƒเบซเบเปˆเบเปˆเบญเบ™ System V Release 4.

-gxcoff
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™ debugging เปƒเบ™เบฎเบนเบšเปเบšเบš XCOFF (เบ–เป‰เบฒเบงเปˆเบฒเบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš). เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ DBX debugger เปƒเบ™เบฅเบฐเบšเบปเบš IBM RS/6000.

-gxcoff+
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™ debugging เปƒเบ™เบฎเบนเบšเปเบšเบš XCOFF (เบ–เป‰เบฒเบงเปˆเบฒเบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš), เป‚เบ”เบเปƒเบŠเป‰ GNU
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบ GNU debugger (GDB). เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ debugger เบญเบทเปˆเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡ เบซเบผเบทเบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”
เป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบšเบญเบทเปˆเบ™เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบ•เบปเบงเบ›เบฐเบเบญเบš GNU (GAS) เบฅเบปเป‰เบกเป€เบซเบฅเบงเบ”เป‰เบงเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

-gdwarf-เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเปƒเบ™เบฎเบนเบšเปเบšเบš DWARF (เบ–เป‰เบฒเบญเบฑเบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš). เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡
เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ 2, 3, 4 เบซเบผเบท 5; เบชเบฐเบšเบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™ 4. DWARF
เป€เบงเบตเบŠเบฑเปˆเบ™ 5 เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ”เป‰เบงเบ DWARF เป€เบงเบตเบŠเบฑเปˆเบ™ 2, เบšเบฒเบ‡เบžเบญเบ”เบ•เป‰เบญเบ‡เบเบฒเบ™ เปเบฅเบฐเปƒเบŠเป‰เบšเบฒเบ‡เบญเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบ‚เบฑเบ”เบเบฑเบ™เบชเบฐเป€เปเบต
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ DWARF 3 เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ unwind.

เป€เบงเบตเบŠเบฑเปˆเบ™ 4 เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ GDB 7.0 เปเบฅเบฐ -fvar-tracking-assignments เป€เบžเบทเปˆเบญเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบชเบนเบ‡เบชเบธเบ”.

-grecord-gcc-เบชเบฐเบซเบผเบฑเบš
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบญเบตเป‰เบ™ compiler เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐ
เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเบฐเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบšเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ DW_AT_producer เปƒเบ™ DWARF
เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™ concatenated เบเบฑเบšเบŠเปˆเบญเบ‡เบ—เบตเปˆเปเบเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบญเบเบˆเบฒเบ
เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เปเบฅเบฐเบˆเบฒเบเบชเบฐเบšเบฑเบš compiler. เป€เบšเบดเปˆเบ‡เบ™เบณ -frecord-gcc-เบชเบฐเบซเบผเบฑเบš เบชเปเบฒเบฅเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™
เบงเบดเบ—เบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเป€เบฅเบทเบญเบ compiler เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-gno-record-gcc-switches
เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบžเบตเปˆเบกเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เบณเบชเบฑเปˆเบ‡เปƒเบชเปˆเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ DW_AT_producer เปƒเบ™ DWARF
เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ.

-gstrict-dwarf
เบšเปเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเปˆเบงเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™ DWARF เบ•เปเปˆโ€‹เบกเบฒโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเบญเบโ€‹เบ”เป‰เบงเบ
-gdwarf-เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ. เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆเป‚เบ”เบเปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ DWARF เบ—เบตเปˆเบšเปเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบˆเบฒเบเบ•เปเปˆเบกเบฒ
เบชเบฐเบšเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”.

-gno-strict-dwarf
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเปˆเบงเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™ DWARF เบ•เปเปˆโ€‹เบกเบฒโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเบญเบโ€‹เบ”เป‰เบงเบ
-gdwarf-เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ.

-gz[=เบ›เบฐเป€เบžเบ”]
เบœเบฐเบฅเบดเบ”เบžเบฒเบเบชเปˆเบงเบ™เบ”เบตเบšเบฑเบเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบš DWARF, เบ–เป‰เบฒเบญเบฑเบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš. เบ–เป‰เบฒ เบ›เบฐเป€เบžเบ” is
เบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰, เบ›เบฐเป€เบžเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เปƒเบŠเป‰เปเบฅเป‰เบง. เบ›เบฐเป€เบžเบ” เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™ none (เบขเปˆเบฒเบšเบตเบšเบญเบฑเบ”เบžเบฒเบเบชเปˆเบงเบ™เบ”เบตเบšเบฑเบ), เบŠเบปเปˆเบงเบฎเป‰เบฒเบ (เปƒเบŠเป‰ zlib
เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบš ELF gABI), เบซเบผเบท zlib-gnu (เปƒเบŠเป‰เบเบฒเบ™เบšเบตเบšเบญเบฑเบ” zlib เปƒเบ™ GNU เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
เบฎเบนเบšเปเบšเบš). เบ–เป‰เบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ‚เบฝเบ™เบชเปˆเบงเบ™เบ”เบตเบšเบฑเบเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบœเบนเป‰เบ›เบฐเบเบญเบšเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบงเบเป€เบ‚เบปเบฒ, -gz เปเบกเปˆเบ™เบ‡เบฝเบšเป†
เบšเปเปˆเบชเบปเบ™เปƒเบˆเปƒเบ™เป€เบงเบฅเบฒเบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ.

-gvms
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เบตเบšเบฑเบ Alpha/VMS (เบ–เป‰เบฒเบญเบฑเบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš). เบ™เบตเป‰
เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ DEBUG เปƒเบ™เบฅเบฐเบšเบปเบš Alpha/VMS.

-gเบฅเบฐเบ”เบฑเบš
-ggdbเบฅเบฐเบ”เบฑเบš
-gstabsเบฅเบฐเบ”เบฑเบš
-gcoffเบฅเบฐเบ”เบฑเบš
-gxcoffเบฅเบฐเบ”เบฑเบš
-gvmsเบฅเบฐเบ”เบฑเบš
เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ เปเบฅเบฐเบเบฑเบ‡เปƒเบŠเป‰ เบฅเบฐเบ”เบฑเบš เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”. เป„เบ”เป‰
เบฅเบฐเบ”เบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

เบฅเบฐเบ”เบฑเบš 0 เบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเปŠเบเป€เบฅเบตเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, -g0 เบ›เบฐเบ•เบดเป€เบชเบ” -g.

เบฅเบฐเบ”เบฑเบš 1 เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เบซเบ™เป‰เบญเบ, เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰ backtraces เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡
เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐ debug. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐ
เบ•เบปเบงเปเบ›เบžเบฒเบเบ™เบญเบ, เปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเบงเป€เบฅเบ, เปเบ•เปˆเบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™.

เบฅเบฐเบ”เบฑเบš 3 เบ›เบฐเบเบญเบšเบกเบตเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบŠเบฑเปˆเบ™: เบ™เบดเบเบฒเบกเบกเบฐเบซเบฒเบžเบฒเบเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™
เป‚เบ„เบ‡เบเบฒเบ™. เบšเบฒเบ‡เบ•เบปเบงเบ”เบตเบšเบฑเบเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบžเบฒเบเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -g3.

-gdwarf-2 เบšเปเปˆเบเบญเบกเบฎเบฑเบšเบฅเบฐเบ”เบฑเบšเบ”เบตเบšเบฑเปŠเบเบ—เบตเปˆเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒ GCC เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -gdwarf เบ™เบฑเป‰เบ™เปเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเปƒเบ™เป€เบงเบตเบŠเบฑเบ™ 1 เบ‚เบญเบ‡ DWARF
เบฎเบนเบšเปเบšเบš (เป€เบŠเบดเปˆเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบเบˆเบฒเบเบฎเบธเปˆเบ™ 2), เปเบฅเบฐเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบชเบฑเบšเบชเบปเบ™เป€เบเบตเบ™เป„เบ›.
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ”เบตโ€‹เบšเบฑเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบฅเป‰เบฒโ€‹เบชเบฐโ€‹เป„เปโ€‹เบ”เบปเบ™โ€‹เบ™เบฒเบ™, เปเบ•เปˆโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เปˆเบฝเบ™โ€‹เป„เบ”เป‰โ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก -gเบฅเบฐเบ”เบฑเบš เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบฅเบฐเบ”เบฑเบšเบ”เบตเบšเบฑเบเบชเปเบฒเบฅเบฑเบš DWARF.

-gtoggle
เบ›เบดเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเปŠเบ, เบ–เป‰เบฒเบญเบญเบเบˆเบฒเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบชเป‰เบฒเบ‡เบกเบฑเบ™, เบซเบผเบทเป€เบ›เบตเบ”เบกเบฑเบ™
เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš 2 เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™. เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ™เบตเป‰เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบšเปเปˆเป„เบ”เป‰
เป€เบฅเบทเปˆเบญเบ‡; เบกเบฑเบ™โ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบญเบทเปˆเบ™เป†โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹, เปเบฅเบฐโ€‹เบกเบฑเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹
เบ„เบฑเป‰เบ‡เบ”เบฝเบง, เบšเปเปˆเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเปƒเบซเป‰เบˆเบฑเบเป€เบ—เบทเปˆเบญ. เบ™เบตเป‰เปเบกเปˆเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ•เบปเป‰เบ™เบ•เปเป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš
-fcompare-debug.

-fsanitize=เบ—เบตเปˆเบขเบนเปˆ
เป€เบ›เบตเบ”เปƒเบŠเป‰ AddressSanitizer, เป€เบ„เบทเปˆเบญเบ‡เบเบงเบ”เบˆเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ„เบงเบฒเบกเบˆเบณเป„เบง. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบกเปˆเบ™
เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เป€เบžเบทเปˆเบญโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ™เบญเบโ€‹เป€เบ‚เบ”โ€‹เปเบ”เบ™โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ‚เปเป‰โ€‹เบšเบปเบโ€‹เบžเปˆเบญเบ‡โ€‹. เป€เบšเบดเปˆเบ‡
<https://github.com/google/sanitizers/wiki/AddressSanitizer> เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เป„เบ”เป‰
เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เปเบฅเปˆเบ™เป€เบงเบฅเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบญเบดเบ”เบ—เบดเบžเบปเบ™เป‚เบ”เบเปƒเบŠเป‰ ASAN_OPTIONS เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ›เปˆเบฝเบ™เปเบ›เบ‡. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบฑเบ™ "help=1", เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ instrumended
เป‚เบ„เบ‡เบเบฒเบ™. เป€เบšเบดเปˆเบ‡
<https://github.com/google/sanitizers/wiki/AddressSanitizerFlags#run-time-flags> เบชเปเบฒเบฅเบฑเบš เบ
เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

-fsanitize=kernel-address
เป€เบ›เบตเบ”เปƒเบŠเป‰ AddressSanitizer เบชเปเบฒเบฅเบฑเบš Linux kernel. เป€เบšเบดเปˆเบ‡https://github.com/google/kasan/wiki>
เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

-fsanitize=เบเบฐเบ—เบนเป‰
เป€เบ›เบตเบ”เปƒเบŠเป‰ ThreadSanitizer, เป€เบ„เบทเปˆเบญเบ‡เบเบงเบ”เบˆเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบŠเบทเป‰เบญเบŠเบฒเบ”เป„เบง. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบกเปˆเบ™
เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เป€เบžเบทเปˆเบญโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เป€เบŠเบทเป‰เบญโ€‹เบŠเบฒเบ”โ€‹เปเบกเบ‡โ€‹เป„เบกเป‰โ€‹. เป€เบšเบดเปˆเบ‡
<https://github.com/google/sanitizers/wiki#threadsanitizer> เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบเบฒเบ™โ€‹เปเบฅเปˆเบ™ -
เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบญเบดเบ”เบ—เบดเบžเบปเบ™เป‚เบ”เบเปƒเบŠเป‰ TSAN_OPTIONS เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ›เปˆเบฝเบ™เปเบ›เบ‡; เป€เบšเบดเปˆเบ‡
<https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags> เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

-fsanitize=เบฎเบปเปˆเบง
เป€เบ›เบตเบ”เปƒเบŠเป‰ LeakSanitizer, เป€เบ„เบทเปˆเบญเบ‡เบเบงเบ”เบˆเบฑเบšเบ„เบงเบฒเบกเบˆเบณเบฎเบปเปˆเบง. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบ„เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡
เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰ เปเบฅเบฐเบ–เป‰เบฒเบšเปเปˆเปเบกเปˆเบ™ -fsanitize=เบ—เบตเปˆเบขเบนเปˆ neither -fsanitize=เบเบฐเบ—เบนเป‰ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เปƒเบ™โ€‹เบ™เบฑเป‰เบ™
เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปเบกเปˆเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เบ—เบตเปˆ overrides "mallocโ€‹" เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹
เบซเบ™เป‰เบฒเบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™. เป€เบšเบดเปˆเบ‡
<https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer> เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบฅเบฒเบเบฅเบฐเบญเบฝเบ”. เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เปเบฅเปˆเบ™เป€เบงเบฅเบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบญเบดเบ”เบ—เบดเบžเบปเบ™เป‚เบ”เบเปƒเบŠเป‰ LSAN_OPTIONS เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก
เบ•เบปเบงเปเบ›.

-fsanitize=เบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰ UndefinedBehaviorSanitizer, เป€เบ„เบทเปˆเบญเบ‡เบเบงเบ”เบˆเบฑเบšเบžเบถเบ”เบ•เบดเบเบณเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”เป„เบง. เบ•เปˆเบฒเบ‡เป†
เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เป€เบžเบทเปˆเบญโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบขเบนเปˆโ€‹เปƒเบ™ runtimeโ€‹. เบ›เบฐเบˆเบธเบšเบฑเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเบเปˆเบญเบเปเบกเปˆเบ™:

-fsanitize=shift
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบงเปˆเบฒโ€‹เบœเบปเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹
เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ
เบฅเบฐเบซเบงเปˆเบฒเบ‡ C เปเบฅเบฐ C ++, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡ ISO C90 เปเบฅเบฐ C99, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

-fsanitize=integer-divide-by-zero
เบเบงเบ”เบžเบปเบšเบเบฒเบ™เบซเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ”เป‰เบงเบเบชเบนเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบซเบฒเบ™ "INT_MIN / -1".

-fsanitize=เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰
เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบˆเบฐเบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ— "__builtin_unreachable" เปƒเบซเป‰เป€เบ›เบฑเบ™
เป‚เบ—เบซเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเปเบ—เบ™. เป€เบกเบทเปˆเบญเป€เบ–เบดเบ‡เบเบฒเบ™เป‚เบ— "__builtin_unreachable",
เบžเบถเบ”เบ•เบดเบเปเบฒเปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”.

-fsanitize=vla-bound
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ compiler เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›
array เป€เบ›เบฑเบ™เบšเบงเบ.

-fsanitize=null
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบŠเบตเป‰. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบตเบ”โ€‹เบˆเบฐโ€‹เบญเบญเบโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบกเบฑเบ™โ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐ dereference a
เบ•เบปเบงเบŠเบตเป‰ NULL, เบซเบผเบทเบ–เป‰เบฒเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ (เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ rvalue) เบ–เบทเบเบœเบนเบเบกเบฑเบ”เบเบฑเบš NULL
เบ•เบปเบงเบŠเบตเป‰, เบซเบผเบทเบ–เป‰เบฒเบงเบดเบ—เบตเบเบฒเบ™เบ–เบทเบเป€เบญเบตเป‰เบ™เปƒเบชเปˆเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบŠเบตเป‰เป‚เบ”เบเบ•เบปเบงเบŠเบตเป‰ NULL.

-fsanitize=เบเบฑเบšเบ„เบทเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบšเปเบˆเป‰เบ‡เบเบญเบ”เบเบฑเบšเบ„เบทเบ™. เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เป€เบ›เบตเบ”เบˆเบฐเบญเบญเบเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ void เปเบกเปˆเบ™
เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบ•เบปเบงเบˆเบดเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ C ++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fsanitize=signed-integer-overflow
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบฅเบปเป‰เบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเป€เบŠเบฑเบ™เปเบฅเป‰เบง. เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡
"+", "*", เปเบฅเบฐเบ—เบฑเบ‡ unary เปเบฅเบฐ binary "-" เบšเปเปˆ overflow เปƒเบ™เป€เบŠเบฑเบ™
เป€เบฅเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”. เปเบฒเบเป€เบซเบ”, เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบกเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ. เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™,
เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™ overflow:

เป€เบŠเบฑเบ™ char a = SCHAR_MAX;
a++;

-fsanitize=เบ‚เบญเบšเป€เบ‚เบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ‚เบญเบ‡เบ‚เบญเบšเป€เบ‚เบ”เบญเบฒเป€เบฃ. เบ•เปˆเบฒเบ‡เป†เบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”
เบเบงเบ”เบžเบปเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เบชเบฐโ€‹เบกเบฒโ€‹เบŠเบดเบ array เบขเบทเบ”โ€‹เบขเบธเปˆเบ™โ€‹, เบญเบฒโ€‹เป€เบฃโ€‹เบชเบฐโ€‹เบกเบฒโ€‹เบŠเบดเบ array เบขเบทเบ”โ€‹เบขเบธเปˆเบ™โ€‹,
เปเบฅเบฐเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.

-fsanitize=เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เป€เบกเบทเปˆเบญเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบญเป‰เบฒเบ‡เบญเบตเบ‡
เบซเบผเบทเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ–เบทเบเบœเบนเบเบกเบฑเบ”เบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบšเปเปˆเบžเบฝเบ‡เบžเป, เบซเบผเบทเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบงเบดเบ—เบตเบเบฒเบ™เบซเบผเบท
constructor เปเบกเปˆเบ™ invoked เปƒเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบšเปเปˆเบžเบฝเบ‡เบžเป.

-fsanitize=object-size
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
เบŸเบฑเบ‡เบŠเบฑเบ™ "__builtin_object_size". เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ•เบปเบงเบŠเบตเป‰เบญเบญเบเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ•เปˆเบฒเบ‡เป†เปเบกเปˆเบ™
เบเบงเบ”เบžเบปเบš.

-fsanitize=float-divide-by-zero
เบเบงเบ”เบžเบปเบšเบเบฒเบ™เปเบšเปˆเบ‡เบˆเบธเบ”เบฅเบญเบเบ”เป‰เบงเบเบชเบนเบ™. เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™,
-fsanitize=float-divide-by-zero เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -fsanitize=เบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ
เบเบฒเบ™เปเบšเปˆเบ‡เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เป‚เบ”เบเบชเบนเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฑเบ™เป€เบ›เบฑเบ™เบ™เบดเบ”
เปเบฅเบฐ NaNs.

-fsanitize=float-cast-overflow
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ›เบฐเป€เบžเบ”เบˆเบธเบ”เบฅเบญเบเป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบเบฒเบ™เปเบ›เบ‡เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก. เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เบชเบญเบš
เบงเปˆเบฒเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปƒเบˆเป€เบซเบฅเบทเป‰เบญเบกเปƒเบชเบšเปเปˆ overflow. เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, -fsanitize=float-cast-overflow เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -fsanitize=เบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เบ”เบตเบเบฑเบšเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ "FE_INVALID" เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-fsanitize=nonnull-attribute
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เป‚เบ—, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ„เปˆเบฒ null เบšเปเปˆเปเบกเปˆเบ™เบšเป
เบœเปˆเบฒเบ™เป„เบ›เบซเบฒ arguments เบ—เบตเปˆเปเบฒเบเบงเปˆเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เปˆเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ null เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™ "nonnull".
attribute

-fsanitize=returns-nonnull-attribute
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบšเบฑเบ™โ€‹เบเบฒเบโ€‹เบœเบปเบ™โ€‹เบ•เบญเบšโ€‹เปเบ—เบ™โ€‹เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบซเบกเบฒเบโ€‹เบ”เป‰เบงเบโ€‹
"returns_nonnull" เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹, เป€เบžเบทเปˆเบญโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เปˆเบฒ null เบˆเบฒเบโ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒ.

-fsanitize=bool
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เป‚เบซเบผเบ”เบˆเบฒเบ bool. เบ–เป‰เบฒเบ„เปˆเบฒเบญเบทเปˆเบ™เบ™เบญเบเบˆเบฒเบ 0/1
เบ–เบทเบเป‚เบซเบฅเบ”, เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™เปเบกเปˆเบ™เบญเบญเบ.

-fsanitize=enum
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เป‚เบซเบผเบ”เบˆเบฒเบเบ›เบฐเป€เบžเบ” enum. เบ–เป‰เบฒเบกเบนเบ™เบ„เปˆเบฒ
เบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ” enum เปเบกเปˆเบ™เบเบฒเบ™เป‚เบซเบผเบ”, เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™เปเบกเปˆเบ™
เบญเบญเบ.

-fsanitize=vptr
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เบกเบฒโ€‹เบŠเบดเบ C++โ€‹, เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบชเบฐโ€‹เบกเบฒโ€‹เบŠเบดเบโ€‹
เปเบฅเบฐเบšเบฒเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ–เบฒเบ™เปเบฅเบฐเบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเบกเบฒเบˆเบฒเบ, เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบš
เบงเบฑเบ”เบ–เบธเบญเป‰เบฒเบ‡เบญเบตเบ‡เบกเบตเบ›เบฐเป€เบžเบ”เป„เบ”เบ™เบฒเบกเบดเบเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ -ftrapv เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฑเบšโ€‹เบ”เบฑเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ overflows เป„เบ”เป‰โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบ›เปˆเบญเบโ€‹เบญเบญเบโ€‹เบกเบฒโ€‹, -fsanitize=เบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”
เปƒเบซเป‰เบ‚เปเป‰เบ„เบงเบฒเบกเบงเบดเบ™เบดเบ”เป„เบช. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบžเบฒเบชเบฒ C เบ„เบญเบšเบ„เบปเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fno-sanitize=เบ—เบฑเบ‡เปเบปเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบขเบฒเบ‚เป‰เบฒเป€เบŠเบทเป‰เบญเบญเบฐเบชเบธเบˆเบดเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰. -fsanitize=เบ—เบฑเบ‡เปเบปเบ” เบšเปเปˆโ€‹เปเบกเปˆเบ™
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹, เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบขเบฒโ€‹เบญเบฐโ€‹เบ™เบฒโ€‹เป„เบกโ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡โ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบ™โ€‹.

-fasan-shadow-offset=เบˆเปเบฒเบ™เบงเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰ GCC เปƒเบŠเป‰เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเป€เบ‡เบปเบฒเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš AddressSanitizer. เบกเบฑเบ™โ€‹เปเบกเปˆเบ™
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบš shadow memory layouts เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™ Kernel
เบ—เบตเปˆเบขเบนเปˆ

-fsanitize-เบŸเบทเป‰เบ™เบ•เบปเบง[=เป€เบฅเบทเบญเบ]
-fsanitize-recover= เบ„เบงเบšเบ„เบธเบกเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบขเบฒเบ‚เป‰เบฒเป€เบŠเบทเป‰เบญเบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเป„เบงเป‰เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”-
เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเปเบเบเบญเบญเบ เป€เบฅเบทเบญเบ. เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบชเบธเบ‚เบฒเบžเบดเบšเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™
เบžเบฐเบเบฒเบเบฒเบกเบชเบทเบšเบ•เปเปˆเปเบฅเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ„เบทเบเบฑเบšเบงเปˆเบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบซเบผเบฒเบ
เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” runtime เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฒเบเบ‡เบฒเบ™เบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฝเบงเปเบฅเปˆเบ™, เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบญเบญเบเบ‚เบญเบ‡
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบŠเบตเป‰โ€‹เบšเบญเบโ€‹เบ„เบงเบฒเบกโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ‚เปเป‰โ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบฒเบโ€‹เบ‡เบฒเบ™โ€‹. เป„เบ”เป‰
-fno-sanitize-recover= เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เบ™เบตเป‰โ€‹: เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹
เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเบงเบ”เบžเบปเบšเบˆเบฐเบ–เบทเบเบฅเบฒเบเบ‡เบฒเบ™ เปเบฅเบฐเป‚เบ›เบฃเปเบเบฃเบกเบˆเบฐเบญเบญเบเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เบญเบญเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบนเบ™.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบš -fsanitize=เบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ” (เปเบฅเบฐเบ•เบปเบงเป€เบฅเบทเบญเบเบเปˆเบญเบเบ‚เบญเบ‡เบกเบฑเบ™เบเบปเบเป€เบงเบฑเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -fsanitize=เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰ เปเบฅเบฐ -fsanitize=เบเบฑเบšเบ„เบทเบ™), -fsanitize=float-cast-overflow,
-fsanitize=float-divide-by-zero เปเบฅเบฐ -fsanitize=kernel-address. เบชเปเบฒเบฅเบฑเบšเบขเบฒเบ‚เป‰เบฒเป€เบŠเบทเป‰เบญเป‚เบฅเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบ›เบตเบ”โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹. -fsanitize-recover=เบ—เบฑเบ‡เปเบปเบ” เปเบฅเบฐ
-fno-sanitize-recover=เบ—เบฑเบ‡เปเบปเบ” เบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบš, เบญเบฐเบ”เบตเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™
เบชเบธเบ‚เบฒเบžเบดเบšเบฒเบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™, เบชเบธเบ”เบ—เป‰เบฒเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบชเปเบฒเบฅเบฑเบšเบชเบธเบ‚เบฒเบžเบดเบšเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™.

Syntax เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™ เป€เบฅเบทเบญเบ เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš

-fsanitize-recover=undefined,float-cast-overflow,float-divide-by-zero

เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ -fno-sanitize-เบŸเบทเป‰เบ™เบ•เบปเบง เป€เบ—เบปเปˆเบฒเบเบฑเบš

-fno-sanitize-recover=undefined,float-cast-overflow,float-divide-by-zero

-fsanitize-undefined-trap-on-error
เป„เบ”เป‰ -fsanitize-undefined-trap-on-error เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฑเปˆเบ‡เปƒเบซเป‰ compiler เบฅเบฒเบเบ‡เบฒเบ™
เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป‚เบ”เบเปƒเบŠเป‰ "__builtin_trap" เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "libubsan".
เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "libubsan" เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡
เปƒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เป„เบ”เป‰เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบญเบเบฐเบฅเบฒเบ”.

-fcheck-pointer-bounds
เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบงเบ”เบชเบญเบš Pointer Bounds Checker. เปเบ•เปˆเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบท
เบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เปเปˆเบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ™เบฑเป‰เบ™
เบ•เบปเบงเบŠเบตเป‰.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš Intel MPX เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ x86 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบฅเบฐ
-mmpx เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰. เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ MPX เบ•เป‰เบญเบ‡เบเบฒเบ™ a
runtime library เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰ MPX เปƒเบ™เบฎเบฒเบ”เปเบงเปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบชเบฑเบ™เบเบฒเบ™เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ‚เบญเบšเป€เบ‚เบ”. เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ -fcheck-pointer-bounds เปเบฅเบฐ -mmpx เบ—เบฒเบ‡ เป€เบฅเบทเบญเบ เปƒเบ™ เบเบฒเบ™ เบ™เปเบฒ เปƒเบŠเป‰ เป€เบžเบทเปˆเบญ เป€เบŠเบทเปˆเบญเบก เบ•เปเปˆ เป‚เบ„เบ‡ เบเบฒเบ™, เป„เบ”เป‰
เบ„เบปเบ™เบ‚เบฑเบš GCC เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš libmpx เบซเปเบชเบฐเบซเบกเบธเบ” runtime เปเบฅเบฐ libmpxwrappers เบซเปเบชเบฐเปเบธเบ”. เบกเบฑเบ™
เบเบฑเบ‡เบœเปˆเบฒเบ™ '-z bndplt' เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบฑเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ (เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบเบงเบ”เบชเบญเบš.
เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒ libmpxโ€‹)โ€‹. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฎเบธเปˆเบ™เป€เบเบปเปˆเบฒเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ„เปเบฒ
linker เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ '-z bndplt' เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ '-z bndplt' เปƒเบ™ linker เบ—เบฑเบ‡เบซเบกเบปเบ”
เบเบฒเบ™เป‚เบ—เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป„เบ”เป‰เบชเบนเบ™เป€เบชเบเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เป‚เบ”เบเบฅเบงเบก. เบกเบฑเบ™
เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ '-z bndplt'. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเปเบกเปˆเบ™
เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เบกเบฑเบ™เปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰เบขเบนเปˆเบชเบฐเป€เบซเบกเบต -static-libmpxwrappers เป€เบžเบทเปˆเบญเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ
เบฅเบฐเบ”เบฑเบšเบซเบผเบทเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -static เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป‚เบ—เบซเบฒเบžเบฒเบเบ™เบญเบเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. MPX-
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging เปเบฅเบฐเบเบฑเบ‡เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”
เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก. เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime. เบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™ MPX
เปเบกเปˆเบ™เบฎเบฑเบ”เบเบธเบกเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบเป‰เบšเบฑเบ™เบซเบฒ. เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ” runtime MPX เบซเบกเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบงเปˆเบฒโ€‹
- เบซเบปเบงเบ‚เปเป‰. เป€เบšเบดเปˆเบ‡เบ•เบทเปˆเบก -static-libmpx. เบžเบถเบ”เบ•เบดเบเปเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบญเบดเบ”เบ—เบดเบžเบปเบ™
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ•เปˆเบฒเบ‡เป†โ€‹ CHKP_RT_* เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก. เป€เบšเบดเปˆเบ‡
<https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler> เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบ•เปˆเบฒเบ‡เป† -fchkp-* เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบฅเบฐโ€‹เป‚เบ”เบโ€‹
"bnd_variable_size" เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐ "bnd_legacy", เปเบฅเบฐ "bnd_instrument"
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹. GCC เบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบก
เบ•เบปเบงเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ•เบปเบงเบŠเบตเป‰.

-fchkp-check-incomplete-type
เบชเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ”เบ•เบปเบงเบŠเบตเป‰เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบšเปเปˆเบ„เบปเบšเบ–เป‰เบงเบ™. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
Default

-fchkp-เปเบ„เบš-เบ‚เบญเบšเป€เบ‚เบ”
เบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ Pointer Bounds Checker เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™. เบ–เป‰เบฒ
เปเบ„เบšเปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เปเบฅเป‰เบงเบ‚เบญเบšเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เบญเบšเป€เบ‚เบ”เบงเบฑเบ”เบ–เบธเบ–เบทเบเปƒเบŠเป‰.
เป€เบšเบดเปˆเบ‡ -fchkp-narrow-to-innermost-array เปเบฅเบฐ -fchkp-first-field-has-own-bounds.
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-first-field-has-own-bounds
Forces Pointer Bounds Checker เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ‚เบญเบšเป€เบ‚เบ”เปเบ„เบšเบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ—เปเบฒเบญเบดเบ”
เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เปเบฒเบญเบดเบ”เบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบ”เบฝเบงเบเบฑเบ™
เป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰เป€เบ–เบดเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”.

-fchkp-narrow-to-innermost-array
Forces Pointer Bounds Checker เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ arrays เบŠเบฑเป‰เบ™เปƒเบ™เบชเบธเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ nested
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ array static. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ™เบญเบเบ—เบตเปˆเบชเบธเบ”
array เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-fchkp-optimize
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เบปเบงเบŠเบตเป‰เบ•เบปเบงเบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ”. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบฅเบฐเบ”เบฑเบš -O, -O2, -O3.

-fchkp-use-fast-string-functions
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ *_nobnd เป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡ (เบšเปเปˆเบชเบณเป€เบ™เบปเบฒเบ‚เบญเบšเป€เบ‚เบ”) เป‚เบ”เบเบ•เบปเบงเบŠเบตเป‰
Bounds Checker. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-use-nochk-string-functions
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ *_nochk เป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡ (เบšเปเปˆเบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ”) เป‚เบ”เบเบ•เบปเบงเบŠเบตเป‰
Bounds Checker. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-use-static-bounds
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบปเบงเบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ”เบ•เบปเบงเบŠเบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ‚เบญเบšเป€เบ‚เบ”เบ„เบปเบ‡เบ—เบตเปˆเบ–เบทเบ‚เบญเบšเป€เบ‚เบ”เบ„เบปเบ‡เบ—เบตเปˆ
เบ•เบปเบงเปเบ›. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-use-static-const-bounds
เปƒเบŠเป‰ statically-initialized bounds เบชเปเบฒเบฅเบฑเบšเบ‚เบญเบšเป€เบ‚เบ”เบ„เบปเบ‡เบ—เบตเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบ•เปˆเบฅเบฐเบ„เบปเบ™
เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป€เบกเบทเปˆเบญ -fchkp-use-static-bounds เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-fchkp-treat-zero-dynamic-size-as-infinite
เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰, เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบšเปเปˆเบชเบปเบกเบšเบนเบ™เบ—เบตเปˆเบ‚เบฐเปœเบฒเบ”เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเปเบกเปˆเบ™เบชเบนเบ™
เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เปเบ—เบ™เป‚เบ”เบ Pointer Bounds Checker. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเป‚เบ„เบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบ„เบปเบ™
เบชเบฑเบ™เบเบฒเบฅเบฑเบ. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-check-read
เปเบ™เบฐเบ™เบณเบ•เบปเบงเบเบงเบ”เบชเบญเบšเบˆเบธเบ”เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ.
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-check-write
เปเบ™เบฐเบ™เบณเบ•เบปเบงเบเบงเบ”เบชเบญเบšเบˆเบธเบ”เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ.
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-store-bounds
เปเบ™เบฐเบ™เบณเบ•เบปเบงเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ•เบปเบงเบŠเบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฎเป‰เบฒเบ™เบ„เป‰เบฒเบ‚เบญเบšเป€เบ‚เบ”เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบ•เบปเบงเบŠเบตเป‰.
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-instrument-calls
เปเบ™เบฐเบ™เบณเบ•เบปเบงเบเบงเบ”เบชเบญเบšเบˆเบธเบ”เบœเบนเบเบกเบฑเบ”เบ•เบปเบงเบŠเบตเป‰เป€เบžเบทเปˆเบญเบœเปˆเบฒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบเบฒเบ™เป‚เบ—. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-instrument-marked-only
เปเบ™เบฐเบ™เบณเบ•เบปเบงเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเป€เบฎเบฑเบ”เปœเป‰เบฒเบ—เบตเปˆเปเบฒเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
"bnd_instrument" เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fchkp-use-wrappers
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ Pointer Bounds Checker เบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบงเบ”เป‰เบงเบเบเบฒเบ™เป‚เบ—เบซเบฒ
เบŸเบฑเบ‡เบŠเบฑเบ™ wrapper. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fchkp-use-wrappers เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™, เป„เบ”เป€เบงเบต GCC
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบเบฑเบš libmpxwrappers. เป€เบšเบดเปˆเบ‡เบ•เบทเปˆเบก -static-libmpxwrappers. เป€เบ›เบตเบ”เปƒเบŠเป‰เปเบฅเป‰เบง
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

-fdump-final-insns[=เป€เบญเบเบฐเบชเบฒเบ™]
เบ–เบดเป‰เบกเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบžเบฒเบเปƒเบ™เบชเบธเบ”เบ—เป‰เบฒเบ (RTL) เป„เบ› เป€เบญเบเบฐเบชเบฒเบ™. เบ–เป‰เบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™
เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™ (เบซเบผเบทเบ–เป‰เบฒ เป€เบญเบเบฐเบชเบฒเบ™ เปเบกเปˆเบ™ "."), เบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒ dump เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
".gkd" เปƒเบชเปˆเบŠเบทเปˆเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

-fcompare-debug[=เป€เบฅเบทเบญเบ]
เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡, เป€เบžเบตเปˆเบก เป€เบฅเบทเบญเบ เปเบฅเบฐ
-fcompare-debug-เบงเบดเบ™เบฒเบ—เบต เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเบชเบญเบ‡. เบ–เบดเป‰เบก
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบžเบฒเบเปƒเบ™เบชเบธเบ”เบ—เป‰เบฒเบเปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบฑเบ‡เบชเบญเบ‡, เปเบฅเบฐเบžเบดเบกเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

เบ–เป‰เบฒเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -gtoggle เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰ GCC_COMPARE_DEBUG, เบ–เป‰เบฒเบเปเบฒเบ™เบปเบ”, เบšเปเปˆเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเปเบฅเบฐเบšเปเปˆเบชเบนเบ™,
implicitly เป€เบ›เบตเบ”เปƒเบŠเป‰ -fcompare-debugเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ GCC_COMPARE_DEBUG เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ dash, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš เป€เบฅเบทเบญเบ, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -gtoggle is
เปƒเบŠเป‰เปเบฅเป‰เบง.

-fcompare-debug=, เบกเบตเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™เปเบ•เปˆเบšเปเปˆเบกเบต เป€เบฅเบทเบญเบ, เป€เบ—เบปเปˆเบฒเบเบฑเบš
-fno-compare-debug, เป€เบŠเบดเปˆเบ‡เบ›เบดเบ”เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ‚เบญเบ‡เบ•เบปเบงเปเบ—เบ™เบชเบธเบ”เบ—เป‰เบฒเบเปเบฅเบฐ
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเบชเบญเบ‡, เบ›เป‰เบญเบ‡เบเบฑเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ GCC_COMPARE_DEBUG เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹.

เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ -fcompare-debug เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹, เบเปเบฒโ€‹เบ™เบปเบ”โ€‹ GCC_COMPARE_DEBUG เป€เบงเบปเป‰เบฒ
-fcompare-debug-not-overridden, เป€เบŠเบดเปˆเบ‡ GCC เบ›เบฐเบ•เบดเป€เบชเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบ•เบปเบงเบˆเบดเบ‡เปƒเบ”เป†
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก (เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบเปˆเบงเบฒเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™, เบเบฒเบ™เบ›เบฐเบเบญเบšเบซเบผเบทเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡). เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž,
เบ•เบฑเป‰เบ‡ GCC_COMPARE_DEBUG to -w%n-fcompare-debug เบšเปเปˆ เบ–เบทเบเบเบปเบเป€เบฅเบตเบ เบˆเบฐโ€‹เป€เบฎเบฑเบ”.

-fcompare-debug-เบงเบดเบ™เบฒเบ—เบต
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™ implicitly เบเบฑเบš compiler เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเบชเบญเบ‡เบฎเป‰เบญเบ‡เบ‚เป
by -fcompare-debug, เบžเป‰เบญเบกเบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ›เบดเบ”เบชเบฝเบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™, เปเบฅเบฐเบเบฒเบ™เบฅเบฐเป€เบงเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™
เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เบ‚เบญเบ‡ compiler outputs เบเบฑเบšเป„เบŸเบฅเปŒเบซเบผเบทเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.
เป„เบŸเบฅเปŒ Dump เปเบฅเบฐเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบงเบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เบŠเบทเปˆเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบต ".gk"
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเบชเบญเบ‡, เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบšเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”.

เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เป„เบ”โ€‹เป€เบงเบต compilerโ€‹, เบกเบฑเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบเบตเบ”โ€‹เบเบฒเบ™โ€‹ เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ” เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฑเบš
เบ‚เป‰เบฒเบกเป„เบ›, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบทเปˆเบ™เบ™เบญเบเบˆเบฒเบเบเบฒเบ™ debugging compiler เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก.

-feliminate-dwarf2-dups
เบšเบตเบšเบญเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ DWARF 2 เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบŠเปเป‰เบฒเบเบฑเบ™เบเปˆเบฝเบงเบเบฑเบš
เปเบ•เปˆเบฅเบฐเบชเบฑเบ™เบเบฒเบฅเบฑเบ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบ”เบตเบšเบฑเบ DWARF 2
เบ‚เปเป‰เบกเบนเบ™เบเบฑเบš -gdwarf-2.

-femit-struct-debug-baseonly
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเปŠเบเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเป€เบกเบทเปˆเบญเบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡
เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบปเบ‡เบเบฑเบšเบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ debugging, เปเบ•เปˆเบงเปˆเบฒเบขเบนเปˆเบ—เบตเปˆ
เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ—เบตเปˆเบญเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เบ•เปเปˆเบเบฑเบšเบ•เบปเบงเบ”เบตเบšเบฑเบ. เป€เบšเบดเปˆเบ‡
-femit-struct-debug-เบซเบผเบธเบ”เบฅเบปเบ‡ เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบ™เป‰เบญเบ. เป€เบšเบดเปˆเบ‡
-femit-struct-debug-เบฅเบฒเบเบฅเบฐเบญเบฝเบ” เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš DWARF 2 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-femit-struct-debug-เบซเบผเบธเบ”เบฅเบปเบ‡
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเปŠเบเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเป€เบกเบทเปˆเบญเบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡
เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบปเบ‡เบเบฑเบšเบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบฐเป€เบžเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”,
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบกเปˆเบ™เปเบกเปˆเปเบšเบšเบซเบผเบทเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ debugging, เบกเบตเบšเบฒเบ‡
เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เบ•เปเปˆเบเบฑเบšเบ•เบปเบงเบ”เบตเบšเบฑเบ. เป€เบšเบดเปˆเบ‡ -femit-struct-debug-baseonly
เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ. เป€เบšเบดเปˆเบ‡ -femit-struct-debug-เบฅเบฒเบเบฅเบฐเบญเบฝเบ” เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ„เบงเบšเบ„เบธเบก.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš DWARF 2 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-femit-struct-debug-เบฅเบฒเบเบฅเบฐเบญเบฝเบ”[=เบฅเบฒเบเบŠเบทเปˆเบชเบฐเป€เบžเบฒเบฐ]
เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆ compiler เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบ. เป„เบ”เป‰
เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบšเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡ -femit-struct-debug-เบซเบผเบธเบ”เบฅเบปเบ‡ เปเบฅเบฐ
-femit-struct-debug-baseonly, เป€เบŠเบดเปˆเบ‡เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”.

เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเบกเบต syntax [เปเบกเปˆเบ™:|ind:][เบ„เปเบฒเบชเบฑเปˆเบ‡:|gen:](เปƒเบ”|sys|เบ–เบฒเบ™|none)

เบ„เปเบฒเบ—เปเบฒเบญเบดเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบเบปเบ‡
(เปเบกเปˆเบ™:) เบซเบผเบทโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ—เบฒเบ‡โ€‹เบญเป‰เบญเบก (ind:). เบ›เบฐเป€เบžเบ”เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบกเปˆเบ™เปƒเบŠเป‰เป‚เบ”เบเบเบปเบ‡เป€เบกเบทเปˆเบญเบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”
เบ‚เบญเบ‡เบ•เบปเบงเปเบ›, เบชเบฐเบกเบฒเบŠเบดเบ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เบญเป‰เบญเบกเป€เบเบตเบ”เบ‚เบทเป‰เบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡. เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™,
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบ„เบปเบšเบ–เป‰เบงเบ™เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เบญเป‰เบญเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™ เป‚เบ„เบ‡เบชเป‰เบฒเบ‡
เบซเบ™เบถเปˆเบ‡ เป‚เบ”เบเบเบปเบ‡; เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ เบชเบญเบ‡ * เบ—เบฒเบ‡เบญเป‰เบญเบก;.

เบ„เปเบฒเบ—เบตเปˆเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เปเบฒเบกเบฐเบ”เบฒ (เบ„เปเบฒเบชเบฑเปˆเบ‡:) เบซเบผเบท
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบปเปˆเบงเป„เบ› (gen:). เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบชเบฑเบšเบชเบปเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบžเบทเปˆเบญเบญเบฐเบ—เบดเบšเบฒเบ. เบชเปเบฒเบฅเบฑเบš C++,
เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบŠเปˆเบฝเบงเบŠเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เปเบกเปˆเปเบšเบš, เบซเบผเบทเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เปเบกเปˆเปเบšเบš
เบžเบฒเบเปƒเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบญเบทเปˆเบ™เบกเบต generics, เปเบ•เปˆ
-femit-struct-debug-เบฅเบฒเบเบฅเบฐเบญเบฝเบ” เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

เบ„เปเบฒเบ—เบตเบชเบฒเบกเบเปเบฒเบ™เบปเบ”เป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆ compiler
เบ„เบงเบ™เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบ. เบ„เบธเบ™เบ„เปˆเบฒ none เปเบฅเบฐ เปƒเบ” เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹. เป„เบ”เป‰
เบกเบนเบ™เบ„เปˆเบฒ เบ–เบฒเบ™ เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ›เบฐเป€เบžเบ”
เบ›เบฒเบเบปเบ”เบ•เป‰เบญเบ‡เบเบปเบ‡เบเบฑเบšเบ–เบฒเบ™เบ‚เบญเบ‡เบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเป‰เบ™เบ•เป. เปƒเบ™เบ—เบฒเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”,
เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก foo.c, เบ‚เปเป‰เบกเบนเบ™ debug เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”
เบ›เบฐเบเบฒเบ”เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ™เบฑเป‰เบ™เปเบฅเบฐ foo.h, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เป„เบŸเบฅเปŒเบซเบปเบงเบญเบทเปˆเบ™. เบกเบนเบ™เบ„เปˆเบฒ sys เบงเบดเบ—เบตเบเบฒเบ™
เบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบžเปเปƒเบˆ เบ–เบฒเบ™ เบซเบผเบทเบ›เบฐเบเบฒเบ”เปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš เบซเบผเบท compiler.

เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ—เบปเบ”เบฅเบญเบ‡เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -femit-struct-debug-detailed=เบ—เบฑเบ‡เปเบปเบ”.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš DWARF 2 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fno-merge-debug-strings
เบŠเบตเป‰เบšเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบชเบฒเบเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบ—เบตเปˆเป€เบ›เบฑเบ™
เบ„เบทเบเบฑเบ™เปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบเบฒเบ™เบœเบฐเบชเบปเบกเบœเบฐเบชเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบœเบนเป‰เบ›เบฐเบเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบซเบผเบท
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบซเบผเบธเบ”เบฅเบปเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ debug เปƒเบ™เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบขเบนเปˆเบ—เบตเปˆ
เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบงเบฅเบฒเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบเบฒเบ™เบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fdebug-prefix-map=เบญเบฒเบเบธ=เปƒเบซเบกเปˆ
เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต เบญเบฒเบเบธ, เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™ debugging เบญเบฐเบ—เบดเบšเบฒเบเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™
in เปƒเบซเบกเปˆ เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

-fno-dwarf2-cfi-asm
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™ DWARF 2 unwind เป€เบ›เบฑเบ™ compiler เบชเป‰เบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™ ".eh_frame" เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰
GAS ".cfi_*" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-p เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ
prof. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™,
เปเบฅเบฐเบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

- เปœเป‰เบฒ เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ
เบเบ›. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™,
เปเบฅเบฐเบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

-Q เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบดเบกเบญเบญเบเปเบ•เปˆเบฅเบฐเบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบฅเบงเบšเบฅเบงเบก, เปเบฅเบฐเบžเบดเบกเบšเบฒเบ‡
เบชเบฐเบ–เบดเบ•เบดเบเปˆเบฝเบงเบเบฑเบšเปเบ•เปˆเบฅเบฐ pass เป€เบกเบทเปˆเบญเบกเบฑเบ™เบชเปเบฒเป€เบฅเบฑเบ”.

-ftime เบฅเบฒเบโ€‹เบ‡เบฒเบ™โ€‹
เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบดเบกเบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเบฅเบดเป‚เบžเบเป‚เบ”เบเปเบ•เปˆเบฅเบฐ pass เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™
เบชเบณ เป€เบฅเบฑเบ”เบฎเบนเบš.

-fmem เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™
เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบดเบกเบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบฒเบงเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™
เบชเบณ เป€เบฅเบฑเบ”เบฎเบนเบš.

-fmem-report-wpa
เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบดเบกเบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบฒเบงเบญเบ™เบชเปเบฒเบฅเบฑเบš WPA
เป„เบฅเบเบฐเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fpre-ipa-mem-เบฅเบฒเบเบ‡เบฒเบ™
-fpost-ipa-mem-report
เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบดเบกเบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบฒเบงเบญเบ™เบเปˆเบญเบ™เบซเบผเบท
เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš interprocedural.

-fprofile-report
เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบดเบกเบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ profile (เบ„เบฒเบ”เบ„เบฐเป€เบ™).
เปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ passes เบšเบธเบเบ„เบปเบ™.

-fstack เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler output เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ stack เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™, เบ•เบฒเบกเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™
เบžเบทเป‰เบ™เบ–เบฒเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ dump เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ เบŠเบน เบเบฒเบ™ เบŠเบทเปˆเปเบ—เบ™. เบŠเบทเปˆเปเบ—เบ™ is
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบˆเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบ–เป‰เบฒเบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™ เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™
เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปเบกเปˆเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ
เบชเบฒเบกโ€‹เบžเบฒเบโ€‹เบชเบฐโ€‹เบซเบ™เบฒเบกโ€‹:

* เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹.

* เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ bytes.

* เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”: "static", "dynamic", "bounded".

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "เบชเบฐเบ–เบดเบ”" เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฑเบ”เบเบฒเบ™ stack เบ„เบปเบ‡เบ—เบตเปˆ: a
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบ‚เบญเบ‡โ€‹เป„เบšโ€‹เบ•โ€‹เปŒโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบญเบšโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปเบฅเบฐโ€‹เบ›เปˆเบญเบโ€‹เบญเบญเบโ€‹เบกเบฒโ€‹เป€เบกเบทเปˆเบญโ€‹
function เบญเบญเบ; เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบš stack เปเบกเปˆเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เบ–เป‰เบฒโ€‹เบšเปเปˆโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹. เบ—เบตเปˆโ€‹เบชเบญเบ‡
เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบ•เบปเบงเป€เบฅเบเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เป„เบšเบ•เปŒเบ™เบตเป‰.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "dynamic" เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™ stack เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง: เปƒเบ™
เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™ static เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบเบฒเบ™เบ›เบฑเบš stack เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบขเบนเปˆเปƒเบ™
เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบเบนเป‰/เบ›เปŠเบญเบšเบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบฎเบญเบšเบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™. เบ–เป‰เบฒ
เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ” "boundedโ€‹" เปเบกเปˆเบ™โ€‹เบเบฑเบ‡โ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹, เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ„เปˆเบฒโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™ bounded เบขเบนเปˆโ€‹เบ—เบตเปˆโ€‹
เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเปเบฅเบฐเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบ‚เบญเบšเป€เบ‚เบ”เป€เบ—เบดเบ‡เบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ stack เบ—เบตเปˆเปƒเบŠเป‰
เป‚เบ”เบเบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบกเบต, เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”
เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเบชเบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบ–เบทเบเบœเบนเบเบกเบฑเบ”.

-fprofile-arcs
เป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เป‚เบ›เบฃเปเบเบกเป„เบซเบฅเป„เบ› arcs เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบท. เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹
เบšเบฑเบ™เบ—เบถเบเบˆเปเบฒเบ™เบงเบ™เบ„เบฑเป‰เบ‡เบ—เบตเปˆเปเบ•เปˆเบฅเบฐเบชเบฒเบ‚เบฒเปเบฅเบฐเบเบฒเบ™เป‚เบ—เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”
เบซเบผเบทเบเบฑเบšเบ„เบทเบ™. เป€เบกเบทเปˆเบญเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบญเบญเบเบกเบฒ, เบกเบฑเบ™เบˆเบฐเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ
auxname.gcda เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เบ‚เปเป‰เบกเบนเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบˆเบฐเบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปเบ™เปƒเบชเปˆเป‚เบ›เบฃเป„เบŸเบฅเปŒ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš (-fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰), เบซเบผเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš
(-ftest-เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹). เปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ เบŠเบทเปˆเปเบ—เบ™ เปเบกเปˆเบ™เบœเบฐเบฅเบดเบ”เบˆเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡
เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบ–เป‰เบฒเบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบธเบ”เบ—เป‰เบฒเบ, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™
เปเบกเปˆเบ™เบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เบเปเบฅเบฐเบ™เบต, เบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบเปƒเบ”เป†เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡
foo.gcda เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เป„เบŸเบฅเปŒ dir/foo.c, เบซเบผเบท dir/foo.gcda เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เป€เบ›เบฑเบ™โ€‹ -o
dir/foo.o).

-- เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡. เป„เบ”เป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบท -fprofile-arcs -ftest-เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹ (เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบก) เปเบฅเบฐ -lgcov
(เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ). เป€เบšเบดเปˆเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

* เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบกเบต -fprofile-arcs เบšเบงเบเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เปƒเบŠเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบก -ftest-เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.
เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡ profile เบ—เบธเบเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™.

* เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบš -lgcov or -fprofile-arcs (เบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบซเบกเบฒเบเป€เบ–เบดเบ‡
เบญเบฐเบ”เบตเบ”).

* เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เบ•เบปเบงโ€‹เปเบ—เบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบชเป‰เบฒเบ‡ profile arc เป„เบ”เป‰โ€‹
เบ‚เปเป‰เบกเบนเบ™. เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ–เบทเบเป€เบฎเบฑเบ”เบŠเป‰เบณเบซเบผเบฒเบเบ„เบฑเป‰เบ‡. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเป‰เบญเบกเบเบฑเบ™
เบ•เบปเบง เบขเปˆเบฒเบ‡ เบ‚เบญเบ‡ เป‚เบ„เบ‡ เบเบฒเบ™ เบ‚เบญเบ‡ เบ—เปˆเบฒเบ™, เปเบฅเบฐ เบชเบฐ เบซเบ™เบญเบ‡ เปƒเบซเป‰ เบฅเบฐ เบšเบปเบš เป„เบŸเบฅ เปŒ เบชเบฐ เบซเบ™เบฑเบš เบชเบฐ เบซเบ™เบนเบ™ เบเบฒเบ™ locking, เป„เบ”เป‰
เป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰ "เบชเป‰เบญเบก" เป‚เบ—เบ–เบทเบเบเบงเบ”เบžเบปเบšเปเบฅเบฐ
เบˆเบฑเบ”เบเบฒเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡ (เบเบฒเบ™เบ™เบฑเบšเบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบˆเบฐเบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™).

* เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ profile-directed, เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบ”เป‰เบงเบเบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบšเบงเบ -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

* เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ gcov เป€เบžเบทเปˆเบญเบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบ‚เบญเบ‡เบกเบฐเบ™เบธเบ”เบˆเบฒเบ
เป„เบ”เป‰ .gcno เปเบฅเบฐ .gcda เป„เบŸเบฅเปŒ. เบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡ gcov เป€เบญเบเบฐเบชเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™.

เบเบฑเบš -fprofile-arcs, เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เป‚เบ›เบผเปเบเบผเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ GCC เบชเป‰เบฒเบ‡เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เป‚เบ›เบผเปเบเบผเบก
graph, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบŠเบญเบเบซเบฒเบ•เบปเป‰เบ™เป„เบกเป‰ spanning เบชเปเบฒเบฅเบฑเบšเป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡. เบžเบฝเบ‡เปเบ•เปˆ arcs เบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™
spanning tree เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบท: compiler เป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบ™เบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡
เป€เบง เบฅเบฒ เบ—เบตเปˆ arcs เป€เบซเบผเบปเปˆเบฒ เบ™เบตเป‰ เปเบกเปˆเบ™ เบ›เบฐ เบ•เบด เบšเบฑเบ”. เป€เบกเบทเปˆเบญเป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡เปเบกเปˆเบ™เบ—เบฒเบ‡เบญเบญเบเบ”เบฝเบง เบซเบผเบทเบ—เบฒเบ‡เป€เบ‚เบปเป‰เบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ•เบฑเบ™, เบฅเบฐเบซเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบšเบฅเบฑเบญเบ; เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบซเบกเปˆ
เบšเบฅเบฑเบญเบเบ•เป‰เบญเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบžเบทเปˆเบญเบ–เบทเบฅเบฐเบซเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท.

-ftest-เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹
เบœเบฐเบฅเบดเบ”เป€เบญเบเบฐเบชเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆ gcov code-coverage utility เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เป‚เบ›เบผเปเบเบผเบก
เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡. เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเปเบซเบผเปˆเบ‡เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ auxname.gcno. เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡
-fprofile-arcs เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ‚เบญเบ‡ เบŠเบทเปˆเปเบ—เบ™ เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™
เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹เบเบปเบ‡โ€‹เบเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปเบซเบผเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เปƒเบเป‰โ€‹เบŠเบดเบ”โ€‹เบซเบผเบฒเบโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹
เบ—เปˆเบฒเบ™เบšเปเปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

-fdbg-cnt-list
เบžเบดเบกเบŠเบทเปˆ เปเบฅเบฐ Counter เบœเบนเบเบกเบฑเบ”เบ”เป‰เบฒเบ™เป€เบ—เบดเบ‡เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบ™เบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเบเบ—เบฑเบ‡เปเบปเบ”.

-fdbg-cnt=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบเบฒเบ™เบ•เป‰เบฒเบ™เบกเบนเบ™เบ„เปˆเบฒ
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเบ•เป‰เบฒเบ™เบเบฒเบ™เบ”เบตเบšเบฑเปŠเบเบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ—เบดเบ‡. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบเบฒเบ™เบ•เป‰เบฒเบ™เบกเบนเบ™เบ„เปˆเบฒ เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”
เบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ เบŠเบทเปˆ:เบกเบนเบ™เบ„เปˆเบฒ เบ„เบนเปˆเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เป€เบ—เบดเบ‡เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ•เบปเบงเบ•เป‰เบฒเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ เบŠเบทเปˆ to
เบกเบนเบ™เบ„เปˆเบฒ. เบ•เบปเบงเบ™เบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเบเบ—เบฑเบ‡เปเบปเบ”เบกเบตเบ‚เบญเบšเป€เบ—เบดเบ‡เบ‚เบญเบ‡ "UINT_MAX"; เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ "dbg_cnt"
เบเบฑเบšเบ„เบทเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบชเบฐเป€เปเบต เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เป€เบ—เบดเบ‡เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เป‚เบ”เบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฑเบš
-fdbg-cnt=dce:10,tail_call:0, "dbg_cnt(dce)" เบเบฑเบšเบ„เบทเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš 10 เบ—เปเบฒเบญเบดเบ”
เบ„เบณเบฎเบฝเบเบฎเป‰เบญเบ‡.

-fenable-เบ›เบฐเป€เบžเบ”-เบœเปˆเบฒเบ™
-fdisable-เบ›เบฐเป€เบžเบ”-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ
เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบŠเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™ / เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹
เบœเปˆเบฒเบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเบ GCC. เบœเบนเป‰เปƒเบŠเป‰ Compiler เบ„เบงเบ™
เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ›เบปเบเบเบฐเบ•เบดเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”/เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบšเบฑเบ”เบœเปˆเบฒเบ™เปเบ—เบ™.

-fdisable-ipa-เบœเปˆเบฒเบ™
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบšเบฑเบ” IPA เบœเปˆเบฒเบ™. เบœเปˆเบฒเบ™ เปเบกเปˆเบ™เบŠเบทเปˆเบœเปˆเบฒเบ™. เบ–เป‰เบฒเบœเปˆเบฒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบชเบฐเบ–เบดเบ•เบด
invoked เปƒเบ™ compiler เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบŠเบทเปˆ pass เบ„เบงเบ™เบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบเบ”เป‰เบงเบ a
เป€เบฅเบเบฅเปเบฒเบ”เบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ 1.

-fdisable-rtl-เบœเปˆเบฒเบ™
-fdisable-rtl-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ RTL pass เบœเปˆเบฒเบ™. เบœเปˆเบฒเบ™ เปเบกเปˆเบ™เบŠเบทเปˆเบœเปˆเบฒเบ™. เบ–เป‰เบฒเบœเปˆเบฒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบชเบฐเบ–เบดเบ•เบด
invoked เปƒเบ™ compiler เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบŠเบทเปˆ pass เบ„เบงเบ™เบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบเบ”เป‰เบงเบ a
เป€เบฅเบเบฅเปเบฒเบ”เบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ 1. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”
เบŠเปˆเบงเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ เบซเบผเบทเบŠเบทเปˆเบ•เบปเบงเบ›เบฐเบเบญเบš. เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐเปเบกเปˆเบ™เบ„เบนเปˆเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปเบเบเบญเบญเบเบ”เป‰เบงเบ a
เบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”. เป„เบฅเบเบฐเปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เบชเบปเป‰เบ™. เบ–เป‰เบฒเป„เบฅเบเบฐเปเบกเปˆเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบ•เบปเบงเป€เบฅเบ
เบ„เบนเปˆเบชเบฒเบกเบฒเบ”เบ‡เปˆเบฒเบเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบเบ”เบฝเบง. เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡ call graph node's
uid เบ•เบปเบเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰, เป„เบ”เป‰ เบœเปˆเบฒเบ™ เปเบกเปˆเบ™เบžเบดเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบฑเป‰เบ™
เปœเป‰เบฒ เบ—เบตเปˆ. เบ— uid เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบซเบปเบงเบ‚เปเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒ dump, เปเบฅเบฐ pass
เบŠเบทเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบ dumped เป‚เบ”เบเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fdump-เบœเปˆเบฒเบ™.

-fdisable-tree-เบœเปˆเบฒเบ™
-fdisable-tree-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ—เบฒเบ‡เบœเปˆเบฒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰ เบœเปˆเบฒเบ™, เบ—เบฐเป€เบฅเบชเบฒเบš -fdisable-rtl เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

-fenable-ipa-เบœเปˆเบฒเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰ IPA pass เบœเปˆเบฒเบ™. เบœเปˆเบฒเบ™ เปเบกเปˆเบ™เบŠเบทเปˆเบœเปˆเบฒเบ™. เบ–เป‰เบฒเบœเปˆเบฒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบชเบฐเบ–เบดเบ•เบด
invoked เปƒเบ™ compiler เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบŠเบทเปˆ pass เบ„เบงเบ™เบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบเบ”เป‰เบงเบ a
เป€เบฅเบเบฅเปเบฒเบ”เบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ 1.

-fenable-rtl-เบœเปˆเบฒเบ™
-fenable-rtl-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ
เป€เบ›เบตเบ”เปƒเบŠเป‰ RTL pass เบœเปˆเบฒเบ™, เบ—เบฐเป€เบฅเบชเบฒเบš -fdisable-rtl เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบฅเบฐ
เบ•เบปเบงเบขเปˆเบฒเบ‡.

-fenable-เบ•เบปเป‰เบ™เป„เบกเป‰-เบœเปˆเบฒเบ™
-fenable-เบ•เบปเป‰เบ™เป„เบกเป‰-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ
เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบšเบœเปˆเบฒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰ เบœเปˆเบฒเบ™, เบ—เบฐเป€เบฅเบชเบฒเบš -fdisable-rtl เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

# เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ ccp1 เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบŸเบฑเบ‡เบŠเบฑเบ™
-fdisable-tree-ccp1
# เบ›เบดเบ”เบเบฒเบ™เบ–เบญเบ”เบ–เบญเบ™เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆ cgraph node uid เปเบกเปˆเบ™ 1
-fenable-tree-cunroll=1
# เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ gcse2 เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰ [1,1],
# [300,400], เปเบฅเบฐ [400,1000]
# เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ gcse2 เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ foo เปเบฅเบฐ foo2
-fdisable-rtl-gcse2=foo,foo2
# เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™ inlining เบ•เบปเป‰เบ™โ€‹
-fdisable-tree-einline
# เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ ipa inlining
-fdisable-ipa-inline
# เป€เบ›เบตเบ”เบเบฒเบ™เบ–เบญเบ”เบ–เบญเบ™เบ•เบปเป‰เบ™เป„เบกเป‰เป€เบ•เบฑเบก
-fenable-tree-unroll

-dเบ•เบปเบงเบญเบฑเบเบชเบญเบ™
-fdump-rtl-เบœเปˆเบฒเบ™
-fdump-rtl-เบœเปˆเบฒเบ™=เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™
เป€เบงเบปเป‰เบฒเบงเปˆเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰ debugging dumps เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ เบ•เบปเบงเบญเบฑเบเบชเบญเบ™. เบ™เบตเป‰
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging เบœเปˆเบฒเบ™ RTL-based เบ‚เบญเบ‡ compiler. เบŠเบทเปˆเป„เบŸเบฅเปŒเบชเปˆเบงเบ™เปƒเบซเบเปˆ
เบ‚เบญเบ‡เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบทเปˆเบกเบ•เบปเบงเป€เบฅเบเบœเปˆเบฒเบ™เปเบฅเบฐเบ„เปเบฒเบชเบฑเบšเปƒเบชเปˆเบเบฑเบš dumpname, เปเบฅเบฐ
เป„เบŸเบฅเปŒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡ =เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ,
dump เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเปƒเบซเป‰เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ pass numbered dump เป„เบŸเบฅเปŒ. เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹
เบงเปˆเบฒเบ•เบปเบงเป€เบฅเบเบœเปˆเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบขเปˆเบฒเบ‡เบชเบฐเบ–เบดเบ”เบเป‰เบญเบ™เบงเปˆเบฒเบšเบฑเบ”เบœเปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ”
เบœเบนเป‰โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ•เบปเบงเป€เบฅเบเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบœเปˆเบฒเบ™. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, pass เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบ plugin เบชเบฒเบกเบฒเบ”เบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบเบงเปˆเบฒ 200 เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ‚เป‰เบญเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เป„เบงโ€‹. dumpname เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบˆเบฒเบโ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป„เบ”เป‰โ€‹,
เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เปเบฅเบฐโ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เบ–เป‰เบฒโ€‹เบšเปเปˆโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบฑเบ™โ€‹เปเบกเปˆเบ™โ€‹เบŠเบทเปˆโ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹
เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เบชเบฐเบซเบผเบฑเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -E เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™.

Debug dumps เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ a -fdump-rtl เบชเบฐเบซเบผเบฑเบšเบซเบผเบทเบšเบฒเบ‡ -d เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบขเบนเปˆ เบ—เบตเปˆเบ™เบตเป‰
เปเบกเปˆเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ เบœเปˆเบฒเบ™ เปเบฅเบฐ เบ•เบปเบงเบญเบฑเบเบชเบญเบ™, เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹:

-fdump-rtl-alignments
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบชเบฒเบ‚เบฒเป„เบ”เป‰เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆ.

-fdump-rtl-asmcons
Dump เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆ rtl เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ™ / เบญเบญเบเบ—เบตเปˆเบšเปเปˆเบžเปเปƒเบˆ.

-fdump-rtl-auto_inc_dec
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš auto-inc-dec. เปƒเบšเบœเปˆเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบกเบต auto inc เบซเบผเบทเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” dec.

-fdump-rtl-เบชเบดเปˆเบ‡เบเบตเบ”เบ‚เบงเบฒเบ‡
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบญเบธเบ›เบฐเบชเบฑเบ.

-fdump-rtl-bbpart
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเปเบšเปˆเบ‡เบ›เบฑเบ™เบ—เปˆเบญเบ™เป„เบกเป‰เบžเบทเป‰เบ™เบ–เบฒเบ™เบฎเป‰เบญเบ™เปเบฅเบฐเป€เบขเบฑเบ™.

-fdump-rtl-bbro
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบเบฒเบ™เบชเบฑเปˆเบ‡เบšเบฅเบฑเบญเบเบ„เบทเบ™เปƒเปเปˆ.

-fdump-rtl-btl1
-fdump-rtl-btl2
-fdump-rtl-btl1 เปเบฅเบฐ -fdump-rtl-btl2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบญเบ‡เบชเบฒเบ‚เบฒ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป‚เบซเบผเบ”เบœเปˆเบฒเบ™.

-fdump-rtl-bypass
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเป‚เบ”เบ”เบ‚เป‰เบฒเบกเปเบฅเบฐเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป„เบซเบผ.

-fdump-rtl-combine
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ RTL เบœเปˆเบฒเบ™.

-fdump-rtl-compgotos
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบ duplicating the computed gotos.

-fdump-rtl-ce1
-fdump-rtl-ce2
-fdump-rtl-ce3
-fdump-rtl-ce1, -fdump-rtl-ce2, เปเบฅเบฐ -fdump-rtl-ce3 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฒเบก
เบ–เป‰เบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปƒเบˆเป€เบซเบฅเบทเป‰เบญเบกเปƒเบชเบœเปˆเบฒเบ™เป„เบ›.

-fdump-rtl-cprop_hardreg
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบชเปเบฒเป€เบ™เบปเบฒเปเบ‚เบ‡.

-fdump-rtl-csa
Dump เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบปเบกเบ—เบปเบšเบเบฒเบ™เบ›เบฑเบš stack.

-fdump-rtl-cse1
-fdump-rtl-cse2
-fdump-rtl-cse1 เปเบฅเบฐ -fdump-rtl-cse2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบชเบญเบ‡เบ—เบปเปˆเบงเป„เบ›
เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบœเปˆเบฒเบ™.

-fdump-rtl-dce
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เบฒเบเปเบšเบšเบ”เปˆเบฝเบงเบœเปˆเบฒเบ™เป„เบ›.

-fdump-rtl-dbr
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฒเบ‚เบฒเบ—เบตเปˆเบŠเบฑเบเบŠเป‰เบฒ.

-fdump-rtl-dce1
-fdump-rtl-dce2
-fdump-rtl-dce1 เปเบฅเบฐ -fdump-rtl-dce2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบชเบญเบ‡เบฎเป‰เบฒเบ™เบ•เบฒเบ
เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹.

-fdump-rtl-eh
Dump เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ EH.

-fdump-rtl-eh_ranges
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบžเบฒเบเบžเบทเป‰เบ™เป„เบฅเบเบฐเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ EH.

-fdump-rtl-เบ‚เบฐเบซเบเบฒเบ
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบœเบฐเบฅเบดเบ” RTL.

-fdump-rtl-fwprop1
-fdump-rtl-fwprop2
-fdump-rtl-fwprop1 เปเบฅเบฐ -fdump-rtl-fwprop2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบฑเบ‡เบชเบญเบ‡เบชเบปเปˆเบ‡เบ•เปเปˆ
เบœเปˆเบฒเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™.

-fdump-rtl-gcse1
-fdump-rtl-gcse2
-fdump-rtl-gcse1 เปเบฅเบฐ -fdump-rtl-gcse2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบปเปˆเบงเป„เบ›เบ—เบปเปˆเบงเป‚เบฅเบ
เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡ subexpressionโ€‹.

-fdump-rtl-init-regs
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™.

-fdump-rtl-initvals
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบŠเบธเบ”เบกเบนเบ™เบ„เปˆเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™.

-fdump-rtl-into_cfglayout
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เป‚เปเบ” cfglayout.

-fdump-rtl-ira
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ iterated.

-fdump-rtl-jump
Dump เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป‚เบ”เบ”เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡.

-fdump-rtl-loop2
-fdump-rtl-loop2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™ dumping เบซเบผเบฑเบ‡เบˆเบฒเบ rtl loop optimization เบœเปˆเบฒเบ™เป„เบ›.

-fdump-rtl-mach
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ reorganization pass เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ, เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบœเปˆเบฒเบ™
เบฅเบฒเบ„เบฒ:.

-fdump-rtl-mode_sw
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ–เบญเบ”เบ›เบธเปˆเบกเป‚เปเบ”เบŠเป‰เบณเบŠเป‰เบญเบ™.

-fdump-rtl-rnreg
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบฅเบ.

-fdump-rtl-outof_cfglayout
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ›เปˆเบฝเบ™เบˆเบฒเบเป‚เบซเบกเบ” cfglayout.

-fdump-rtl-peephole2
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฒเบเบŠเปˆเบญเบ‡เบœเปˆเบฒเบ™.

-fdump-rtl-postreload
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฑเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เปƒเปเปˆ.

-fdump-rtl-pro_and_epilogue
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบชเป‰เบฒเบ‡เบšเบปเบ”เบšเบฑเบ™เบเบฒเบ เปเบฅเบฐเบšเบปเบ”เป€เบฅเบทเปˆเบญเบ‡เบเปˆเบฝเบงเบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™.

-fdump-rtl-sched1
-fdump-rtl-sched2
-fdump-rtl-sched1 เปเบฅเบฐ -fdump-rtl-sched2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบœเปˆเบฒเบ™.

-fdump-rtl-ree
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบชเบฑเบ™เบเบฒเบ™/เบชเบนเบ™.

-fdump-rtl-seqabstr
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบฅเปเบฒเบ”เบฑเบšเบ—เบปเปˆเบงเป„เบ›.

-fdump-rtl-เบซเบเปเป‰
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบชเบฑเป‰เบ™เบฅเบปเบ‡.

-fdump-rtl-sibling
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป‚เบ—เบžเบตเปˆเบ™เป‰เบญเบ‡.

-fdump-rtl-split1
-fdump-rtl-split2
-fdump-rtl-split3
-fdump-rtl-split4
-fdump-rtl-split5
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบซเป‰เบฒเบฎเบญเบšเบ‚เบญเบ‡เบเบฒเบ™เปเบเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-fdump-rtl-sms
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเปเบšเบšเป‚เบกเบ”เบนเป‚เบฅ. เบšเบฑเบ”เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบšเบฒเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fdump-rtl-stack
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบฒเบ "เป„เบŸเบฅเปŒเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบ›" เบ‚เบญเบ‡ GCC เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฑเบš x87's
เบ—เบฐเบšเบฝเบ™เปเบšเบš stack. เบšเบฑเบ”เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ•เบปเบงเปเบ› x86 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fdump-rtl-subreg1
-fdump-rtl-subreg2
-fdump-rtl-subreg1 เปเบฅเบฐ -fdump-rtl-subreg2 เป€เบ›เบตเบ”เปƒเบŠเป‰ dumping เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบญเบ‡ subreg
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบœเปˆเบฒเบ™.

-fdump-rtl-unshare
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบ rtl เบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™.

-fdump-rtl-vartrack
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ•เบปเบงเปเบ›.

-fdump-rtl-vregs
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ›เปˆเบฝเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฐเป€เปเบทเบญเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ.

-fdump-rtl-web
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเปเบเบเป„เบฅเบเบฐเบชเบปเบ”.

-fdump-rtl-regclass
-fdump-rtl-subregs_of_mode_init
-fdump-rtl-subregs_of_mode_finish
-fdump-rtl-dfinit
-fdump-rtl-dfinish
dumps เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปเบ•เปˆเบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบชเบฐเป€เบซเบกเบต.

-in
-fdump-rtl-เบ—เบฑเบ‡เปเบปเบ”
เบœเบฐเบฅเบดเบ” dumps เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

-dA เบšเบฑเบ™เบ—เบถเบเบœเบปเบ™เบญเบญเบเบกเบฒเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบญเบทเปˆเบ™เป†.

-dD เบ–เบดเป‰เบกเบ™เบดเบเบฒเบกเบกเบฐเบซเบฒเบžเบฒเบเบ—เบฑเบ‡เปเบปเบ”, เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™, เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบ›เบปเบเบเบฐเบ•เบด
เบœเบปเบ™เบœเบฐเบฅเบดเบ”.

-dH เบœเบฐเบฅเบดเบ” dump เบซเบผเบฑเบเบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

-dp เบšเบฑเบ™เบ—เบถเบเบœเบปเบ™เบญเบญเบเบกเบฒเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ„เบณเป€เบซเบฑเบ™เบ—เบตเปˆเบŠเบตเป‰เบšเบญเบเบงเปˆเบฒเบฎเบนเบšเปเบšเบšเปƒเบ” เปเบฅเบฐ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฑเบ‡เบ–เบทเบเบžเบดเบกเบญเบญเบ.

-dP เบ–เบดเป‰เบก RTL เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เบ„เปเบฒเบ„เบดเบ”เบ„เปเบฒเป€เบซเบฑเบ™เบเปˆเบญเบ™เปเบ•เปˆเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰
เป€เบ›เบตเบ” -dp เบ„เบณ เบญเบฐเบ—เบดเบšเบฒเบ.

-dx เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡ RTL เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบšเบฅเบงเบกเบกเบฑเบ™. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปƒเบŠเป‰เบเบฑเบš
-fdump-rtl-เบ‚เบฐเบซเบเบฒเบ.

-fdump-noaddr
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ debugging dumps, เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบขเบนเปˆ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐ
เปƒเบŠเป‰ diff เปƒเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™ compiler เบเบฑเบš binaries compiler เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เปเบฅเบฐ / เบซเบผเบทเบ‚เปเป‰เบ„เบงเบฒเบก / bss / เบ‚เปเป‰เบกเบนเบ™ / heap / stack / dso เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-freport-bug
เป€เบเบฑเบšเบเปเบฒเปเบฅเบฐ dump เบ‚เปเป‰เบกเบนเบ™ debug เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบงเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ ICE เปƒเบ™ C/C++ compiler
เป€เบเบตเบ”เบ‚เบถเป‰เบ™.

-fdump-เบšเปเปˆเบกเบตเบ•เบปเบงเป€เบฅเบ
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ debugging dumps, เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบ•เบปเบงเป€เบฅเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบญเบญเบ. เบ™เบตเป‰
เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ diff เปƒเบ™ debugging dumps เบชเปเบฒเบฅเบฑเบš compiler invocations เบเบฑเบš
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเปเบฅเบฐเบšเปเปˆเบกเบต -g.

-fdump-unnumbered-links
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ debugging dumps (เป€เบšเบดเปˆเบ‡ -d เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡), เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบ•เบปเบงเป€เบฅเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบš
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเบ•เปเปˆเป„เบ›เปƒเบ™เบฅเปเบฒเบ”เบฑเบš.

-fdump-translation-unit (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
-fdump-translation-unit-เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบ–เบดเป‰เบกเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบเบฒเบ™เปเบ›เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›เบซเบฒเป„เบŸเบฅเปŒ.
เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .tu เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡, เปเบฅเบฐเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบ–เป‰เบฒ -เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹,
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบ„เบงเบšเบ„เบธเบกเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡ dump เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -fdump-เบ•เบปเป‰เบ™เป„เบกเป‰ เบ•เบปเบงเป€เบฅเบทเบญเบ

-fdump-class-hierarchy (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
-fdump-class-hierarchy-เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบ–เบดเป‰เบกเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบŠเบฑเป‰เบ™เบฎเบฝเบ™เปเบฅเบฐเบฎเบนเบšเปเบšเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ virtual เป„เบ›เบซเบฒ a
เป„เบŸเบฅเปŒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .เบซเป‰เบญเบ‡เบฎเบฝเบ™ เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡, เปเบฅเบฐเป„เบŸเบฅเปŒ
เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบ–เป‰เบฒ -เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹,
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบ„เบงเบšเบ„เบธเบกเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡ dump เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -fdump-เบ•เบปเป‰เบ™เป„เบกเป‰ เบ•เบปเบงเป€เบฅเบทเบญเบ

-fdump-ipa-เบชเบฐเบซเบผเบฑเบš
เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เบ–เบดเป‰เบกโ€‹เบ‚เบตเป‰โ€‹เป€เบซเบเบทเป‰เบญโ€‹เปƒเบ™โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบ•เปˆเบฒเบ‡เป†โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบฅเบฐโ€‹เบšเบฝเบšโ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เป€เบ›เบฑเบ™โ€‹
เป„เบŸเบฅเปŒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบเบชเบฐเบงเบดเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบกเบฒ
เบŠเบทเปˆเป„เบŸเบฅเปŒ, เปเบฅเบฐเป„เบŸเบฅเปŒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เป„เบ”เป‰
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰:

เบ—เบฑเบ‡เบซเบกเบปเบ” เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบฑเบ‡เปเบปเบ”.

เบ–เบฑเบ™
dumps เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ„เปˆเบฒโ€‹เบเบฒโ€‹เบŸโ€‹เป‚เบ—โ€‹, เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เปเบฅเบฐโ€‹
เบเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹เบชเบดเบ™โ€‹เปƒเบˆ inliningโ€‹.

inline
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™ inlining.

-fdump-เบœเปˆเบฒเบ™
เบ–เบดเป‰เบกเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบ—เบตเปˆเป€เบ›เบตเบ”เปเบฅเบฐเบ›เบดเบ”เป‚เบ”เบเบ›เบฐเบˆเบธเบšเบฑเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

-fdump-เบชเบฐเบ–เบดเบ•เบด-เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เป€เบ›เบตเบ”เปƒเบŠเป‰ เปเบฅเบฐเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ–เบดเป‰เบกเบชเบฐเบ–เบดเบ•เบดเบœเปˆเบฒเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆเบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบเบ—เบตเปˆเบฅเบปเบ‡เบ—เป‰เบฒเบเบ”เป‰เบงเบ .เบชเบฐเบ–เบดเบ•เบด เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡, เปเบฅเบฐ
เป„เบŸเบฅเปŒเบ–เบทเบเบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบ–เป‰เบฒ -เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เปเบšเบšเบŸเบญเบกเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง, - เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹ เป€เบฎเบฑเบ” เปƒเบซเป‰ เบ•เบปเบง เบŠเบตเป‰ เบงเบฑเบ” เบ—เบตเปˆ เบˆเบฐ เป„เบ”เป‰ เบฎเบฑเบš เบเบฒเบ™ summed เบ—เบปเปˆเบง เบซเบ™เปˆเบงเบ เบšเป เบฅเบด เบเบฒเบ™ เบ—เบฑเบ‡ เบซเบกเบปเบ” เปƒเบ™ เบ‚เบฐ เบ™เบฐ เบ—เบตเปˆ
- เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹ dumps เบ—เบธเบเบเปเบฅเบฐเบ™เบตเป€เบ›เบฑเบ™ passes เบชเป‰เบฒเบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™
เป€เบžเบทเปˆเบญเบฅเบงเบกเบ•เบปเบงเบ™เบฑเบšเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก.

-fdump-เบ•เบปเป‰เบ™เป„เบกเป‰-เบชเบฐเบซเบผเบฑเบš
-fdump-เบ•เบปเป‰เบ™เป„เบกเป‰-เบชเบฐเบซเบผเบฑเบš-เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fdump-เบ•เบปเป‰เบ™เป„เบกเป‰-เบชเบฐเบซเบผเบฑเบš-เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™=เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™
เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เบžเบฒเบชเบฒเบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เป€เบžเบทเปˆเบญ
เป„เบŸเบฅเปŒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบเบชเบฐเบงเบดเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบš
เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡, เปเบฅเบฐเป„เบŸเบฅเปŒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™
เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ =เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, dump เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเปƒเบซเป‰เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
เป„เบŸเบฅเปŒเบ—เบตเปˆเบ•เบฑเป‰เบ‡เบŠเบทเปˆ dump. เบ–เป‰เบฒ -เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ - เปเบเบเบญเบญเบเบˆเบฒเบเบเบฑเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡ dump เป„เบ”เป‰. เบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ—เบธเบเบ„เบปเบ™
dumps; เบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ

เบ—เบตเปˆเบขเบนเปˆ
เบžเบดเบกเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ node. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ™เบตเป‰เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบญเบตเบ‡เบ•เบฒเบกเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปเบฅเบฐเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹เปเบกเปˆเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เป€เบ›เบฑเบ™โ€‹
dump เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ”เบตเบšเบฑเบ.

asmname
เบ–เป‰เบฒ "DECL_ASSEMBLER_NAME" เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ decl เบ—เบตเปˆเปƒเบซเป‰, เปƒเบŠเป‰เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ dump
เปเบ—เบ™ "DECL_NAME". เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบ‡เปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เป„เบ›โ€‹เบšเปˆเบญเบ™โ€‹เบˆเบฒเบโ€‹
mangled เบŠเบทเปˆเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ›เบฐเบเบญเบš.

เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ dumping front-end เบ•เบปเบงโ€‹เปเบ—เบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบ›เบฒเบ™โ€‹เบเบฒเบ‡, inhibiting dumping เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เบกเบฒโ€‹เบŠเบดเบโ€‹เบ‚เบญเบ‡
เบ‚เบญเบšเป€เบ‚เบ”เบซเบผเบทเบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบ™เบฑเป‰เบ™เป„เบ”เป‰เบšเบฑเบ™เบฅเบธ. เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ–เบดเป‰เบกเบฅเบฒเบเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบกเบทเปˆเบญเบžเบงเบเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบซเบฒเป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เป‚เบ”เบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบญเบทเปˆเบ™.

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ dumping เบ•เบปเป‰เบ™เป„เบกเป‰ pretty-printed, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ inhibits dumping เบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡
เป‚เบ„เบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹.

เป€เบกเบทเปˆเบญเบ–เบดเป‰เบก RTL, เบžเบดเบก RTL เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฐเบ—เบฑเบ”เบฎเบฑเบ” (เบ‚เบปเป‰เบ™) เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ LISP.

เบงเบฑเบ”เบ–เบธเบ”เบดเบš เบžเบดเบกเบ•เบปเบงเปเบ—เบ™เบงเบฑเบ”เบ–เบธเบ”เบดเบšเบ‚เบญเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ•เบปเป‰เบ™เป„เบกเป‰เบ–เบทเบเบžเบดเบกเบญเบญเบเบขเปˆเบฒเบ‡เบชเบงเบเบ‡เบฒเบก
เบ•เบปเบงโ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบ„เป‰เบฒเบโ€‹เบ„เบท Cโ€‹.

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™ dumps เบ—เบตเปˆเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก (เบšเปเปˆเป€เบ›เบฑเบ™เบเบฝเบ”เป‚เบ”เบเบ—เบธเบเป†เบ—เบฒเบ‡เป€เบฅเบทเบญเบ dump). เบฅเบงเบกเบ—เบฑเบ‡
เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบœเปˆเบฒเบ™.

เบชเบฐเบ–เบดเบ•เบด
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบชเบฐเบ–เบดเบ•เบดเบ•เปˆเบฒเบ‡เป†เบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ”เบœเปˆเบฒเบ™ (เบšเปเปˆเบ–เบทเบเบเบปเบเบเป‰เบญเบ‡เบˆเบฒเบเบ—เบธเบเป†เบเบฒเบ™เบ–เบดเป‰เบก
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ).

เบ•เบฑเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ‚เบญเบšเป€เบ‚เบ”เบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ).

graph
เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒ dump เบŠเบตเป‰เบšเบญเบเบญเบทเปˆเบ™เป† (-fdump-rtl-เบœเปˆเบฒเบ™), dump เบ
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบเบฒเบŸเบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบเบฑเบš GraphViz เบเบฑเบš
file.passid.pass.dot. เปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบกเปˆเบ™เบžเบดเบกเบญเบญเบเป€เบ›เบฑเบ™เบฎเบนเบšเบเปˆเบญเบ,
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ GraphViz เบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เบžเบงเบเบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ”เบดเบ™เบ•เบญเบ™เบ”เบฝเบง.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบฐเบˆเบธเบšเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ dumps RTL, เปเบฅเบฐ RTL เป„เบ”เป‰เบ–เบทเบ dumped เบชเบฐเป€เบซเบกเบต
เบฎเบนเบšเปเบšเบšเบเบฐเบ—เบฑเบ”เบฎเบฑเบ”.

vops
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ virtual เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

lineno
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบเปเบ–เบงเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

uid เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡ ID เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ ("DECL_UID") เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ•เบปเบงเปเบ›.

เบ„เบณเป€เบงเบปเป‰เบฒ
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

eh เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบเบžเบฒเบเบžเบทเป‰เบ™ EH เบ–เบทเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

scev
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบงเบดเบงเบฑเบ–เบ™เบฒเบเบฒเบ™.

เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš (เบกเบตเบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เบšเบฑเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™).

เบžเบฒเบ”เป‚เบญเบเบฒเบ”เบ™เบตเป‰
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบžเบฒเบ”เป„เบ› (เบกเบตเบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เบšเบฑเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™).

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบญเบฝเบ”เบญเบทเปˆเบ™เป† (เบกเบตเบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เบšเบฑเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™).

=เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™
เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบŸเบฅโ€‹เปŒ dump เบ—เบตเปˆโ€‹เบกเบตโ€‹เบŠเบทเปˆโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹, เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบŠเบทเปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹. เป„เบŸเบฅเปŒ
เบŠเบทเปˆ stdout เปเบฅเบฐ stderr เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบžเบดเป€เบชเบ”เปเบฅเบฐเบ–เบทเบงเปˆเบฒเป€เบ›เบตเบ”เปเบฅเป‰เบง
เบเบฐเปเบชเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,

gcc -O2 -ftree-vectorize -fdump-tree-vect-blocks=foo.dump
-fdump-tree-pre=stderr file.c

เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰ vectorizer dump เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ foo.dump, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ dump PRE เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเบธเบ” stderr.
เบ–เป‰เบฒเบชเบญเบ‡เบŠเบทเปˆเป„เบŸเบฅเปŒ dump เบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเปˆเบฒเบ™เบ”เบฝเบงเบเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™ overrides เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰.

เบ—เบฑเบ‡เบซเบกเบปเบ” เป€เบ›เบตเบ”เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบฑเบ‡เปเบปเบ”, เบเบปเบเป€เบงเบฑเป‰เบ™ เบงเบฑเบ”เบ–เบธเบ”เบดเบš, เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”, เบ„เบณเป€เบงเบปเป‰เบฒ เปเบฅเบฐ lineno.

optall
เป€เบ›เบตเบ”เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เปเบปเบ”, เป€เบŠเบฑเปˆเบ™: เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เบžเบฒเบ”เป‚เบญเบเบฒเบ”เบ™เบตเป‰, เปเบฅเบฐ เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹.

เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ•เบปเป‰เบ™เป„เบกเป‰เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰:

เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
เบ–เบดเป‰เบกเบเปˆเบญเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเป‰เบ™เป„เบกเป‰, เป€เบžเบทเปˆเบญ file.original.

เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
dump เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เป„เบกเป‰โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹, เบเบฑเบšโ€‹ file.optimized.

gimple
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบเปˆเบญเบ™ เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบ gimplification เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเป„เบŸเบฅเปŒ. เป„เบŸเบฅเปŒ
เบŠเบทเปˆเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .gimple เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

cfg เบ–เบดเป‰เบกเป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .cfg เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

ch เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบฑเบ”เบฅเบญเบเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡ loop. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
ch เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

ssa เบ–เบดเป‰เบกเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš SSA เปƒเบชเปˆเป„เบŸเบฅเปŒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .เบชเบช
เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

alias
เบ–เบดเป‰เบกเบ‚เปเป‰เบกเบนเบ™เบ™เบฒเบกเปเบเบ‡เบชเบณเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
.เบ™เบฒเบกเปเบเบ‡ เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

CCP เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบ CCP. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .ccp เบเบฒเบ™
เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

storeccp
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบ STORE-CCP. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .storeccp
เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

pre เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .เบเปˆเบญเบ™ เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบญเบดเบ”เบชเบฐเบฅเบฐ เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
.เบŸเบฃเบต เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

copyprop
เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบžเบฒเบเบซเบผเบฑเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .copyprop
เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

store_copyprop
เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเปเบฒเป€เบ™เบปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
.store_copyprop เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

dce เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เบฒเบ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .dce เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบ—เปˆเบฒเบ™ / เบ™เบฒเบ‡ เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™. เป„เบŸเบฅเปŒ
เบŠเบทเปˆเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .sra เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบˆเบปเบกเบฅเบปเบ‡
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบปเบกเบฅเบปเบ‡เบฅเบฐเบซเบฑเบ”. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .เบˆเบปเบก เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

dom เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เป€เบ”เบฑเปˆเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เป€เบฎเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เป€เบ•เบตเบกโ€‹ .dom เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เป€เบงเบปเป‰เบฒ เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเปƒเบŠเป‰เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฎเป‰เบฒเบ™เบ„เป‰เบฒเบ—เบตเปˆเบ•เบฒเบเปเบฅเป‰เบง. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”
เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹ .dse เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

phiopt
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš PHI nodes เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบซเบฑเบ”เป€เบชเบฑเป‰เบ™เบเบปเบ‡. เป„เบŸเบฅเปŒ
เบŠเบทเปˆเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .phiopt เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

forwprop
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบปเปˆเบ‡เบ•เปเปˆเบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเปเบ›เบ—เบตเปˆเปƒเบŠเป‰เบ”เบฝเบง. เบŠเบทเปˆเป„เบŸเบฅเปŒ
เปเบกเปˆเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹ .forwprop เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบŠเบทเปˆเบชเบณเป€เบ™เบปเบฒ
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เบŠเบทเปˆเบชเบณเป€เบ™เบปเบฒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เป€เบฎเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เป€เบ•เบตเบกโ€‹ .copyrename เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบชเบฐเบšเบฑเบšเป€เบฅเบเบ—เบต เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบ„เปˆเบฒเบชเบปเปˆเบ‡เบ„เบทเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเปƒเบ™เปเบšเบšเบ—เบปเปˆเบงเป„เบ›
เบ•เบปเป‰เบ™เป„เบกเป‰. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .nrv เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบงเบตเบ—เบต
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเปƒเบŠเป‰ vectorization เบ‚เบญเบ‡ loops. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”
เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹ .vect เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

slp เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเปƒเบŠเป‰ vectorization เบ‚เบญเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เป€เบฎเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เป€เบ•เบตเบกโ€‹ .slp เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

vp เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบกเบนเบ™เบ„เปˆเบฒ (VRP). เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .vrp เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบ—เบฑเบ‡เบซเบกเบปเบ” เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบกเบตเบ—เบธเบ‡เบ—เบตเปˆเบกเบตเปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰.

-fopt-info
- fopt-เบ‚เปเป‰โ€‹เบกเบนเบ™-เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
- fopt-เบ‚เปเป‰โ€‹เบกเบนเบ™-เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™=เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™
เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” dumps เบˆเบฒเบโ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบ•เปˆเบฒเบ‡เป†โ€‹. เบ–เป‰เบฒ -เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เปเบšเบšเบŸเบญเบกเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ - เปเบเบเบ„เปเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เป€เบฅเบทเบญเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ” dump เปเบฅเบฐ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เป„เบ”เป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเบฒเบกเบฒเบ”เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบชเบญเบ‡เบเบธเปˆเบก: เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบญเบฐเบ—เบดเบšเบฒเบ verbosity เบ‚เบญเบ‡
dump, เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบงเปˆเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ„เบงเบ™เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒ. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบˆเบฒเบโ€‹
เบ—เบฑเบ‡เบชเบญเบ‡เบเบธเปˆเบกเบชเบฒเบกเบฒเบ”เบ›เบฐเบชเบปเบกเบเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เป€เบชเบฅเบตเบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบšเปเปˆเบ—เบฑเบšเบŠเป‰เบญเบ™เบเบฑเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡
เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เปƒเบ”เป†, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเบกเบฒ override เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™ dump verbosity:

เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ–เบทเบเบ™เบณเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบชเบณเป€เบฅเบฑเบ”เบœเบปเบ™. เบกเบฑเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบœเปˆเบฒเบ™
เป€เบžเบทเปˆเบญเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เปƒเบ”เบกเบตเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, vectorizer เบœเปˆเบฒเบ™เบเบฒเบ™เบžเบดเบก
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบซเบผเปˆเบ‡เบ‚เบญเบ‡ loops เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ” vectorized.

เบžเบฒเบ”เป‚เบญเบเบฒเบ”เบ™เบตเป‰
เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบžเบฒเบ”. เบšเบธเบเบ„เบปเบ™เบœเปˆเบฒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆ
เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹
เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™ verbose เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™,
เบ‚เปเป‰เบ„เบงเบฒเบกเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบ—เบฑเบ‡เบซเบกเบปเบ” เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบญเบฝเบ”. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบต เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เบžเบฒเบ”เป‚เบญเบเบฒเบ”เบ™เบตเป‰, เปเบฅเบฐ
เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹.

เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบ„เปเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบญเบฐเบ—เบดเบšเบฒเบเบเบธเปˆเบกเบ‚เบญเบ‡
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš:

เบญเบตเบ™เป€เบ•เบตเป€เบ™เบฑเบ” เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

loop
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™ dumps เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš loop เบ—เบฑเบ‡เบซเบกเบปเบ”.

inline
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™ dumps เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš inlining เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบชเบดเปˆเบ‡เปœเบถเปˆเบ‡ เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš vectorization เบ—เบฑเบ‡เบซเบกเบปเบ”.

optall
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”. เบ™เบตเป‰เปเบกเปˆเบ™ superset เบ‚เบญเบ‡เบเบธเปˆเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบฅเบฒเบเบŠเบทเปˆเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

If เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™, เบกเบฑเบ™เบ•เบฑเป‰เบ‡เป„เบงเป‰เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™ optimized-optall, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบˆเบฐเบ–เบดเป‰เบกเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบˆเบฒเบเบเบฒเบ™เบœเปˆเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบ–เป‰เบฒ เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ dumps เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™
concatenated เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ dump เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบชเปˆ stderr. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบซเบผเบฒเบ -fopt-info เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบเบญเบกโ€‹เบฎเบฑเบšโ€‹, เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบกเบต a เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบŠเบทเปˆเป„เบŸเบฅเปŒเบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบ•เปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เปเบฒเบญเบดเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบœเบปเบ™เบœเบฐเบฅเบดเบ” เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™ เบ–เบทเบเบ‚เบฝเบ™เบ—เบฑเบšเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบซเบปเบงเบซเบ™เปˆเบงเบเบเบฒเบ™เปเบ›เบซเบผเบฒเบเบญเบฑเบ™. เบ–เป‰เบฒ
เบ•เป‰เบญเบ‡เบเบฒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบฅเบงเบกเบˆเบฒเบเบซเบผเบฒเบเบซเบ™เปˆเบงเบเบเบฒเบ™เปเบ›, stderr เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เป„เบ›เบซเบฒ stderr:

gcc -O3 -fopt-info

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰:

gcc -O3 -fopt-info-missed=missed.all

เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบžเบฒเบ”โ€‹เป‚เบญโ€‹เบเบฒเบ”โ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบšเบปเบ”โ€‹เบฅเบฒเบโ€‹เบ‡เบฒเบ™โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบœเปˆเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™ missed.เบ—เบฑเบ‡เปเบปเบ”, เปเบฅเบฐเบญเบฑเบ™เบ™เบตเป‰:

gcc -O2 -ftree-vectorize -fopt-info-vec-เบžเบฒเบ”

เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบญเบเบฒเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบžเบฒเบ”เบˆเบฒเบเบเบฒเบ™เบชเบปเปˆเบ‡เบœเปˆเบฒเบ™ vectorization
on stderr. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ -fopt-info-vec-เบžเบฒเบ” เป€เบ—เบปเปˆเบฒเบเบฑเบš -fopt-info-missed-vec.

เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™,

gcc -O3 -fopt-info-inline-optimized-missed=inline.txt

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบžเบฒเบ”เป„เบ›เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”
inlining เป„เบ”เป‰ เบœเปˆเบฒเบ™ เป€เบ‚เบปเป‰เบฒ เป„เบ› เปƒเบ™ inline.txt.

เบชเบธเบ”เบ—เป‰เบฒเบ, เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ:

gcc -fopt-info-vec-missed=vec.miss -fopt-info-loop-optimized=loop.opt

เบ—เบตเปˆเบ™เบตเป‰เบ—เบฑเบ‡เบชเบญเบ‡เบŠเบทเปˆเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ” vec.mis เปเบฅเบฐ loop.opt เบกเบตเบ„เบงเบฒเบกเบ‚เบฑเบ”เปเบเป‰เบ‡เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡
เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเปเบฅเบฐ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเบกเบฒเบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ vec.mis เปเบกเปˆเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ
เบˆเบฒเบ vectorizer เบเปˆเบฝเบงเบเบฑเบšเป‚เบญเบเบฒเบ”เบžเบฒเบ”.

-frandom-seed=เบˆเปเบฒเบ™เบงเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เปเบ™เบงเบžเบฑเบ™เบ—เบตเปˆ GCC เปƒเบŠเป‰เปเบ—เบ™เบ•เบปเบงเป€เบฅเบเปเบšเบšเบชเบธเปˆเบกเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡
เบŠเบทเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบˆเบฐเบ•เป‰เบญเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบ—เบธเบเป„เบŸเบฅเปŒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก. เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™
เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบงเบฒเบ‡เบชเบฐเปเบ•เบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเปƒเบ™เป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เปเบฅเบฐเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบœเบฐเบฅเบดเบ”
เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰ - เป€เบกเบฑเบ”เบžเบฑเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบœเบฐเบฅเบดเบ”เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™
เป„เบŸเบฅเปŒ.

เป„เบ”เป‰ เบˆเปเบฒเบ™เบงเบ™ เบ„เบงเบ™เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เป„เบŸเบฅเปŒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

-fsched-verbose=n
เบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบญเบ‡
debugging output the scheduler prints . เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ‚เบฝเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹,
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒ -fdump-rtl-sched1 or -fdump-rtl-sched2 เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบกเบฑเบ™เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”
เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบฅเบฒเบเบŠเบทเปˆ dump เบ›เบปเบเบเบฐเบ•เบด, .sched1 or .sched2 เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบกเบชเปเบฒเบฅเบฑเบš n
เบซเบผเบฒเบเบเปˆเบงเบฒเป€เบเบปเป‰เบฒ, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เป„เบ”เป‰เบ–เบทเบเบžเบดเบกเบญเบญเบเบชเบฐเป€เบซเบกเบตเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ n เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบชเบนเบ™โ€‹, -fsched-verbose outputs เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš
-fdump-rtl-sched1 เปเบฅเบฐ -fdump-rtl-sched2เบ—เบตเปˆเบขเบนเปˆ เบชเปเบฒเบฅเบฑเบš n เบซเบผเบฒเบเบเปˆเบงเบฒเบซเบ™เบถเปˆเบ‡, เบกเบฑเบ™เบเบฑเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™
เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰ blockโ€‹, เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เบ—เบตเปˆโ€‹เบเบฝเบกโ€‹เบžเป‰เบญเบกโ€‹เปเบฅเบฐโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบซเบ™เปˆเบงเบโ€‹เบ‡เบฒเบ™ / insnโ€‹. เบชเปเบฒเบฅเบฑเบš n
เบซเบผเบฒเบเบเบงเปˆเบฒเบชเบญเบ‡, เบกเบฑเบ™เบ›เบฐเบเบญเบšเบกเบต RTL เบขเบนเปˆเบˆเบธเบ”เบ—เบตเปˆเป€เบญเบปเบฒเบฅเบนเบเบญเบญเบ, เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบžเบฒเบเบžเบทเป‰เบ™. เปเบฅเบฐ
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ n เบซเบผเบฒเบโ€‹เบเบงเปˆเบฒโ€‹เบชเบตเปˆโ€‹, -fsched-verbose เบฅเบงเบกเบ—เบฑเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช.

- save-tempsโ€‹
-save-temps=cwd
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบเบฒเบ‡ "เบŠเบปเปˆเบงเบ„เบฒเบง" เบ›เบปเบเบเบฐเบ•เบดเบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™; เบงเบฒเบ‡เบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปเบฅเบฐเบ•เบฑเป‰เบ‡เบŠเบทเปˆเบžเบงเบเป€เบ‚เบปเบฒเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก foo.c เบเบฑเบš -c
- save-tempsโ€‹ เบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒ foo.i เปเบฅเบฐ foo.sเป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบš foo.o. เบ™เบตเป‰เบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™
เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™ foo.i เป„เบŸเบฅโ€‹เปŒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒ compiler เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ an
preprocessor เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™.

เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš -x เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡, - save-tempsโ€‹ เปเบกเปˆเบ™เบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™
เบžเบฝเบ‡โ€‹เบžเปโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบซเบผเบตเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบ‚เบฝเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปเบซเบผเปˆเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบš an
เป„เบŸเบฅเปŒเบเบฒเบ‡. เป„เบŸเบฅเปŒเบเบฒเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เบŠเบทเปˆ
เป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰ - save-tempsโ€‹.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบญเบตเป‰เบ™ GCC เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™, เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™ a
เบŠเบทเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบปเปˆเบงเป„เบ›เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเปˆเบญเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบทเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš
เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบซเบผเบฒเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒ compilers เบ‚เบฐเบซเบ™เบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบˆเบฐ
เปเบŠเบเปเบŠเบ‡เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™, เปเบฅเบฐเบ‚เบฝเบ™เบ—เบฑเบšเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบง. เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

gcc -save-temps -o outdir1/foo.o indir1/foo.c&
gcc -save-temps -o outdir2/foo.o indir2/foo.c&

เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบ™ foo.i เปเบฅเบฐ foo.o เบ–เบทเบเบ‚เบฝเบ™เป„เบ›เบžเป‰เบญเบกเป†เบเบฑเบ™เป‚เบ”เบ compilers เบ—เบฑเบ‡เบชเบญเบ‡.

-save-temps=obj
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเบเบฒเบ‡ "เบŠเบปเปˆเบงเบ„เบฒเบง" เบ›เบปเบเบเบฐเบ•เบดเบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™. เบ–เป‰เบฒ -o เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹,
เป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบงเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ. เบ–เป‰เบฒ -o เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เป„เบ”เป‰
-save-temps=obj เบชเบฐเบซเบผเบฑเบšเป€เบฎเบฑเบ”เบ•เบปเบงเบ„เบท - save-tempsโ€‹.

เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

gcc -save-temps=obj -c foo.c
gcc -save-temps=obj -c bar.c -o dir/xbar.o
gcc -save-temps=obj foobar.c -o dir2/yfoobar

เบชเป‰เบฒเบ‡ foo.i, foo.s, dir/xbar.i, dir/xbar.s, dir2/yfoobar.i, dir2/yfoobar.s, เปเบฅเบฐ
dir2/yfoobar.o.

เป€เบงเบฅเบฒ[=เป€เบญเบเบฐเบชเบฒเบ™]
เบฅเบฒเบเบ‡เบฒเบ™เป€เบงเบฅเบฒ CPU เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเปเบ•เปˆเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบเปˆเบญเบเปƒเบ™เบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบชเปเบฒเบฅเบฑเบš C
เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡, เบ™เบตเป‰เปเบกเปˆเบ™ compiler เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐ assembler (เบšเบงเบเบเบฑเบš linker เบ–เป‰เบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบกเปˆเบ™
เบชเปเบฒเป€เบฅเบฑเบ”).

เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹, เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบ„เบทโ€‹เบ™เบตเป‰โ€‹:

#cc1 0.12 0.01
# เป€เบ›เบฑเบ™ 0.00 0.01

เบ•เบปเบงเป€เบฅเบเบ—เปเบฒเบญเบดเบ”เปƒเบ™เปเบ•เปˆเบฅเบฐเป€เบชเบฑเป‰เบ™เปเบกเปˆเบ™ "เป€เบงเบฅเบฒเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰", เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เป‚เบ„เบ‡เบเบฒเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡. เบ•เบปเบงเป€เบฅเบเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™ "เป€เบงเบฅเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš", เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™
เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. เบ•เบปเบงเป€เบฅเบเบ—เบฑเบ‡เบชเบญเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบงเบดเบ™เบฒเบ—เบต.

เบ”เป‰เบงเบโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป„เบ”เป‰โ€‹, เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹เบเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบŠเบทเปˆโ€‹,
เปเบฅเบฐเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

0.12 0.01 cc1
0.00 0.01 เป€เบ›เบฑเบ™

"เป€เบงเบฅเบฒเบœเบนเป‰เปƒเบŠเป‰" เปเบฅเบฐ "เป€เบงเบฅเบฒเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš" เบ–เบทเบเบเป‰เบฒเบเป„เบ›เบเปˆเบญเบ™เบŠเบทเปˆเป‚เบ„เบ‡เบเบฒเบ™, เปเบฅเบฐ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบœเปˆเบฒเบ™โ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹, เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบšเบญเบโ€‹เป„เบ”เป‰โ€‹เบงเปˆเบฒโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปเบกเปˆเบ™โ€‹
เบ–เบทเบเบฅเบงเบšเบฅเบงเบก, เปเบฅเบฐเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ”.

-fvar-เบ•เบดเบ”เบ•เบฒเบก
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ•เบปเบงเปเบ›. เบกเบฑเบ™เบ„เบดเบ”เป„เบฅเปˆเบšเปˆเบญเบ™เบ—เบตเปˆเบ•เบปเบงเปเบ›เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เปเบ•เปˆเบฅเบฐเบ•เปเบฒเปเบซเบ™เปˆเบ‡
เปƒเบ™เบฅเบฐเบซเบฑเบ”. เบ‚เปเป‰เบกเบนเบ™ debugging เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเปเบกเปˆเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™ (เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™ debugging
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ™เบตเป‰โ€‹)โ€‹.

เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš (-เบญเบช, -O, -O2, ... ),
เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ (-g) เปเบฅเบฐเบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™ debug เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™.

-fvar-tracking-assignments
เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบกเบญเบšเปเบฒเบเปƒเบซเป‰เบเบฑเบšเบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเบ•เบดเบšเบฑเบ”
เบ„เปเบฒเบšเบฑเบ™เบเบฒเบเปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบฐเบซเบผเบญเบ”เป„เบ›เบˆเบปเบ™เป€เบ–เบดเบ‡เบ—เบตเปˆเบชเบธเบ”, เปƒเบ™เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก
เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -gdwarf-4 เปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเบžเป‰เบญเบก
เบเบฑเบšโ€‹เบกเบฑเบ™.

เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เปƒเบŠเป‰เป„เบ”เป‰เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก var เบˆเบฐเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบ„เปเบฒเบšเบฑเบ™เบเบฒเบ
เบชเป‰เบฒเบ‡เปเบฅเบฐเบฎเบฑเบเบชเบฒ, เปเบ•เปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
เบžเป‰เบญเบกเบ”เป‰เบงเบ -fvar-เบ•เบดเบ”เบ•เบฒเบก, เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบเบฒเบ™โ€‹เบ„เบฑเบ”โ€‹เป€เบฅเบทเบญเบโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹.

-fvar-tracking-assignments-toggle
Toggle -fvar-tracking-assignments, เปƒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เบ™เบฑเป‰เบ™ -gtoggle เบชเบฐเบซเบผเบฑเบš -g.

-print-file-name=เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”
เบžเบดเบกเบŠเบทเปˆเป€เบ•เบฑเบกเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ--- เปเบฅเบฐเบขเปˆเบฒเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เบญเบตเบ. เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰, GCC เบšเปเปˆเป„เบ”เป‰เบฅเบงเบšเบฅเบงเบกเบซเบผเบทเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบซเบเบฑเบ‡; เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบžเบดเบกเบŠเบทเปˆเป„เบŸเบฅเปŒ.

-print-multi-directory
เบžเบดเบกเบŠเบทเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบš multilib เบ—เบตเปˆเป€เบฅเบทเบญเบเป‚เบ”เบเบชเบฐเบงเบดเบ”เบญเบทเปˆเบ™
เบกเบตเบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบกเบตเบขเบนเปˆเปƒเบ™ GCC_EXEC_PREFIX.

-print-multi-lib
เบžเบดเบกเปเบœเบ™เบ—เบตเปˆเบˆเบฒเบเบŠเบทเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต multilib เป„เบ›เบซเบฒเบชเบฐเบซเบผเบฑเบš compiler เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™.
เบŠเบทเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ–เบทเบเปเบเบเบญเบญเบเบˆเบฒเบเบชเบฐเบซเบผเบฑเบšเป‚เบ”เบ ;, เปเบฅเบฐเปเบ•เปˆเบฅเบฐเบชเบฐเบซเบผเบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ
@ เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ -, เป‚เบ”เบเบšเปเปˆเบกเบตเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบฐเบซเบผเบฑเบšเบซเบผเบฒเบ. เบ™เบตเป‰เปเบกเปˆเบ™ supposed
เบ‡เปˆเบฒเบเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบเบฐ.

-print-multi-os-directory
เบžเบดเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” OS เบชเปเบฒเบฅเบฑเบš multilib เบ—เบตเปˆเป€เบฅเบทเบญเบ, เบ—เบฝเบšเบเบฑเบšเบšเบฒเบ‡เบญเบฑเบ™ lib
เบšเบฑเบ™เบŠเบตเบเปˆเบญเบ. เบ–เป‰เบฒเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” OS เบขเบนเปˆเปƒเบ™ lib subdirectory เปเบฅเบฐเบšเปเปˆเบกเบต multilibs
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบžเบฝเบ‡เปเบ•เปˆ ., เบ–เป‰เบฒเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” OS เบขเบนเปˆเปƒเบ™ libsuffix เบญเป‰เบฒเบเป€เบญเบทเป‰เบญเบเบ™เป‰เบญเบ‡
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ™เบตเป‰เบžเบดเบกเป€เบŠเบฑเปˆเบ™: ../lib64, ../ lib or ../lib32, เบซเบผเบทเบ–เป‰เบฒเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” OS
เบ›เบฐเบˆเบธเบšเบฑเบ™เปƒเบ™ lib/subdir subdirectories เบกเบฑเบ™เบžเบดเบกเป€เบŠเบฑเปˆเบ™: amd64, sparcv9 or เป€เบฎเบทเบญเบ™6.

-print-multiarch
เบžเบดเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” OS เบชเปเบฒเบฅเบฑเบš multiarch เบ—เบตเปˆเป€เบฅเบทเบญเบ, เบ—เบฝเบšเบเบฑเบšเบšเบฒเบ‡เบญเบฑเบ™ lib
เป„เบ”เป€เบฃเบฑเบเบ—เปเบฃเบตเบเปˆเบญเบ

-print-prog-name=เป‚เบ„เบ‡เบเบฒเบ™
เบ„เบท -print-file-name, เปเบ•เปˆเบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เป€เบŠเบฑเปˆเบ™: cpp.

-print-libgcc-file-name
เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -print-file-name=libgcc.a.

เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -nostdlib or -nodefaultlibs เปเบ•เปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš
libgcc.a. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰:

gcc -nostdlib ... `gcc -print-libgcc-file-name`

-print-search-dirs
เบžเบดเบกเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปเบฅเบฐเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเปเบฅเบฐ
เบฅเบฒเบเบŠเบทเปˆเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” gcc เบ„เบปเป‰เบ™เบซเบฒ --- เปเบฅเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบซเบเบฑเบ‡เบญเบตเบ.

เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ gcc เบžเบดเบกโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹ เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เบ›เบฑเบ™เบซเบฒ, เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰ exec
cpp0: No เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง เป€เบญเบเบฐเบชเบฒเบ™ or เบฅเบฐเบšเบปเบš. เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เบ—เปˆเบฒเบ™ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบชเปˆ cpp0 เปเบฅเบฐ
เบญเบปเบ‡เบ›เบฐเบเบญเบš compiler เบญเบทเปˆเบ™เป†เบ—เบตเปˆ gcc เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบŠเบญเบเบซเบฒเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เบซเบผเบทเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เป„เบ”เป‰
เบ•เบปเบงเปเบ›เบชเบดเปˆเบ‡เปเบงเบ”เบฅเป‰เบญเบก GCC_EXEC_PREFIX เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบงเบเบกเบฑเบ™. เบขเปˆเบฒ
เบฅเบทเบกเบ•เบดเบ”เบ•เบฒเบก /.

-print-sysroot
เบžเบดเบกเป„เบ”เป€เบฃเบฑเบเบ—เปเบฃเบต sysroot เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
sysroot เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบ—เบฑเบ‡โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ --sysroot เบ—เบฒเบ‡เป€เบฅเบทเบญเบ,
เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ–เป‰เบฒเบšเปเปˆเบกเบตเป€เบ›เบปเป‰เบฒเปเบฒเบ
sysroot เบ–เบทเบเบฅเบฐเบšเบธ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบžเบดเบกเบšเปเปˆเบกเบตเบซเบเบฑเบ‡.

-print-sysroot-headers-suffix
เบžเบดเบกเบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบเบ—เบตเปˆเป€เบžเบตเปˆเบกเปƒเบชเปˆ sysroot เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒ headers, เบซเบผเบทเปƒเบซเป‰ an
เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ compiler เบšเปเปˆเป„เบ”เป‰ configured เบเบฑเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง suffix --- เปเบฅเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบซเบเบฑเบ‡.
เบญเบทเปˆเบ™ เป†

- เป€เบ„เบทเปˆเบญเบ‡โ€‹เบ‚เบตเป‰โ€‹เบเบธเปˆเบ™
เบžเบดเบกเป€เบ„เบทเปˆเบญเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡: i686-pc-linux-gnu) --- เปเบฅเบฐเบขเปˆเบฒเป€เบฎเบฑเบ”
เบกเบตโ€‹เบซเบเบฑเบ‡โ€‹เบญเบตเบโ€‹เบšเปเปˆ.

- dumpversion
เบžเบดเบกเบชเบฐเบšเบฑเบš compiler (เบ•เบปเบงเบขเปˆเบฒเบ‡: 3.0)--- เปเบฅเบฐเบขเปˆเบฒเป€เบฎเบฑเบ”เบญเบฑเบ™เบญเบทเปˆเบ™.

- dumpspecs
เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡ compiler-- เปเบฅเบฐเบขเปˆเบฒเป€เบฎเบฑเบ”เบญเบฑเบ™เบญเบทเปˆเบ™. (เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹
GCC เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡.)

-fno-eliminate-unused-debug-types
เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เป€เบกเบทเปˆเบญเบœเบฐเบฅเบดเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ” DWARF 2, GCC เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ”เบตเบšเบฑเบเบชเปเบฒเบฅเบฑเบš
เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบšเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปเบซเบผเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบฅเบงเบšเบฅเบงเบกโ€‹. เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”
เป€เบžเบทเปˆเบญเปƒเบซเป‰ GCC เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ”เบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบก,
เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ–เป‰เบฒ, เปƒเบ™ debugger, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ„เปˆเบฒเป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเบˆเบดเบ‡
เปƒเบŠเป‰เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™ (เปเบ•เปˆเบ–เบทเบเบ›เบฐเบเบฒเบ”). เป€เบฅเบทเป‰เบญเบเป†, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰ a
เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบชเบเป€เบ‡เบดเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบ—เบตเปˆ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†.

เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ”เป†, เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เปเบฅเบฐเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰ debugging เบœเบฐเบฅเบดเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰. เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เปเบกเปˆเบ™เป€เบญเบเบฐเบฅเบฒเบ”: เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒ
เบขเบธเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบˆเบธเบ”เปเบšเปˆเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเปƒเบซเบกเปˆเปƒเบซเป‰เบเบฑเบš
เบ•เบปเบงเปเบ›เปƒเบ”เป†เบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ•เป‰เบฒเบ™เบเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบญเบทเปˆเบ™เป†เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบš
เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบฒเบ”เบซเบงเบฑเบ‡เบˆเบฒเบเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡.

เบเบฒเบ™เป€เบ›เบตเบ”เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบฐเบเบฒเบเบฒเบกเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš เปเบฅเบฐ/เบซเบผเบท
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบฅเบงเบšโ€‹เบฅเบงเบกโ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐ debug เป„เบ”เป‰โ€‹
เป‚เบ„เบ‡เบเบฒเบ™.

compiler เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ„เบงเบฒเบกเบฎเบนเป‰เบ—เบตเปˆเบกเบฑเบ™เบกเบตเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบซเบผเบฒเบเป„เบŸเบฅเปŒเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป‚เบซเบกเบ”เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ”เบฝเบงเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบˆเบฒเบโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบ„เบปเบ™โ€‹.

เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบเบปเบ‡เป‚เบ”เบเบ—เบธเบ‡. เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบกเบต a
เบ—เบธเบ‡เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบžเบฒเบเบ™เบตเป‰.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบกเบต -O เบฅเบฐเบ”เบฑเบšเปเบกเปˆเบ™เบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเบฐเบฅเบฐเบšเบธเบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™.

เบญเบตเบ‡เบ•เบฒเบกเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™ GCC เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบŠเบธเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเบ‚เบญเบ‡
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡ -O เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบ—เบตเปˆโ€‹เบ™เบตเป‰โ€‹. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™ GCC เป„เบ”เป‰
เบเบฑเบš -Q --help=optimizers เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบŠเบธเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆ
เปเบ•เปˆเบฅเบฐเบ‚เบฑเป‰เบ™.

-O
-O1 เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบเบงเปˆเบฒ, เปเบฅเบฐเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบซเบผเบฒเบเบเบงเปˆเบฒเป€เบเบปเปˆเบฒ
เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.

เบเบฑเบš -O, compiler เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ”เป†เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

-O เป€เบ›เบตเบ”เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

-fauto-inc, เบ„เบฐ -fbranch-count-reg -fcombine-stack-เบ›เบฑเบš -fcompare-elim
-fcprop-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -fdce -fdefer-pop -fdelayed-เบชเบฒเบ‚เบฒ -fdse -fforward-เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™
-fguess-เบชเบฒเบ‚เบฒ-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ 2โ€‹ -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
-finline-functions-called-one เบ”เบฝเบง -fipa-pure-const -fipa-profile -fipa เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹
-fmerge-เบ„เบปเบ‡เบ—เบตเปˆ -fmove-loop-invariants -fshrink-wrap -fsplit-wide-types
-ftree-bit-ccp -ftree-ccp -fssa-phiopt -ftre-ch -ftree-copy-prop -free-copyrename
-ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop - เบŸเบฃเบตโ€‹เบŸเบฃเบตโ€‹ -ftree-phiprop
- เบญเปˆเบฒเบ‡เบฅเป‰เบฒเบ‡เบกเบท -ftree-slsr -ftree-sra -ftree-pta - เบซเป‰เบฒโ€‹เบ›เบตโ€‹ -funit-at-a-time

-O เบเบฑเบ‡เป€เบ›เบตเบ”เบขเบนเปˆ -fomit-frame-pointer เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™เบšเปเปˆเปเบŠเบเปเบŠเบ‡
เบเบฑเบš debugging.

-O2 เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบเบงเปˆเบฒเป€เบเบปเปˆเบฒ. GCC เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบเบทเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบšเปเปˆเบกเบต
เบกเบตโ€‹เบชเปˆเบงเบ™โ€‹เบฎเปˆเบงเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เปเบฅเบโ€‹เบ›เปˆเบฝเบ™โ€‹เบ„เบงเบฒเบกโ€‹เป„เบงโ€‹เบญเบฐโ€‹เบงเบฐโ€‹เบเบฒเบ”โ€‹. เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš -O, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบฑเบ‡เบชเบญเบ‡
เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

-O2 เป€เบ›เบตเบ”เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบ -O. เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบตเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš: -fthread-jumps -falign-functions -falign-jumps -falign-loops
-falign-เบ›เป‰เบฒเบ -fcaller-เบ›เบฐเบซเบเบฑเบ” -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fdevirtualize -fdevirtualize-speculatively
-fexpensive-optimizations -fgcse -fgcse-lm -fhoist-adjacent-loads
-finline-small-functions -findirect-inlining -fipa-cp -fipa-cp-alignment -fipa-sra
-fipa-icf -fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls
-foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-เบ•เบฑเบ™
-freorder-blocks-and-partition -freorder - เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹ -frerun-cse-after-loop
-fsched-interblock -fsched-spec -fschedule-insns -fschedule-insns2 -fstrict-aliasing
-fstrict-เบฅเบปเป‰เบ™ -ftree-builtin-call-dce -ftre-switch-เปเบ›เบ‡ -ftree-tail-merge
-ftre-pre -ftree-vrp -fipa-ra

เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบ„เปเบฒเป€เบ•เบทเบญเบ™เบžเบฒเบเปƒเบ•เป‰ -fgcse เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡ -O2 เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰
เป‚เบเป‚เบ•.

เบซเบกเบฒเบเป€เบซเบ”: เปƒเบ™ Ubuntu 8.10 เปเบฅเบฐเบฎเบธเปˆเบ™เบ•เปเปˆเบกเบฒ, -D_FORTIFY_SOURCE=2 เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐเปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบกเบทเปˆเบญ -O เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปเบฅเบฐ
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ libc เบซเบผเบฒเบ. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™, เปƒเบซเป‰เบฅเบฐเบšเบธเบญเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡
-U_FORTIFY_SOURCE or -D_FORTIFY_SOURCE=0.

-O3 เบ›เบฑเบšโ€‹เปƒเบซเป‰โ€‹เบ”เบตโ€‹เบซเบผเบฒเบโ€‹. -O3 เป€เบ›เบตเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบ -O2 เปเบฅเบฐเบเบฑเบ‡เป€เบ›เบตเบ”
เป„เบ”เป‰ -finline-functions, -funswitch-loops, -fpredictive-commoning, -fgcse-after-reload,
-ftree-loop-vectorize, -ftree-loop-distribute-patterns, -ftree-slp-vectorize,
-fvect-cost-model, -ftree-partial-pre เปเบฅเบฐ -fipa-cp-clone เบ•เบปเบงเป€เบฅเบทเบญเบ

-O0 เบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเป‰เบฒเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
Default

-เบญเบช เบ›เบฑเบšเปเบ•เปˆเบ‡เบ‚เบฐเปœเบฒเบ”. -เบญเบช เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฑเบ‡เบซเบกเบปเบ” -O2 เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบ›เบปเบเบเบฐเบ•เบดเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบกเบฑเบ™เบเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”.

-เบญเบช เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰: -falign-functions -falign-jumps
-falign-loops -falign-เบ›เป‰เบฒเบ -freorder-เบ•เบฑเบ™ -freorder-blocks-and-partition
-fprefetch-loop-arrays

- เป„เบง
เบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”. - เป„เบง เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฑเบ‡เบซเบกเบปเบ” -O3 เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบกเบฑเบ™เบเบฑเบ‡
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบกเบฑเบ™
เป€เบ›เบตเบ” -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹ เปเบฅเบฐ Fortran เบชเบฐเป€เบžเบฒเบฐ -fno-protect-parens เปเบฅเบฐ -fstack-arrays.

- เบญเบˆ เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบปเบšเบเบฒเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ. - เบญเบˆ เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเปเบŠเบเปเบŠเบ‡
เบเบฒเบ™เบ”เบตเบšเบฑเบ. เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.
compile-debug cycle, เบชเบฐเป€เบซเบ™เบตเบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒ
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบงเปเบฅเบฐเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ”เบตเบšเบฑเบเบ—เบตเปˆเบ”เบต.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบซเบผเบฒเบ -O เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบกเบตเบซเบผเบทเบšเปเปˆเบกเบตเบ•เบปเบงเป€เบฅเบเบฅเบฐเบ”เบฑเบš, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™
เบญเบฑเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก -fเบ—เบธเบ‡ เบฅเบฐเบšเบธเบ—เบธเบ‡เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ. เบ—เบธเบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆเบกเบตเบ—เบฑเบ‡เบชเบญเบ‡
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบฒเบ‡โ€‹เบšเบงเบโ€‹เปเบฅเบฐโ€‹เบ—เบฒเบ‡โ€‹เบฅเบปเบšโ€‹; เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบฒเบ‡โ€‹เบฅเบปเบšโ€‹เบ‚เบญเบ‡โ€‹ -ffoo is -fno-foo. เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰,
เบกเบตเบžเบฝเบ‡เปเบ•เปˆเปเบšเบšเบŸเบญเบกเบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ --- เปเบšเบšเบŸเบญเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบดเบ”เบญเบญเบเบญเบทเปˆเบ™เป†
เปเบšเบšเบŸเบญเบกเป‚เบ”เบเบเบฒเบ™เบ–เบญเบ™เบญเบญเบ เบšเปเปˆ- เบซเบผเบทเป€เบžเบตเปˆเบกเบกเบฑเบ™.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบฐเป€เบžเบฒเบฐ. เบžเบงเบเบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -O
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบซเบผเบทโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบธเบ‡เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบ™เบ—เบตเปˆเบซเบฒเบเบฒเบ
เบเปเบฅเบฐเบ™เบตเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ "เบ›เบฑเบšเบฅเบฐเบญเบฝเบ”" เบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™.

-fno-defer-pop
เบ›เบฐเบเบปเบ”เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เปƒเบซเป‰เบเบฑเบšเปเบ•เปˆเบฅเบฐเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒ. เบชเปเบฒเบฅเบฑเบš
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบ›เบฐเบเบปเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง compiler เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
arguments เบชเบฐเบชเบปเบกเบขเบนเปˆเปƒเบ™ stack เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐ pops เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบขเบนเปˆเบ—เบตเปˆ
เบ„เบฑเป‰เบ‡เบซเบ™เบถเปˆเบ‡.

เบ„เบปเบ™เบžเบดเบเบฒเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fforward-เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เปƒเบ™ RTL. เบœเปˆเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบชเบปเบกเบ—เบปเบšเบชเบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบฒเบกเบฒเบ”เบ‡เปˆเบฒเบเบ”เบฒเบ. เบ–เป‰เบฒเบเบฒเบ™เบ–เบญเบ” looping เป€เบฎเบฑเบ”เบงเบฝเบ, เบชเบญเบ‡ passes
เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบซเบผเบฑเบ‡เบˆเบฒเบ loop unrolling.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš -O, -O2, -O3, -เบญเบช.

-ffp-เบชเบฑเบ™เบเบฒ=เปเบšเบš
-ffp-contract=เบ›เบดเบ” เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบซเบปเบ”เบ•เบปเบงเบชเบฐเปเบ”เบ‡เบˆเบธเบ”เบฅเบญเบ. -ffp-contract=เป„เบง
เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบซเบปเบ”โ€‹เบ•เบปเบงโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบŠเบฑเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เป€เบ›เบฑเบ™ fused multiply-addโ€‹
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ. -ffp-contract=on เป€เบฎเบฑเบ”เปƒเบซเป‰
เบเบฒเบ™เบซเบปเบ”เบ•เบปเบงเบชเบฐเปเบ”เบ‡เบˆเบธเบ”เบฅเบญเบเบ–เป‰เบฒเบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบฒเบชเบฒ. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ—เบปเปˆเบฒเบเบฑเบš -ffp-contract=เบ›เบดเบ”.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -ffp-contract=เป„เบง.

-fomit-frame-pointer
เบขเปˆเบฒเป€เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบ™เบถเปˆเบ‡. เบ™เบตเป‰
เบซเบผเบตเบโ€‹เบฅเป‰เบฝเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบเบญเบšโ€‹; เบกเบฑเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบดเป€เบชเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆ. It เบเบฑเบ‡ เป€เบฎเบฑเบ”เปƒเบซเป‰ debugging เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰ on
เบšเบฒเบ‡ เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ.

เปƒเบ™เบšเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ, เป€เบŠเบฑเปˆเบ™ VAX, เบ—เบธเบ‡เบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เป‚เบ—เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบˆเบฑเบ”เบเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เบเบญเบšเปเบฅเบฐเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เป‚เบ”เบ
เบ—เบณเบ—เปˆเบฒเบงเปˆเบฒเบšเปเปˆเบกเบตเบขเบนเปˆ. เบกเบฐเบซเบฒเบžเบฒเบเบ„เบณเบญเบฐเบ—เบดเบšเบฒเบเป€เบ„เบทเปˆเบญเบ‡ "FRAME_POINTER_REQUIRED"
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเปเบฒเบเบฎเบญเบ‡เบฎเบฑเบšเบ—เบธเบ‡เบ™เบตเป‰เบซเบผเบทเบšเปเปˆ.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เป€เบกเบทเปˆเบญเบšเปเปˆเบ›เบฑเบšเปเบ•เปˆเบ‡เบ‚เบฐเปœเบฒเบ”) เบชเปเบฒเบฅเบฑเบš 32-bit GNU/Linux x86 เปเบฅเบฐ 32-bit
Darwin x86 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™ -fomit-frame-pointer. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” configure GCC เบเบฑเบš
--enable-frame-pointer เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเป€เบฅเบทเบญเบเป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-foptimize-sibling-calls
เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบญเป‰เบฒเบเป€เบญเบทเป‰เบญเบเบ™เป‰เบญเบ‡ เปเบฅเบฐเบซเบฒเบ‡เบชเบฝเบ‡เบŠเป‰เบณ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-foptimize-strlen
เบ›เบฑเบšเปเบ•เปˆเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ C string เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ•เปˆเบฒเบ‡เป† (เป€เบŠเบฑเปˆเบ™: "strlen", "strchr" เบซเบผเบท "strcpy") เปเบฅเบฐ
เบ„เบนเปˆ "_FORTIFY_SOURCE" เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป„เบงเบเบงเปˆเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-fno-inline
เบขเปˆเบฒเบ‚เบฐเบซเบเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡เปƒเบ™เปเบ–เบง เบ™เบญเบเบˆเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเปเบฒเบเป„เบงเป‰เบ”เป‰เบงเบ "always_inline"
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบšเปเปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบŸเบฑเบ‡เบŠเบฑเบ™เบ”เบฝเบงเบชเบฒเบกเบฒเบ”เบ–เบทเบเบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบฒเบ inlining เป‚เบ”เบเบเบฒเบ™เบซเบกเบฒเบเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบ”เป‰เบงเบ "noinline"
attribute

-finline-small-functions
เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบœเบนเป‰เป‚เบ—เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบกเบทเปˆเบญเบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰
เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ (เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบงเบกเบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ). เบœเบนเป‰เบชเบฑเบ‡เบฅเบงเบก
heuristically เบ•เบฑเบ” เบชเบดเบ™ เปƒเบˆ เบ—เบตเปˆ เบซเบ™เป‰เบฒ เบ—เบตเปˆ เปเบกเปˆเบ™ เบ‡เปˆเบฒเบ เบ”เบฒเบ เบžเบฝเบ‡ เบžเป เบ—เบตเปˆ เบˆเบฐ เบ•เบปเบ เป€เบ›เบฑเบ™ เบกเบนเบ™ เบ„เปˆเบฒ เบฅเบงเบก เป€เบ‚เบปเป‰เบฒ เปƒเบ™
เบงเบดเบ—เบตเบ™เบตเป‰. inlining เบ™เบตเป‰เปƒเบŠเป‰เบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš -O2.

-findirect-inlining
Inline เบเบฑเบ‡เป‚เบ—เบซเบฒเบ—เบฒเบ‡เบญเป‰เบญเบกเบ—เบตเปˆเบ–เบทเบเบ„เบปเป‰เบ™เบžเบปเบšเบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบ‚เบญเบšเปƒเบˆ
inlining เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ inlining เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เป€เบ›เบตเบ”
เป‚เบ”เบ -finline-functions or -finline-small-functions เบ•เบปเบงเป€เบฅเบทเบญเบ

เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš -O2.

-finline-functions
เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ inlining, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง. เป„เบ”เป‰
compiler heuristically เบ•เบฑเบ” เบชเบดเบ™ เปƒเบˆ เบ—เบตเปˆ เบซเบ™เป‰เบฒ เบ—เบตเปˆ เบกเบต เบกเบนเบ™ เบ„เปˆเบฒ เบเบฒเบ™ เป€เบŠเบทเปˆเบญเบก เป‚เบเบ‡ เปƒเบ™ เบงเบด เบ—เบต เบเบฒเบ™ เบ™เบตเป‰.

เบ–เป‰เบฒเบเบฒเบ™เป‚เบ—เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเปƒเบซเป‰เบ–เบทเบเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™, เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ”
"static", เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบŸเบฑเบ‡เบŠเบฑเบ™เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเบšเปเปˆเป„เบ”เป‰เบญเบญเบเป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ” assembler เปƒเบ™เบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš -O3.

-finline-functions-called-one เบ”เบฝเบง
เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เบ—เบธเบโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆ "staticโ€‹" เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ”เบฝเบงโ€‹เบชเปเบฒโ€‹เบฅเบฑเบš inlining เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹
เบžเบงเบเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเปเบฒเบเบงเปˆเบฒ "เปƒเบ™เปเบ–เบง". เบ–เป‰เบฒเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบซเป‰เบ–เบทเบเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™ output เป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ” assembler เปƒเบ™เบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O1, -O2, -O3 เปเบฅเบฐ -เบญเบช.

- เบ„เบงเบฒเบกโ€‹เบขเป‰เบฒเบ™โ€‹เบเบปเบงโ€‹, inliningโ€‹
เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เปเบ–เบงเปเบฒเบเป‚เบ”เบ "always_inline" เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฎเปˆเบฒเบ‡เบเบฒเบเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เป‰เบญเบเบเบงเปˆเบฒ
เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ— overhead เบ•เบปเป‰เบ™เบเปˆเบญเบ™เป€เบฎเบฑเบ” -fprofile-generate เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบฅเบฐ
เบœเปˆเบฒเบ™ inlining เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบเบฒเบ™เป€เบฎเบฑเบ”เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบฎเบฑเบ”เปƒเบซเป‰ profileing เบฅเบฒเบ„เบฒเบ–เบทเบเบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปเบฅเบฐเบ›เบปเบเบเบฐเบ•เบด
inlining เป„เบงเบ‚เบถเป‰เบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ wrapper เบฎเบฑเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fipa-sra
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™ scalar interprocedural เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰
เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบœเปˆเบฒเบ™เป‚เบ”เบเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เป‚เบ”เบเบกเบนเบ™เบ„เปˆเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3 เปเบฅเบฐ -เบญเบช.

-finline-limit=n
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบˆเบณเบเบฑเบ”เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปƒเบชเปˆเปƒเบ™เปเบ–เบงเป„เบ”เป‰. เบ—เบธเบ‡เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบซเบเบฒเบšเบ‚เบญเบ‡เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰. n เปเบกเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ” inlined เปƒเบ™
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ pseudo.

Inlining เบ•เบปเบงเบˆเบดเบ‡เปเบกเปˆเบ™เบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”
เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ --param เบŠเบทเปˆ=เบกเบนเบ™เบ„เปˆเบฒ. เป„เบ”เป‰ -finline-limit=n เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบšเบฒเบ‡โ€‹เบชเปˆเบงเบ™โ€‹เบ‚เบญเบ‡โ€‹
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

max-inline-insns-single
เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบซเป‰ n/ 2

max-inline-insns-auto
เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบซเป‰ n/ 2

เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเป€เบญเบเบฐเบชเบฒเบ™เบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ„เบงเบšเบ„เบธเบก inlining เปเบฅเบฐ
เบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบกเบนเบ™เบ„เปˆเบฒ -finline-เบˆเบณเบเบฑเบ” เบ—เบตเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ pseudo เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™, เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบ™เบตเป‰, เป€เบ›เบฑเบ™เบšเบปเบ”เบ„เบฑเบ”เบซเบเปเป‰
เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเบธเบกเบ™เบธเบก
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เบงเบฒเบกเบซเบกเบฒเบเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ›เปˆเบฝเบ™เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบญเบเบซเบ™เบถเปˆเบ‡เป„เบ›เบซเบฒเบซเบ™เบถเปˆเบ‡
เบญเบตเบเบ„เบปเบ™เบซเบ™เบถเปˆเบ‡.

-fno-keep-inline-dllexport
เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบเบงเปˆเบฒเบ‚เบญเบ‡ -fkeep-inline-เบŸเบฑเบ‡เบŠเบฑเบ™, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "dllexport" เบซเบผเบท declspec

-fkeep-inline-เบŸเบฑเบ‡เบŠเบฑเบ™
เปƒเบ™ C, เบ›เปˆเบญเบเบŸเบฑเบ‡เบŠเบฑเบ™ "static" เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ”เบงเปˆเบฒ "inline" เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ.
เบŸเบฑเบ‡เบŠเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบˆเบธเป€เบ‚เบปเป‰เบฒเปƒเบ™เบœเบนเป‰เป‚เบ—เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบกเบฑเบ™. เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเป‚เบ”เบเปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ "extern inline" เปƒเบ™ GNU C90. เปƒเบ™ C ++, เบ›เปˆเบญเบเบญเบฑเบ™เปƒเบ”เบเปเป„เบ”เป‰
inline functions เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ.

-fkeep-static-consts
เบ›เปˆเบญเบเบ•เบปเบงเปเบ›เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบงเปˆเบฒ "static const" เป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบ•เบปเบงเปเบ›เบšเปเปˆเป„เบ”เป‰เบญเป‰เบฒเบ‡เบญเบตเบ‡.

GCC เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰ compiler เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒ a
เบ•เบปเบงเปเบ›เปเบกเปˆเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡, เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบทเบšเปเปˆเป€เบ›เบตเบ”, เปƒเบซเป‰เปƒเบŠเป‰
เป„เบ”เป‰ -fno-keep-static-consts เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-fmerge-เบ„เบปเบ‡เบ—เบตเปˆ
เบžเบฐเบเบฒเบเบฒเบกเบฎเบงเบกเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบ„เบทเบเบฑเบ™ (เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบชเบฐเบ•เบฃเบดเบ‡ เปเบฅเบฐเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบˆเบธเบ”เบฅเบญเบ)
เปƒเบ™เบ—เบปเปˆเบงเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบก.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ–เป‰เบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™. เปƒเบŠเป‰ -fno-merge-เบ„เบปเบ‡เบ—เบตเปˆ เป€เบžเบทเปˆเบญเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fmerge-เบ—เบฑเบ‡เปเบปเบ”-เบ„เบปเบ‡เบ—เบตเปˆ
เบžเบฐเบเบฒเบเบฒเบกเบฅเบงเบกเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบ„เบทเบเบฑเบ™ เปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เบตเปˆเบ„เบทเบเบฑเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ -fmerge-เบ„เบปเบ‡เบ—เบตเปˆ. เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™ -fmerge-เบ„เบปเบ‡เบ—เบตเปˆ เบ™เบตเป‰
เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒ arrays เป€เบšเบทเป‰เบญเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบซเบผเบทโ€‹เบ•เบปเบงโ€‹เปเบ›โ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบšเบทเป‰เบญเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบกเบต
เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบกโ€‹เบซเบผเบทโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹. เบžเบฒเบชเบฒเป€เบŠเบฑเปˆเบ™ C เบซเบผเบท C ++ เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบ•เปˆเบฅเบฐเบ•เบปเบงเปเบ›,
เบฅเบงเบกเบ—เบฑเบ‡เบซเบผเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เบเบฒเบ™เป‚เบ— recursive, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡.

-fmodulo-sched
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ swing modulo เบ—เบฑเบ™เบ—เบตเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เปเบฒเบญเบดเบ”เบœเปˆเบฒเบ™. เบ™เบตเป‰
pass เป€เบšเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™ loops เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐ reorders เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป‚เบ”เบเบเบฒเบ™ overlapping เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™.

-fmodulo-sched-allow-regmoves
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป‚เบกเบ”เบนเป‚เบฅเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ SMS เบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบเป‰เบฒเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”. เป‚เบ”เบ
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ—เบธเบ‡เบ™เบตเป‰ เบ‚เบญเบšเบ•เป‰เบฒเบ™เบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบˆเบฐเบ–เบทเบเบฅเบถเบš, เป€เบŠเบดเปˆเบ‡เบเปเปˆเปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™
เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง reg เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป„เบฅเบเบฐเบŠเบตเบงเบดเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบžเบฝเบ‡เปเบ•เปˆเบกเบต -fmodulo-sched enabled

-fno-branch-count-reg
เบขเปˆเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "เบซเบผเบธเบ”เบฅเบปเบ‡เปเบฅเบฐเบชเบฒเบ‚เบฒ" เปƒเบ™เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ™เบฑเบš, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ
เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบซเบผเบธเบ”เบฅเบปเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš
เบชเบนเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบ‚เบฒเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบš
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบกเบต x86, PowerPC, IA-64 เปเบฅเบฐ
S / 390.

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O1 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fbranch-count-reg.

-fno-function-cse
เบขเปˆเบฒเปƒเบชเปˆเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™; เป€เบฎเบฑเบ”เปเบ•เปˆเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป‚เบ—เบซเบฒ a
เบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบ, เปเบ•เปˆเบšเบฒเบ‡ hacks strange เบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰
เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ assembler เบญเบฒเบ”เบˆเบฐเบชเบฑเบšเบชเบปเบ™เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -function-cse

-fno-zero-initialized-in-bss
เบ–เป‰เบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบเบชเปˆเบงเบ™ BSS, GCC เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฐเบงเบฒเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเป€เบ›เบฑเบ™
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบชเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ BSS. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ›เบฐเบซเบเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เป€เบžเบฒเบฐเบงเปˆเบฒเบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเปเบ›เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™
เป„เบ›โ€‹เบ—เบตเปˆโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™ --- เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹, เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เป„เบ”เป‰โ€‹
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบžเบฒเบเบ™เบฑเป‰เบ™เปเบฅเบฐ / เบซเบผเบทเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ™เบฑเป‰เบ™.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fzero-initialized-in-bss.

-fthread-jumps
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบตเบชเบฒเบ‚เบฒเป‚เบ”เบ”เป„เบ›เบซเบฒเบšเปˆเบญเบ™เบญเบทเปˆเบ™เบซเบผเบทเบšเปเปˆ
เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเป€เบญเบปเบฒเบกเบฒเป‚เบ”เบเบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบžเบปเบšเป€เบซเบฑเบ™. เบ–เป‰เบฒเป€เบ›เบฑเบ™เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบฒเบ‚เบฒเบ—เปเบฒเบญเบดเบ”เบ–เบทเบเป‚เบญเบ™เป„เบ›เบซเบฒ
เบšเปเปˆเบงเปˆเบฒเบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบ—เบตเบชเบญเบ‡เบซเบผเบทเบˆเบธเบ”เบ—เบตเปˆเบ•เบดเบ”เบ•เบฒเบกเบกเบฑเบ™เบ—เบฑเบ™เบ—เบต,
เบ‚เบถเป‰เบ™เบเบฑเบšเบงเปˆเบฒเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบฎเบนเป‰เบงเปˆเบฒเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡ เบซเบผเบทเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fsplit-wide-types
เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบ„เบญเบšเบ„เบญเบ‡เบซเบผเบฒเบเบ—เบฐเบšเบฝเบ™, เป€เบŠเบฑเปˆเบ™ "เบเบฒเบงเบเบฒเบง" เปƒเบ™ 32-bit
เบฅเบฐโ€‹เบšเบปเบšโ€‹, เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เปเบเบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบซเบฒเบโ€‹เปเบฅเบฐโ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เปƒเบซเป‰โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป€เบ›เบฑเบ™โ€‹เป€เบญโ€‹เบเบฐโ€‹เบฅเบฒเบ”โ€‹. เบ™เบตเป‰เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fcse-follow-jumps
เปƒเบ™เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบ—เบปเปˆเบงเป„เบ› (CSE), เบชเบฐเปเบเบ™เบœเปˆเบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฐเป‚เบ”เบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบšเปเปˆเบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเบ—เบฒเบ‡เบญเบทเปˆเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญ CSE เบžเบปเบš
เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡ "เบ–เป‰เบฒ" เบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ "เบญเบทเปˆเบ™", CSE เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เบเบฐเป‚เบ”เบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบกเปˆเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fcse-skip-blocks
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš -fcse-follow-jumps, เปเบ•เปˆเป€เบฎเบฑเบ”เปƒเบซเป‰ CSE เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เบเบฐเป‚เบ”เบ”
เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบซเป‰เบ‚เป‰เบฒเบกเบ—เปˆเบญเบ™เป„เบกเป‰. เป€เบกเบทเปˆเบญ CSE เบžเบปเบšเบเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ "เบ–เป‰เบฒ" เบ—เบตเปˆเบšเปเปˆเบกเบต
เบ‚เปเป‰โ€‹เบญเบทเปˆเบ™โ€‹, -fcse-skip-blocks เป€เบฎเบฑเบ”เปƒเบซเป‰ CSE เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ›เบฐเบกเบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡
"เบ–เป‰เบฒ".

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-frerun-cse-after-loop
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบ—เบปเปˆเบงเป„เบ›เบ„เบทเบ™เปƒเบซเบกเปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš loop เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fgcse
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบœเปˆเบฒเบ™เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบ—เบปเปˆเบงเป„เบ›เบ—เบปเปˆเบงเป‚เบฅเบ. เบœเปˆเบฒเบ™เบ™เบตเป‰เบเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”
เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เบ—เบปเปˆเบงเป‚เบฅเบเปเบฅเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบชเปเบฒเป€เบ™เบปเบฒ.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ computed gotos, เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ GCC, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบš
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบ—เบปเปˆเบงเป„เบ›เบ—เบปเปˆเบงเป‚เบฅเบ
เบœเปˆเบฒเบ™เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบก -fno-gcse เป„เบ›เบซเบฒเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fgcse-lm
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fgcse-lm เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบ—เบปเปˆเบงเป„เบ›เบ—เบปเปˆเบงเป‚เบฅเบเบžเบฐเบเบฒเบเบฒเบกเบเป‰เบฒเบ
เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเบ–เบทเบเบ‚เป‰เบฒเป‚เบ”เบเบฎเป‰เบฒเบ™เบ„เป‰เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ loop เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ a
เบฅเบณเบ”เบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”/เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเบ™เบญเบเบงเบปเบ‡เบเบฒเบ™, เปเบฅเบฐเบชเบณเป€เบ™เบปเบฒ/เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเบฒเบเปƒเบ™
the loop

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ -fgcse เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-fgcse-sm
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fgcse-sm เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, store motion pass เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบปเปˆเบงเป„เบ›เบ—เบปเปˆเบงเป‚เบฅเบ
เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡ subexpressionโ€‹. เบšเบฑเบ”เบ™เบตเป‰เบžเบฐเบเบฒเบเบฒเบกเบเป‰เบฒเบเบฎเป‰เบฒเบ™เบ„เป‰เบฒเบญเบญเบเบˆเบฒเบ loops. เป€เบกเบทเปˆเบญเปƒเบŠเป‰
เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš -fgcse-lm, loops เบ—เบตเปˆเบกเบตเบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เป‚เบซเบผเบ” / เบฎเป‰เบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰
เบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบเปˆเบญเบ™ loop เปเบฅเบฐเบฎเป‰เบฒเบ™เบซเบผเบฑเบ‡เบˆเบฒเบ loop.

เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ”เป†.

-fgcse-las
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fgcse-las เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบ—เบปเปˆเบงเป„เบ›เบ—เบปเปˆเบงเป‚เบฅเบ
เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบ—เบตเปˆเบกเบฒเบˆเบฒเบเบฎเป‰เบฒเบ™เบ„เป‰เบฒเป„เบ›เบซเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ”เบฝเบงเบเบฑเบ™ (เบ—เบฑเบ‡เบชเบญเบ‡
เบŠเป‰เบณเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™ เปเบฅเบฐเป€เบ•เบฑเบก).

เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ”เป†.

-fgcse-after-reload
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fgcse-after-reload เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปเบฅเป‰เบง, เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เป‚เบซเบผเบ”เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
เบซเบผเบฑเบ‡เบˆเบฒเบเป‚เบซเบผเบ”เปƒเปเปˆ. เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบœเปˆเบฒเบ™โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบ—เปเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฐโ€‹เบญเบฒเบ”โ€‹เบเบฒเบ™โ€‹เบฎเบปเปˆเบงโ€‹เป„เบซเบฅโ€‹เบŠเป‰เบณโ€‹เบŠเป‰เบญเบ™.

-faggressive-loop-optimizations
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเบญเบเบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ loop เปƒเบซเป‰เปƒเบŠเป‰เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบžเบฒเบชเบฒเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบชเปเบฒเบฅเบฑเบš
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบŠโ€‹เป‰โ€‹เปเบฒโ€‹เบ‚เบญเบ‡ loop เป„เบ”เป‰โ€‹. เบ™เบตเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบฅเบฐเบซเบฑเบ” loop เบšเปเปˆเป„เบ”เป‰เบฎเบฝเบเบฎเป‰เบญเบ‡
เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบฅเบปเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™ overflows เบซเบผเบท out-of-bound
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ array. เบ‚เบญเบšเป€เบ‚เบ”เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ‚เบญเบ‡ loop เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ™เปเบฒเบžเบฒ
loop unrolling เปเบฅเบฐเบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบเปเบฅเบฐ loop exit เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

-funsafe-loop-optimizations
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเบญเบเบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš loop เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ”เบฑเบ”เบŠเบฐเบ™เบต loop เบšเปเปˆ overflow, เปเบฅเบฐ
เบงเปˆเบฒ loops เบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบฒเบ‡เบญเบญเบ nontrivial เปเบกเปˆเบ™เบšเปเปˆเป€เบ›เบฑเบ™เบ™เบดเบ”. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบงเป‰เบฒเบ‡เบ‚เบถเป‰เบ™
เบŠเปˆเบงเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ loop เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš loop เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบชเบนเบ”เป„เบ”เป‰เบงเปˆเบฒเบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ–เบทเบเบ•เป‰เบญเบ‡. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -Wunsafe-loop-optimizations, compiler เป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™
เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบžเบปเบšเป€เบซเบฑเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ loop เบ™เบตเป‰.

-fcrossjumping
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ‚เป‰เบฒเบกเป‚เบ”เบ”. เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™เบ™เบตเป‰ unifies เบฅเบฐเบซเบฑเบ”เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเปเบฅเบฐ
เบšเบฑเบ™เบ—เบถเบเบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฒเบ”เบˆเบฐเบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบตเบเปˆเบงเบฒเบšเปเปˆเบกเบต cross-
เป‚เบ”เบ”.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fauto-inc, เบ„เบฐ
เบชเบปเบกเบ—เบปเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบซเบผเบทเบซเบผเบธเบ”เบฅเบปเบ‡เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ. เบœเปˆเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™
เบชเบฐเป€เบซเบกเบตเบ‚เป‰เบฒเบกเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบดเปˆเบ‡เบ™เบตเป‰.
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒเบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบตเป‰.

-fdce
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เบฒเบ (DCE) เปƒเบ™ RTL. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fdse
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฎเป‰เบฒเบ™เบ•เบฒเบ (DSE) เปƒเบ™ RTL. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
เบžเบฐเบเบฒเบเบฒเบกเบซเบฑเบ™เบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ”เบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป„เบ›เบชเบนเปˆเบเบฒเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบชเบฒเบ‚เบฒ-เปœเป‰เบญเบ. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบต
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, min, เบชเบนเบ‡เบชเบธเบ”, เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ abs, เปเบฅเบฐเบšเบฒเบ‡ tricks
เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเป€เบฅเบเป€เบฅเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™เบŠเบดเบšเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบขเบนเปˆ
เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปเบกเปˆเบ™เบ„เบงเบšเบ„เบธเบกเป‚เบ”เบ -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ 2โ€‹.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ 2โ€‹
เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (เบšเปˆเบญเบ™เบกเบต) เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบชเบฒเบ‚เบฒ-เปœเป‰เบญเบเบ—เบฝเบšเป€เบ—เบปเปˆเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fdeclone-ctor-dtor
C ++ ABI เบ•เป‰เบญเบ‡เบเบฒเบ™เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเบซเบผเบฒเบเบˆเบธเบ”เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡ เปเบฅเบฐเบ•เบปเบงเบ—เปเบฒเบฅเบฒเบ: เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบš a
subobject เบžเบทเป‰เบ™เบ–เบฒเบ™, เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™, เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ destructor virtual เบ—เบตเปˆเป‚เบ—เบซเบฒ
เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบฅเบถเบšเบญเบญเบเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™. เบชเปเบฒเบฅเบฑเบšเบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™เบ—เบตเปˆเบกเบตเบ–เบฒเบ™ virtual, เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเบฐเบชเบปเบกเบšเบนเบ™
variants เปเบกเปˆเบ™ clones, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบชเบญเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เป„เบ”เป‰
เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ‚เบญเบšเปƒเบˆเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบปเปˆเบงเป„เบ›.

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -เบญเบช.

-fdelete-null-pointer-checks
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ•เบปเบงเบŠเบตเป‰ null เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบž, เปเบฅเบฐเบšเปเปˆเบกเบตเบฅเบฐเบซเบฑเบ” เบซเบผเบทเบ‚เปเป‰เบกเบนเบ™
เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบญเบฒโ€‹เปƒเบชโ€‹เบขเบนเปˆโ€‹เบ—เบตเปˆโ€‹เบ™เบฑเป‰เบ™โ€‹. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบžเบฑเบšเบ„เบปเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบขเบนเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”
เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบทเปˆเบ™เป†เปƒเบ™ GCC เปƒเบŠเป‰เบ—เบธเบ‡เบ™เบตเป‰เป€เบžเบทเปˆเบญ
เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฐเปเบชเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰ null;
เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ–เป‰เบฒเบ•เบปเบงเบŠเบตเป‰เบ–เบทเบเบเบงเบ”เบชเบญเบšเบซเบผเบฑเบ‡เบˆเบฒเบเบกเบฑเบ™เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เปเบฅเป‰เบง, เบกเบฑเบ™
เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™ null.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เปƒเบ™เบšเบฒเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก, เบเบฒเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡. เปƒเบŠเป‰
-fno-delete-null-pointer-checks เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบš
เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบžเบถเบ”เบ•เบดโ€‹เบเบณโ€‹เบ™เบฑเป‰เบ™.

เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบญเบฑเบ™เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบ™เบ—เบธเบเบฅเบฐเบ”เบฑเบš. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบ—เบธเบเบฅเบฐเบ”เบฑเบš: -O0, -O1, -O2, -O3, -เบญเบช. เบœเปˆเบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™
เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-fdevirtualize
เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ—เป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเป€เปเบทเบญเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบ—เบฑเบ‡เบชเบญเบ‡
เบžเบฒเบเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐ interprocedurally เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ inlining เบ—เบฒเบ‡เบญเป‰เบญเบก
(-findirect-inlining) เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบžเบฑเบ™โ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆ interprocedural (-fipa-cp). เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆ
เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fdevirtualize-speculatively
เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ—เป„เบ›เป€เบ›เบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเป€เปเบทเบญเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เปเบšเบšเบ„เบฒเบ”เป€เบ”เบปเบฒ. เบญเบตเบ‡เปƒเบชเปˆ
เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบฎเบนเบšโ€‹เบเบฒเบ™โ€‹เบชเบทเบšโ€‹เบ—เบญเบ”โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹, เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบญเบตเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เบ‚เบญเบ‡โ€‹
เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹. เบ–เป‰เบฒเบŠเบธเบ”เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบกเบฑเบเบ‚เบฐเบซเบ™เบฒเบ” 1, เบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ—เป€เบ›เบฑเบ™ a
เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เปเบฅเบฐเบ—เบฒเบ‡เบญเป‰เบญเบก. เบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบŠเบฑเปˆเบ™ inlining. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเป„เบ›เบญเบตเบ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

-fdevirtualize-at-ltrans
Stream เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ devirtualization เบฎเบธเบเบฎเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ-
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ›เบฑเบšเบ›เบธเบ‡เป€เบงเบฅเบฒเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบผเบฒเบ
devirtualization เปเบ•เปˆเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เป‰เปเบฒ. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰
เป€เบซเบ”เบœเบปเบ™เบกเบฑเบ™เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fexpensive-optimizations
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เปเบžเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

เบŸเบฃเบต
เบžเบฐเบเบฒเบเบฒเบกเป€เบญเบปเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเบŠเปเป‰เบฒเบŠเป‰เบญเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบš
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ x86-64, เป€เบŠเบดเปˆเบ‡ implicitly zero-extens เปƒเบ™ 64-bit registers เบซเบผเบฑเบ‡เบˆเบฒเบ.
เบ‚เบฝเบ™เปƒเบชเปˆเป€เบ„เบดเปˆเบ‡ 32-bit เบ•เปˆเปเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš Alpha, AArch64 เปเบฅเบฐ x86 เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fno-lifetime-dse
เปƒเบ™ C ++ เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบžเบฒเบเปƒเบ™เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™: เป€เบกเบทเปˆเบญ
constructor เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบงเบฑเบ”เบ–เบธเบกเบตเบ„เปˆเบฒ indeterminate, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบญเบฒเบเบธเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเปเบกเปˆเบ™เบ•เบฒเบเป€เบกเบทเปˆเบญเบงเบฑเบ”เบ–เบธเบ–เบทเบเบ—เปเบฒเบฅเบฒเบ. เบ›เบปเบเบเบฐเบ•เบดเบฎเป‰เบฒเบ™เบ•เบฒเบ
เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบˆเบฐเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบชเบดเปˆเบ‡เบ™เบตเป‰; เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบญเบตเบ‡เปƒเบชเปˆเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡
เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ—เบตเปˆโ€‹เบเบฑเบ‡โ€‹เบ„เบปเบ‡โ€‹เบขเบนเปˆโ€‹เป€เบเบตเบ™โ€‹เบŠเบตโ€‹เบงเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบธเบ‡โ€‹เบ™เบตเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹
เบ›เบดเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰.

-flive-range-shrinkage
เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบซเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบฅเบฐเบ”เบฑเบšเบŠเบตเบงเบดเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป„เบงเบ—เบตเปˆเบกเบตเบŠเบธเบ”เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบทเบ›เบฒเบ™เบเบฒเบ‡.

-fira-algorithm=เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบงเบดเบ—เบต
เปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เปƒเบชเปˆเบชเบตเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™. เป„เบ”เป‰
เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบงเบดเบ—เบต เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™ เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบชเบตเบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ‚เบญเบ‡ Chow, เบซเบผเบท CB,
เป€เบŠเบดเปˆเบ‡เบฅเบฐเบšเบธเบเบฒเบ™เปƒเบชเปˆเบชเบต Chaitin-Briggs. เบเบฒเบ™เปƒเบชเปˆเบชเบต Chaitin-Briggs เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”
เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

-fira-region=เบžเบนเบกเบดเบžเบฒเบ
เปƒเบŠเป‰เบžเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™. เป„เบ”เป‰ เบžเบนเบกเบดเบžเบฒเบ เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡
เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบ—เบฑเบ‡เบซเบกเบปเบ” เปƒเบŠเป‰ loops เบ—เบฑเบ‡เปเบปเบ”เป€เบ›เบฑเบ™เป€เบ‚เบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบกเบตเบŠเบธเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบฅเบฐ / เบซเบผเบทเบชเบฐเบซเบกเปเปˆเบฒเบชเบฐเป€เบซเบกเบต.

เบ›เบฐเบชเบปเบก
เปƒเบŠเป‰ loops เบ—เบฑเบ‡เบซเบกเบปเบ”เบเบปเบเป€เบงเบฑเป‰เบ™ loops เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป€เบ›เบฑเบ™เบžเบฒเบเบžเบทเป‰เบ™. เบ™เบตเป‰
เบ„เปˆเบฒเบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เปเบฅเบฐ
เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป„เบง (-O, -O2, ...).

เบซเบ™เบถเปˆเบ‡ เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบ›เบฑเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ”เบฝเบง. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”
เบ‚เบฐเบซเบ™เบฒเบ”, เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš -เบญเบช or -O0.

-fira-hoist-pressure
เปƒเบŠเป‰ IRA เป€เบžเบทเปˆเบญเบ›เบฐเป€เบกเบตเบ™เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบฅเบฐเบซเบฑเบ” hoisting pass เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐ hoist
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบฑเบเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ, เปเบ•เปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบŠเป‰เบฒเบฅเบปเบ‡
compiler เบฅเบปเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -เบญเบช เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”.

-fira-loop-pressure
เปƒเบŠเป‰ IRA เป€เบžเบทเปˆเบญเบ›เบฐเป€เบกเบตเบ™เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™ loops เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเป‰เบฒเบ loop invariants.
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป‚เบ”เบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เป„เบงโ€‹เปเบฅเบฐโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เปƒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบˆเบฑเบโ€‹เบ—เบตเปˆโ€‹เบกเบต
เป„เบŸเบฅเปŒเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ (>= 32 เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™), เปเบ•เปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบŠเป‰เบฒเบฅเบปเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O3 เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบ.

-fno-ira-share-save-slots
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบชเบฐเบฅเบฑเบญเบ”เบ•เบดเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบเปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เป‚เบ—. เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบเป„เบ”เป‰เบฎเบฑเบšเบŠเปˆเบญเบ‡ stack เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบฅเบฐเป€เบ›เบฑเบ™ stack เบซเบ™เป‰เบฒเบ—เบตเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
เบเบญเบšเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒ.

-fno-ira-share-spill-slots
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบชเบฐเบฅเบฑเบญเบ”เบ•เบดเบ‡เบ—เบตเปˆเบˆเบฑเบ”เบชเบฑเบ™เป„เบงเป‰เบชเบณเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ pseudo. เปเบ•เปˆเบฅเบฐ pseudo-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบเป„เบ”เป‰เบฎเบฑเบšเบชเบฐเบฅเบฑเบญเบ”เบ•เบดเบ‡ stack เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
stack frames เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒ.

-fira-verbose=n
เบ„เบงเบšเบ„เบธเบก verbosity เบ‚เบญเบ‡เป„เบŸเบฅเปŒ dump เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 5. เบ–เป‰เบฒเบ„เปˆเบฒ n เปเบกเปˆเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒเบซเบผเบทเป€เบ—เบปเปˆเบฒเบเบฑเบš 10, เบœเบปเบ™เบœเบฐเบฅเบดเบ” dump เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›
to stderr เป‚เบ”เบเปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš n เบฅเบปเบš 10.

-flra-remat
เป€เบ›เบตเบ”เปƒเบŠเป‰ CFG-sensitive rematerialization เปƒเบ™ LRA. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅ
pseudos, LRA เบžเบฐเบเบฒเบเบฒเบก rematerialize (recalculate) เบ„เปˆเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบกเบตเบเปเบฒเป„เบฅ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fdelayed-เบชเบฒเบ‚เบฒ
เบ–เป‰เบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบžเบฐเบเบฒเบเบฒเบกเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบทเบ™เปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเบ‚เบธเบ”เบ„เบปเป‰เบ™
เบŠเปˆเบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเบ—เบตเปˆเบŠเบฑเบเบŠเป‰เบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fschedule-insns
เบ–เป‰เบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบžเบฐเบเบฒเบเบฒเบกเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบทเบ™เปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹. เบ™เบตเป‰เบŠเปˆเบงเบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆ
เบกเบตเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบŠเป‰เบฒเบซเบผเบทเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป‚เบ”เบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบญเบทเปˆเบ™เป†
เบˆเบฐเบ–เบทเบเบญเบญเบเบˆเบปเบ™เบเปˆเบงเบฒเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบซเบผเบทเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-fschedule-insns2
เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฑเบš -fschedule-insns, เปเบ•เปˆเบ‚เปเปƒเบซเป‰เบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบชเบญเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบกเบต a
เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบญเบเปเบฅเบฐเบšเปˆเบญเบ™เบ—เบตเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบเปˆเบงเบฒ
เบซเบ™เบถเปˆเบ‡เบฎเบญเบš.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fno-sched-interblock
เบขเปˆเบฒเบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบ—เบปเปˆเบงเบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™. เบ›เบปเบเบเบฐเบ•เบดเบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™, ie เบเบฑเบš -fschedule-insns เบซเบผเบทเบขเบนเปˆ -O2 or
เบชเบนเบ‡เบ‚เบถเป‰เบ™.

-fno-sched-spec
เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบšเบšเบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป‚เบซเบผเบ”. เบ›เบปเบเบเบฐเบ•เบดเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
default เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™, ie เบเบฑเบš -fschedule-insns เบซเบผเบทเบขเบนเปˆ
-O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ insn เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™. เบ™เบตเป‰
เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเปˆเบญเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, ie
-fschedule-insns เบซเบผเบทเบขเบนเปˆ -O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ. เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป„เบ”เป‰โ€‹
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เปเบฅเบฐโ€‹เบซเบผเบธเบ”โ€‹เบฅเบปเบ‡โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบเบปเบ”โ€‹เบ”เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เบ‚เบถเป‰เบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เป€เบ—เบดเบ‡โ€‹เบ•เบปเบงโ€‹เป€เบฅเบโ€‹เป„เบ”เป‰โ€‹
เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบ‚เบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเบฐเบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบผเบ•เปเปˆเบกเบฒเปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

-fsched-spec-load
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เป„เบซเบงโ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบ‚เบญเบ‡โ€‹เบšเบฒเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹. เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™, ie เบเบฑเบš -fschedule-insns เบซเบผเบทเบขเบนเปˆ -O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-spec-load-เบญเบฑเบ™เบ•เบฐเบฅเบฒเบ
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบšเบšเบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™, ie เบเบฑเบš -fschedule-insns เบซเบผเบทเบขเบนเปˆ -O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-stalled-insns
-fsched-stalled-insns=n
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™ insns (เบ–เป‰เบฒเบกเบต) เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเป‰เบฒเบเบเปˆเบญเบ™เป„เบงเบญเบฑเบ™เบ„เบงเบ™เบˆเบฒเบเปเบ–เบงเบ‚เบญเบ‡เบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒ
insns เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเบชเบญเบ‡. -fno-sched-stalled-insns
เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบเป‰เบฒเบ insns เบเปˆเบญเบ™เป„เบงเบญเบฑเบ™เบ„เบงเบ™, -fsched-stalled-insns=0 เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบต
เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™ insns เบ„เบดเบงโ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบเป‰เบฒเบโ€‹เบเปˆเบญเบ™โ€‹เป„เบงโ€‹เบญเบฑเบ™โ€‹เบ„เบงเบ™โ€‹. -fsched-stalled-insns
เบšเปเปˆเบกเบตเบ„เปˆเบฒเป€เบ—เบปเปˆเบฒเบเบฑเบš -fsched-stalled-insns=1.

-fsched-stalled-insns-dep
-fsched-stalled-insns-dep=n
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบเบธเปˆเบก insn (เบฎเบญเบšเบงเบฝเบ™) เบ–เบทเบเบเบงเบ”เบชเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบš insn เบ—เบตเปˆเบขเบธเบ”เป€เบŠเบปเบฒ.
เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเบเปˆเบญเบ™เป„เบงเบญเบฑเบ™เบ„เบงเบ™เบˆเบฒเบเปเบ–เบงเบ‚เบญเบ‡ insns เบ—เบตเปˆเบขเบธเบ”เป€เบŠเบปเบฒ. เบ™เบตเป‰เบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเบชเบญเบ‡, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ -fsched-stalled-insns is
เปƒเบŠเป‰เปเบฅเป‰เบง. -fno-sched-stalled-insns-dep เป€เบ—เบปเปˆเบฒเบเบฑเบš -fsched-stalled-insns-dep=0.
-fsched-stalled-insns-dep เบšเปเปˆเบกเบตเบ„เปˆเบฒเป€เบ—เบปเปˆเบฒเบเบฑเบš
-fsched-stalled-insns-dep=1.

-fsched2-use-superblocks
เป€เบกเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เปƒเบŠเป‰เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ superblock. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เป‰เบฒเบกเบ‚เบญเบšเป€เบ‚เบ”เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™, เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป„เบงเบ‚เบถเป‰เบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เบเป‰เบญเบ™เบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ GCC เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡ CPU เบขเปˆเบฒเบ‡เปƒเบเป‰เบŠเบดเบ”เบžเบฝเบ‡เบžเป
เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบˆเบฒเบ algorithm.

เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, ie เบเบฑเบš
-fschedule-insns2 เบซเบผเบทเบขเบนเปˆ -O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-group-heuristic
เป€เบ›เบตเบ”เปƒเบŠเป‰ heuristic เบเบธเปˆเบกเปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ. heuristic เบ™เบตเป‰เบกเบฑเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบ—เบตเปˆเป€เบ›เบฑเบ™เบ‚เบญเบ‡เบเบธเปˆเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ
เป€เบ›เบตเบ”เปƒเบŠเป‰, ie เบเบฑเบš -fschedule-insns or -fschedule-insns2 เบซเบผเบทเบขเบนเปˆ -O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-critical-path-heuristic
เป€เบ›เบตเบ”เปƒเบŠเป‰ heuristic เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ. เบ™เบตเป‰เบกเบฑเบ heuristic
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ
เป€เบ›เบตเบ”เปƒเบŠเป‰, ie เบเบฑเบš -fschedule-insns or -fschedule-insns2 เบซเบผเบทเบขเบนเปˆ -O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-spec-insn-heuristic
เป€เบ›เบตเบ”เปƒเบŠเป‰ heuristic เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ. เบ™เบตเป‰เบกเบฑเบ heuristic
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบญเปˆเบญเบ™เป€เบžเบเบซเบผเบฒเบเบ‚เบทเป‰เบ™. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹, เป€เบŠเบฑเปˆเบ™โ€‹: เบกเบตโ€‹ -fschedule-insns or -fschedule-insns2 เบซเบผเบทเบขเบนเปˆ -O2
เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-rank-heuristic
เป€เบ›เบตเบ”เปƒเบŠเป‰ heuristic เบญเบฑเบ™เบ”เบฑเบšเปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ. heuristic เบ™เบตเป‰เบกเบฑเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เป€เบ›เบฑเบ™เบ‚เบญเบ‡เบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบกเบตเบ‚เบฐเปœเบฒเบ” เบซเบผเบทเบ„เบงเบฒเบกเบ–เบตเปˆเบซเบผเบฒเบเบเบงเปˆเบฒ. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹, เป€เบŠเบฑเปˆเบ™โ€‹: เบกเบตโ€‹ -fschedule-insns or -fschedule-insns2 เบซเบผเบทเบขเบนเปˆ -O2
เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-last-insn-heuristic
เป€เบ›เบตเบ”เปƒเบŠเป‰ heuristic เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบธเบ”เบ—เป‰เบฒเบเปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ. heuristic เบ™เบตเป‰ favors เป„เบ”เป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบซเบ™เป‰เบญเบเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, ie เบเบฑเบš -fschedule-insns or -fschedule-insns2
เบซเบผเบทเบขเบนเปˆ -O2 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-fsched-dep-count-heuristic
เป€เบ›เบตเบ”เปƒเบŠเป‰ heuristic เบเบฒเบ™เบ™เบฑเบšเบ‚เบถเป‰เบ™เบเบฑเบšเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ. heuristic เบ™เบตเป‰ favors เป„เบ”เป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฒเบเบ‚เบทเป‰เบ™เบเบฑเบšเบกเบฑเบ™. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹, เป€เบŠเบฑเปˆเบ™โ€‹: เบกเบตโ€‹ -fschedule-insns or -fschedule-insns2 เบซเบผเบทเบขเบนเปˆ -O2
เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-freschedule-modulo-schedule-loops
เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เป‚เบกเบ”เบนเป‚เบฅเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเปˆเบญเบ™เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก. เบ–เป‰เบฒ loop เป€เบ›เบฑเบ™ modulo
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ, เบ•เปเปˆเบกเบฒเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบœเปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™. เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญ
เบ„เบงเบšเบ„เบธเบกเบžเบถเบ”เบ•เบดเบเบณเบ™เบฑเป‰เบ™.

-fselective-เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เป€เบฅเบทเบญเบ. เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เปเบฅเปˆเบ™
เปเบ—เบ™เบเบฒเบ™เบœเปˆเบฒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เปเบฒเบญเบดเบ”.

-fselective-เบเบณเบ™เบปเบ”โ€‹เป€เบงเบฅเบฒ2
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เป€เบฅเบทเบญเบ. เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เปเบฅเปˆเบ™
เปเบ—เบ™เบเบฒเบ™เบœเปˆเบฒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเบชเบญเบ‡.

-fsel-sched-pipelining
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบงเบฒเบ‡เบ—เปเปˆเบŠเบญเบšเปเบงเบ‚เบญเบ‡ loops เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เป€เบฅเบทเบญเบ. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™ -fselective-เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹ or -fselective-เบเบณเบ™เบปเบ”โ€‹เป€เบงเบฅเบฒ2
เปเบกเปˆเบ™เป„เบ”เป‰เบซเบฑเบ™เบชเบธเบ”.

-fsel-sched-pipelining-outer-loops
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปเปˆ loops เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบ, เบเบฑเบ‡เบ—เปเปˆ loops เบžเบฒเบเบ™เบญเบ. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -fsel-sched-pipelining เปเบกเปˆเบ™เป„เบ”เป‰เบซเบฑเบ™เบชเบธเบ”.

-fsemantic-interposition
เบฎเบนเบšเปเบšเบšเบงเบฑเบ”เบ–เบธเบšเบฒเบ‡เบญเบฑเบ™, เป€เบŠเบฑเปˆเบ™ ELF, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเป‚เบ”เบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง.
เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบชเบปเปˆเบ‡เบญเบญเบเบกเบฒเบˆเบฒเบ DSO, compiler เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เปเบšเบš interprocedural, inlining เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบกเบต
เบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบทเบ•เบปเบงเปเบ›เปƒเบ™เบ„เปเบฒเบ–เบฒเบกเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”, เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบ„เบทเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป‚เบ”เบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ debugging, เบกเบฑเบ™เปเบกเปˆเบ™
เบฅเบฒเบ„เบฒเปเบžเบ‡เปƒเบ™เบ”เป‰เบฒเบ™เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”. เบเบฑเบš -fno-semantic-interposition compiler เป„เบ”เป‰
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ–เป‰เบฒ interposition เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™, เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบšเบˆเบฐเบกเบต
เบŠเบฑเบ”เป€เบˆเบ™ semantics เบ”เบฝเบงเบเบฑเบ™ (เปเบฅเบฐเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡). เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ interposition เป€เบเบตเบ”เบ‚เบถเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›, constructor เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบˆเบฐเบ„เบทเบเบฑเบ™. เบ—เบธเบ‡เบšเปเปˆเบกเบต
เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เปƒเบ™โ€‹เป€เบชเบฑเป‰เบ™ (เบ—เบตเปˆโ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เป€เบ„เบตเบโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
interposition เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ semantics) เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ›เบฐเบเบฒเบ”เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบงเปˆเบฒเบญเปˆเบญเบ™เปเบญ.

-fshrink-wrap
เบ›เปˆเบญเบ prologues เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบเปˆเบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบขเบนเปˆ
เป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fcaller-เบ›เบฐเบซเบเบฑเบ”
เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบ—เบตเปˆ clobbered เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹, เป‚เบ”เบโ€‹
เบ›เปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เป‚เบ—เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบชเบฐ เป€เปเบต เปƒเบ™เบšเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡, เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเบกเบต
เบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰เปเบ—เบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fcombine-stack-เบ›เบฑเบš
เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เบฑเบšเบ•เบปเบง stack (pushes เปเบฅเบฐ pops) เปเบฅเบฐ stack เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบฐเบเบฒเบเบฒเบก
เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบชเบปเบกเบ—เบปเบšเบžเบงเบเบกเบฑเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O1 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fipa-ra
เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบ—เบถเบเบœเบนเป‰เป‚เบ—เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ–เป‰เบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เป€เบญเบตเป‰เบ™เปƒเบ”เป†
เบซเบ™เป‰เบฒเบ—เบตเปˆ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒ.
เบญเบฑเบ™เบ™เบตเป‰เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เปœเปˆเบงเบเบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เปเบฅเบฐเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบเปˆเบญเบ™เบกเบฑเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fconserve-stack
เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เปƒเบŠเป‰ stack. compiler เบžเบฐเบเบฒเบเบฒเบกเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆ stack เบซเบ™เป‰เบญเบ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบ–เป‰เบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบŠเป‰เบฒเบฅเบปเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ” เปƒเบซเบเปˆ stack-frame
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบ–เบดเบ‡ 100 เปเบฅเบฐ large-stack-frame-growth เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบ–เบดเบ‡ 400.

-ftree-reassoc
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰เบ„เบทเบ™เปƒเปเปˆ. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftre-pre
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™ (PRE) เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O2 เปเบฅเบฐ -O3.

-ftree-partial-pre
เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™ (PRE) เบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O3.

-ftree-forwprop
เบชเบทเบšเบ•เปเปˆเบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐ
เบชเบนเบ‡เบ‚เบถเป‰เบ™.

- เบŸเบฃเบตโ€‹เบŸเบฃเบตโ€‹
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ (FRE) เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ FRE เปเบฅเบฐ
PRE เปเบกเปˆเบ™เบงเปˆเบฒ FRE เบžเบฝเบ‡เปเบ•เปˆเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบขเบนเปˆเปƒเบ™เบ—เบธเบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆ
เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบ—เบตเปˆโ€‹เบŠเปเป‰เบฒโ€‹เบŠเป‰เบญเบ™โ€‹. เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ™เบตเป‰เปเบกเปˆเบ™เป„เบงเบเบงเปˆเบฒ PRE, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบตเบ”เป€เบœเบตเบเบซเบ™เป‰เบญเบเบฅเบปเบ‡
เบŠเปเป‰เบฒเบŠเป‰เบญเบ™. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-phiprop
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบปเบเบเบฒเบ™เป‚เบซเบผเบ”เบˆเบฒเบเบ•เบปเบงเบŠเบตเป‰เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบชเปˆเบ•เบปเป‰เบ™เป„เบกเป‰. เบšเบฑเบ”เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fhoist-adjacent-loads
เป‚เบ”เบเบ„เบฒเบ”เบเบฒเบ™เบงเปˆเบฒ hoist loads เบˆเบฒเบเบ—เบฑเบ‡เบชเบญเบ‡เบชเบฒเบ‚เบฒเบ‚เบญเบ‡ if-then-else เบ–เป‰เบฒเบเบฒเบ™เป‚เบซเบผเบ”เบกเบฒเบˆเบฒเบ
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบเป‰เบ„เบฝเบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบเบฒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เป„เบซเบงโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O2 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-copy-prop
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ•เบปเป‰เบ™เป„เบกเป‰. เบšเบฑเบ”เบ™เบตเป‰เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเปเบฒเป€เบ™เบปเบฒเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.
เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fipa-pure-const
เบ„เบปเป‰เบ™เบžเบปเบšเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เบ—เบตเปˆเบšเปเบฅเบดเบชเบธเบ” เบซเบผเบทเบ„เบปเบ‡เบ—เบตเปˆ. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fipa เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹
เบ„เบปเป‰เบ™เบžเบปเบšเบ•เบปเบงเปเบ›เบชเบฐเบ–เบดเบ”เปƒเบ”เบ—เบตเปˆเบšเปเปˆเปœเบตเบˆเบฒเบเปœเปˆเบงเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fipa-pta
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ•เบปเบงเบŠเบตเป‰ interprocedural เปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚ interprocedural เปเบฅเบฐ
เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบญเป‰เบฒเบ‡เบญเบตเบ‡. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ› เปเบฅเบฐเบเบฒเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบขเบนเปˆเปƒเบ™
เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ”เป†.

-fipa-profile
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป‚เบ›เบผเป„เบŸเบฅเปŒเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบˆเบฒเบเป€เบขเบฑเบ™
เบซเบ™เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบซเบกเบฒเบเป€เบ›เบฑเบ™เป€เบขเบฑเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡ (เป€เบŠเบฑเปˆเบ™: "เป€เบขเบฑเบ™",
"noreturn", constructors static เบซเบผเบท destructors) เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบขเบฑเบ™เปเบฅเบฐ
loop เบžเบฒเบเบชเปˆเบงเบ™เบซเบ™เป‰เบญเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบˆเบฐเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”. เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fipa-cp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆ interprocedural. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบงเบดเป€เบ„เบฒเบฐเป‚เบ„เบ‡เบเบฒเบ™
เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปˆเบฒเบ—เบตเปˆเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ optimizes
เบ•เบฒเบกเบ™เบฑเป‰เบ™. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบกเบตโ€‹เบ„เปˆเบฒโ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบœเปˆเบฒเบ™โ€‹เป„เบ›โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ
-O2, -เบญเบช เปเบฅเบฐ -O3.

-fipa-cp-clone
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ cloning เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆ interprocedural เป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เป€เบ›เบตเบ”เปƒเบŠเป‰, เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆ interprocedural เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ cloning เป€เบกเบทเปˆเบญ
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบžเบฒเบเบ™เบญเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบญเบตเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบปเบ‡เบ—เบตเปˆ. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆ, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ” (เป€เบšเบดเปˆเบ‡ --param ipcp-unit-growth=เบกเบนเบ™เบ„เปˆเบฒ). เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ
-O3.

-fipa-cp-alignment
เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” vectorization เปเบฅเบฐ string เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O2 เปเบฅเบฐ -เบญเบช. เบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ™เบฑเป‰เบ™ -fipa-cp เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-fipa-icf
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบžเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ„เบทเบเบฑเบ™เบชเบณเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ เปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เบตเปˆเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เป„เบ”เป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบˆเบฐเบซเบผเบธเบ”เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบฅเบปเบšเบเบงเบ™เบเบฒเบ™เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบ•เบญเบšเป‚เบ•เป‰เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เปœเบถเปˆเบ‡
เป€เบ—เบปเปˆเบฒเบเบฑเบšเบŠเบทเปˆเบญเบทเปˆเบ™. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบฎเบฑเบ”เบงเบฝเบเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เบเบฑเบš
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเป‰เบง.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบถเบ”เบ•เบดเบเปเบฒเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš Gold Linker ICF, GCC ICF เป€เบฎเบฑเบ”เบงเบฝเบ
เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบกเปˆเบ™เบšเปเปˆเบ„เบทเบเบฑเบ™ - เบกเบตเบ„เบงเบฒเบกเบ—เบฝเบšเป€เบ—เบปเปˆเบฒ
เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบ GCC เปเบฅเบฐเบ„เบงเบฒเบกเบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบเบ„เปเบฒ.

เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O2 เปเบฅเบฐ -เบญเบช.

-fisolate-erroneous-paths-dereference
เบเบงเบ”เบซเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบžเบถเบ”เบ•เบดเบเบณเบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ” เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”เป„เบงเป‰ เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ null
เบ•เบปเบงเบŠเบตเป‰. เปเบเบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบญเบญเบเบˆเบฒเบเบเบฐเปเบชเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ•เบปเป‰เบ™เบ•เปเปเบฅเบฐเบซเบฑเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆ
เบžเบถเบ”เบ•เบดเบเบณเบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ” เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™เบˆเบฑเปˆเบ™เบˆเบฑเบš. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O2
เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fisolate-erroneous-paths-attribute
เบเบงเบ”เบซเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบžเบถเบ”เบ•เบดเบเบณเบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ” เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เปˆเบฒ null เบ–เบทเบเปƒเบŠเป‰
เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบซเป‰เบฒเบกเป‚เบ”เบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "returns_nonnull" เบซเบผเบท "nonnull". เปเบเบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เบˆเบฒเบเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ•เบปเป‰เบ™เบ•เปเปเบฅเบฐเบ›เปˆเบฝเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ”เบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบˆเบฑเปˆเบ™เบˆเบฑเบš. เบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบ‚เบฐเบ™เบฐเบ™เบตเป‰, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -O2 เปƒเบ™โ€‹เบญเบฒโ€‹เบ™เบฒโ€‹เบ„เบปเบ”.

- เบญเปˆเบฒเบ‡เบฅเป‰เบฒเบ‡เบกเบท
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบ›เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐ
เบชเบนเบ‡เบ‚เบถเป‰เบ™.

-ftree-bit-ccp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเป€เบฅเบฑเบเบ™เป‰เบญเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ เปเบฅเบฐ เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเบŠเบตเป‰
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹. pass เบ™เบตเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› scalar เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ™เบฑเป‰เบ™ -ftree-ccp เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-ftree-ccp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (CCP) เบขเบนเปˆเป€เบ—เบดเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰. เบœเปˆเบฒเบ™เบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› scalar เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-fssa-phiopt
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบšเปƒเบ™ nodes SSA PHI เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบœเปˆเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftre-switch-เปเบ›เบ‡
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเปƒเบ™เบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ a
array scalar. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O2 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-tail-merge
เบŠเบญเบเบซเบฒเบฅเปเบฒเบ”เบฑเบšเบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™. เป€เบกเบทเปˆเบญเบžเบปเบš, เปเบ—เบ™เบญเบฑเบ™เปœเบถเปˆเบ‡เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ”เบ”เป„เบ›เบซเบฒเบญเบตเบเบญเบฑเบ™เปœเบถเปˆเบ‡.
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบฅเบงเบกเบซเบฒเบ‡เบซเบผเบทเบเบฒเบ™เป‚เบ”เบ”เบ‚เป‰เบฒเบก. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O2 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบšเบฑเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰
max-tail-merge-เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบฅเบฐ max-tail-merge-iterations เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต.

-ftree-dce
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เบฒเบ (DCE) เปƒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O
เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-builtin-call-dce
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (DCE) เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™
เบญเบฒเบ”เบˆเบฐเบ•เบฑเป‰เบ‡ "errno" เปเบ•เปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เปƒเบ”เป†. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
at -O2 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒเบ–เป‰เบฒ -เบญเบช เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹.

-ftree-dominator-opts
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบชเบฐเป€เบเบฑเบ”เป€เบ‡เบดเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเบŠเบฐเบ™เบดเบ” (เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ / เบชเปเบฒเป€เบ™เบปเบฒ, เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™.
เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹, เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบžเบฑเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹) เป‚เบ”เบโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹เบเบฒเบ™โ€‹เป€เบ”เบฑเปˆเบ™โ€‹
เบ—เบฒเบ‡เบœเปˆเบฒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰. เบ™เบตเป‰เบเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฐเบ—เบนเป‰เบเบฐเป‚เบ”เบ” (เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป‚เบ”เบ”เป„เบ›เบซเบฒเบเบฐเป‚เบ”เบ”). เบ™เบตเป‰
เบ—เบธเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-dse
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฎเป‰เบฒเบ™เบ•เบฒเบ (DSE) เปƒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰. เบฎเป‰เบฒเบ™เบ—เบตเปˆเบ•เบฒเบเปเบฅเป‰เบงเปเบกเปˆเบ™เบฎเป‰เบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบ•เปเปˆเบกเบฒเบ–เบทเบเบ‚เบฝเบ™เบ—เบฑเบšเป‚เบ”เบเบฎเป‰เบฒเบ™เบญเบทเปˆเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปเบŠเบเปเบŠเบ‡เปƒเบ”เป†. เปƒเบ™
เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบฎเป‰เบฒเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบถเบšเบ–เบดเป‰เบก. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐ
เบชเบนเบ‡เบ‚เบถเป‰เบ™.

-ftre-ch
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡ loop เปƒเบชเปˆเบ•เบปเป‰เบ™เป„เบกเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบกเบฑเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™
เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบฅเบฐเบซเบฑเบ”. เบกเบฑเบ™เบเบฑเบ‡เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบซเบ™เบถเปˆเบ‡เบเบฐเป‚เบ”เบ”. เบ—เบธเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš -เบญเบช, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง
เป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”.

-ftree-loop-optimize
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš loop เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐ
เบชเบนเบ‡เบ‚เบถเป‰เบ™.

-ftree-loop-linear
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ loop interchange เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -floop-interchange. เบเบฒเบ™ เบ™เบณ เปƒเบŠเป‰
เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, GCC เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ configured เบเบฑเบš --with-isl เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ Graphite loop.

-floop-interchange
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ loop interchange เปƒเบ™ loops. เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบชเบญเบ‡ loops เบŠเป‰เบญเบ™เบเบฑเบ™
เบชเบฐเบซเบผเบฑเบš loops เบžเบฒเบเปƒเบ™เปเบฅเบฐเบ™เบญเบ. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰ loop เป€เบŠเบฑเปˆเบ™:

DO J = 1, เบก
DO I = 1, N
A(J,I) = A(J, I) * C
เบชเบดเป‰เบ™เบชเบธเบ”
เบชเบดเป‰เบ™เบชเบธเบ”

loop interchange เบ›เปˆเบฝเบ™ loop เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰:

DO I = 1, N
DO J = 1, เบก
A(J,I) = A(J, I) * C
เบชเบดเป‰เบ™เบชเบธเบ”
เบชเบดเป‰เบ™เบชเบธเบ”

เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบกเบทเปˆเบญ "N" เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒเบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒเปƒเบ™ Fortran, the
เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ array เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เบดเบ”เบ•เปเปˆเบเบฑเบ™เป‚เบ”เบเบ–เบฑเบ™, เปเบฅเบฐเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
loop iterates เปƒเบ™เป„เบฅเบเบฐเปเบ–เบง, เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เปƒเบ™เปเบ•เปˆเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ cache miss. เบ™เบตเป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบŠเป‰เบเบฑเบšเบ—เบธเบเบžเบฒเบชเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ GCC เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเบเบฑเบ”
เบŸเปเบฃเบฑเบ™. เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, GCC เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบ --with-isl to
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ Graphite loop.

-floop-strip-mine
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™ loop strip mining เปƒเบ™ loops. เบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เบšเปเปˆเปเบฎเปˆเปเบเบเป€เบ›เบฑเบ™ loops เป€เบ›เบฑเบ™
เบชเบญเบ‡ loops เบฎเบฑเบ‡. เบงเบปเบ‡เบ™เบญเบเบกเบตเบ‚เบฑเป‰เบ™เป„เบ”เป€เบ—เบปเปˆเบฒเบเบฑเบšเบ‚เบฐเปœเบฒเบ”เปเบ–เบš เปเบฅเบฐเบ”เป‰เบฒเบ™เปƒเบ™
loop เบกเบต strides เบ‚เบญเบ‡ loop เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบžเบฒเบเปƒเบ™เป€เบชเบฑเป‰เบ™เบ”เปˆเบฒเบ‡. เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เปเบ–เบšเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ loop-block-tile-size เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰ loop เป€เบŠเบฑเปˆเบ™:

DO I = 1, N
A(I) = A(I) + C
เบชเบดเป‰เบ™เบชเบธเบ”

loop strip mining เบ›เปˆเบฝเบ™ loop เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบ‚เบฝเบ™เบงเปˆเบฒ:

DO II = 1, N, 51
DO I = II, min (II + 50, N)
A(I) = A(I) + C
เบชเบดเป‰เบ™เบชเบธเบ”
เบชเบดเป‰เบ™เบชเบธเบ”

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เปƒเบŠเป‰เบเบฑเบšเบ—เบธเบเบžเบฒเบชเบฒเบ—เบตเปˆ GCC เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเบเบฑเบ”
เบŸเปเบฃเบฑเบ™. เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, GCC เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบ --with-isl to
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ Graphite loop.

-floop-block
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ blocking loop เปƒเบ™ loops. เบชเบฐเบเบฑเบ”เบฅเบฐเป€เบšเบตเบ”เบเบฑเบ‡เบ”เบดเบ™เปเบ•เปˆเบฅเบฐ loop เปƒเบ™
loop เบฎเบฑเบ‡เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡ loops เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบซเบกเบฒเบฐเบžเบฒเบเปƒเบ™ cache. เป„เบ”เป‰
เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เปเบ–เบšเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ loop-block-tile-size เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
เปƒเบซเป‰ loop เบ„เบท:

DO I = 1, N
DO J = 1, เบก
A(J,I) = B(I) + C(J)
เบชเบดเป‰เบ™เบชเบธเบ”
เบชเบดเป‰เบ™เบชเบธเบ”

loop blocking เบ›เปˆเบฝเบ™ loop เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰:

DO II = 1, N, 51
DO JJ = 1, M, 51
DO I = II, min (II + 50, N)
DO J = JJ, เบ™เบฒเบ—เบต (JJ + 50, M)
A(J,I) = B(I) + C(J)
เบชเบดเป‰เบ™เบชเบธเบ”
เบชเบดเป‰เบ™เบชเบธเบ”
เบชเบดเป‰เบ™เบชเบธเบ”
เบชเบดเป‰เบ™เบชเบธเบ”

เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบกเบทเปˆเบญ "M" เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒเบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒ loop เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”
iterates เบซเบผเบฒเบเบเบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ. เบ™เบตเป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบŠเป‰เบเบฑเบšเบ—เบธเบเบžเบฒเบชเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ GCC เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเบเบฑเบ”
เบŸเปเบฃเบฑเบ™. เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, GCC เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบ --with-isl to
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ Graphite loop.

-fgraphite-เบ•เบปเบงเบ•เบปเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ•เบปเบงเบ•เบปเบ™เบชเปเบฒเบฅเบฑเบš graphite. เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป† SCoP เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡ polyhedral เปเบฅเบฐเบ›เปˆเบฝเบ™เบกเบฑเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™ gimple. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fgraphite-เบ•เบปเบงเบ•เบปเบ™
เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบทเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡ GIMPLE -> GRAPHITE -> เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™ GIMPLE.
เบšเบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบเบเปเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ•เบปเบงเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” ISL เป€เบŠเบฑเปˆเบ™: เบ”เบฑเบ”เบชเบฐเบ™เบต
เบเบฒเบ™เปเบเบเปเบฅเบฐเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ•เบฒเบเปƒเบ™ loops.

-floop-nest-optimize
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ loop nest เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ ISL. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ loop เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ
เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ Pluto. เบกเบฑเบ™เบ„เบดเบ”เป„เบฅเปˆเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ loop เป€เบซเบกเบฒเบฐเบชเปเบฒเบฅเบฑเบš
data-locality เปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบปเบ”เบฅเบญเบ‡.

-floop-unroll-and- jam
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบญเบ”เบ–เบญเบ™ เปเบฅเบฐเบ•เบดเบ”เบ‚เบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ loop nest เบ‚เบญเบ‡ ISL. เบ›เบฑเบ”เป„เบˆ unroll เบชเบฒเบกเบฒเบ”
เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ loop-unroll-jam-size เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบ‚เบฐเปœเบฒเบ”เบ—เบตเปˆเบ–เบญเบ”เบญเบญเบ (เบ™เบฑเบš
เบˆเบฒเบเบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”) เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ loop-unroll-jam-depth เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต.
.

-floop-parallelize-เบ—เบฑเบ‡เปเบปเบ”
เปƒเบŠเป‰เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ‚เปเป‰เบกเบนเบ™ Graphite เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ” loops เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบ™เบฒเบ™เป„เบ”เป‰.
เบ‚เบฐเบซเบ™เบฒเบ™เบ—เบธเบ loops เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบงเบดเป€เบ„เบฒเบฐเป„เบ”เป‰เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบกเบต loop เบ›เบฐเบ•เบดเบšเบฑเบ”
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบกเบตเบเปเบฒเป„เบฅเปƒเบ™เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™ loops.

-fcheck-data-deps
เบ›เบฝเบšเบ—เบฝเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš
debugging เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เปเป‰เบกเบนเบ™.

-ftree-loop-if-convert
เบžเบฐเบเบฒเบเบฒเบกเบซเบฑเบ™เบ›เปˆเบฝเบ™เบเบฒเบ™เบเบฐเป‚เบ”เบ”เปเบšเบšเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™เบงเบปเบ‡เปเบซเบงเบ™เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เป„เบ›เบชเบนเปˆเบ‡เปˆเบฒ-เปœเป‰เบญเบ
เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ. เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผเบญเบญเบเบˆเบฒเบ loops เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš
เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ vectorization pass เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™ loops เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ vectorization เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.

-ftree-loop-if-convert-stores
เบžเบฐเบเบฒเบเบฒเบกเป€เบžเบตเปˆเบกเบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบ™เบตเป‰
เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบชเบฒเบกเบฒเบ”เบšเปเปˆเบ›เบญเบ”เป„เบžเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบซเบผเบฒเบเบเบฐเบ—เบนเป‰เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ writes into unconditional memory writes. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,

เบชเปเบฒเบฅเบฑเบš (i = 0; i < N; i++)
เบ–เป‰เบฒ (cond)
A[i] = expr;

เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™

เบชเปเบฒเบฅเบฑเบš (i = 0; i < N; i++)
A[i] = cond ? expr : A[i];

เบ—เปˆเบฒเปเบฎเบ‡เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เป€เบŠเบทเป‰เบญเบŠเบฒเบ”.

-ftree-loop-เบเบฒเบ™เปเบœเปˆเบเบฐเบˆเบฒเบ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบˆเบเบขเบฒเบ loop. เบ—เบธเบ‡เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš cache เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ loop เปƒเบซเบเปˆ
เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš loop เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบŠเบฑเปˆเบ™: เบ‚เบฐเบซเบ™เบฒเบ™เบซเบผเบท vectorization, เปƒเบŠเป‰เป€เบงเบฅเบฒ
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, loop เป„เบ”เป‰

DO I = 1, N
A(I) = B(I) + C
D(I) = E(I) * F
เบชเบดเป‰เบ™เบชเบธเบ”

เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™

DO I = 1, N
A(I) = B(I) + C
เบชเบดเป‰เบ™เบชเบธเบ”
DO I = 1, N
D(I) = E(I) * F
เบชเบดเป‰เบ™เบชเบธเบ”

-ftree-loop-distribute-patterns
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบˆเบเบขเบฒเบเปเบšเบš loop เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ—เบซเบฒ a
เบซเปเบชเบฐเปเบธเบ”. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O3.

เบšเบฑเบ”เบ™เบตเป‰เปเบˆเบเบขเบฒเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ loops เปเบฅเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒ memset zero.
เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, loop เป„เบ”เป‰

DO I = 1, N
A(I) = 0
B(I) = A(I) + I
เบชเบดเป‰เบ™เบชเบธเบ”

เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™

DO I = 1, N
A(I) = 0
เบชเบดเป‰เบ™เบชเบธเบ”
DO I = 1, N
B(I) = A(I) + I
เบชเบดเป‰เบ™เบชเบธเบ”

เปเบฅเบฐ loop เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เบซเบฒ memset zero.

-ftree-loop-im
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบšเบšเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบšเบš loop เบขเบนเปˆเป€เบ—เบดเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰. เบœเปˆเบฒเบ™เบ™เบตเป‰เบเป‰เบฒเบเบžเบฝเบ‡เปเบ•เปˆ invarians เบ—เบตเปˆเปเบ‚เบ‡
เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบš RTL (เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเป„เบ›เบชเบนเปˆเบฅเปเบฒเบ”เบฑเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบซเบเปเป‰
เบ‚เบญเบ‡ insns). เบเบฑเบš -funswitch-loops เบกเบฑเบ™เบเบฑเบ‡เบเป‰เบฒเบ operands เบ‚เบญเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเป€เบ›เบฑเบ™
invariant เบญเบญเบเบˆเบฒเบ loop, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆ invariantness trivial เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปƒเบ™
loop unswitching. เบ›เบตเป‰เบเบฑเบ‡เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡เบฎเป‰เบฒเบ™.

-ftree-loop-ivcanon
เบชเป‰เบฒเบ‡เบ•เบปเบงเบ™เบฑเบš canonical เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เปƒเบ™ loops เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”
เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเบกเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐ
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเป€เบฅเบเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ. เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš unrolling.

-fivopts
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เบปเบงเปเบ› induction (เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡, เบ•เบปเบงเปเบ› induction
merging and induction variable elimination) เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰.

-ftree-parallelize-loops=เบ™
Parallelize loops, ie, เปเบšเปˆเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆ iteration เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™ n threads. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš loops เบ—เบตเปˆเบกเบต iterations เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เปเบฅเบฐเบชเบฒเบกเบฒเบ” arbitrarily
เบˆเบฑเบ”เบฎเบฝเบ‡เปƒเปเปˆ. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบเปเบฒเป„เบฅเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ multiprocessor, เบชเปเบฒเบฅเบฑเบš loops
เบ—เบตเปˆเบกเบต CPU เบซเบผเบฒเบ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบˆเปเบฒเบเบฑเบ” e.g. เป‚เบ”เบเปเบšเบ™เบงเบดเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
implies - เบเบฐเบ—เบนเป‰, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
- เบเบฐเบ—เบนเป‰.

-ftree-pta
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ - เบˆเบธเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ - เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
at -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-sra
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™ scalar เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบšเบฑเบ”เบ™เบตเป‰เปเบ—เบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡
เบ”เป‰เบงเบเป€เบเบฑเบ”เป€เบเบฑเบ”เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเป„เบงเป€เบเบตเบ™เป„เบ›. เบ—เบธเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-free-copyrename
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเปเบฒเป€เบ™เบปเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เบŠเบทเปˆเปƒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰. pass เบ™เบตเป‰เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เบŠเบทเปˆ compiler temporaries เป€เบ›เบฑเบ™
เบ•เบปเบงเปเบ›เบญเบทเปˆเบ™เบขเบนเปˆเบšเปˆเบญเบ™เบชเบณเป€เบ™เบปเบฒ, เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบกเบตเบŠเบทเปˆเบ•เบปเบงเปเบ›เบ—เบตเปˆเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™
เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเปเบ›เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐ
เบชเบนเบ‡เบ‚เบถเป‰เบ™.

-ftree-coalesce-inlined-vars
เบšเบญเบเบŠเบทเปˆ copyrename pass (เป€เบšเบดเปˆเบ‡ -free-copyrename) เป€เบžเบทเปˆเบญโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฅเบงเบกโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบ -
เบ•เบปเบงเปเบ›เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ„เบทเบเบฑเบ™, เปเบ•เปˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบ inlined เบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบทเปˆเบ™เป†. เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹
เบฎเบนเบšเปเบšเบšเบˆเปเบฒเบเบฑเบ”เบซเบผเบฒเบ -ftree-coalesce-vars. เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ•เปเปˆเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบ•เบปเบงเปเบ› inlined, เปเบ•เปˆเบกเบฑเบ™เบฎเบฑเบเบชเบฒเบ•เบปเบงเปเบ›เบ‚เบญเบ‡ inlined-into function เบ™เบญเบเบˆเบฒเบเปเบ•เปˆเบฅเบฐ.
เบญเบทเปˆเบ™, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบกเบตเบ„เปˆเบฒเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰เปƒเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ
session

-ftree-coalesce-vars
เบšเบญเบเบŠเบทเปˆ copyrename pass (เป€เบšเบดเปˆเบ‡ -free-copyrename) เป€เบžเบทเปˆเบญโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฅเบงเบกโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบ -
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบžเบฝเบ‡เปเบ•เปˆ compiler temporaries. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบˆเปเบฒเบเบฑเบ”เบขเปˆเบฒเบ‡เบฎเป‰เบฒเบเปเบฎเบ‡
เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบ—เบตเปˆโ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบเบฑเบšโ€‹ -fno-var-tracking-assignments.
เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”, เบ—เบธเบ‡เบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ SSA coalescing เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบฅเบงเบกเบ—เบฑเบ‡
เบขเบนเปˆเปƒเบ™เปเบ–เบง. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบซเป‰เบฒโ€‹เบ›เบตโ€‹
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบŠเบปเปˆเบงเบ„เบฒเบงเปƒเบ™เป„เบฅเบเบฐ SSA->เป„เบฅเบเบฐเบ›เบปเบเบเบฐเบ•เบด. เป‚เบชเบ”
use/single def temporaries เปเบกเปˆเบ™เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ”เป‰เบงเบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ GIMPLE, เปเบ•เปˆเปƒเบซเป‰เบ•เบปเบงเบ‚เบฐเบซเบเบฒเบเบซเบผเบฒเบ
เบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบœเบฐเบฅเบดเบ” RTL เบ”เบตเบ‚เบถเป‰เบ™. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-slsr
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เป€เบชเบฑเป‰เบ™เบŠเบทเปˆเปƒเบชเปˆเบ•เบปเป‰เบ™เป„เบกเป‰. เบ™เบตเป‰เบฎเบฑเบšเบฎเบนเป‰เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ„เบนเบ™ เปเบฅเบฐเปเบ—เบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เบ„เบณเบ™เบงเบ™เบฅเบฒเบ„เบฒเบ–เบทเบเบเบงเปˆเบฒ
เป€เบกเบทเปˆเบญเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-vectorize
เบ›เบฐเบ•เบดเบšเบฑเบ” vectorization เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ -ftree-loop-vectorize เปเบฅเบฐ
-ftree-slp-vectorize เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹.

-ftree-loop-vectorize
เบ›เบฐเบ•เบดเบšเบฑเบ” vectorization loop เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O3 เปเบฅเบฐเป€เบงเบฅเบฒเปƒเบ”
-ftree-vectorize เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-ftree-slp-vectorize
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡ vectorization เบžเบทเป‰เบ™เบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O3 เปเบฅเบฐ
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -ftree-vectorize เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-fvect-cost-model=เบฎเบนเบšเปเบšเบš
เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบนเบšเปเบšเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš vectorization. เป„เบ”เป‰ เบฎเบนเบšเปเบšเบš เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™
เบšเปเปˆเบˆเปเบฒเบเบฑเบ”, เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง or เบฅเบฒเบ„เบฒเบ–เบทเบ. เบเบฑเบš เบšเปเปˆเบˆเปเบฒเบเบฑเบ” เบฎเบนเบšเปเบšเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบฐเบซเบฑเบ” vectorized เปเบกเปˆเบ™
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบตเบเปเบฒเป„เบฅเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบกเบต เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡ runtime checks เป„เบ”เป‰
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบฐเบซเบฑเบ” vectorized เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบฑเบšเบŠเปเป‰เบฒเบ„เบทเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
เป„เบงเบเบงเปˆเบฒเป€เบกเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ loop scalar เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เป„เบ”เป‰ เบฅเบฒเบ„เบฒเบ–เบทเบ เบ•เบปเบงเปเบšเบšเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
vectorization เบ‚เบญเบ‡ loops เบšเปˆเบญเบ™เบ—เบตเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเป‰เบฒเบกเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ
runtime เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบซเบผเบทเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เปเบ•เปˆเบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš
เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง เบ•เบปเบงเปเบšเบš. เบฎเบนเบšเปเบšเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบทเปˆเบ™เป†เปเบฅเบฐเปเบกเปˆเบ™
เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง or เบฅเบฒเบ„เบฒเบ–เบทเบ.

-fsimd-cost-model=เบฎเบนเบšเปเบšเบš
เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบนเบšเปเบšเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš vectorization เบ‚เบญเบ‡ loops เบซเบกเบฒเบเบ”เป‰เบงเบ OpenMP เบซเบผเบท Cilk
เบšเบงเบเบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ simd. เป„เบ”เป‰ เบฎเบนเบšเปเบšเบš เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ เบšเปเปˆเบˆเปเบฒเบเบฑเบ”, เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบฅเบฒเบ„เบฒเบ–เบทเบ.
เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡โ€‹ เบฎเบนเบšเปเบšเบš เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เปƒเบ™โ€‹ -fvect-cost-model เปเบฅเบฐเป‚เบ”เบ
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบฎเบนเบšเปเบšเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ”เป‰เบงเบ -fvect-cost-model เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-ftree-vrp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ•เบฒเบกเบ•เบปเป‰เบ™เป„เบกเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡
pass, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒ, เป„เบฅเบเบฐเบ‚เบญเบ‡เบ„เปˆเบฒเบˆเบฐเบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
optimizers เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ” array เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰ null
เบเบงเบ”เบเบฒ. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O2 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบŠเบตเป‰ null
เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -fdelete-null-pointer-checks เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-fsplit-ivs-in-unroller
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ‚เบญเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ› induction เปƒเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ•เปเปˆเบกเบฒเบ‚เบญเบ‡
unrolled loop เป‚เบ”เบเปƒเบŠเป‰เบ„เปˆเบฒเปƒเบ™ iteration เบ—เปเบฒเบญเบดเบ”. เบ™เบตเป‰เบ—เปเบฒเบฅเบฒเบเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบเบฒเบง
เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบœเปˆเบฒเบ™.

เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡ -fweb เปเบฅเบฐ CSE เบกเบฑเบเบˆเบฐเบžเบฝเบ‡เบžเปเป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบœเบปเบ™เบ”เบฝเบงเบเบฑเบ™.
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ™เบฑเป‰เบ™เบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡ loop เปเบกเปˆเบ™เบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ a
เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ”เบฝเบง. เบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ
เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ™ CSE pass.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fvariable-expansion-in-unroller
เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰, เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบชเป‰เบฒเบ‡เบซเบผเบฒเบเบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบกเบทเปˆเบญ
unrolling loop, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ”เบตเบเบงเปˆเบฒ.

-fpartial-inlining
เบžเบฒเบเบชเปˆเบงเบ™เปƒเบ™เปเบ–เบงเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ inlining เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡
เป€เบ›เบตเบ”เป‚เบ”เบ -finline-functions or -finline-small-functions เบ•เบปเบงเป€เบฅเบทเบญเบ

เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš -O2.

-fpredictive-commoning
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบ„เบฒเบ”เบ„เบฐเป€เบ™, ie, เบเบฒเบ™เปƒเบŠเป‰เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบ„เบทเบ™เปƒเบซเบกเปˆ (เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ
เบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ) เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฎเบญเบšเบงเบฝเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O3.

-fprefetch-loop-arrays
เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹, เบชเป‰เบฒเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบžเบทเปˆเบญ prefetch เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹
เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ loops เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ array เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเบซเบผเบทเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒ; เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบซเบผเบฒเบ
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡ loops เบžเบฒเบเปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡.

เบ„เบปเบ™เบžเบดเบเบฒเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบš -เบญเบช.

-fno-peephole
-fno-peephole2
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš pephole เบชเบฐเป€เบžเบฒเบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡
-fno-peephole เปเบฅเบฐ -fno-peephole2 เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™ compiler; เบšเบฒเบ‡
เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบŠเป‰เบญเบฑเบ™เปœเบถเปˆเบ‡, เบšเบฒเบ‡เบ„เบปเบ™เปƒเบŠเป‰เบญเบตเบเบญเบฑเบ™เปœเบถเปˆเบ‡, เบšเบฒเบ‡เบญเบฑเบ™เปƒเบŠเป‰เบ—เบฑเบ‡เบชเบญเบ‡เบขเปˆเบฒเบ‡.

-fpeephole เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. -fpeephole2 เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fno-guess-branch-probability
เบขเปˆเบฒเบ„เบฒเบ”เป€เบ”เบปเบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเป‚เบ”เบเปƒเบŠเป‰ heuristics.

GCC เปƒเบŠเป‰ heuristics เป€เบžเบทเปˆเบญเบ„เบฒเบ”เป€เบ”เบปเบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ
เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ›เบฃเป„เบŸเบฅเปŒ (-fprofile-arcs). heuristics เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก
เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡. เบ–เป‰เบฒเบšเบฒเบ‡เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเบฒเบ‚เบฒเบ–เบทเบเบฅเบฐเบšเบธเป‚เบ”เบ "__builtin_expect", เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
heuristics เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ„เบฒเบ”เป€เบ”เบปเบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก
graph, เป€เบญเบปเบฒ "__builtin_expect" เบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบต. เบเบฒเบ™โ€‹เบžเบปเบงโ€‹เบžเบฑเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹
heuristics เปเบฅเบฐ "__builtin_expect" เบชเบฒเบกเบฒเบ”เบชเบฑเบšเบชเบปเบ™, เปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.
เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡ heuristics เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ "__builtin_expect" เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™
เป€เบ‚เบปเป‰เบฒเปƒเบˆ

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fguess-เบชเบฒเบ‚เบฒ-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹ -O, -O2, -O3, -เบญเบช.

-freorder-เบ•เบฑเบ™
Reorder blocks เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบฅเบงเบšเบฅเบงเบกเป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบญเบปเบฒ
เบชเบฒเบ‚เบฒ เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-freorder-blocks-and-partition
เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ reordering เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก, เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบชเบฒโ€‹เบ‚เบฒโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ—เปˆเบญเบ™โ€‹เป„เบกเป‰โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹เบฎเป‰เบญเบ™โ€‹เปเบฅเบฐโ€‹เป€เบขเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เปเบเบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบซเบฒเบโ€‹
เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เปเบฅเบฐโ€‹เป„เบŸเบฅโ€‹เปŒ .oโ€‹, เป€เบžเบทเปˆเบญโ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™โ€‹เบ–เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ›เบดเบ”เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™,
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™ linkonceโ€‹, เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบžเบฒเบโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป‚เบ”เบโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เปเบฅเบฐโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เปƒเบ”เป†โ€‹
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš x86 เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-freorder - เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹
เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบชเปˆเบงเบ™เบเปˆเบญเบเบžเบดเป€เบชเบ” ".text.hot" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบฅเบทเป‰เบญเบเป†เบ—เบตเปˆเบชเบธเบ”
เบŸเบฑเบ‡เบŠเบฑเบ™ เปเบฅเบฐ ".text.unlikely" เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. Reordering เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบ
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฎเบนเบšเปเบšเบšเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ•เป‰เบญเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เป‰เบญเบ‡เบงเบฒเบ‡
เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เปเบฒเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ•เป‰เบญเบ‡เบกเบตเบขเบนเปˆเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เป€เบšเบดเปˆเบ‡
-fprofile-arcs เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fstrict-aliasing
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบชเบปเบกเบกเบธเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบเบฑเบšเบžเบฒเบชเบฒ
เบ–เบทเบเบฅเบงเบšเบฅเบงเบก. เบชเปเบฒเบฅเบฑเบš C (เปเบฅเบฐ C ++), เบ™เบตเป‰เบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบšเปเปˆเป€เบ„เบตเบเบญเบฒเป„เบชเบขเบนเปˆ
เบ—เบตเปˆเบขเบนเปˆเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ›เบฐเป€เบžเบ”เป€เบเบทเบญเบšเบ„เบทเบเบฑเบ™.
เบ•เบปเบงเบขเปˆเบฒเบ‡, "unsigned int" เบชเบฒเบกเบฒเบ” alias เป€เบ›เบฑเบ™ "int", เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™ "void*" เบซเบผเบท "double". เบ
เบ›เบฐเป€เบžเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบญเบฒเบ”เบ™เบฒเบกเปเบเบ‡เบ›เบฐเป€เบžเบ”เบญเบทเปˆเบ™.

เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเป€เบ›เบฑเบ™เบžเบดเป€เบชเบ”เบ•เปเปˆเบฅเบฐเบซเบฑเบ”เปเบšเบšเบ™เบตเป‰:

เบชเบฐเบซเบฐเบžเบฑเบ™ a_union {
int i;
double d;
};

int f() {
เบชเบฐเบซเบฐเบžเบฑเบ™ a_union t;
td = 3.0;
ti เบเบฑเบšเบ„เบทเบ™;
}

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เบˆเบฒเบเบชเบฐเบกเบฒเบŠเบดเบเบชเบฐเบซเบฐเบžเบฑเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบเปˆเบงเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰
เบฅเบฒเบโ€‹เบฅเบฑเบโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹เป€เบžเบทเปˆเบญ (เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒ "เบ›เบฐโ€‹เป€เบžเบ”โ€‹-punningโ€‹"โ€‹) เปเบกเปˆเบ™โ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบต -fstrict-aliasing, เบ›เบฐโ€‹เป€เบžเบ”-
punning เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰, เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบ›เบฐเป€เบžเบ”เบชเบฐเบซเบฐเบžเบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป„เบ”เป‰
เบฅเบฐเบซเบฑเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบšเปเปˆ:

int f() {
เบชเบฐเบซเบฐเบžเบฑเบ™ a_union t;
int* ip;
td = 3.0;
ip = &t.i;
เบเบฑเบšเบ„เบทเบ™ *ip;
}

เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบเบฒเบ™เป€เบญเบปเบฒเบ—เบตเปˆเบขเบนเปˆ, เบเบฒเบ™เป‚เบเบ™เบ•เบปเบงเบŠเบตเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบฅเบฐ
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบฑเบเบชเบฐเปเบ”เบ‡เบˆเบฐเปƒเบŠเป‰เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบชเบฐเบซเบฐเบžเบฑเบ™,
เบ•เบปเบงเบขเปˆเบฒเบ‡:

int f() {
double d = 3.0;
เบเบฑเบšเบ„เบทเบ™ ((เบชเบฐเบซเบฐเบžเบฑเบ™ a_union *) &d)->i;
}

เป„เบ”เป‰ -fstrict-aliasing เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹ -O2, -O3, -เบญเบช.

-fstrict-เบฅเบปเป‰เบ™
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบ–เบทเบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™ overflow เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”, เบ‚เบถเป‰เบ™เบเบฑเบšเบžเบฒเบชเบฒ
เบ–เบทเบเบฅเบงเบšเบฅเบงเบก. เบชเปเบฒเบฅเบฑเบš C (เปเบฅเบฐ C ++) เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ overflow เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เป€เบฅเบเป€เบฅเบเบเบฑเบš
เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบฅเบปเบ‡เบ™เบฒเบกเปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฒเบ”เบˆเบฐเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰
เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปˆเบฒเบ‡เป†. เบ•เบปเบงเบขเปˆเบฒเบ‡, compiler เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบŠเบฑเปˆเบ™ "i + 10 > i" เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เบชเบฐเป€เบซเบกเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบฑเบ™ "i". เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™
เบ–เบทเบเบ•เป‰เบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบเบฒเบ™เบฅเบปเบ‡เบ™เบฒเบก overflow เปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปเบกเปˆเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒ "i + 10"
overflows เป€เบกเบทเปˆเบญเปƒเบŠเป‰ twos complement เป€เบฅเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”. เป€เบกเบทเปˆเบญเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเปƒเบ”เป†
เบžเบฐเบเบฒเบเบฒเบกเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™ overflows เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบฅเบปเบ‡เบ™เบฒเบกเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™
เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบกเบตเบชเปˆเบงเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบœเบนเป‰โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบฑเป‰เบกโ€‹เบ‡เบงเบ”โ€‹: เปƒเบซเป‰ a
เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบงเบฑเบ”เบ–เบธ, เบ–เป‰เบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เปˆเบฒเบŠเบปเบ”เป€เบŠเบตเบเปƒเบชเปˆเบ•เบปเบงเบŠเบตเป‰เบ™เบฑเป‰เบ™เบˆเบฐเบšเปเปˆเบชเป‰เบฒเบ‡เบ•เบปเบงเบŠเบตเป‰
เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ”เบฝเบงเบเบฑเบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบชเบฐเบซเบผเบธเบš
เบงเปˆเบฒ "p + u > p" เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบชเบฐเป€เปเบตเบชเบณเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰ "p" เปเบฅเบฐเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™ "u". เบ™เบตเป‰
เบเบฒเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เบซเปเปˆเบ•เบปเบงเบŠเบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบ เบเบณ เบ™เบปเบ”, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบญเบญเบ
false เบ–เป‰เบฒ "p + u" overflows เป‚เบ”เบเปƒเบŠเป‰ twos complement arithmetic.

เป€เบšเบดเปˆเบ‡เบญเบตเบ -fwrapv เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fwrapv เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ integer signed overflow เปเบกเปˆเบ™
เบเปเบฒเบ™เบปเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™: เบกเบฑเบ™เบซเปเปˆ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fwrapv เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡
-fstrict-เบฅเบปเป‰เบ™ เปเบฅเบฐ -fno-strict-overflow เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก. เบเบฑเบš -fwrapv เบšเบฒเบ‡โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹
เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡ overflow. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒ compiler เป„เบ”เป‰เบฎเบฑเบš overflow เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”
เป€เบฅเบเป€เบฅเบเปƒเบ™เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ, เบ„เปˆเบฒ overflowed เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš -fwrapv, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™
เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™.

เป„เบ”เป‰ -fstrict-เบฅเบปเป‰เบ™ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹ -O2, -O3, -เบญเบช.

-falign-functions
-falign-functions=n
เบˆเบฑเบ”เบฅเบฝเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ•เปเปˆเบเบฑเบšเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ•เปเปˆเป„เบ›เบ‚เบญเบ‡เบชเบญเบ‡เบญเบฑเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒ n, เบ‚เป‰เบฒเบกเป€เบ–เบดเบ‡ n
เป„เบšเบ•เปŒ. เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, -falign-functions=32 เบˆเบฑเบ”เบฎเบฝเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เป„เบ›เบซเบฒ 32-byte เบ–เบฑเบ”เป„เบ›
เบŠเบฒเบเปเบ”เบ™, เปเบ•เปˆ -falign-functions=24 เบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 32-byte เบ–เบฑเบ”เป„เบ›เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบงเปˆเบฒเบ™เบตเป‰
เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ‚เป‰เบฒเบก 23 bytes เบซเบผเบทเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ.

-fno-align-functions เปเบฅเบฐ -falign-functions=1 เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเปเบฅเบฐเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ
เบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡.

เบœเบนเป‰เบ›เบฐเบเบญเบšเบšเบฒเบ‡เบชเปˆเบงเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบธเบ‡เบ™เบตเป‰เป€เบกเบทเปˆเบญ n เป€เบ›เบฑเบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ‚เบญเบ‡เบชเบญเบ‡; เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบกเบฑเบ™เปเบกเปˆเบ™
เบกเบปเบ™เบ‚เบถเป‰เบ™.

If n เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ เบซเบผเบทเป€เบ›เบฑเบ™เบชเบนเบ™, เปƒเบซเป‰เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-falign-เบ›เป‰เบฒเบ
-falign-labels=n
เบˆเบฑเบ”เบงเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเบชเบฒเบ‚เบฒเบ—เบฑเบ‡เปเบปเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™เป€เบ‚เบ”เปเบ”เบ™เบ—เบตเปˆเบกเบตเบญเบณเบ™เบฒเบ”เบ‚เบญเบ‡เบชเบญเบ‡, เบ‚เป‰เบฒเบกเป„เบ›เป€เบ–เบดเบ‡ n bytes เบ„เบท
-falign-functions. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบŠเป‰เบฒเบฅเบปเบ‡เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบ•เป‰เบญเบ‡เปƒเบชเปˆ
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ dummy เบชเปเบฒเบฅเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฒเบ‚เบฒเปเบกเปˆเบ™เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เปƒเบ™เบเบฒเบ™เป„เบซเบผเบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”.

-fno-align-labels เปเบฅเบฐ -falign-labels=1 เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเปเบฅเบฐเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ›เป‰เบฒเบเบšเปเปˆเปเบกเปˆเบ™
เบชเบญเบ”เบ„เปˆเบญเบ‡.

If -falign-loops or -falign-jumps เปเบกเปˆเบ™เปƒเบŠเป‰เป„เบ”เป‰ เปเบฅเบฐเบซเบผเบฒเบเบเบงเปˆเบฒเบ„เปˆเบฒเบ™เบตเป‰, เบˆเบฒเบเบ™เบฑเป‰เบ™
เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเปƒเบŠเป‰เปเบ—เบ™.

If n เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ เบซเบผเบทเป€เบ›เบฑเบ™เบชเบนเบ™, เปƒเบซเป‰เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฒเบ
เบˆเบฐ 1, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-falign-loops
-falign-loops=n
เบˆเบฑเบ”เบฎเบฝเบ‡ loops เปƒเบซเป‰เป€เบ›เบฑเบ™เป€เบ‚เบ”เปเบ”เบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ‚เบญเบ‡เบชเบญเบ‡, เบ‚เป‰เบฒเบกเป€เบ–เบดเบ‡ n bytes เบ„เบท -falign-functions.
เบ–เป‰เบฒ loops เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ”เป†เบ‚เบญเบ‡ dummy
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™.

-fno-align-loops เปเบฅเบฐ -falign-loops=1 เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเปเบฅเบฐเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ loops เบšเปเปˆเปเบกเปˆเบ™
เบชเบญเบ”เบ„เปˆเบญเบ‡.

If n เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ เบซเบผเบทเป€เบ›เบฑเบ™เบชเบนเบ™, เปƒเบซเป‰เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-falign-jumps
-falign-jumps=n
เบˆเบฑเบ”เบงเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเบชเบฒเบ‚เบฒเปƒเบซเป‰เป€เบ›เบฑเบ™เป€เบ‚เบ”เปเบ”เบ™เบ—เบตเปˆเบกเบตเบญเบณเบ™เบฒเบ”เบ‚เบญเบ‡เบชเบญเบ‡, เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบเบชเบฒเบ‚เบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเปเบฒเบ
เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป‚เบ”เบ”, เบ‚เป‰เบฒเบกเป€เบ–เบดเบ‡ n bytes เบ„เบท -falign-functions. เปƒเบ™
เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ dummy.

-fno-align-jumps เปเบฅเบฐ -falign-jumps=1 เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเปเบฅเบฐเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ loops เบšเปเปˆเปเบกเปˆเบ™
เบชเบญเบ”เบ„เปˆเบญเบ‡.

If n เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ เบซเบผเบทเป€เบ›เบฑเบ™เบชเบนเบ™, เปƒเบซเป‰เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-funit-at-a-time
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰. -funit-at-a-time เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
-fno-unit-at-a-time implies -fno-toplevel-reorder เปเบฅเบฐ -fno-section-anchors.

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fno-toplevel-reorder
เบขเปˆเบฒเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบชเบธเบ”, เบ•เบปเบงเปเบ›, เปเบฅเบฐเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡ "asm". เบชเบปเปˆเบ‡เบญเบญเบเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™
เบ„เปเบฒเบชเบฑเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเปƒเบŠเป‰,
เบ•เบปเบงเปเบ›เบชเบฐเบ–เบดเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบญเป‰เบฒเบ‡เบญเบตเบ‡เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ. เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ, เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบกเบทเปˆเบญเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš -O0. เป€เบกเบทเปˆเบญเบžเบดเบเบฒเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™, เบกเบฑเบ™เบเบฑเบ‡เบซเบกเบฒเบเป€เบ–เบดเบ‡ -fno-section-anchors,
เป€เบŠเบดเปˆเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เบขเบนเปˆเบ—เบตเปˆ -O0 เปƒเบ™เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบ.

-fweb
เบเปเปˆเบชเป‰เบฒเบ‡เป€เบงเบฑเบšเบ•เบฒเบกเบ—เบตเปˆเปƒเบŠเป‰เบ—เบปเปˆเบงเป„เบ›เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ เปเบฅเบฐเบกเบญเบšเปเบฒเบเปเบ•เปˆเบฅเบฐเป€เบงเบฑเบš
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ pseudo เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™. เบญเบฑเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบšเบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰
pseudos เป‚เบ”เบเบเบปเบ‡, เปเบ•เปˆเบเบฑเบ‡เป€เบชเบตเบกเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เป€เบŠเบฑเปˆเบ™ CSE,
loop optimizer เปเบฅเบฐเบ•เบปเบงเบฅเบถเบšเบฅเบฐเบซเบฑเบ”เบ•เบฒเบเบ—เบตเปˆเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”, เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบฎเบฑเบ”เปƒเบซเป‰ debugging
เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบ•เบปเบงเปเบ›เบšเปเปˆเบขเบนเปˆเปƒเบ™ "เบ—เบฐเบšเบฝเบ™เป€เบฎเบทเบญเบ™".

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ -funroll-loops.

- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เป‚เบ›เบผเปเบเบผเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ–เบทเบเบฅเบงเบšเบฅเบงเบก.
เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบ•เบปเบงเปเบ›เบเบปเบเป€เบงเบฑเป‰เบ™ "เบ•เบปเป‰เบ™เบ•เป" เปเบฅเบฐเบœเบนเป‰เบ—เบตเปˆเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป‚เบ”เบ
attribute "externally_visible" เบเบฒเบเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเปƒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบšเปเบกเปˆเบ™ optimized
เบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™เป‚เบ”เบเบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ„เบงเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš -flto. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
plugin เบ„เบงเบ™เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบžเบเบงเปˆเบฒเปเบฅเบฐเบŠเบฑเบ”เป€เบˆเบ™เบเบงเปˆเบฒ.

-flto[=n]
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เบ•เบปเบงเบ›เบฑเบšเบ›เบธเบ‡เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เป€เบกเบทเปˆเบญเบ–เบทเบเป€เบญเบตเป‰เบ™เบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡, เบกเบฑเบ™
เบชเป‰เบฒเบ‡ GIMPLE (เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ•เบปเบงเปเบ—เบ™เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ GCC) เปเบฅเบฐเบ‚เบฝเบ™เบกเบฑเบ™เปƒเบซเป‰เบเบฑเบš ELF เบžเบดเป€เบชเบ”
เบžเบฒเบเบชเปˆเบงเบ™เปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ. เป€เบกเบทเปˆเบญเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบ™, เบ—เบฑเบ‡เบซเบกเบปเบ”
เบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เปเบกเปˆเบ™เบญเปˆเบฒเบ™เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™ ELF เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เป€เบ›เบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰
เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เปœเปˆเบงเบเปเบ›เบžเบฒเบชเบฒเบ”เบฝเบงเบเบฑเบ™.

เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ•เบปเบงเบ›เบฑเบšเปเบ•เปˆเบ‡เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, -flto เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบฅเบฐเบšเบธเบขเบนเปˆเบ—เบตเปˆ
เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเปเบฅเบฐเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบธเบ”เบ—เป‰เบฒเบ. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

gcc -c -O2 -flto foo.c
gcc -c -O2 -flto bar.c
gcc -o myprog -flto -O2 foo.o bar.o

เบชเบญเบ‡เบ„เบณเบฎเบฝเบเบฎเป‰เบญเบ‡เบ—เบณเบญเบดเบ”เปƒเบซเป‰เบเบฑเบš GCC เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ bytecode เบ‚เบญเบ‡ GIMPLE เป€เบ›เบฑเบ™เบžเบดเป€เบชเบ”
เบžเบฒเบเบชเปˆเบงเบ™ ELF เบžเบฒเบเปƒเบ™ foo.o เปเบฅเบฐ bar.o. เบ„เบณเบฎเบฝเบเบฎเป‰เบญเบ‡เบชเบธเบ”เบ—เป‰เบฒเบเบˆเบฐเบญเปˆเบฒเบ™ GIMPLE bytecode
เบˆเบฒเบ foo.o เปเบฅเบฐ bar.o, เบฅเบงเบกเบ—เบฑเบ‡เบชเบญเบ‡เป„เบŸเบฅเปŒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฎเบนเบšเบžเบฒเบšเบžเบฒเบเปƒเบ™เบ”เบฝเบง, เปเบฅเบฐเบฅเบงเบšเบฅเบงเบก
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ—เบฑเบ‡เบชเบญเบ‡ foo.o เปเบฅเบฐ bar.o เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป€เบ›เบฑเบ™เบฎเบนเบšเบ”เบฝเบง, เบ™เบตเป‰
เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ GCC เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ—เบปเปˆเบง
เบชเบญเบ‡เป„เบŸเบฅเปŒเบ„เบทเบเบฑเบšเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ”เบฝเบง. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบงเปˆเบฒ inliner เปเบกเปˆเบ™
เบชเบฒเบกเบฒเบ” inline เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™ bar.o เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปƒเบ™โ€‹ foo.o เปเบฅเบฐเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™.

เบญเบตเบเบงเบดเบ—เบตเปœเบถเปˆเบ‡ (เบ‡เปˆเบฒเบเบเบงเปˆเบฒ) เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบกเปˆเบ™:

gcc -o myprog -flto -O2 foo.c bar.c

เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบชเป‰เบฒเบ‡ bytecode เบชเปเบฒเบฅเบฑเบš foo.c เปเบฅเบฐ bar.c, เบœเบฐเบชเบปเบกเบœเบฐเบชเบฒเบ™เบžเบงเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ”เบฝเบง
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™ GIMPLE เปเบฅเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเป€เบžเบทเปˆเบญเบœเบฐเบฅเบดเบ” myprog.

เบชเบดเปˆเบ‡เบ”เบฝเบงเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เปƒเบˆเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบงเบฅเบฒ
เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เป„เบ”เป€เบงเบต GCC เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™. GCC เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
link-time optimization เบ–เป‰เบฒเบกเบตเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -flto
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ GCC เบžเบฐเบเบฒเบเบฒเบกเบชเบฐเบซเบฅเบฒเบ”เปƒเบ™เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบˆเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบฅเบฐเบšเบธเบซเบ™เบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ-
เป€เบงเบฅเบฒ. เบ—เปˆเบฒเบ™เบชเบฐเป€เบซเบกเบตเบชเบฒเบกเบฒเบ” override เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ” link-time optimization เบขเบนเปˆ
link-time เบœเปˆเบฒเบ™ -fno-lto เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เปเบ™เปˆเบ™เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบ•เบดโ€‹เบ–เบฒเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹. compiler เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเป‰เบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเบ•เบปเบงเปเบ›เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”
เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐ runtime เบขเบนเปˆเบ™เบญเบเบซเบ™เปˆเบงเบเบ‡เบฒเบ™ link-time optimized. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ linker, plugin linker (เป€เบšเบดเปˆเบ‡ -fuse-linker-plugin) เบœเปˆเบฒเบ™
เบ‚เปเป‰เบกเบนเบ™เบเบฑเบšเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเปƒเบŠเป‰เปเบฅเป‰เบงเปเบฅเบฐเบžเบฒเบเบ™เบญเบเบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™. เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ
linker plugin เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ เบ„เบงเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™
เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fuse-linker-plugin เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเป„เบŸเบฅเปŒเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -flto, เบเบฒเบ™
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ›เบปเบเบเบฐเบ•เบดเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบกเบต GIMPLE
bytecodes เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบชเบธเบ”เบ—เป‰เบฒเบเบ›เบปเบเบเบฐเบ•เบด (เป€เบšเบดเปˆเบ‡ -ffat-lto-เบงเบฑเบ”เบ–เบธ. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบงเบฑเบ”เบ–เบธเบ™เบฑเป‰เบ™
เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™ LTO เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ›เบปเบเบเบฐเบ•เบด; เบ–เป‰เบฒ -fno-lto เปเบกเปˆเบ™เบœเปˆเบฒเบ™
เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš interprocedural เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเป€เบกเบทเปˆเบญ
-fno-fat-lto-objects เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ compile-stage เปเบกเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™ เปเบ•เปˆเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰
เบ›เบปเบเบเบฐเบ•เบด, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ LTO เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบšเปเปˆเปเบกเปˆเบ™
เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,

gcc -c -O0 -ffat-lto-objects -flto foo.c
gcc -c -O0 -ffat-lto-objects -flto bar.c
gcc -o myprog -O3 foo.o bar.o

เบ™เบตเป‰เบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ” assembler unoptimized, เปเบ•เปˆ
binary เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš myprog เปเบกเปˆเบ™ optimized เบขเบนเปˆ -O3. เบ–เป‰เบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบ„เบนเปˆเบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ -fno-lto, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ myprog เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เป€เปเบฒเบฐเบชเบปเบก.

เป€เบกเบทเปˆเบญเบœเบฐเบฅเบดเบ”เบ„เบนเปˆเบชเบธเบ”เบ—เป‰เบฒเบ, GCC เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบต bytecode. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบชเบปเบกเปเบฅเบฐเบเบปเบ‡เบเบฑเบšเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเปเบฅเบฐ
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบต GIMPLE bytecodes เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบงเบฑเบ”เบ–เบธเบชเบธเบ”เบ—เป‰เบฒเบ. GCC เป€เบฅเบทเบญเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
เป„เบŸเบฅเปŒเปƒเบ”เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เป‚เบซเบกเบ” LTO เปเบฅเบฐเป„เบŸเบฅเปŒเปƒเบ”เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡.

เบกเบตเบšเบฒเบ‡เบ—เบธเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰เป‚เบ”เบ GCC เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡ bytecodes, เป€เบ›เบฑเบ™
เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบธเบ”เบ—เป‰เบฒเบ. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบขเบนเปˆเบ—เบตเปˆ
link-time override เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš -O เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ GCC เบˆเบฐเบ„เบดเบ”เป„เบฅเปˆ
เบซเบ™เบถเปˆเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ. เป„เบ”เป‰
เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบชเบธเบ”เบŠเบฐเบ™เบฐเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เปเบฒเบญเบดเบ”
เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เบงเปˆเบฒโ€‹: -fPIC, -fpic, -fpie, -fcommon, - เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹,
-fnon-call-exceptions, -fgnu-tm เปเบฅเบฐเบ—เบฑเบ‡ เปเบปเบ” -m เบ—เบธเบ‡โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹.

เบ—เบธเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ ABI เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบเบปเบ‡เบเบฑเบ™เปƒเบ™เบ—เบธเบเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบก
เป€เบžเบทเปˆเบญ override เบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบ„เปˆเบฒเบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบต
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบŠเบฑเปˆเบ™โ€‹: -freg-struct-return เปเบฅเบฐ -fpcc-struct-return.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เป€เบŠเบฑเปˆเบ™: -ffp-เบชเบฑเบ™เบเบฒ, -fno-strict-overflow, -fwrapv, -fno-trapv or
-fno-strict-aliasing เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป„เบ›เบชเบนเปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบฅเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เปเบšเบšเบญเบฐเบ™เบธเบฅเบฑเบ
เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบเบฒเบ™เปเบ›เบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบ™. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ -fno-strict-overflow, -fwrapv เปเบฅเบฐ
-fno-trapv เป€เบญเบปเบฒเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เปเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡ -ffp-contract=เบ›เบดเบ” เบกเบตเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒ
-ffp-contract=เป„เบง. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” override เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เบกเบฑเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบเบฑเบ‡เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เบ–เป‰เบฒ LTO เบžเบปเบšเบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ C เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เปœเปˆเบงเบโ€‹เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เป‚เบเบ‡โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบเบฑเบ™ (เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเบณโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเบณโ€‹เบ™เบปเบ”โ€‹เบ•เบฒเบก ISO C99
6.2.7), เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบญเบญเบ. เบžเบถเบ”เบ•เบดเบเบณเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบ‡เบšเปเปˆเบ–เบทเบเบเบณเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™
เป€เบงเบฅเบฒ. เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™.

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ LTO เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™
เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ•เปˆเบฒเบ‡เป†:

gcc -c -flto foo.c
g++ -c -flto bar.cc
gfortran -c -flto baz.f90
g++ -o myprog -flto -O3 foo.o bar.o baz.o -lgfortran

เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เป€เบฎเบฑเบ”เบ”เป‰เบงเบ g ++ เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบš C++ runtime libraries เปเบฅเบฐ
-lgfortran เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Fortran runtime. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบชเบปเบก
เบžเบฒเบชเบฒเปƒเบ™เป‚เบซเบกเบ” LTO, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป€เบงเบฅเบฒเบ›เบฐเบชเบปเบก
เบžเบฒโ€‹เบชเบฒโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบฅเบงเบšโ€‹เบฅเบงเบกโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบด (เบšเปเปˆโ€‹เปเบกเปˆเบ™ LTOโ€‹)โ€‹.

เบ–เป‰เบฒเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบต GIMPLE bytecode เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ„เบฑเบ‡เป€เบเบฑเบšเบกเป‰เบฝเบ™, เป€เบงเบปเป‰เบฒ
libfoo.a, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบฐเบเบฑเบ”เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ LTO เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ a
linker เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบปเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบš LTO, เปƒเบŠเป‰ gcc-ar
เปเบฅเบฐ gcc-ranlib เปเบ—เบ™โ€‹เบ—เบตเปˆ ar เปเบฅเบฐ ranlib; เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบต
GIMPLE bytecode, เปƒเบŠเป‰ gcc-nm. เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบฑเป‰เบ™ ar, ranlib เปเบฅเบฐ nm เป„เบ”เป‰
เบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin. เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เปƒเบŠเป‰เบ—เบธเบ‡ -fuse-linker-plugin to
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš LTO:

gcc -o myprog -O2 -flto -fuse-linker-plugin ao bo -lfoo

เบ”เป‰เบงเบเบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰ plugin เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฐเบเบฑเบ”เป„เบŸเบฅเปŒ GIMPLE เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบˆเบฒเบ
libfoo.a เปเบฅเบฐเบชเบปเปˆเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป„เบ›เบชเบนเปˆ GCC เปเบฅเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบฎเบนเบšเบžเบฒเบš GIMPLE เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin เปเบฅเบฐ / เบซเบผเบทเบšเปเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
plugin, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบงเบฑเบ”เบ–เบธเบžเบฒเบเปƒเบ™ libfoo.a เบ–เบทเบเบชเบฐเบเบฑเบ”เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เปเบ•เปˆเบžเบงเบเบกเบฑเบ™
เบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš LTO. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบฐเบ–เบดเบ”
เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš LTO เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ›เบปเบเบเบฐเบ•เบด, เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบกเบฑเบ™เบ”เป‰เบงเบ
-flto -ffat-lto-เบงเบฑเบ”เบ–เบธ.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเป‚เบ›เบผเปเบเบผเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™.
เบ–เป‰เบฒเป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเปƒเบ”เป†เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบญเบญเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบปเบกเบ—เบปเบš
-flto เปเบฅเบฐ - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš interprocedural เปƒเบŠเป‰เป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป‚เบญเบเบฒเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบกเบทเปˆเบญ plugin เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ (เป€เบšเบดเปˆเบ‡ -fuse-linker-plugin).

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ LTO เป€เบฎเบฑเบ”เปƒเบซเป‰เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡ bytecode เบ—เบตเปˆเป€เบ›เบฑเบ™
เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†. เป„เบŸเบฅเปŒ bytecode เปเบกเปˆเบ™เบชเบฐเบšเบฑเบšเปเบฅเบฐเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™
เปเบกเปˆเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบฐเบšเบฑเบšเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป„เบŸเบฅเปŒ bytecode เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบชเบฐเบšเบฑเบšเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ GCC เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”
เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš GCC เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒ เบซเบผเบทเปƒเปเปˆเบเบงเปˆเบฒ.

เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปเปˆเป„เบ”เป‰เบœเบปเบ™เบ”เบตเบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ.
เบเบฒเบ™เบชเบปเบกเบ—เบปเบš -flto เบเบฑเบš -g เบ›เบฐเบˆเบธเบšเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบ—เบปเบ”เบฅเบญเบ‡เปเบฅเบฐเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบœเบฐเบฅเบดเบ”เบšเปเปˆเป„เบ”เป‰เบ„เบฒเบ”เบซเบงเบฑเบ‡
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบ n, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เป‚เบ”เบเปƒเบŠเป‰ n เบงเบฝเบเบ‚เบฐเบซเบ™เบฒเบ™เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เป€เบฎเบฑเบ”เปƒเบซเป‰ เป‚เบ„เบ‡เบเบฒเบ™.
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰ เป€เบฎเบฑเบ” เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ override เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบกเบนเบ™เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš n เปเบกเปˆเบ™ 1.

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ” -flto=เบงเบฝเบเป€เบŠเบตเบšเป€เบงเบต เปƒเบŠเป‰ GNU make's job server mode เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบงเบฝเบเบ‚เบฐเบซเบ™เบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ Makefile เป‚เบ—เบซเบฒ GCC เปเบฅเป‰เบง
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปƒเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ™โ€‹. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡ prepend a + เบเบฑเบšเบชเบนเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบžเปเปˆเปเบกเปˆ
Makefile เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ เป€เบฎเบฑเบ” เปเบกเปˆเบ™ GNU เป€เบฎเบฑเบ”.

-flto-partition=เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ”
เบฅเบฐเบšเบธเบชเบนเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบ•เบปเบงเบ›เบฑเบšเบ›เบธเบ‡เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบกเบนเบ™เบ„เปˆเบฒเปเบกเปˆเบ™
เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ 1to1 เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™ mirroring เป„เบŸเบฅโ€‹เปŒโ€‹เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบซเบผเบทโ€‹ เบชเบปเบกเบ”เบธเบ™
เป€เบžเบทเปˆเบญโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เป€เบ›เบฑเบ™ chunk เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เป€เบ—เบปเปˆเบฒโ€‹เบ—เบฝเบกโ€‹เบเบฑเบ™ (เบ—เบธเบโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹) เบซเบผเบทโ€‹ เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเป€เบ„เบ เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡
เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบเบฒเบ™เบฅเบฐเบšเบธ none เป€เบ›เบฑเบ™ algorithm
เบ›เบดเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™ เปเบฅเบฐเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ เบชเบปเบกเบ”เบธเบ™. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
1to1 เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ›เบฑเบ™ workaround เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบเบฒเบ™โ€‹เบชเบฑเปˆเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ•เปˆเบฒเบ‡เป†โ€‹, เป„เบ”เป‰โ€‹ เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเป€เบ„เบ
เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เปเบกเปˆเบ™เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบžเบฒเบเปƒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบกเบนเบ™เบ„เปˆเบฒ เบซเบ™เบถเปˆเบ‡ เบฅเบฐเบšเบธเบงเปˆเบฒ
เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบžเบฒเบ—เบดเบŠเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เปˆเบฒ none bypasses เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เปเบฅเบฐโ€‹
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบเบปเบ‡เบˆเบฒเบเป„เบฅเบเบฐ WPA.

-flto-odr-type-merging
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบŠเบทเปˆเบ›เบฐเป€เบžเบ” mangled เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” C ++ เปเบฅเบฐเบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเบ—เบตเปˆ
เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ™เบตเป‰เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ LTO, เปเบ•เปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบเปˆเบฝเบงเบเบฑเบšเบซเบ™เบถเปˆเบ‡
เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบดเบเบฒเบก.

-flto-compression-level=n
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ—เบตเปˆเบ‚เบฝเบ™
เบเบฑเบšเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ LTO, เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบžเบฝเบ‡เปเบ•เปˆเบชเบปเบกเบ—เบปเบšเบเบฑเบšเป‚เบซเบกเบ” LTO (-flto).
เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™ 0 (เบšเปเปˆเบกเบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”) เบซเบฒ 9 (เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบชเบนเบ‡เบชเบธเบ”). เบ„เบธเบ™เบ„เปˆเบฒเบ™เบญเบเบ™เบตเป‰
เบŠเปˆเบงเบ‡เปเบกเปˆเบ™เบ–เบทเบเบเบถเบ”เป€เบ›เบฑเบ™ 0 เบซเบผเบท 9. เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฐเบชเบปเบกเบ”เบนเบ™
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

flto-เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™
เบžเบดเบกเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบžเบฒเบเปƒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ link-time optimizer. เป„เบ”เป‰
เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ™เบตเป‰เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เปเบ•เปˆเบฅเบฐเบชเบฐเบšเบฑเบš. เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆ GCC
เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เป€เบงเบฅเบฒเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” LTO (เบœเปˆเบฒเบ™ -flto).

เบžเบดเบเบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-flto-report-wpa
เบ„เบท flto-เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™, เปเบ•เปˆเบžเบฝเบ‡เปเบ•เปˆเบžเบดเบกเบชเปเบฒเบฅเบฑเบšเป„เบฅเบเบฐ WPA เบ‚เบญเบ‡ Link Time Optimization.

-fuse-linker-plugin
เป€เบ›เบตเบ”เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบตเบ‡เปƒเบชเปˆ
เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin เปƒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ„เปเบฒเบซเบผเบทเปƒเบ™ GNU ld 2.21 เบซเบผเบท
เปƒเปเปˆเบเบงเปˆเบฒ.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบชเบฐเบเบฑเบ”เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ”เป‰เบงเบ GIMPLE bytecode เบญเบญเบเบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”
เบฎเบงเบšเบฎเบงเบก. เบ™เบตเป‰เบ›เบฑเบšเบ›เบธเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบเบฒเบ™เป€เบ›เบตเบ”เป€เบœเบตเบเบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ -
เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒ. เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบฅเบฐเบšเบธเบงเปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเปƒเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบ™เบญเบเป„เบ”เป‰
(เป‚เบ”เบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ LTO เบซเบผเบทเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง). เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบฅเบฐเบซเบฑเบ”เปƒเบ™
binary (เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰) เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš
- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹, เบ—เบฐเป€เบฅเบชเบฒเบš -flto เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบ—เบธเบ‡เบ™เบตเป‰เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™
เปƒเบŠเป‰โ€‹เบกเบฑเบ™.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš LTO เปƒเบ™ GCC เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰ เปเบฅเบฐ GCC เปเบกเปˆเบ™
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš plugins (GNU ld 2.21 เบซเบผเบทเปƒเปเปˆเบเบงเปˆเบฒ เบซเบผเบทเบ„เบณ).

-ffat-lto-เบงเบฑเบ”เบ–เบธ
เบงเบฑเบ”เบ–เบธ LTO เป„เบ‚เบกเบฑเบ™เปเบกเปˆเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบ—เบฑเบ‡เบžเบฒเบชเบฒเบเบฒเบ‡เปเบฅเบฐเบžเบฒเบชเบฒ
เบฅเบฐเบซเบฑเบ”เบงเบฑเบ”เบ–เบธ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ LTO เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ›เบปเบเบเบฐเบ•เบด. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบเบฑเบš -flto เปเบฅเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบเปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

-fno-fat-lto-objects เบ›เบฑเบšเบ›เบธเบ‡เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเบผเบฒเบเบเบงเปˆเบฒ LTO เบ—เปเบฒเบกเบฐเบ”เบฒ, เปเบ•เปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบต
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบ—เบตเปˆเบˆเบฐเบฎเบนเป‰ LTO. เบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin linker
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, nm, ar เปเบฅเบฐ ranlib เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ linker
plugins เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบšเบšเป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบš (เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบชเบฐเบ–เบดเบ”
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเบญเบทเปˆเบ™เป†). GCC เบชเบฐเบซเบ™เบญเบ‡ gcc-ar, gcc-nm, gcc-ranlib wrappers เบœเปˆเบฒเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบกเบต makefiles เบ—เบตเปˆเบšเปเปˆเบกเบตเป„เบ‚เบกเบฑเบ™ LTO เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰
เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-fat-lto-objects เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin linker.

-fcompare-elim
เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เปเบฅเบฐโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹, เบเปเบฒโ€‹เบ™เบปเบ”โ€‹
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบฒเบ‡เป€เบฅเบเบ„เบฐเบ™เบดเบ”เบ—เบตเปˆเบ„เปเบฒเบ™เบงเบ™เบ—เบธเบ‡เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš
เบญเบตเบ‡เปƒเบชเปˆเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ™เบฑเป‰เบ™. เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™.

เบœเปˆเบฒเบ™เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ›เบฝเบšโ€‹เบ—เบฝเบšโ€‹เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fcprop-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เปเบฅเบฐโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹, เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹
copy-propagation pass เป€เบžเบทเปˆเบญเบžเบฐเบเบฒเบเบฒเบกเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ เปเบฅเบฐเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ„เบฒเบง
เบฅเบปเบšเบฅเป‰เบฒเบ‡เบชเปเบฒเป€เบ™เบปเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fprofile-เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹
เป‚เบ›เบผเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเป‚เบ”เบเปƒเบŠเป‰ binary เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบซเบผเบฒเบเบเบฐเบ—เบนเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบฒเบ”เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เป‚เบ•เป‰เบ•เบญเบš. เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเบšเบธ, GCC เปƒเบŠเป‰
heuristics เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบซเบผเบทเปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบ›เปˆเบญเบเบญเบญเบเบกเบฒ
เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เบ–เบทเบโ€‹เบเบงเบ”โ€‹เบžเบปเบšโ€‹.

-fprofile-dir=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบขเบนเปˆเปƒเบ™ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰
เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ -fprofile-generate, -ftest-เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹,
-fprofile-arcs เปเบฅเบฐเปƒเบŠเป‰เป‚เบ”เบ -fprofile-เปƒเบŠเป‰ เปเบฅเบฐ -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ เปเบฅเบฐเบกเบฑเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ—เบฑเบ‡เบชเบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เปเบฅเบฐเบžเบตเปˆเบ™เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เปƒเบŠเป‰
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบ›เบฑเบ™ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ.

-fprofile-generate
-fprofile-generate=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบžเบทเปˆเบญเบœเบฐเบฅเบดเบ”เป‚เบ›เบฃเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบชเบปเบกโ€‹เปƒเบ™โ€‹เบžเบฒเบโ€‹เบซเบผเบฑเบ‡โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เปเบฒโ€‹เบ„เบถเบ”โ€‹เบ„เปเบฒโ€‹เป€เบซเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เปเบ•เปˆเบ‡โ€‹เป‚เบ”เบโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆ profileโ€‹. เป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เปƒเบŠเป‰
-fprofile-generate เบ—เบฑเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰: -fprofile-arcs, -fprofile-เบ„เปˆเบฒ, -fvpt.

If เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เบ–เบทเบเบเปเบฒเบ™เบปเบ”, GCC เป€เบšเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เบ„เปเบฒเบ•เบดเบŠเบปเบกเบ‚เบญเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒ.
เป€เบšเบดเปˆเบ‡ -fprofile-dir.

-fprofile-เปƒเบŠเป‰
-fprofile-use=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ•เบดเบŠเบปเบกเบ‚เบญเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒ, เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบŠเบดเปˆเบ‡
เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบตเบเปเบฒเป„เบฅเบžเบฝเบ‡เปเบ•เปˆเบกเบตเบ„เปเบฒเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบขเบนเปˆ: -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰,
-fvpt, -funroll-loops, -fpeel-loops, -ftracer, -ftree-vectorize, เปเบฅเบฐ ftree-loop-
เบเบฒเบ™โ€‹เปเบœเปˆโ€‹เบเบฐโ€‹เบˆเบฒเบโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบ›เปˆเบญเบเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ„เปเบฒเบ•เบดเบŠเบปเบกเบšเปเปˆเบเบปเบ‡เบเบฑเบš
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡. เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ™เบตเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เปˆเบฝเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -Wcoverage-mismatch.
เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ›เบฑเบšเบ›เบธเบ‡เบšเปเปˆเบ”เบต.

If เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เบ–เบทเบเบเปเบฒเบ™เบปเบ”, GCC เป€เบšเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เบ„เปเบฒเบ•เบดเบŠเบปเบกเบ‚เบญเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒ.
เป€เบšเบดเปˆเบ‡ -fprofile-dir.

-fauto-profile
-fauto-profile=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบ„เปเบฒเบ•เบดเบŠเบปเบกเบ•เบฒเบกเบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰
เป€เบŠเบดเปˆเบ‡เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบตเบเปเบฒเป„เบฅเบžเบฝเบ‡เปเบ•เปˆเบกเบตเบ„เปเบฒเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบขเบนเปˆ:
-fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, -fvpt, -funroll-loops, -fpeel-loops, -ftracer,
-ftree-vectorize, -finline-functions, -fipa-cp, -fipa-cp-clone,
-fpredictive-commoning, -funswitch-loops, -fgcse-after-reload, เปเบฅเบฐ
-ftree-loop-distribute-patterns.

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒ AutoFDO. เบ–เป‰เบฒเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™, เบกเบฑเบ™
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ fbdata.afdo เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹.

เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ AutoFDO เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เบเบฑเบšโ€‹ เบ‡เบฒเบก
เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบฅเบฐเบšเบปเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ GNU/Linux เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš. เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เป€เบšเบดเปˆเบ‡
<https://perf.wiki.kernel.org/>.

เบ•เบปเบงเบขเปˆเบฒเบ‡

perf record -e br_inst_retired:near_taken -b -o perf.data \
-- your_program

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ™เบณ เปƒเบŠเป‰ เบชเป‰เบฒเบ‡_gcov เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ›เปˆเบฝเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ profile เป€เบ›เบฑเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบ›เบฑเบ™โ€‹
เปƒเบŠเป‰เป‚เบ”เบ GCC. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡ binary unstripped เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบšเบ™เบตเป‰
เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบท. เป€เบšเบดเปˆเบ‡https://github.com/google/autofdo>.

เบ•เบปเบงเบขเปˆเบฒเบ‡

create_gcov --binary=your_program.unstripped --profile=perf.data \
--gcov=profile.afdo

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบง.
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบเบ›เปˆเบฝเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เบงเบฒเบกเป„เบงเปเบฅเบฐเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡. เบ—เบฑเบ‡เปเบปเบ”เบ•เป‰เบญเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ.

- เบฎเป‰เบฒเบ™เบ‚เบฒเบเป€เบ„เบทเปˆเบญเบ‡เบเปˆเบญเบ
เบขเปˆเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเปเบ›เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™, เปเบฅเบฐเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™
เบญเบฒเบ”เบˆเบฐเบ›เปˆเบฝเบ™เบงเปˆเบฒเบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบ—เบฐเบšเบฝเบ™ เบซเบผเบท เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเป€เบเบตเบ™เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบŠเบฑเปˆเบ™ 68000 เบšเปˆเบญเบ™เบ—เบตเปˆ
เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰ (เบ‚เบญเบ‡ 68881) เบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบซเบผเบฒเบเบเปˆเบงเบฒ "เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ" เบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰.
เบกเบต. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ x86. เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเป€เบเบตเบ™
เป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เบตเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบ•เปˆเบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบญเบตเบ‡เปƒเบชเปˆเบ„เปเบฒเบ™เบดเบเบฒเบกเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ‚เบญเบ‡ IEEE เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เบˆเบธเบ”. เปƒเบŠเป‰ - เบฎเป‰เบฒเบ™เบ‚เบฒเบเป€เบ„เบทเปˆเบญเบ‡เบเปˆเบญเบ เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบซเบผเบฑเบ‡เบˆเบฒเบเบ”เบฑเบ”เปเบ›เบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”
เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ•เบปเบงเปเบ›.

-fexcess-precision=เปเบšเบš
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เป€เบเบตเบ™โ€‹เบ‚เบญเบ‡โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบˆเบฑเบโ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹.
เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบกเบตเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบซเบผเบฒเบเบเปˆเบงเบฒ IEEE "เป€เบฅเบทเปˆเบญเบ™" เปเบฅเบฐ "เบชเบญเบ‡" เบ›เบฐเป€เบžเบ”เปเบฅเบฐ
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฎเบญเบšเบเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™,
-fexcess-precision=เป„เบง เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰; เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™เปเบฅเบฐเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฎเบญเบšเป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†
เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบก C, เบ–เป‰เบฒ
-fexcess-precision=เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เป€เบเบตเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš
เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ ISO C99; เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ—เบฑเบ‡เบเบฒเบ™เป‚เบเบ™เปเบฅเบฐเบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบธเบ™เบ„เปˆเบฒเป€เบ›เบฑเบ™
เบกเบปเบ™เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ” semantic เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ (เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ - เบฎเป‰เบฒเบ™เบ‚เบฒเบเป€เบ„เบทเปˆเบญเบ‡เบเปˆเบญเบ เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบ).
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš C เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เป€เบŠเบฑเปˆเบ™:
-std=c99 เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-fexcess-precision=เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบญเบทเปˆเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบ C, เปเบฅเบฐเบšเปเปˆเบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -funsafe-math-optimizations or -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹ เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เปƒเบ™ x86, เบกเบฑเบ™
เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹ -mfpmath=sse or -mfpmath=sse+387 เบ–เบทเบเบเปเบฒเบ™เบปเบ”; เปƒเบ™เบญเบฐเบ”เบตเบ”
เบเปเบฅเบฐเบ™เบต, IEEE semantics เบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเป€เบเบตเบ™, เปเบฅเบฐเปƒเบ™เบชเบธเบ”เบ—เป‰เบฒเบ, เบฎเบญเบšเปเบกเปˆเบ™
เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰.

-fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹
เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fno-math-errno, -funsafe-math-optimizations, -ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™,
-fno-rounding-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”, -fno-signaling-nans เปเบฅเบฐ -fcx-limited-range.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบฒโ€‹เป‚เบ„ preprocessor "__FAST_MATH__" เบ–เบทเบโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เป‚เบ”เบเปƒเบ”เป† -O เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹ - เป„เบง เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰
เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ IEEE เบซเบผเบท ISO
เบเบปเบ”โ€‹เบฅเบฐโ€‹เบšเบฝเบš / เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹.

-fno-math-errno
เบขเปˆเบฒเบ•เบฑเป‰เบ‡ "errno" เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบญเบฑเบ™เบ”เบฝเบง
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡, "sqrt". เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ IEEE เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”
เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ—เบธเบ‡เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป„เบงเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒเป€เบฅเบเป€เบฅเบ IEEE
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เป‚เบ”เบเปƒเบ”เป† -O เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹
เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ IEEE เบซเบผเบท ISO
เบเบปเบ”โ€‹เบฅเบฐโ€‹เบšเบฝเบš / เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fmath-errno.

เปƒเบ™เบฅเบฐเบšเบปเบš Darwin, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบšเปเปˆเป€เบ„เบตเบเบ•เบฑเป‰เบ‡ "errno". เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบšเปเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™
เบชเปเบฒเบฅเบฑเบš compiler เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐ, เปเบฅเบฐ -fno-math-errno เป€เบ›เบฑเบ™
Default

-funsafe-math-optimizations
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹เบ—เบตเปˆ (aโ€‹) เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ–เบฝเบ‡โ€‹เปเบฅเบฐโ€‹
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐ (b) เบญเบฒเบ”เบˆเบฐเบฅเบฐเป€เบกเบตเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ IEEE เบซเบผเบท ANSI. เป€เบกเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ,
เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบทเป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ›เปˆเบฝเบ™เบ„เปเบฒเบ„เบงเบšเบ„เบธเบก FPU เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบผเบท
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบญเบทเปˆเบ™เป†.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เป‚เบ”เบเปƒเบ”เป† -O เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹
เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ IEEE เบซเบผเบท ISO
เบเบปเบ”โ€‹เบฅเบฐโ€‹เบšเบฝเบš / เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹. เป€เบ›เบตเบ”เปƒเบŠเป‰
-fno-เป€เบŠเบฑเบ™เบŠเบทเปˆ-เบชเบนเบ™, -fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”, -fassociative-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” เปเบฅเบฐ -freciprocal-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-unsafe-math-optimizations.

-fassociative-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เป‚เบเบ‡โ€‹เปƒเบซเบกเปˆโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹. เบ™เบตเป‰
เบฅเบฐเป€เบกเบตเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบฒเบชเบฒ ISO C เปเบฅเบฐ C++ เป‚เบ”เบเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบœเบปเบ™เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ.
เบซเบกเบฒเบเป€เบซเบ”: เบเบฒเบ™เบชเบฑเปˆเบ‡เบ„เบทเบ™เปƒเบซเบกเปˆเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™เบ‚เบญเบ‡เบชเบนเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบšเปเปˆเบชเบปเบ™เปƒเบˆ NaNs เปเบฅเบฐ inhibit เบซเบผเบท
เบชเป‰เบฒเบ‡ underflow เบซเบผเบท overflow (เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบฎเบญเบš
เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบŠเบฑเปˆเบ™ "(x + 2**52) - 2**52". เบญเบฒเบ”เบˆเบฐเบˆเบฑเบ”เบฎเบฝเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบฅเบญเบเบ„เบทเบ™เปƒเปเปˆ เปเบฅเบฐ
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบฑเป‰เบ™
เบ—เบฑเบ‡เบชเบญเบ‡ -fno-เป€เบŠเบฑเบ™เบŠเบทเปˆ-เบชเบนเบ™ เปเบฅเบฐ -fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰
เบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบซเบผเบฒเบเบเบฑเบš - เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹. เบชเปเบฒเบฅเบฑเบš Fortran เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เป€เบ›เบตเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบกเบทเปˆเบญ
เบ—เบฑเบ‡เบชเบญเบ‡ -fno-เป€เบŠเบฑเบ™เบŠเบทเปˆ-เบชเบนเบ™ เปเบฅเบฐ -fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-associative-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”.

-freciprocal-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบœเบปเบ™โ€‹เบ•เบญเบšโ€‹เปเบ—เบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบเบฑเบšโ€‹เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ™เบตเป‰โ€‹
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบ•เบปเบงเบขเปˆเบฒเบ‡ "x / y" เบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ "x * (1 / y)", เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒ "(1/y)" เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบปเปˆเบงเป„เบ›. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰
เบชเบนเบ™เป€เบชเบเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเปเบฅเบฐเป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ flops เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบกเบนเบ™เบ„เปˆเบฒ.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-reciprocal-math.

-ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบˆเบธเบ”โ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบงเปˆเบฒ arguments เปเบฅเบฐโ€‹
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเปเปˆเปเบกเปˆเบ™ NaNs เบซเบผเบท +-Infs.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เป‚เบ”เบเปƒเบ”เป† -O เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹
เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ IEEE เบซเบผเบท ISO
เบเบปเบ”โ€‹เบฅเบฐโ€‹เบšเบฝเบš / เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-finite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fno-เป€เบŠเบฑเบ™เบŠเบทเปˆ-เบชเบนเบ™
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เปเบ•เปˆเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบˆเบธเบ”โ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบชเบปเบ™โ€‹เปƒเบˆโ€‹เบเบฒเบ™โ€‹เป€เบŠเบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบชเบนเบ™โ€‹.
IEEE เป€เบฅเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบเปเบฒเบ™เบปเบ”เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบ„เปˆเบฒ +0.0 เปเบฅเบฐ -0.0 เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™.
เบซเป‰เบฒเบกเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบŠเบฑเปˆเบ™ x+0.0 เบซเบผเบท 0.0*x (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบต
-ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™). เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบชเบฑเบ™เบเบฒเบ™เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบนเบ™เบšเปเปˆเปเบกเปˆเบ™
เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fsigned-เบชเบนเบ™.

-fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰
เบเบฑเบšเบ”เบฑเบ. เบเบฑเบšเบ”เบฑเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เปเบšเปˆเบ‡เบญเบญเบเป‚เบ”เบเบชเบนเบ™, overflow, underflow, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš inexact เปเบฅเบฐ
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบฑเป‰เบ™ -fno-signaling-nans เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰.
เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เป„เบงโ€‹เบ‚เบถเป‰เบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆ "เบšเปเปˆโ€‹เบขเบธเบ”โ€‹เป€เบŠเบปเบฒโ€‹" เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ” IEEEโ€‹,
เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ„เบงเบ™เป€เบ›เบตเบ”เป‚เบ”เบเบœเบนเป‰เปƒเบ”เบเปเปˆเบ•เบฒเบก -O เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบชเบปเปˆเบ‡โ€‹เบœเบปเบ™โ€‹เปƒเบ™โ€‹
เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ IEEE เบซเบผเบท ISO
เบเบปเบ”โ€‹เบฅเบฐโ€‹เบšเบฝเบš / เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -ftrapping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”.

- เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™ เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบเบฒเบ™เบฎเบญเบšเบ•เบปเบงเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™
เบžเบถเบ”เบ•เบดเบเบณ. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบญเบšเบซเบฒเบชเบนเบ™เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบˆเบธเบ”เบฅเบญเบเป€เบ›เบฑเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก, เปเบฅเบฐ
เบฎเบญเบšเบซเบฒเปƒเบเป‰เบ—เบตเปˆเบชเบธเบ”เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เป€เบฅเบเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เปเบปเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ›เปˆเบฝเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบฎเบญเบš FP เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ, เบซเบผเบทเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบฎเบญเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เบžเบฑเบšเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบˆเบธเบ”เบฅเบญเบเปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก (เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเป‚เบซเบกเบ”เบกเบปเบ™)
เปเบฅเบฐเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป€เบฅเบเป€เบฅเบเบ—เบตเปˆเบšเปเปˆเบ›เบญเบ”เป„เบžเปƒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบกเบปเบ™โ€‹.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-rounding-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบปเบ”เบฅเบญเบ‡ เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ—เบตเปˆเบˆเบฐเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ GCC เบ—เบฑเบ‡เปเบปเบ”
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบฎเบญเบš. เบฎเบธเปˆเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบญเบ‡ GCC เบญเบฒเบ”เบˆเบฐเบชเบฐเบซเบ™เบญเบ‡
เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบเบงเปˆเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰ "FENV_ACCESS" pragma เบ‚เบญเบ‡ C99. เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบˆเบฐเบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบชเบฐเบ–เบฒเบ™เบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ "FENV_ACCESS".

-fsignaling-nans
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ IEEE signaling NaNs เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡
เบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™ NaNs. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡
-ftrapping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบกเป‚เบ„เบฃเป‚เบ›เบฃเป€เบŠเบชเป€เบŠเบตเบเปˆเบญเบ™ "__SUPPORT_SNAN__" เบ–เบทเบเบเบณเบ™เบปเบ”.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-signaling-nans.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบปเบ”เบฅเบญเบ‡ เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ—เบตเปˆเบˆเบฐเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ GCC เบ—เบฑเบ‡เปเบปเบ”
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบžเบถเบ”เบ•เบดเบเปเบฒ NaN.

-fsingle-precision-constant
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบญเบฑเบ™เบ”เบฝเบง เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เปเบ›เบ‡เปเบšเบš implicitly
เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

-fcx-limited-range
เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบฅเบฐเบšเบธเบงเปˆเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบซเบผเบธเบ”เป„เบฅเบเบฐเปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบกเบทเปˆเบญเปƒเบ”
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบเบฑเบ‡เบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบœเบปเบ™เบ‚เบญเบ‡ a
เบเบฒเบ™เบ„เบนเบ™เบŠเบฑเบšเบŠเป‰เบญเบ™เบซเบผเบทเบเบฒเบ™เบซเบฒเบ™เปเบกเปˆเบ™ "NaN + I*NaN", เบ”เป‰เบงเบเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเบเบนเป‰
เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบฑเป‰เบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-cx-limited-range, เปเบ•เปˆเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
-fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ pragma ISO C99 "CX_LIMITED_RANGE".
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เบเบฑเบšเบ—เบธเบเบžเบฒเบชเบฒ.

-fcx-fortran-เบเบปเบ”เบฅเบฐเบšเบฝเบš
เบเบฒเบ™เบ„เบนเบ™เปเบฅเบฐเบเบฒเบ™เปเบšเปˆเบ‡เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš Fortran. เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบญเบšเป€เบ‚เบ”เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป€เบ›เบฑเบ™
เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™, เปเบ•เปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™
เบเบฒเบ™เบ„เบนเบ™เบซเบผเบทเบเบฒเบ™เปเบšเปˆเบ‡เปเบกเปˆเบ™ "NaN + I*NaN", เบ”เป‰เบงเบเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบŠเปˆเบญเบเบเบนเป‰เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™
เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบฑเป‰เบ™.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fno-cx-fortran-เบเบปเบ”เบฅเบฐเบšเบฝเบš.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเปƒเบ”เป† -O เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบžเบฒเบเบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบœเบฐเบฅเบดเบ”
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบซเบฑเบโ€‹.

-fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบเบฑเบšโ€‹ -fprofile-arcs, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบงเบšเบฅเบงเบกเบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบˆเปเบฒเบ™เบงเบ™เป€เบงเบฅเบฒ
เปเบ•เปˆเบฅเบฐเบชเบฒเบ‚เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฑเบš -fprofile-arcs เบญเบญเบเบˆเบฒเบ, เบกเบฑเบ™เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” arc เบ™เบฑเบšเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ sourcename.gcda เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เป„เบ”เป‰
เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™
เบฅเบฐเบซเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

เบเบฑเบš -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, GCC puts a REG_BR_PROB เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹เปƒเบ™โ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹ JUMP_INSN เปเบฅเบฐ
CALL_INSN. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆ
เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฝเบง: เปƒเบ™ reorg.c, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ„เบฒเบ”เป€เบ”เบปเบฒเบงเปˆเบฒเบชเบฒเบ‚เบฒเปƒเบ”เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”
เป€เบญเบปเบฒ, เป„เบ”เป‰ REG_BR_PROB เบ„เปˆเบฒเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบ”เบ–เบทเบเบ™เปเบฒเป„เบ›เบซเบผเบฒเบเบเบงเปˆเบฒ
เป€เบฅเบทเป‰เบญเบเป†.

-fprofile-เบ„เปˆเบฒ
เบ–เป‰เบฒเบฅเบงเบกเบเบฑเบš -fprofile-arcs, เบกเบฑเบ™เป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒเบ‚เบญเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เบฅเบงเบšเบฅเบงเบก.

เบเบฑเบš -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบกเบฑเบ™เบญเปˆเบฒเบ™เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเบˆเบฒเบเบ„เปˆเบฒ profileing เบ‚เบญเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ -fprofile-generate เปเบฅเบฐ -fprofile-เปƒเบŠเป‰.

-fprofile-reorder-functions
เบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบทเบ™เปƒเปเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ„เบทเปˆเบญเบ‡เบกเบทเป‚เบ›เบฃเป„เบŸเบฅเปŒเบˆเบฐเป€เบเบฑเบšเบเบณเบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡ เปเบฅเบฐเบชเบฑเปˆเบ‡เปƒเบซเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบฅเปเบฒเบ”เบฑเบšเบ•เบฑเป‰เบ‡เบŠเบฑเบ™เบ‚เบถเป‰เบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ -fprofile-เปƒเบŠเป‰.

-fvpt
เบ–เป‰เบฒเบฅเบงเบกเบเบฑเบš -fprofile-arcs, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ compiler เป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เปƒเบชเปˆ
เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ.

เบเบฑเบš -fbranch-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบกเบฑเบ™เบญเปˆเบฒเบ™เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบˆเบดเบ‡
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบžเบงเบเบกเบฑเบ™. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบžเบดเป€เบชเบ”เบ‚เบญเบ‡
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป‚เบ”เบเปƒเบŠเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเบซเบฒเบ™.

-frename-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบตเบเบฅเป‰เบฝเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป„เบงเป‰
เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เปƒเบซเป‰เบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ
เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹. เบญเบตเบ‡เบ•เบฒเบกเบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™ debug เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบฎเบญเบ‡เป€เบญเบปเบฒเป‚เบ”เบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ,
เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰ debugging เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ•เบปเบงเปเบ›เบšเปเปˆเบขเบนเปˆเปƒเบ™ "เป€เบฎเบทเบญเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™".

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ -funroll-loops เปเบฅเบฐ -fpeel-loops.

-fschedule-fusion
เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™เบฎเปˆเบงเบกเบเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
เปเบกเปˆเบ™เบขเบนเปˆเบ•เบดเบ”เบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เปƒเบ™เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-ftracer
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบซเบฒเบ‡เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ” superblock. เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบ
เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบทเปˆเบ™เป†เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ -fprofile-เปƒเบŠเป‰.

-funroll-loops
เบ–เบญเบ” loops เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบซเบผเบทเบ•เบฒเบก
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ loop เป„เบ”เป‰. -funroll-loops implies -frerun-cse-after-loop, -fweb เปเบฅเบฐ
-frename-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบตเบ”เบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบ loop เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ (เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡
loops เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆเป€เบฅเบฑเบเบ™เป‰เบญเบ). เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เปเบฅเบฐ
เบญเบฒเบ”เบˆเบฐ เบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เปเบฅเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ -fprofile-เปƒเบŠเป‰.

-funroll-all-loops
เบ–เบญเบ” loops เบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ loop เปเบกเปˆเบ™
เป€เบ‚เบปเป‰เบฒ. เบ™เบตเป‰เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเป€เบฎเบฑเบ”เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบŠเป‰เบฒเบซเบผเบฒเบ. -funroll-all-loops เบซเบกเบฒเบเป€เบ–เบดเบ‡
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹ -funroll-loops.

-fpeel-loops
Peels loops เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบกเป‰เบงเบ™เบซเบผเบฒเบ (เบˆเบฒเบ
เบ•เปเบฒเบ™เบดเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ). เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบตเบ”เบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบ loop เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ (เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡
loops เบกเบตเบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡ iterations).

เป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ -fprofile-เปƒเบŠเป‰.

-fmove-loop-invariants
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบšเบšเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡ loop เปƒเบ™ RTL loop optimizer. เป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš
-O1

-funswitch-loops
เบเป‰เบฒเบเบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡ loop invariant เบญเบญเบเบˆเบฒเบ loop, เบกเบตเบเบฒเบ™เบŠเปเป‰เบฒเบเบฑเบ™เบ‚เบญเบ‡
loop เบ—เบฑเบ‡เบชเบญเบ‡เบชเบฒเบ‚เบฒ (เบ”เบฑเบ”เปเบเป‰เบ•เบฒเบกเบœเบปเบ™เบ‚เบญเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚).

-function-sections
-fdata-sections
เบงเบฒเบ‡เปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบทเบฅเบฒเบเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ–เป‰เบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบฑเบ. เบŠเบทเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบทเบŠเบทเปˆเบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™
เบเปเบฒเบ™เบปเบ”เบŠเบทเปˆเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เปƒเบ™เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”.

เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡
เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบฅเบฐเบšเบปเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบŠเป‰เบงเบฑเบ”เบ–เบธ ELF
เบฎเบนเบšเปเบšเบšเปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบต SPARC เปเบฅเปˆเบ™ Solaris 2 เบกเบตเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.
AIX เบญเบฒเบ”เบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบกเบทเปˆเบญเบกเบตเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เป€เบŠเบฑเปˆเบ™เบ™เบฑเป‰เบ™. เป€เบกเบทเปˆเบญโ€‹เป€เบˆเบปเป‰เบฒ
เบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ•เบปเบงเบ›เบฐเบเบญเบšเปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰
เป„เบŸเบฅเปŒเปเบฅเบฐเบเบฑเบ‡เบŠเป‰เบฒเบเบงเปˆเบฒ. เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ เบเบ› เปƒเบ™เบ—เบธเบเบฅเบฐเบšเบปเบšเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบญเบฑเบ™เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบฅเบฐเบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบš debugging เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฅเบฐ
-g.

-fbranch-target-load-optimize
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบเปˆเบญเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฐเบ—เบนเป‰ prologue / epilogue.
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เป‚เบ”เบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เป€เบœเบตเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹, เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™ hoistingโ€‹
loads เบญเบญเบเบˆเบฒเบ loops เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ inter-block เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เบœเปˆเบฒเบ™.

-fbranch-target-load-optimize2
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบซเบปเบงเบ‚เปเป‰ prologue / epilogue.

-fbtr-bb-เบชเบฐเป€เบžเบฒเบฐ
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹เบ‚เบญเบ‡โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบชเบฒโ€‹เบ‚เบฒโ€‹, เบขเปˆเบฒโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบซเบกเปˆโ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบชเบฒโ€‹เบ‚เบฒโ€‹
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบฒเบเปƒเบ™เบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ”เป†.

-stack-protector
เบ›เปˆเบญเบเบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบฅเบปเป‰เบ™เบ‚เบญเบ‡เบšเบฑเบšเป€เบŸเบต, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบชเบฐเป€เบ•เบเบ•เบต. เบ™เบตเป‰
เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเปเบ›เบเบญเบ‡เปƒเบซเป‰เบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบกเบตเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡. เบ™เบตเป‰
เบ›เบฐเบเบญเบšเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป‚เบ—เบซเบฒ "alloca", เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบต buffers เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒ 8 bytes.
เบเบญเบ‡เป„เบ”เป‰เบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเปƒเบชเปˆเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบŸเบฑเบ‡เบŠเบฑเบ™เบญเบญเบ. เบ–เป‰เบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบ–เบทเบเบžเบดเบกเบญเบญเบเปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™
เบญเบญเบ.

-fstack-protector-เบ—เบฑเบ‡เปเบปเบ”
เบ„เบท -stack-protector เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เปเบ•เปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹.

-fstack-protector-strong
เบ„เบท -stack-protector เปเบ•เปˆเบ›เบฐเบเบญเบšเบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ --- เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ—เบตเปˆเบกเบตเบ„เปเบฒเบ™เบดเบเบฒเบก array เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เบซเบผเบทเบกเบตเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบ—เบตเปˆเบขเบนเปˆเบเบญเบšเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™.

-fstack-protector-explicit
เบ„เบท -stack-protector เปเบ•เปˆเบžเบฝเบ‡เปเบ•เปˆเบ›เบปเบเบ›เป‰เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบกเบต
"stack_protect" เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ

-fstdarg-opt
เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ prologue เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

เบซเบกเบฒเบเป€เบซเบ”: เปƒเบ™ Ubuntu 14.10 เปเบฅเบฐเบฎเบธเปˆเบ™เบ•เปเปˆเบกเบฒ, -fstack-protector-strong เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš C, C ++, ObjC, ObjC ++, เบ–เป‰เบฒเบšเปเปˆเบกเบต -fno-stack-protector, -nostdlib, เปเบฅเบฐ
- freestanding เบžเบปเบšเป€เบซเบฑเบ™.

-fsection-anchors
เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบขเบนเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเป‚เบ”เบเปƒเบŠเป‰ "เบชเบฐเบกเป" เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™.
เบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบงเบฑเบ”เบ–เบธเปƒเบเป‰เบ„เบฝเบ‡. เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™
เบ‚เบญเบ‡ GOT entries เปเบฅเบฐ GOT เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปƒเบ™เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ "foo" เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

static int a, b, c;
int foo (void) { เบเบฑเบšเบ„เบทเบ™ a + b + c; }

เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบฑเบ‡เบชเบฒเบก, เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบกเบฑเบ™เบ”เป‰เบงเบ
-fsection-anchors, เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ•เบปเบงเปเบ›เบˆเบฒเบเบˆเบธเบ”เบชเบฐเบกเปเบ—เบปเปˆเบงเป„เบ›เปเบ—เบ™. เป„เบ”เป‰
เบœเบปเบ™เบเบฐเบ—เบปเบšเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš pseudocode เบ•เปเปˆเป„เบ›เบ™เบตเป‰ (เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ C):

int foo (void)
{
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ int *xr = &x;
เบเบฑเบšเบ„เบทเบ™ xr[&a - &x] + xr[&b - &x] + xr[&c - &x];
}

เบšเปเปˆเปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰.

--param เบŠเบทเปˆ=เบกเบนเบ™เบ„เปˆเบฒ
เปƒเบ™เบšเบฒเบ‡เบšเปˆเบญเบ™, GCC เปƒเบŠเป‰เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ•เปˆเบฒเบ‡เป†เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบ›เบฐเบฅเบดเบกเบฒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบฑเป‰เบ™
เปเบกเปˆเบ™เปเบฅเป‰เบง. เบ•เบปเบงเบขเปˆเบฒเบ‡, GCC เบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เปเบ–เบงเบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเบผเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบšเบฒเบ‡เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ --param เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบŠเบทเปˆเบ‚เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ, เปเบฅเบฐเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบ„เปˆเบฒ, เปเบกเปˆเบ™ tied เบเบฑเบš
เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ compiler, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปเบˆเป‰เบ‡เบเบฒเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”
เบ›เปˆเบญเบเบญเบญเบเบกเบฒ.

เปƒเบ™เปเบ•เปˆเบฅเบฐเบเปเบฅเบฐเบ™เบต, เป„เบ”เป‰ เบกเบนเบ™เบ„เปˆเบฒ เป€เบ›เบฑเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบŠเบทเปˆ เปเบกเปˆเบ™:

เบ„เบฒเบ”เบ„เบฐเป€เบ™-เบชเบฒเบ‚เบฒ-เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
เป€เบกเบทเปˆเบญเบชเบฒเบ‚เบฒเบ–เบทเบเบ„เบฒเบ”เบ„เบฐเป€เบ™เบงเปˆเบฒเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฑเบšเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ•เปˆเปเบฒเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบ™เบตเป‰
(เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ”เบต. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

เบชเบนเบ‡เบชเบธเบ”-crossjump-edges
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบšเบ‚เบฒเป€เบ‚เบปเป‰เบฒเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ‚เป‰เบฒเบก. เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ
เปƒเบŠเป‰เป‚เบ”เบ -fcrossjumping เปเบกเปˆเบ™ O(N^2) เปƒเบ™เบˆเบณเบ™เบงเบ™เบ‚เบญเบšเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปเบ•เปˆเบฅเบฐเบ—เปˆเบญเบ™เป„เบกเป‰.
เบเบฒเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰.

min-crossjump-insns
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบˆเบฑเบšเบ„เบนเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบชเบญเบ‡เบ•เบฑเบ™
เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบ”เบ”เบ‚เป‰เบฒเบกเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ„เปˆเบฒเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเปƒเบ™เบเปเบฅเบฐเบ™เบต
เบšเปˆเบญเบ™เบ—เบตเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบšเบฅเบฑเบญเบเบ—เบตเปˆเบ–เบทเบเบ‚เป‰เบฒเบกเบ‚เป‰เบฒเบกเบˆเบฒเบเปเบกเปˆเบ™เบเบปเบ‡เบเบฑเบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 5.

max-grow-copy-bb-insns
เบ›เบฑเบ”เป„เบˆเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เบฑเบ”เบฅเบญเบเบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
เป‚เบ”เบ”. เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเปเบกเปˆเบ™เบ—เบฝเบšเบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบšเบšเป‚เบ”เบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
8.

max-goto-duplication-insns
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เบณเปเบ™เบฐเบ™เบณเบ—เบตเปˆเบˆเบฐเบŠเป‰เบณเบเบฑเบšเบšเบฅเบฑเบญเบเบ—เบตเปˆเป‚เบ”เบ”เป„เบ›เบซเบฒ a
Goto เบ„เบดเบ”เป„เบฅเปˆ. เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบžเบถเบ”เบ•เบดเบเปเบฒ O(N^2) เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบœเปˆเบฒเบ™, เบ›เบฑเบ”เปƒเบˆ GCC
เบ„เบดเบ”เป„เบฅเปˆ gotos เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เปเบฅเบฐ unfactors เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™เบŠเป‰เบฒ
เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบ—เปˆเบญเบ™เป„เบกเป‰เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบกเบตเบšเปเปˆเป€เบเบตเบ™ max-
goto-duplication-insns เปเบกเปˆเบ™ unfactored. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 8.

max-delay-slot-insn-search
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเบฐ
เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบŠเปˆเบญเบ‡เบŠเบฑเบเบŠเป‰เบฒ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป‚เบ”เบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เปเบกเปˆเบ™โ€‹
เบ„เบปเป‰เบ™เบซเบฒ, เบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเบˆเบฒเบเบเบฒเบ™เบ•เบทเปˆเบกเบŠเปˆเบญเบ‡เปƒเบชเปˆเบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเปเบกเปˆเบ™เบซเบ™เป‰เบญเบ, เบชเบฐเบ™เบฑเป‰เบ™เบขเบธเบ”
เบเบณเบฅเบฑเบ‡เบŠเบญเบเบซเบฒ. เบเบฒเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰
เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”.

max-delay-slot-live-search
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ•เบทเปˆเบกโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปƒเบชเปˆโ€‹เบเบฒเบ™โ€‹เบŠเบฑเบโ€‹เบŠเป‰เบฒโ€‹, เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹
เป€เบกเบทเปˆเบญเบŠเบญเบเบซเบฒเบšเบฅเบฑเบญเบเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบปเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ™เบตเป‰
เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ arbitrarily เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ, เป€เบžเบตเปˆเบกเบ—เบฐเบงเบตเบเบฒเบ™
เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเป€เบกเบทเปˆเบญเบฅเบฐเบซเบฑเบ”เบชเบฐเบฅเบฑเบญเบ”เบ•เบดเบ‡เบŠเบฑเบเบŠเป‰เบฒ
เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ„เบงเบšเบ„เบธเบก.

max-gcse-memory
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เป‚เบ”เบเบ›เบฐเบกเบฒเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡ subexpression เบ—เบปเปˆเบงเป„เบ›เบ—เบปเปˆเบงเป‚เบฅเบ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹
เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”.

max-gcse-insertion-ratio
เบ–เป‰เบฒเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เปƒเบชเปˆเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ•เปเปˆเบเบฒเบ™เบฅเบถเบšเปเบกเปˆเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒเบ„เปˆเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปƒเบ”เป†, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ RTL PRE เปเบŠเบเบซเบผเบทเป€เบญเบปเบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบญเบญเบ
เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบŠเป‰เบณเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เปƒเบ™เบเบฐเปเบชเบ„เบณเปเบ™เบฐเบ™เบณ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
20โ€‹.

max-pending-list-length
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฑเบ‡โ€‹เบ„เป‰เบฒเบ‡โ€‹เบขเบนเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฅเป‰เบฒเบ‡โ€‹
เบชเบฐเบ–เบฒเบ™เบฐเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเปเปˆ. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบกเบตเบชเบฒเบ‚เบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบซเบผเบทเบเบฒเบ™เป‚เบ—เบชเบฒเบกเบฒเบ”
เบชเป‰เบฒเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡.

max-modulo-backtrack-attempts
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก backtrack เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ modulo
เบเบฒเบ™เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ loop. เบ„เปˆเบฒเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบ”เป‰.

max-inline-insns-single
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ„เบงเบšเบ„เบธเบก inliner เบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ GCC. เบ•เบปเบงเป€เบฅเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบชเบธเบ” (เบ™เบฑเบšเบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ—เบ™เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ GCC) เปƒเบ™ a
เบŸเบฑเบ‡เบŠเบฑเบ™เบ”เบฝเบงเบ—เบตเปˆ inliner เบ•เบปเป‰เบ™เป„เบกเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ inlining. เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆ
เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบŠเบฑเป‰เบ™เบฎเบฝเบ™ (C++).
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 400.

max-inline-insns-auto
เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -finline-functions (เบฅเบงเบกเบขเบนเปˆเปƒเบ™ -O3), เบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฐ
เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ inlining เป‚เบ”เบ compiler เป„เบ”เป‰เบ–เบทเบเบชเบทเบšเบชเบงเบ™. เป€เบ–เบดเบ‡
เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (เบซเบผเบฒเบ) เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบงเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 40.

inline-min-speedup
เป€เบกเบทเปˆเบญเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบœเบนเป‰เป‚เบ— + callee runtime เป€เบเบตเบ™เบ™เบตเป‰
threshold (เปƒเบ™โ€‹เบเปˆเบญเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ™เบตเป‰), เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™ inlined เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบชเบปเบ™โ€‹เป€เบฅเบทเปˆเบญเบ‡โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”
--param max-inline-insns-single เปเบฅเบฐ --param max-inline-insns-auto.

large-function-insns
เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบ—เป‰เป†. เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰
เบซเบผเบฑเบ‡เบˆเบฒเบ inlining, inlining เปเบกเปˆเบ™เบˆเปเบฒเบเบฑเบ”เป‚เบ”เบ --param เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹. เบ™เบตเป‰
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เบปเป‰เบ™เบ•เปเป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบšเปเปˆ.
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป€เบชเบฑเป‰เบ™เบŠเบทเปˆเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบ›เบฒเบเบซเบผเบฑเบ‡. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2700.

เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹
เบฅเบฐเบšเบธเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™ inlining เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 100 เป€เบŠเบดเปˆเบ‡เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบ–เบดเบ‡ 2.0 เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
เบ‚เบฐเบซเบ™เบฒเบ”.

เปœเปˆเบงเบเปƒเบซเบเปˆ
เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบซเบปเบงโ€‹เบซเบ™เปˆเบงเบโ€‹เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹. เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™ inlining เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™
เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เป‚เบ”เบ --param inline-unit-growth. เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”เป€เบเบตเบ™เป„เบ›. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเบ™เป‰เบฒเบ—เบตเปˆ A
เบ™เบฑเป‰เบ™เปเบกเปˆเบ™ inline เปเบฅเบฐ B เบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเป‚เบ—เบซเบฒ A เบชเบฒเบกเป€เบ—เบทเปˆเบญ. เบ–เป‰เบฒ B เปเบกเปˆเบ™เบ™เป‰เบญเบเบ—เบฝเบšเบเบฑเบš A,
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เปเบกเปˆเบ™ 300% เปเบฅเบฐเบเบฑเบ‡ inlining เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™ sane เบซเบผเบฒเบ. เบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ
เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเบ™เป‰เบฒเบ—เบตเปˆ inlineable เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เป‚เบ”เบเบฅเบงเบก
เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เปเบกเปˆเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบซเบผเบตเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เป€เบšเบตเบ” exponential เบ‚เบญเบ‡โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ
เบซเบ™เปˆเบงเบ, เบ‚เบฐเบซเบ™เบฒเบ”เปเบกเปˆเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ --param เปœเปˆเบงเบเปƒเบซเบเปˆ เบเปˆเบญเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ --param
inline-unit-growth. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10000.

inline-unit-growth
เบฅเบฐเบšเบธเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเป‚เบ”เบเบฅเบงเบกเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบ inlining. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 20 เป€เบŠเบดเปˆเบ‡เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเป€เบ›เบฑเบ™ 1.2 เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เปœเบฒเบง
เบŸเบฑเบ‡เบŠเบฑเบ™เบ•เปˆเบฒเบ‡เป† (เปเบฒเบเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเป€เบขเบฑเบ™เบœเปˆเบฒเบ™เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ เบซเบผเบทเป‚เบ”เบเบ„เปเบฒเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ) เบšเปเปˆเปเบกเปˆเบ™
เบเบงเบกโ€‹เป€เบญเบปเบฒโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบซเบ™เปˆเบงเบโ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹.

ipcp-unit-growth
เบฅเบฐเบšเบธเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเป‚เบ”เบเบฅเบงเบกเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฑเบ™
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10 เป€เบŠเบดเปˆเบ‡เบˆเบณเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบปเบงเปœเปˆเบงเบเป€เบ›เบฑเบ™ 1.1
เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

เปƒเบซเบเปˆ stack-frame
เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเบเบญเบš stack เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ inlining algorithm เบเปเบฒเบฅเบฑเบ‡เบžเบฐเบเบฒเบเบฒเบก
เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 256 bytes.

large-stack-frame-growth
เบฅเบฐเบšเบธเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เป€เบŸเบฃเบก stack เปƒเบซเบเปˆเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™ inlining เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 1000 เป€เบŠเบดเปˆเบ‡เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบเบญเบš stack เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบ–เบดเบ‡ 11 เป€เบ—เบปเปˆเบฒ
เบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

max-inline-insns-recursive
max-inline-insns-recursive-auto
เบฅเบฐเบšเบธเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบชเบธเบ”เป€เบ›เบฑเบ™เบชเปเบฒเป€เบ™เบปเบฒเบ™เบญเบเบชเบฒเบเบ‚เบญเบ‡เบ•เบปเบงเบ•เบปเบ™เป€เบญเบ‡.
เบŸเบฑเบ‡เบŠเบฑเบ™ inline recursive เบชเบฒเบกเบฒเบ”เป€เบ•เบตเบšเป‚เบ•เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” inlining recursive.

--param max-inline-insns-recursive เปƒเบŠเป‰เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง. เบชเปเบฒเบฅเบฑเบš
เบŸเบฑเบ‡เบŠเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง, inlining recursive เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญ
-finline-functions (เบฅเบงเบกเบขเบนเปˆเปƒเบ™ -O3) เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™; --param max-inline-insns-
recursive-auto เบ™เบณเปƒเบŠเป‰เปเบ—เบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 450.

max-inline-recursive-depth
max-inline-recursive-depth-auto
เบฅเบฐเบšเบธเบ„เบงเบฒเบกเป€เบฅเบดเบ recursion เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ recursive inlining.

--param max-inline-recursive-depth เปƒเบŠเป‰เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง. เบชเปเบฒเบฅเบฑเบš
เบŸเบฑเบ‡เบŠเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง, inlining recursive เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญ
-finline-functions (เบฅเบงเบกเบขเบนเปˆเปƒเบ™ -O3) เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™; --param max-inline-recursive-
เบ„เบงเบฒเบกโ€‹เป€เบฅเบดเบโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹ เบ™เบณเปƒเบŠเป‰เปเบ—เบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 8.

min-inline-recursive-probability
inlining recursive เปเบกเปˆเบ™เบเปเบฒเป„เบฅเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เบตเปˆเบกเบต recursion เป€เบฅเบดเบเปƒเบ™
เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบˆเบฑเบšเบ›เบงเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเป€เบฅเบดเบ recursion เบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบก
เบ‚เบฐโ€‹เบซเบ™เบฒเบ” prologue เบซเบผเบทโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฑเบšโ€‹เบชเบปเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบฎเปˆเบฒเบ‡โ€‹เบเบฒเบโ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบญเบทเปˆเบ™เป†โ€‹.

เป€เบกเบทเปˆเบญโ€‹เบ„เบณโ€‹เบ•เบดโ€‹เบŠเบปเบกโ€‹เบ‚เบญเบ‡โ€‹เป‚เบ›โ€‹เบฃโ€‹เป„เบŸโ€‹เบฅเปŒโ€‹เบกเบตโ€‹เบขเบนเปˆ (เป€เบšเบดเปˆเบ‡ -fprofile-generate) recursion เบ•เบปเบงโ€‹เบˆเบดเบ‡โ€‹
เบ„เบงเบฒเบกเป€เบฅเบดเบเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบˆเบฒเบเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™ recurses เบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ—เบ—เบตเปˆเปƒเบซเป‰
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบˆเปเบฒเบเบฑเบ” inlining เบžเบฝเบ‡เปเบ•เปˆเป‚เบ—เบซเบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบกเบต
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบเบตเบ™เป€เบเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰ (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™). เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

Early-inlining-insns
เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ—เบตเปˆ inliner เบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบกเบฑเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบฅเบดเบกเบฒเบ™
เบ‚เบญเบ‡ inlining เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ” abstraction เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 14.

max-early-inliner-iterations
เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบŠเป‰เบณโ€‹เบ‚เบญเบ‡ inliner เบ•เบปเป‰เบ™โ€‹. เบ™เบตเป‰เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง bounds เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡
nested indirect calls the inliner เบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚. เป‚เบชเป‰เบ—เบตเปˆเป€เบฅเบดเบเบเบงเปˆเบฒเปเบกเปˆเบ™เบเบฑเบ‡เบขเบนเปˆ
เบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบ inlining เบŠเป‰เบฒ.

comdat-sharing-probability
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™) เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เปเบ–เบงเบ‚เบญเบ‡ C++ เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ comdat เปเบกเปˆเบ™
เปเบšเปˆเบ‡เบ›เบฑเบ™เปƒเบ™เบ—เบปเปˆเบงเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเบผเบฒเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 20.

profile-func-internal-id
เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰ function id เบžเบฒเบเปƒเบ™เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบซเบผเบทเบšเปเปˆ
เบŠเบญเบเบซเบฒ. เบ–เป‰เบฒเบ„เปˆเบฒเปเบกเปˆเบ™ 0, compiler เปƒเบŠเป‰ id เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบŸเบฑเบ‡เบŠเบฑเบ™
เบŠเบทเปˆเบ•เบปเบงเบ›เบฐเบเบญเบš เปเบฅเบฐเบŠเบทเปˆเป„เบŸเบฅเปŒ, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเป€เบเบปเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบเบฑเบšเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบกเบฒ
เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เป€เบŠเบฑเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เปเบกเปˆเบ™ 0โ€‹.

min-vect-loop-bound
เบˆเปเบฒเบ™เบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ—เบตเปˆ loops เบšเปเปˆเป„เบ”เป‰เบ–เบทเบ vectorized เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
-ftree-vectorize เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบซเบผเบฑเบ‡เบˆเบฒเบ vectorization เบ•เป‰เบญเบ‡เบเบฒเบ™
เบซเบผเบฒเบเบเบงเปˆเบฒเบ„เปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ vectorization. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0.

gcse-cost-distance-ratio
เบ›เบฑเบ”โ€‹เป„เบˆโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบเบฒเบ™โ€‹เบ„เปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เป„เบฅโ€‹เบเบฐโ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเป‰เบฒเบโ€‹เป‚เบ”เบโ€‹
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš GCSE. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เบตเป‰เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ” hoisting pass.
เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ, เบเบฒเบ™ hoisting เบฅเบฐเบซเบฑเบ”เบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ
expressions, ie, เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ gcse-unrestricted-
เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ. เบเบฒเบ™เบฅเบฐเบšเบธ 0 เบ›เบดเบ”เบเบฒเบ™เบเบปเบเบ•เบปเบงเบชเบฐเปเบ”เบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
10โ€‹.

gcse-unrestricted-cost
เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹, เบเบฒเบ™โ€‹เบงเบฑเบ”โ€‹เปเบ—เบโ€‹เบ›เบฐโ€‹เบกเบฒเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹, เบขเบนเปˆโ€‹
เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš GCSE เบšเปเปˆเบˆเปเบฒเบเบฑเบ”เป„เบฅเบเบฐเบ—เบฒเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบญเบญเบเบชเบฒเบกเบฒเบ”เป€เบ”เบตเบ™เบ—เบฒเบ‡เป„เบ”เป‰.
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เบตเป‰เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ” hoisting pass. เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบ™เป‰เบญเบเบฅเบปเบ‡,
เบเบฒเบ™ hoisting เบฅเบฐเบซเบฑเบ”เบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเปเบกเปˆเบ™. เบเบฒเบ™เบฅเบฐเบšเบธ 0 เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”
เบเบฒเบ™โ€‹เป€เบ”เบตเบ™โ€‹เบ—เบฒเบ‡โ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 3.

max-hoist-depth
เบ„เบงเบฒเบกเป€เบฅเบดเบเบ‚เบญเบ‡เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเปƒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰ dominator เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบžเบทเปˆเบญ hoist. เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ›เบฐเบžเบถเบ”เบชเบตเปˆเบซเบผเปˆเบฝเบกเปƒเบ™เบฅเบฐเบšเบปเบš hoisting algorithm. เบ„เปˆเบฒเบ‚เบญเบ‡ 0 เบšเปเปˆเบˆเปเบฒเบเบฑเบ”
เปƒเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเบŠเป‰เบฒเบฅเบปเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบกเปˆเบ™ 30.

max-tail-merge-เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ bbs เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เป€เบžเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบš bb เบเบฑเบš. เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™
เบžเบถเบ”เบ•เบดเบเบณเบชเบตเปˆเบซเบผเปˆเบฝเบกเปƒเบ™เบเบฒเบ™เบฅเบงเบกเบซเบฒเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

max-tail-merge-iterations
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบŠเป‰เบณโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบœเปˆเบฒเบ™โ€‹เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹. เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ
เบˆเบณเบเบฑเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบฎเบงเบšเบฎเบงเบกเปƒเบ™เบเบฒเบ™เบฎเบงเบกเบซเบฒเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

max-unrolled-insns
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆ loop เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™ unrolledโ€‹. เบ–เป‰เบฒ loop
เปเบกเปˆเบ™ unrolled, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบฐเบซเบฑเบ” loop เปเบกเปˆเบ™
เบเบปเบเป€เบฅเบตเบ.

max-average-unrolled-insns
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบฅเปเบฒเบญเบฝเบ‡เป‚เบ”เบเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบงเปˆเบฒ
loop เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ unrolled. เบ–เป‰เบฒ loop เบ–เบทเบเบ–เบญเบ”เบญเบญเบ, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบ„เบทเบเบฑเบ™
เบเบณเบ™เบปเบ”เบˆเบณเบ™เบงเบ™เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบฅเบฐเบซเบฑเบ” loop เบ–เบทเบเบ–เบญเบ”เบญเบญเบ.

max-unroll-times
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡ unrollings เบ‚เบญเบ‡ loop เบ”เบฝเบงโ€‹.

max-peeled-insns
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆ loop เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบ. เบ–เป‰เบฒ loop
เบ–เบทเบเบ›เบญเบเป€เบ›เบทเบญเบ, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบฐเบซเบฑเบ” loop เบ–เบทเบเบ›เบญเบเป€เบ›เบทเบญเบ.

max-peel-times
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบเบ‚เบญเบ‡ loop เบ”เบฝเบง.

max-peel-เบชเบฒเบ‚เบฒ
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฎเป‰เบญเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบฅเปเบฒเบ”เบฑเบšเบ›เบญเบเป€เบ›เบทเบญเบ.

max-completely-peeled-insns
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ insns เบ‚เบญเบ‡ loop เบ›เบญเบเป€เบ›เบทเบญเบเบซเบกเบปเบ”.

max-completely-peel-times
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบŠโ€‹เป‰โ€‹เปเบฒโ€‹เบ‚เบญเบ‡ loop เป€เบ›เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบญเบโ€‹เป€เบ›เบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹.

max-completely-peel-loop-nest-depth
เบ„เบงเบฒเบกเป€เบฅเบดเบเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบฎเบฑเบ‡ loop เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™.

max-unswitch-insns
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ insns เบ‚เบญเบ‡ loop เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบผเบฑเบš.

max-unswitch-level
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบชเบฒโ€‹เบ‚เบฒ unswitched เปƒเบ™ loop เบ”เบฝเบงโ€‹.

lim-เปเบžเบ‡
เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ•เปเปˆเบฒเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบฅเบฒเบ„เบฒเปเบžเบ‡เปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡ loop invariant.

iv-consider-all-candidates-bound
เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ› induction, เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบ—เบตเปˆเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”
เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เบปเบงเปเบ› induction. เบ–เป‰เบฒเบกเบต
เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ—เบตเปˆเบชเบธเบ”เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™
เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เป€เบงเบฅเบฒเบชเบตเปˆเบซเบฅเปˆเบฝเบก.

iv-max-เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ-เปƒเบŠเป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เบปเบงเปเบ› induction เปƒเบซเป‰เป€เบ–เบดเบ‡เบเบฑเบš loops เบ—เบตเปˆเบกเบต induction เบซเบผเบฒเบ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›.

iv-always-prune-cand-set-bound
เบ–เป‰เบฒเบˆเปเบฒเบ™เบงเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเปƒเบ™เบŠเบธเบ”เปเบกเปˆเบ™เบ™เป‰เบญเบเบเบงเปˆเบฒเบ„เปˆเบฒเบ™เบตเป‰, เบžเบฐเบเบฒเบเบฒเบกเบชเบฐเป€เบซเบกเบต
เป€เบญเบปเบฒ ivs เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบญเบญเบเบˆเบฒเบเบŠเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบžเบตเปˆเบกเปƒเบซเบกเปˆ.

scev-max-expr-size
เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบงเบดเบงเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบชเบฐเป€เบเบฑเบ”เบฅเบฒ. เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบŠเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ.

scev-max-expr-เบŠเบฑเบšเบŠเป‰เบญเบ™
เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบงเบดเบงเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบชเบฐเป€เบเบฑเบ”เป€เบ‡เบดเบ™.
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบŠเป‰เบฒเบฅเบปเบ‡.

omega-max-vars
เบˆเบณเบ™เบงเบ™เบ•เบปเบงเปเบ›เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เบฅเบฐเบšเบปเบšเบˆเบณเบเบฑเบ” Omega. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบกเปˆเบ™ 128.

omega-max-geqs
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเป€เปเบตเบžเบฒเบšเปƒเบ™เบฅเบฐเบšเบปเบšเบˆเบณเบเบฑเบ” Omega. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ„เปˆเบฒเปเบกเปˆเบ™ 256.

omega-max-eqs
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเบฐเป€เปเบตเบžเบฒเบšเปƒเบ™เบฅเบฐเบšเบปเบšเบˆเบณเบเบฑเบ” Omega. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบกเปˆเบ™ 128.

omega-max-wild-cards
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เปเบ—เบ™เบ—เบตเปˆเบ•เบปเบงเปเบเป‰เป„เบ‚ Omega เบชเบฒเบกเบฒเบ”เปƒเบชเปˆเป„เบ”เป‰.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 18.

omega-hash-table-size
เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ hash เปƒเบ™ Omega solver. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 550.

omega-max-keys
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฐเปเบˆเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ Omega solver. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 500.

omega-eliminate-redundant-constraints
เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ 1, เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบฅเบฒเบ„เบฒเปเบžเบ‡เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0.

vect-max-version-for-alignment-checks
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ” loop
เบฎเบธเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เปƒเบ™ vectorizer.

vect-max-version-for-alias-checks
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ” loop
เบฎเบธเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡เปƒเบ™ vectorizer.

vect-max-peeling-for-alignment
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบญเบโ€‹เป€เบ›เบทเบญเบ loop เป€เบžเบทเปˆเบญโ€‹เป€เบชเบตเบกโ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš vectorizerโ€‹. เบกเบนเบ™เบ„เปˆเบฒ
-1 เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ 'เบšเปเปˆเบˆเปเบฒเบเบฑเบ”'.

max-iterations-to-track
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบŠโ€‹เป‰โ€‹เปโ€‹เบฒโ€‹เบ‚เบญเบ‡ loop เป€เบ›เบฑเบ™ brute-force algorithm เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐ
เบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ‚เบญเบ‡ loop เบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเป€เบกเบตเบ™.

hot-bb-count-ws-permille
เบเบฒเบ™เบ™เบฑเบšเป‚เบ›เบฃเป„เบŸเบฅเปŒเบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเบฎเป‰เบญเบ™เบ–เป‰เบฒเบกเบฑเบ™เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เปƒเบซเป‰
permillage (ie 0) เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” profiled เบ—เบฑเบ‡เบซเบกเบปเบ”.

hot-bb-frequency-fraction
เป€เบฅเบทเบญเบเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบ–เบตเปˆเบ‚เบญเบ‡เบ•เบฑเบ™เป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบฎเป‰เบญเบ™.

max-predicted-iterations
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบŠเปเป‰เบฒโ€‹เบเบฑเบ™ loop เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™
เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ—เบตเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบ loop เบ”เบฝเบงโ€‹เบ—เบตเปˆโ€‹เบฎเบนเป‰โ€‹เบˆเบฑเบโ€‹เบœเบนเบโ€‹เบžเบฑเบ™โ€‹เปเบฅเบฐ loop เบญเบตเบโ€‹
เบกเบตโ€‹เบเบฒเบ™โ€‹เบœเบนเบโ€‹เบกเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบฎเบนเป‰โ€‹เบˆเบฑเบโ€‹. เบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เปเบกเปˆเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
เบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเบ‚เบญเบ‡ iterations เบชเบฐเป€เบฅเปˆเบเบ›เบฐเบกเบฒเบ™ 10. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ loop เป„เบ”เป‰
เป‚เบ”เบเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ›เบฐเบเบปเบ”เบงเปˆเบฒเป€เบขเบฑเบ™เบ—เบฝเบกเบเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™.

เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰
เบ„เบงเบšเบ„เบธเบกเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰. เบ™เบตเป‰
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ›เบตเป€เบŠเบฑเบ™ (ie 0 ... 100) เป€เบ›เบฑเบ™ input. เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ‚เบญเบ‡ 90 เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เป‚เบ”เบโ€‹เบเบปเบ‡โ€‹.

align-threshold
เป€เบฅเบทเบญเบเบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบ–เบตเปˆเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™ a
เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบงเบฒเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™.

align-loop-iterations
loop เบ—เบตเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป€เบฎเบฑเบ”เบŠเป‰เบณเบขเปˆเบฒเบ‡เปœเป‰เบญเบเบˆเบณเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบเปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡.

tracer-dynamic- coverage
tracer-dynamic-coverage-feedback
เบ„เปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡ superblock เป€เบกเบทเปˆเบญเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ—เบตเปˆเปƒเบซเป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบเบงเบกเป€เบญเบปเบฒ. เบ™เบตเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เป„เบ”เป‰ tracer-dynamic-coverage-feedback เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบ„เปเบฒเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ
เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. เป‚เบ›เบผเป„เบŸเบฅเปŒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡ (เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบšเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบชเบฐเบ–เบดเบ•เบด) เปเบกเปˆเบ™
เบกเบตเบ„เบงเบฒเบกเบชเบปเบกเบ”เบนเบ™เปœเป‰เบญเบเบเบงเปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเปƒเบซเบเปˆเบเบงเปˆเบฒ.

tracer-max-code-growth
เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบซเบฒเบ‡เป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบ•เบตเบšเป‚เบ•เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบšเบฑเบ™เบฅเบธเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ›เบญเบก, เบเป‰เบญเบ™เบงเปˆเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ•เปเปˆเบกเบฒเปƒเบ™เบ‚เป‰เบฒเบก
เป‚เบ”เบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบนเบ‡เบเบงเปˆเบฒเบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เป€เบ•เบตเบšเปƒเบซเบเปˆเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

tracer-min-branch-ratio
เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเปเบšเบšเบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™เป€เบกเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™เบ‚เบญเบ‡เบ‚เบญเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบ™เบตเป‰
เป€เบเบ™ (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™).

tracer-min-branch-ratio
tracer-min-branch-ratio-feedback
เบขเบธเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเป„เบ›เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒเบ–เป‰เบฒเบ‚เบญเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ•เปˆเปเบฒเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบ™เบตเป‰.

เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš tracer-dynamic- coverage เบชเบญเบ‡เบ„เปˆเบฒเปเบกเปˆเบ™เบกเบตเบขเบนเปˆ, เบญเบฑเบ™เปœเบถเปˆเบ‡เบชเบณเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เปเบฒโ€‹เบ„เบถเบ”โ€‹เบ„เปเบฒโ€‹เป€เบซเบฑเบ™ profile เปเบฅเบฐโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹. เบกเบนเบ™เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบ”เป‰เบงเบเบเบฒเบ™เบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒเบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เปเบšเบšเบญเบฐเบ™เบธเบฅเบฑเบ (เบชเบนเบ‡เบเบงเปˆเบฒ) เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰
เบ•เบดเบ”เบ•เบฒเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

max-cse-path-length
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆ CSE เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

max-cse-insns
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ CSE เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ flushing. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
1000โ€‹.

ggc-min-expand
GCC เปƒเบŠเป‰เบ•เบปเบงเป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰
เบเปเบฒเบ™เบปเบ”เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ heap เบ‚เบญเบ‡เบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ‚เบฐเบซเบเบฒเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒ. Tuning เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก;
เบกเบฑเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 30% + 70% * (RAM/1GB) เบ—เบตเปˆเบกเบตเบ‚เบญเบšเป€เบ—เบดเบ‡เบ‚เบญเบ‡ 100% เป€เบกเบทเปˆเบญ RAM >= 1GB.
เบ–เป‰เบฒ "getrlimit" เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡ "RAM" เปเบกเปˆเบ™เบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡ RAM เบ•เบปเบงเบˆเบดเบ‡เปเบฅเบฐ
"RLIMIT_DATA" เบซเบผเบท "RLIMIT_AS". เบ–เป‰เบฒ GCC เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบดเบ”เป„เบฅเปˆ RAM เปƒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡
เป€เบงเบ—เบต, เบ‚เบญเบšเป€เบ‚เบ”เบ•เปˆเปเบฒเบ‚เบญเบ‡ 30% เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ™เบตเป‰เปเบฅเบฐ ggc-เบ™เบฒเบ—เบต-
เบ‚เบฐเปœเบฒเบ”เปƒเบซเบเปˆ เป€เบ–เบดเบ‡เบชเบนเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบเบฑเบšเบฅเบงเบšเบฅเบงเบกเป€เบ•เบฑเบกเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบ—เบธเบเป†เป‚เบญเบเบฒเบ”. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบŠเป‰เบฒเบ—เบตเปˆเบชเบธเบ”, เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging.

ggc-min-heapsize
เบ‚เบฐเปœเบฒเบ”เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบเบญเบ‡เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเป€เบฅเบตเปˆเบกเบฅเบปเบšเบเบงเบ™เบเบฒเบ™เป€เบเบฑเบš
เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ. เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ—เปเบฒเบญเบดเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบ heap เบ‚เบฐเบซเบเบฒเบเป‚เบ”เบ ggc-min-expand%
เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ ggc-min-heapsize. เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เปเบฅเบฐ
เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ™เป‰เบญเบเบเบงเปˆเบฒเบ‚เบญเบ‡ RAM/8, RLIMIT_RSS, เบซเบผเบทเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเบฎเบฑเบšเบ›เบฐเบเบฑเบ™.
เบงเปˆเบฒ RLIMIT_DATA เบซเบผเบท RLIMIT_AS เปเบกเปˆเบ™เบšเปเปˆเป€เบเบตเบ™, เปเบ•เปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบ•เปˆเปเบฒเบเบงเปˆเบฒ 4096.
(เบชเบตเปˆ megabytes) เปเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เป€เบ—เบดเบ‡เบ‚เบญเบ‡ 131072 (128 megabytes). เบ–เป‰เบฒ GCC เบšเปเปˆเบชเบฒเบกเบฒเบ”
เป€เบžเบทเปˆเบญเบ„เบดเบ”เป„เบฅเปˆ RAM เปƒเบ™เป€เบงเบ—เบตเบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡, เบ‚เบญเบšเป€เบ‚เบ”เบ•เปˆเปเบฒเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เบ›เบดเบ”เบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบฅเบฐ ggc-min-expand เป€เบ–เบดเบ‡เบชเบนเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบเบฑเบšเบฅเบงเบšเบฅเบงเบกเป€เบ•เบฑเบกเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบ—เบธเบเป†
เป‚เบญเบเบฒเบ”.

max-reload-search-insns
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบทเบ™เปƒเบซเบกเปˆเบ„เบงเบ™เบˆเบฐเป€เบšเบดเปˆเบ‡เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰
เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ„เปˆเบฒเปเบกเปˆเบ™ 100.

max-cselib-memory-locations
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ cselib เบ„เบงเบ™เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡.
เบเบฒเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เป€เบžเบตเปˆเบกโ€‹เบ‚เบถเป‰เบ™โ€‹เป‚เบ”เบโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบ”เบตเบโ€‹เบงเปˆเบฒโ€‹เป€เบฅเบฑเบโ€‹เบ™เป‰เบญเบโ€‹. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 500.

reorder-blocks-duplicate
reorder-blocks-duplicate-feedback
เปƒเบŠเป‰เป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡ reordering เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบžเบทเปˆเบญเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบชเบฒเบ‚เบฒ เบซเบผเบทเบชเบณเป€เบ™เบปเบฒเบฅเบฐเบซเบฑเบ”เบขเบนเปˆเบ›เบฒเบเบ—เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™. เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบŠเป‰เปเบฒเบเบฑเบ™เป€เบกเบทเปˆเบญเบกเบฑเบ™
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เปเบกเปˆเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ„เปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบ„เบนเบ™โ€‹เบ”เป‰เบงเบโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบ‚เบญเบ‡โ€‹
เป‚เบ”เบ”เป‚เบ”เบเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™เบˆเบธเบ”เบฎเป‰เบญเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.

เป„เบ”เป‰ reorder-block-duplicate-feedback เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบ„เปเบฒเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ
เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเบชเบนเบ‡เบเบงเปˆเบฒ reorder-block-duplicate เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ
เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบˆเบธเบ”เบฎเป‰เบญเบ™เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เบเบงเปˆเบฒ.

max-sched-ready-insns
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบžเป‰เบญเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบญเบญเบโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เบงเบ™โ€‹
เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹. เบเบฒเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒ
เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบซเบผเบฒเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบฒเบ”เบˆเบฐ
เบœเบปเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบžเบฝเบ‡โ€‹เป€เบฅเบฑเบโ€‹เบ™เป‰เบญเบโ€‹. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 100.

max-sched-region-blocks
เบˆเบณเบ™เบงเบ™เบ—เปˆเบญเบ™เป„เบกเป‰เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบ›เบฑเบ™ interblock
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

max-pipeline-region-blocks
เบˆเปเบฒ เบ™เบงเบ™ เบชเบนเบ‡ เบชเบธเบ” เบ‚เบญเบ‡ เบ•เบฑเบ™ เปƒเบ™ เบžเบฒเบ เบžเบทเป‰เบ™ เบ—เบตเปˆ เบˆเบฐ เป„เบ”เป‰ เบฎเบฑเบš เบเบฒเบ™ เบžเบด เบˆเบฒ เบฅเบฐ เบ™เบฒ เบชเปเบฒ เบฅเบฑเบš เบเบฒเบ™ เบ—เปเปˆ เปƒเบ™
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบฅเบทเบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 15.

max-sched-region-insns
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ insns เปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบš interblock
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 100.

max-pipeline-region-insns
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ insns เปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบ—เปเปˆเปƒเบ™
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบฅเบทเบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 200.

min-spec-prob
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ•เปเปˆเบฒเบชเบธเบ” (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™) เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบซเบฒเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบกเบฒเบ‚เบญเบ‡เบšเบฅเบฑเบญเบ interblock
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 40.

max-sched-extend-regions-iters
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบŠเป‰เบณเบœเปˆเบฒเบ™ CFG เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบžเบฒเบเบžเบทเป‰เบ™. เบ„เปˆเบฒเบ‚เบญเบ‡ 0 (the
default) เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฒเบเบžเบทเป‰เบ™.

max-sched-insn-conflict-delay
เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ‚เบญเบ‡เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เบชเบนเบ‡เบชเบธเบ”เบชเปเบฒเบฅเบฑเบš insn เบ—เบตเปˆเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 3.

sched-spec-prob-cutoff
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™ (เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบฎเป‰เบญเบ), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ
insns เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 40.

sched-spec-state-edge-prob-cutoff
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ•เปเปˆเบฒเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบšเบ•เป‰เบญเบ‡เบกเบตเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบกเบฑเบ™
เบ‚เป‰เบฒเบกเบกเบฑเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

sched-mem-true-dep-cost
เป„เบฅเบเบฐเบซเปˆเบฒเบ‡เปœเป‰เบญเบเบชเบธเบ” (เปƒเบ™เบฎเบญเบšเบงเบฝเบ™ CPU) เบฅเบฐเบซเบงเปˆเบฒเบ‡เบฎเป‰เบฒเบ™ เปเบฅเบฐ เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบ”เบฝเบงเบเบฑเบ™
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 1.

selsched-max-lookhead
เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เปœเป‰เบฒเบ•เปˆเบฒเบ‡เปœเป‰เบฒเบ•เบฒเบ‚เบญเบ‡เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบฅเบทเบญเบ. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเป€เบฅเบดเบ
เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 50.

selsched-max-sched-times
เบˆเบณเบ™เบงเบ™เบ„เบฑเป‰เบ‡เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เบณเปเบ™เบฐเบ™เบณเปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบทเบญเบ
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบตเบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ—เปเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

selsched-max-insns-to-rename
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™เบ›เปˆเบฝเบ™เบŠเบทเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบฅเบทเบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

sms-min-sc
เบ„เปˆเบฒเบ•เปเปˆเบฒเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ™เบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ swing modulo เบชเป‰เบฒเบ‡. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

max-last-value-rtl
เบ‚เบฐเบซเบ™เบฒเบ”เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบงเบฑเบ”เปเบ—เบเป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™ RTL เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™
เปƒเบ™เบ•เบปเบงเบœเบฐเบชเบปเบกเบœเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ pseudo เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™เบ™เบฑเป‰เบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10000.

max-combine-insns
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบœเบนเป‰เบชเบปเบกเบ—เบปเบš RTL เบžเบฐเบเบฒเบเบฒเบกเบชเบปเบกเบ—เบปเบš. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ„เปˆเบฒเปเบกเปˆเบ™ 2 เบขเบนเปˆเบ—เบตเปˆ - เบญเบˆ เปเบฅเบฐ 4 เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™.

integer-share-limit
เบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ™เป‰เบญเบเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบฎเปˆเบงเบกเบเบฑเบ™, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบกเบฑเบ™. เบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
เบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 256.

ssp-buffer-size
เบ‚เบฐเปœเบฒเบ”เบ•เปเบฒเปˆเบชเบธเบ”เบ‚เบญเบ‡ buffers (ie arrays) เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ stack smashing
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -fstack เบเบฒเบ™โ€‹เบ›เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰เบเปˆเบญเบ™ Ubuntu 10.10 เปเบกเปˆเบ™ "8". เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เปเบกเปˆเบ™ "4", เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบเบฒเบ™
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เป‰เบญเบ‡เบเบฑเบ™เป‚เบ”เบเบ•เบปเบงเบ›เป‰เบญเบ‡เบเบฑเบ™ stack.

min-size-for-stack-sharing
เบ‚เบฐเบซเบ™เบฒเบ”เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ stack slot เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบกเบต
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 32.

max-jump-thread-duplication-stmts
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบ–เบฐโ€‹เปเบซเบผเบ‡โ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบขเบนเปˆโ€‹เปƒเบ™ block เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบŠโ€‹เป‰โ€‹เปเบฒโ€‹เบเบฑเบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ
เบเบฐเบ—เบนเป‰เบเบฐเป‚เบ”เบ”.

max-fields-for-field-sensitive
เบˆเบณเบ™เบงเบ™เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ•เบปเบงเบŠเบตเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบชเบนเบ™เบชเบณเบฅเบฑเบš -O0 เปเบฅเบฐ -O1, เปเบฅเบฐ 100 เบชเบณ เบฅเบฑเบš -เบญเบช, -O2, เปเบฅเบฐ
-O3.

prefetch-latency
เบ„เบฒเบ”เบ„เบฐเป€เบ™เบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ prefetch
เบชเปเบฒเป€เบฅเบฑเบ”. เป„เบฅเบเบฐเบ—เบฒเบ‡เบ—เบตเปˆเป€เบญเบปเบฒเป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒเปเบกเปˆเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบเบฑเบšเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ™เบตเป‰.
เบเบฒเบ™เป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบซเบ™เป‰เบญเบเบฅเบปเบ‡เบเปˆเบญเบ™ (เป€เบšเบดเปˆเบ‡
เบžเป‰เบญเบกเป†เบเบฑเบ™-prefetches).

เบžเป‰เบญเบกเป†เบเบฑเบ™-prefetches
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ prefetches เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™.

l1-cache-line-size
เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ cache line เปƒเบ™ L1 cache, เปƒเบ™ bytes.

l1-cache-size
เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ L1 cache, เปƒเบ™เบเบดเป‚เบฅเป„เบš.

l2-cache-size
เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ L2 cache, เปƒเบ™เบเบดเป‚เบฅเป„เบš.

min-insn-to-prefetch-ratio
เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ prefetches
เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ” prefetching เปƒเบ™ loop เป„เบ”เป‰.

prefetch-min-insn-to-mem-เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™
เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบฅเปˆเบงเบ‡เปœเป‰เบฒเปƒเบ™ loop.

use-canonical-types
เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ compiler เบ„เบงเบ™เปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบ›เบฐเป€เบžเบ” "canonical". เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ™เบตเป‰
เบ„เบงเบ™เป€เบ›เบฑเบ™ 1 เบชเบฐเป€เปเบต, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เบเบปเบ™เป„เบเบžเบฒเบเปƒเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบงเปˆเบฒเปƒเบ™เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš
เบ›เบฐเป€เบžเบ”เปƒเบ™ C++ เปเบฅเบฐ Objective-C++. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเปเบกเบ‡เป„เบกเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบ›เบฐเป€เบžเบ” canonical เปเบกเปˆเบ™
เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™ 0 เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบ›เบฐเป€เบžเบ” canonical.

switch-conversion-max-branch-ratio
เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ Switch เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡เบญเบฒเป€เบฃเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ
switch-conversion-max-branch-ratio เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบชเบฒเบ‚เบฒเปƒเบ™เบชเบฐเบซเบผเบฑเบš.

max-partial-antic-length
เบ„เบงเบฒเบกเบเบฒเบงเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบŠเบธเบ”เป€เบเบปเปˆเบฒเปเบเปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เบšเบฒเบ‡เบชเปˆเบงเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™ (-ftre-pre) เป€เบกเบทเปˆเบญ optimizing เบขเบนเปˆ -O3 เปเบฅเบฐเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.
เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เบซเบ™เบตเป„เบ”เป‰, เบเบฒเบ™เปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš
เป€เบ„เบทเปˆเบญเบ‡. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบŠเบธเบ”เบ—เบตเปˆเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆ,
เป€เบŠเบดเปˆเบ‡เบ›เป‰เบญเบ‡เบเบฑเบ™เบžเบถเบ”เบ•เบดเบเบณเบเบฒเบ™เปœเบต. เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบ‚เบญเบ‡ 0 เบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบšเปเปˆเบˆเปเบฒเบเบฑเบ”.

sccvn-max-scc-size
เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡ (SCC) เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™ SCCVN. เบ–เป‰เบฒ
เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰เบ–เบทเบเบ•เบต, เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ SCCVN เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปเบฅเบฐ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบถเป‰เบ™เบขเบนเปˆเบเบฑเบšเบกเบฑเบ™เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ‚เบฐเปœเบฒเบ” SCC เบชเบนเบ‡เบชเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
10000โ€‹.

sccvn-max-alias-queries-per-access
เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบก alias-oracle เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเบฎเป‰เบฒเบ™เบ„เป‰เบฒ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบกเบปเบ™โ€‹เบ•เบตโ€‹เบเบฒเบ™โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบเบปเบโ€‹เป€เบฅเบตเบโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹เบซเบผเบทโ€‹
เบฎเป‰เบฒเบ™เบ„เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบŠเปเป‰เบฒเบŠเป‰เบญเบ™. เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเปเบกเปˆเบ™ algorithm
เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบฎเป‰เบฒเบ™โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹.
เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบชเบนเบ‡เบชเบธเบ”เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เปเบกเปˆเบ™ 1000.

ira-max-loops-num
IRA เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™
loops เบซเบผเบฒเบเบเบงเปˆเบฒเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปƒเบซเป‰เป‚เบ”เบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡
loops เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เป€เบ›เบฑเบ™เบžเบฒเบเบžเบทเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบฒเบเบžเบทเป‰เบ™.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ 100.

ira-max-conflict-table-size
เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ IRA เปƒเบŠเป‰ algorithm เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™เป€เบžเบทเปˆเบญเบšเบตเบšเบญเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡,
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบ–เป‰เบฒ
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเบซเบผเบฒเบเบเบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ™ MB เบ—เบตเปˆเบกเบญเบšเปƒเบซเป‰เป‚เบ”เบเบ™เบตเป‰
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบ—เบฐเบšเบฝเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป„เบงเบเบงเปˆเบฒ, เบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบฅเบฐเบ•เปˆเปเบฒเบเบงเปˆเบฒ.
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡ pseudo-register.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ 2000.

ira-loop-reserved-regs
IRA เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเป€เบกเบตเบ™เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™เปƒเบ™ loops เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ
เป€เบžเบทเปˆเบญเบเป‰เบฒเบ loop invariant (เป€เบšเบดเปˆเบ‡ -O3). เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบกเบตเบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš
เบšเบฒเบ‡เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบญเบทเปˆเบ™เปเบกเปˆเบ™เปƒเบซเป‰เป‚เบ”เบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ 2, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบกเบนเบ™เบ„เปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบˆเบฒเบเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ.

lra-inheritance-ebb-probability-cutoff
LRA เบžเบฐเบเบฒเบเบฒเบกเปƒเบŠเป‰เบ„เบทเบ™เบ„เปˆเบฒเบ—เบตเปˆเป‚เบซเบผเบ”เบ„เบทเบ™เปƒเปเปˆเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เปƒเบ™ insns เบ•เปเปˆเบกเบฒ. เบ™เบตเป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบกเปเบฅเบฐเบ”เบปเบ. EBB เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบžเบฒเบเบžเบทเป‰เบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบเบณเบ™เบปเบ”เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปœเป‰เบญเบเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ•เบปเบเบœเปˆเบฒเบ™เบ‚เบญเบšเปƒเบ™
เป€เบ›เบตเป€เบŠเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบก BB เป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบชเบทเบšเบ—เบญเบ” EBB เปƒเบ™ LRA. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ 40. เบ„เปˆเบฒเป„เบ”เป‰เบ–เบทเบเป€เบฅเบทเบญเบเบˆเบฒเบเบเบฒเบ™เปเบฅเปˆเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ‚เบญเบ‡ SPEC2000 เปƒเบ™ x86-64.

loop-invariant-max-bbs-in-loop
Loop invariant motion เบชเบฒเบกเบฒเบ”เบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡เบซเบผเบฒเบ, เบ—เบฑเบ‡เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเปƒเบ™
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เป€เบงโ€‹เบฅเบฒโ€‹, เบกเบต loops เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบซเบผเบฒเบโ€‹. Loops เบเบฑเบšเบซเบผเบฒเบ
เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเปˆเบงเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบˆเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบšเบš loop invariant
เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ 1000 เบชเปเบฒเบฅเบฑเบš -O1 เปเบฅเบฐ 10000
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -O2 เปเบฅเบฐเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

loop-max-datarefs-for-datadeps
เบเบฒเบ™เบชเป‰เบฒเบ‡ dapendencies เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบฅเบฒเบ„เบฒเปเบžเบ‡เบชเปเบฒเบฅเบฑเบš loops เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰
เบˆเปเบฒเบเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™ loops เบ—เบตเปˆเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™
เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป€เบญเบทเปˆเบญเบเบญเบตเบ‡. loops เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบเบฒเบ™เบ‚เบทเป‰เบ™เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ loop. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 1000.

max-vartrack-size
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ hash เป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบเบตเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ•เบปเบงโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ—เบตเปˆโ€‹
เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบฅเบญเบ‡เปƒเบซเบกเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบกเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบ
เบเบฒเบ™เป€เบญเบปเบฒ inss เบ”เบตเบšเบฑเบเบ—เบฑเบ‡เปเบปเบ”เบญเบญเบเบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™. เบ–เป‰เบฒเป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบต
debug insns, เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก var เปเบกเปˆเบ™เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™.
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบ›เบฑเบ™เบชเบนเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเบเบฑเบ”.

max-vartrack-expr-depth
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบ”เบฑเบš recursion เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเปเบœเบ™เบ—เบตเปˆเบŠเบทเปˆเบ•เบปเบงเปเบ›เบซเบผเบท
debug temporaries เบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ„เบธเบ™เบ„เปˆเบฒ. เบ™เบตเป‰เปƒเบŠเป‰เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฒเบ™เบ„เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเบ„เบปเบšเบ–เป‰เบงเบ™. เบ–เป‰เบฒเบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เป„เบงเป‰เบ•เปเปˆเบฒเป€เบเบตเบ™เป„เบ›, เบ„เปˆเบฒเบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบญเบญเบเปเบกเปˆเบ™
เบกเบตเบขเบนเปˆเปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เปƒเบ™เบ‚เปเป‰เบกเบนเบ™ debug เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰;
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบชเบนเบ‡เบเบงเปˆเบฒเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบŠเบญเบเบซเบฒเบเบฒเบ™เบ”เบตเบšเบฑเบเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบ
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ, เปเบ•เปˆเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเปเบฅเบฐเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบญเบฒเบ”เบˆเบฐเป€เบ•เบตเบšเป‚เบ•. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 12.

min-nondebug-insn-uid
เปƒเบŠเป‰ uids เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš insns nondebug. เบ‚เบญเบšเป€เบ‚เบ”เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™เบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบš debug insns เบชเป‰เบฒเบ‡เป‚เบ”เบ
-fvar-tracking-assignments, เปเบ•เปˆ debug insns เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบš (เบšเปเปˆเบ—เบฑเบšเบŠเป‰เบญเบ™เบเบฑเบ™) uids เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡
เบกเบฑเบ™เบ–เป‰เบฒเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบซเบกเบปเบ”เปเบฅเป‰เบง.

ipa-sra-ptr-growth-factor
IPA-SRA เปเบ—เบ™เบ—เบตเปˆเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปƒเบซเบกเปˆเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เป€เบกเบทเปˆเบญเบ‚เบฐเปœเบฒเบ”เบชเบฐเบชเบปเบกเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เปœเป‰เบญเบเบเบงเปˆเบฒ เบซเบผเบทเป€เบ—เบปเปˆเบฒเบเบฑเบš ipa-sra-ptr-growth-factor เป€เบงเบฅเบฒ
เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

sra-max-scalarization-size-Ospeed
sra-max-scalarization-size-Osize
เบ—เบฑเบ‡เบชเบญเบ‡ Scalar Reduction of Aggregates passes (SRA เปเบฅเบฐ IPA-SRA) เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบ—เบปเบ”เปเบ—เบ™
เบžเบฒเบเบชเปˆเบงเบ™เบชเบฐเป€เบเบฑเบ”เป€เบ‡เบดเบ™เบ‚เบญเบ‡เบœเบปเบ™เบฅเบงเบกเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›เบชเบฐเป€เบเบฑเบ”เป€เบ‡เบดเบ™เป€เบญเบเบฐเบฅเบฒเบ”. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ‚เบฐเบซเบ™เบฒเบ”เบชเบนเบ‡เบชเบธเบ”, เปƒเบ™เบซเบ™เปˆเบงเบเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™
เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป„เบง (sra-max-scalarization-size-
เบ„เบงเบฒเบกเป„เบง) เบซเบผเบทโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ” (sra-max-scalarization-size-Osize) เบ•เบฒเบก เบฅเบณ เบ”เบฑเบš.

tm-max-aggregate-size
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ› thread-local เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰
เบฅเบฐเบšเบธเบ‚เบฐเปœเบฒเบ”เปƒเบ™เป„เบšเบ•เปŒ เบซเบผเบฑเบ‡เบˆเบฒเบเบ•เบปเบงเปเบ›เบ•เปˆเบฒเบ‡เป†เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบ”เป‰เบงเบเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบšเบšเบฑเบ™เบ—เบถเบ / เบŸเบทเป‰เบ™เบŸเบนเบ„เบนเปˆเบฅเปเบฒเบ”เบฑเบšเบฅเบฐเบซเบฑเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ™เบณเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ™เบณเปƒเบŠเป‰ -fgnu-tm.

graphite-max-nb-scop-params
เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบš exponential เปƒเบ™เบงเบปเบ‡ Graphite transforms, เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปƒเบ™เบชเปˆเบงเบ™เบ„เบงเบšเบ„เบธเบกเบ„เบปเบ‡เบ—เบตเปˆ (SCoP) เบ–เบทเบเบœเบนเบเบกเบฑเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™. เบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบ„เปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก เปเบฅเบฐเบเบณเบ™เบปเบ”
เบ™เบญเบ SCoP เปเบกเปˆเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบญเบ‡ SCoP.

graphite-max-bbs-per-function
เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบš exponential เปƒเบ™เบเบฒเบ™เบเบงเบ”เบซเบฒ SCoPs, เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป‚เบ”เบ Graphite เปเบกเปˆเบ™ bounded. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 100 เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™.

loop-block-tile-size
Loop blocking เบซเบผเบท strip mining transforms, เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ”เป‰เบงเบ -floop-block or
-floop-strip-mine, strip mine เปเบ•เปˆเบฅเบฐ loop เปƒเบ™ loop เบฎเบฑเบ‡เป‚เบ”เบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡
เบŠเป‰เบณ. เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เปเบ–เบšเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ loop-block-tile-size
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 51 เบŠเป‰เบณ.

loop-unroll-jam-size
เบฅเบฐเบšเบธเบ›เบฑเบ”เป„เบˆ unroll เบชเปเบฒเบฅเบฑเบš -floop-unroll-and- jam เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบกเปˆเบ™ 4.

loop-unroll-jam-depth
เบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบˆเบฐ unrolled (เบ™เบฑเบšเบˆเบฒเบ loop เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”) เบชเปเบฒเบฅเบฑเบš
-floop-unroll-and- jam. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

ipa-cp-value-list-size
IPA-CP เบžเบฐเบเบฒเบเบฒเบกเบ•เบดเบ”เบ•เบฒเบกเบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบฑเบ‡เปเบปเบ” เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เปœเบถเปˆเบ‡
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบžเบงเบเบกเบฑเบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ” devirtualization. ipa-cp-value-
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฒเบเบเบฒเบ™ เปเบกเปˆเบ™เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบฑเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เปเปˆเบซเบ™เบถเปˆเบ‡เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™.

ipa-cp-eval-threshold
IPA-CP เบ„เบดเบ”เป„เบฅเปˆเบ„เบฐเปเบ™เบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ‚เบญเบ‡ cloning heuristics เบเปเบฒเป„เบฅเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”
เป‚เบญเบเบฒเบ” cloning เบ—เบตเปˆเบกเบตเบ„เบฐเปเบ™เบ™เป€เบเบตเบ™ ipa-cp-eval-threshold.

ipa-cp-recursion-เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”
เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เป€เบ›เบตเป€เบŠเบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบ—เบตเปˆ recursive เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบ›เบฐเป€เบกเบตเบ™
เบชเปเบฒเบฅเบฑเบš cloning.

ipa-cp-single-call-เบฅเบปเบ‡เป‚เบ—เบ”
เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เป€เบ›เบตเป€เบŠเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เป‚เบ—เบ”เบฝเบงเป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบญเบทเปˆเบ™เบˆเบฐ
เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเป€เบกเบตเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ cloning.

ipa-max-agg-เบฅเบฒเบเบเบฒเบ™
IPA-CP เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ—เบธเบเปเบฒเบ‚เบญเบ‡เบ„เปˆเบฒ scalar เบ—เบตเปˆเบœเปˆเบฒเบ™เปƒเบ™
เบฅเบงเบก. ipa-max-agg-เบฅเบฒเบเบเบฒเบ™ เบ„เบงเบšเบ„เบธเบกเบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ•เปเปˆเบซเบ™เบถเปˆเบ‡
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต.

ipa-cp-loop-hint-bonus
เป€เบกเบทเปˆเบญ IPA-CP เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบœเบนเป‰เบชเบฐเบซเบกเบฑเบ cloning เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบˆเปเบฒเบ™เบงเบ™
iterations เบ‚เบญเบ‡ loop เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ, เบกเบฑเบ™เป€เบžเบตเปˆเบกเป‚เบšเบ™เบฑเบ”เบ‚เบญเบ‡ ipa-cp-loop-hint-bonus เบเบฒเบ™
เบ„เบฐเปเบ™เบ™เบœเบปเบ™เบเบณเป„เบฅเบ‚เบญเบ‡เบœเบนเป‰เบชเบฐเปเบฑเบ.

ipa-cp-array-index-hint-bonus
เป€เบกเบทเปˆเบญ IPA-CP เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบœเบนเป‰เบชเบฐเบซเบกเบฑเบ cloning เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ”เบฑเบ”เบชเบฐเบ™เบตเบ‚เบญเบ‡เบญเบฒเป€เบฃ
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ, เบกเบฑเบ™เป€เบžเบตเปˆเบกเป‚เบšเบ™เบฑเบ”เบ‚เบญเบ‡ ipa-cp-array-index-hint-bonus เบเบฒเบ™
เบ„เบฐเปเบ™เบ™เบœเบปเบ™เบเบณเป„เบฅเบ‚เบญเบ‡เบœเบนเป‰เบชเบฐเปเบฑเบ.

ipa-max-aa-เบ‚เบฑเป‰เบ™เบ•เบญเบ™
เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบ‚เบญเบ‡โ€‹เบญเบปเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹, IPA-CP เบˆเป‰เบฒเบ‡โ€‹เบ‡เบฒเบ™โ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบ™เบฒเบกโ€‹เปเบเบ‡โ€‹เป€เบžเบทเปˆเบญโ€‹
เบ•เบดเบ”เบ•เบฒเบกเบ„เปˆเบฒเบ—เบตเปˆเบŠเบตเป‰เป„เบ›เป‚เบ”เบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบŸเบฑเบ‡เบŠเบฑเบ™. เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›
เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹, เบกเบฑเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบ–เบดเบ‡โ€‹เปเบฅเบฐโ€‹เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ” clobbered เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹
เบเบฒเบ™เบเบงเบ”เบชเบญเบš ipa-max-aa-เบ‚เบฑเป‰เบ™เบ•เบญเบ™ เบ‚เปเป‰เบ„เบงเบฒเบกเปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ.

lto-partitions
เบฅเบฐเบšเบธเบˆเปเบฒเบ™เบงเบ™เบžเบฒเบ—เบดเบŠเบฑเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบœเบฐเบฅเบดเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก WHOPR. เป„เบ”เป‰
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ„เบงเบ™เป€เบเบตเบ™เบˆเปเบฒเบ™เบงเบ™ CPU เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 32.

lto-minpartition
เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบชเบณเบฅเบฑเบš WHOPR (เบ•เบฒเบกเบ„เบณเปเบ™เบฐเบ™เบณเบ—เบตเปˆเบ„เบฒเบ”เบ„เบฐเป€เบ™). เบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™
เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เปเบเบโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เบซเบผเบฒเบโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบซเบผเบฒเบโ€‹เป€เบเบตเบ™โ€‹เป„เบ›โ€‹.

cxx-max-namespaces-for-diagnostic-help
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡ namespaces เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ›เบถเบโ€‹เบชเบฒโ€‹เบซเบฒโ€‹เบฅเบทโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบŠเบทเปˆ C++โ€‹
เบฅเบปเป‰เบกเป€เบซเบฅเบงเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 1000.

sink-frequency-threshold
เบ„เบงเบฒเบกเบ–เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡ (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™) เบ‚เบญเบ‡เบ•เบฑเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบ•เบฑเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบˆเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบˆเบปเบกเบฅเบปเบ‡เบ‚เบญเบ‡ a
เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™. เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ‚เบทเป‰เบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 75. เบเบฒเบ™เบ›เบฑเบšเบ„เปˆเบฒเบ—เบฒเบ‡เบšเบงเบเป€เบฅเบฑเบเบ™เป‰เบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบกเบต
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบเป‰เบญเบ™เบงเปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบกเบตเบเปเบฒเป„เบฅเบซเบผเบฒเบเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบปเบกเบฅเบปเบ‡.

max-stores-to-sink
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เบนเปˆโ€‹เบฎเป‰เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบ sunkโ€‹. เบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ 0 เบ–เป‰เบฒ
เบ—เบฑเบ‡ vectorization (-ftree-vectorize) เบซเบผเบท if-conversion (-ftree-loop-if-convert)
เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™-เป€เบŠเบทเป‰เบญเบŠเบฒเบ”
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆเปƒเบ™เบฎเป‰เบฒเบ™เบ„เป‰เบฒ. เบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 1 เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰,
เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ 0. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš - เป„เบง.

case-values-threshold
เบˆเปเบฒเบ™เบงเบ™เบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป‚เบ”เบ”
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเป‰เบ™เป„เบกเป‰เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบ–เป‰เบฒเบ„เปˆเบฒเปเบกเปˆเบ™ 0, เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป€เบ„เบทเปˆเบญเบ‡. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0.

tree-reassoc-width
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰ reassociated.
เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰ overrides heuristics เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบšเปเปˆเบกเบต
เบ„เปˆเบฒเบชเบนเบ™.

sched-pressure-algorithm
เป€เบฅเบทเบญเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ‚เบญเบ‡ -fsched-เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™. เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ 1
เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปเบฅเบฐเป€เบ›เบฑเบ™เปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฒเบ
เบ–เบทเบเบชเบฑเปˆเบ‡เบ„เบทเบ™. Algorithm 2 เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบกเบฅเบฐเบซเบงเปˆเบฒเบ‡
เบงเบดเบ—เบตเบเบฒเบ™เบญเบฐเบ™เบธเบฅเบฑเบเบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ algorithm 1 เปเบฅเบฐเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบฎเบธเบเบฎเบฒเบ™
เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบกเบฑเบ™เบ‚เบทเป‰เบ™เบเบฑเบšเบซเบผเบฒเบเบ‚เบทเป‰เบ™เบเบฑเบšเบเบฒเบ™เบกเบต
เป€เบญเบเบฐเบชเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เป€เบšเบดเปˆเบ‡ haifa-sched.c
เปƒเบ™เปเบซเบผเปˆเบ‡ GCC เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

max-slsr-cand-scan
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ—เบตเปˆเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒ a
เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เป€เบชเบฑเป‰เบ™เบŠเบทเปˆเปƒเบซเบกเปˆ.

asan-เบ—เบปเปˆเบงเป‚เบฅเบ
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบฅเบปเป‰เบ™เบšเบฑเบšเป€เบŸเบตเบชเบณเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบปเปˆเบงเป‚เบฅเบ. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -fsanitize=เบ—เบตเปˆเบขเบนเปˆ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบ—เบปเปˆเบงเป‚เบฅเบ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบงเบฑเบ”เบ–เบธ --param asan-globals=0.

asan-stack
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบฅเบปเป‰เบ™เบšเบฑเบšเป€เบŸเบตเบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธ stack. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเปƒเบŠเป‰-fsanitize=เบ—เบตเปˆเบขเบนเปˆ. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ stack
--param asan-stack=0 เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

asan-instrument-reads
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบฅเบปเป‰เบ™เบšเบฑเบšเป€เบŸเบตเบชเบณเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเปƒเบŠเป‰ -fsanitize=เบ—เบตเปˆเบขเบนเปˆ. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ›เบปเบโ€‹เบ›เบฑเบโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹ --param asan-instrument-reads=0.

asan-instrument-writes
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบฅเบปเป‰เบ™เบšเบฑเบšเป€เบŸเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเปƒเบŠเป‰ -fsanitize=เบ—เบตเปˆเบขเบนเปˆ. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ›เบปเบโ€‹เบ›เบฑเบโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹ --param asan-instrument-writes=0 เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

asan-memintrin
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบง. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเปƒเบŠเป‰ -fsanitize=เบ—เบตเปˆเบขเบนเปˆ. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เปƒเบ™เบ•เบปเบง
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ --param asan-memintrin=0.

asan-use-after-return
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบซเบฒเบเบฒเบ™เปƒเบŠเป‰เบซเบผเบฑเบ‡เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒ. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเปƒเบŠเป‰ -fsanitize=เบ—เบตเปˆเบขเบนเปˆ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบซเบผเบฑเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹ --param asan-use-after-return=0.

asan-instrumentation-with-call-threshold
เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปเบกเปˆเบ™โ€‹เบซเบผเบฒเบโ€‹เบเบงเปˆเบฒโ€‹เบซเบผเบทโ€‹เป€เบ—เบปเปˆเบฒโ€‹เบ—เบฝเบกโ€‹เบเบฑเบšโ€‹
เป€เบšเบตเป‚เบ—เบ™เบตเป‰, เปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เบเบฑเบšเปเบ—เบ™เบเบฒเบ™เบเบงเบ”เบเบฒเปƒเบ™เปเบ–เบง. เป€เบŠเบฑเปˆเบ™: เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบฅเบฐเบซเบฑเบ” inline
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ --param asan-instrumentation-with-call-threshold=0.

chkp-max-ctor-size
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ Pointer Bounds Checker เบญเบฒเบ”เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเปเบฅเบฐ
เป€เบžเบตเปˆเบกเบ—เบฐเบงเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš -O1 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เบ™เบตเป‰
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ nubmer เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เปƒเบ™เบ•เบปเบงเบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เบฝเบง.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 5000.

max-fsm-thread-path-insns
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเปเบฒโ€‹เป€เบ™เบปเบฒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบŠโ€‹เป‰โ€‹เปเบฒโ€‹เบเบฑเบ™ blocks เปƒเบ™โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฐเบ—เบนเป‰เบเบฐเป‚เบ”เบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 100.

max-fsm-thread-length
เบˆเบณเบ™เบงเบ™เบ—เปˆเบญเบ™เป„เบกเป‰เบ‚เบฑเป‰เบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เบฅเบฑเบ”เบˆเบณเบเบฑเบ” automaton jump thread. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

max-fsm-thread-paths
เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฐเบ—เบนเป‰เบเบฐเป‚เบ”เบ”เปƒเปเปˆเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบšเบšเบเบณเบ™เบปเบ”.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 50.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก เป„เบ”เป‰ เป‚เบ›เป€เบˆเบฑเบเป€เบ•เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบก C preprocessor, เป€เบŠเบดเปˆเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เป„เบŸเบฅโ€‹เปŒ C source เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบˆเบดเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -E เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบฎเบฑเบ”เป„เบ”เป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™. เบšเบฒเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบžเบฝเบ‡เปเบ•เปˆเบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš -E เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เบœเบฐเบฅเบดเบ” preprocessor เป€เบ›เบฑเบ™
เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบˆเบดเบ‡.

-Wpโ€‹,เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ -Wpโ€‹,เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบžเบทเปˆเบญเบ‚เป‰เบฒเบกเป„เบ”เป€เบงเบต compiler เปเบฅเบฐเบœเปˆเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป‚เบ”เบโ€‹เบเบปเบ‡โ€‹เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹
เบเบฑเบš preprocessor เป„เบ”เป‰. เบ–เป‰เบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”, เบกเบฑเบ™เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบขเบนเปˆเบ—เบตเปˆ
เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”. เบขเปˆเบฒเบ‡โ€‹เปƒเบ”โ€‹เบเปโ€‹เบ•เบฒเบกโ€‹, เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ”เบฑเบ”โ€‹เปเบเป‰โ€‹, เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบ•เบตโ€‹เบฅเบฒโ€‹เบ„เบฒโ€‹เป‚เบ”เบโ€‹
เป„เบ”เป€เบงเบต compiler เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ preprocessor, เปเบฅเบฐ -Wp เบšเบฑเบ‡เบ„เบฑเบš bypasses
เป„เบฅเบเบฐเบ™เบตเป‰. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป‚เบ”เบเบเบปเบ‡เบ‚เบญเบ‡ preprocessor เปเบกเปˆเบ™ undocumented เปเบฅเบฐเบ‚เบถเป‰เบ™เบเบฑเบš
เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เปˆเบฒเบ™เบ„เบงเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เปƒเบŠเป‰ -Wp เปเบฅเบฐเปƒเบซเป‰เบ„เบปเบ™เบ‚เบฑเบšเบฅเบปเบ”เบˆเบฑเบ”เบเบฒเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ—เบ™.

- เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Xpre เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบœเปˆเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบš preprocessor เป„เบ”เป‰. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ™เบตเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบฅเบฐโ€‹เบšเบปเบš -
เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™เบ—เบตเปˆ GCC เบšเปเปˆเบฎเบฑเบšเบฎเบนเป‰.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ - เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Xpre
เบชเบญเบ‡เบ„เบฑเป‰เบ‡, เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

-no-integrated-cpp
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ preprocessing เป€เบ›เบฑเบ™ pass เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบšเบฅเบงเบก. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
preprocessing เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบฅเบงเบกเบ‚เบญเบ‡ input tokenization เปเบฅเบฐ parsing. เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰, เบžเบฒเบชเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก (cc1, cc1plus, เบซเบผเบท cc1obj เบชเปเบฒเบฅเบฑเบš C, C++,
เปเบฅเบฐ Objective-C, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš) เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™เบชเบญเบ‡เบ„เบฑเป‰เบ‡, เบ„เบฑเป‰เบ‡เบ”เบฝเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เปเบฅเบฐเบ„เบฑเป‰เบ‡เบ”เบฝเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบˆเบดเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™ preprocessed. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”
เป‚เบ”เบเบชเบปเบกเบ—เบปเบšเบเบฑเบš -B or - เบซเปเปˆ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธ preprocessor เบชเบฐโ€‹เบซเบผเบฑเบšโ€‹เบซเบผเบทโ€‹
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เปเบซเบผเปˆเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ preprocessing เบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐ
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

-D เบŠเบทเปˆ
เบเบณเบ™เบปเบ”เบฅเปˆเบงเบ‡เปœเป‰เบฒ เบŠเบทเปˆ เป€เบ›เบฑเบ™เบกเบฐเบซเบฒเบžเบฒเบ, เบกเบตเบ™เบดเบเบฒเบก 1.

-D เบŠเบทเปˆ=เบ„เปเบฒเบ™เบดเบเบฒเบก
เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ เบ„เปเบฒเบ™เบดเบเบฒเบก เปเบกเปˆเบ™ tokenized เปเบฅเบฐเบ›เบธเบ‡เปเบ•เปˆเบ‡เป€เบ›เบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ›เบฐเบเบปเบ”เบงเปˆเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเป„เบฅเบเบฐเบชเบฒเบกเปƒเบ™ a #เบเปเบฒเบ™เบปเบ” เบ„เปเบฒเบชเบฑเปˆเบ‡. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ„เปเบฒเบ™เบดเบเบฒเบกเบˆเบฐเป€เบ›เบฑเบ™
เบซเบเปเป‰เบ”เป‰เบงเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปเบ–เบงเปƒเปเปˆเบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เป€เบญเบตเป‰เบ™ preprocessor เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ shell เบซเบผเบท shell, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™
เป€เบžเบทเปˆเบญเปƒเบŠเป‰ syntax เบงเบปเบ‡เบขเบทเบกเบ‚เบญเบ‡ shell เป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เป€เบŠเบฑเปˆเบ™เบŠเปˆเบญเบ‡เบ—เบตเปˆเบกเบต a
เบ„เบงเบฒเบกเบซเบกเบฒเบเปƒเบ™ syntax เบ‚เบญเบ‡ shell.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ” macro เบ„เป‰เบฒเบเบ„เบทเบŸเบฑเบ‡เบŠเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เบ‚เบฝเบ™ argument เบ‚เบญเบ‡เบกเบฑเบ™
เบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบกเบตเบงเบปเบ‡เป€เบฅเบฑเบšเบญเป‰เบญเบกเบ‚เป‰เบฒเบ‡เบเปˆเบญเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเป€เบ—เบปเปˆเบฒเบเบฑเบš (เบ–เป‰เบฒเบกเบต). เบงเบปเบ‡เป€เบฅเบฑเบšเปเบกเปˆเบ™
เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเปเบเบฐเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบเบฑเบš sh เปเบฅเบฐ csh,
-D'เบŠเบทเปˆ(เป‚เบ•เป‰เบ–เบฝเบ‡...)=เบ„เปเบฒเบ™เบดเบเบฒเบก' เบงเบฝเบเบ‡เบฒเบ™.

-D เปเบฅเบฐ -U เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹. เบ—เบฑเบ‡เปเบปเบ”
- เป„เบญเบกเบฒเป‚เบ„เบฃ เป€เบญเบเบฐเบชเบฒเบ™ เปเบฅเบฐ - เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹ เป€เบญเบเบฐเบชเบฒเบ™ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ -D เปเบฅเบฐ -U เบ•เบปเบงเป€เบฅเบทเบญเบ

-U เบŠเบทเปˆ
เบเบปเบเป€เบฅเบตเบเบ„เปเบฒเบ™เบดเบเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เบญเบ‡ เบŠเบทเปˆ, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบซเบผเบทเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบเบฑเบš a -D เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-undef
เบขเปˆเบฒเบเบณเบ™เบปเบ”เบกเบฒเป‚เบ„เบฃเบชเบฐเป€เบžเบฒเบฐเบฅเบฐเบšเบปเบš เบซเบผเบท GCC เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เป†เบฅเปˆเบงเบ‡เปœเป‰เบฒ. เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒ
เบกเบฐเบซเบฒเบžเบฒเบเบเบฑเบ‡เบ„เบปเบ‡เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

-I dir
เป€เบžเบตเปˆเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต dir เป„เบ›เบซเบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒ header.
เบฅเบฒเบเบŠเบทเปˆเป‚เบ”เบ -I เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ›เบฐเบเบญเบšเบกเบตเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต.
เบ–เป‰เบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต dir เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ›เบฐเบเบญเบšเบกเบตเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เบ„เบปเป‰เบ™เบซเบฒเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบฅเบฐเบšเบปเบšเปเบฅเบฐเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบžเบดเป€เบชเบ”
เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบšเปเปˆเป„เบ”เป‰เบžเปˆเบฒเบเปเบžเป‰. เบ–เป‰เบฒ dir เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ "=", เบˆเบฒเบเบ™เบฑเป‰เบ™ "=" เบˆเบฐเป€เบ›เบฑเบ™
เปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ sysroot; เป€เบšเบดเปˆเบ‡ --sysroot เปเบฅเบฐ -isysroot.

-o เป€เบญเบเบฐเบชเบฒเบ™
เบ‚เบฝเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบชเปˆ เป€เบญเบเบฐเบชเบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบฅเบฐเบšเบธ เป€เบญเบเบฐเบชเบฒเบ™ เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบš cpp. gcc เบกเบตเบเบฒเบ™เบ•เบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡,
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ -o เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”.

- เบเบฒ
เป€เบ›เบตเบ”โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เบตเป‰
is - เบ„เปเบฒเป€เบซเบฑเบ™, -Wtrigraphs, -Wmultichar เปเบฅเบฐเบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบกเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ” a
เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเปƒเบ™ "#if" เบชเบฐเปเบ”เบ‡เบญเบญเบ. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบซเบผเบฒเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ‚เบญเบ‡ preprocessor
เป€เบ›เบตเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เปเบฅเบฐเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบ„เบงเบšเบ„เบธเบกเบžเบงเบเบกเบฑเบ™.

- เบ„เปเบฒเป€เบซเบฑเบ™
- เบ„เปเบฒเป€เบซเบฑเบ™
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบฅเบณเบ”เบฑเบšเบ„เบณเป€เบซเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ /* เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ a /* เบ„เปเบฒเป€เบซเบฑเบ™, เบซเบผเบทเบ—เบธเบเบ„เบฑเป‰เบ‡ a
backslash-newline เบ›เบฐเบเบปเบ”เบขเบนเปˆเปƒเบ™ a // เบ„เปเบฒเป€เบซเบฑเบ™. (เบ—เบฑเบ‡เบชเบญเบ‡เบฎเบนเบšเปเบšเบšเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ”เบฝเบงเบเบฑเบ™.)

-Wtrigraphs
trigraphs เบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ
trigraph เบ—เบตเปˆเบˆเบฐเบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เป€เบชเบฑเป‰เบ™เปƒเบซเบกเปˆเบซเบ™เบต (??/ เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™) เบชเบฒเบกเบฒเบ”, เป‚เบ”เบ
เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเปˆเบญเบ™เบ—เบตเปˆเบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบผเบทเบชเบดเป‰เบ™เบชเบธเบ”. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบžเบฝเบ‡เปเบ•เปˆ trigraphs เบ—เบตเปˆเบˆเบฐเบ›เบฐเบเบญเบš
เปเบ–เบงเปƒเปเปˆเบ—เบตเปˆเบซเบผเบปเบšเปœเบตเบญเบญเบเบกเบฒ เบœเบฐเบฅเบดเบ”เบ„เบณเป€เบ•เบทเบญเบ™เบžเบฒเบเปƒเบ™เบ„เบณเป€เบซเบฑเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบ - เบเบฒเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ - เบเบฒ เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰, เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบขเบนเปˆ
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒ trigraphs เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบ›เบ‡ trigraph เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™, เปเบ•เปˆเป„เบ”เป‰เบฎเบฑเบš
เบญเบทเปˆเบ™เป† - เบเบฒ เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹, เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -trigraphs - เบเบฒ -Wno-trigraphs.

- เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบเปเปˆเบชเป‰เบฒเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก เปเบฅเบฐ ISO C. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ ISO C เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ C เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก, เปเบฅเบฐเบกเบตเบšเบฑเบ™เบซเบฒ
เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบ„เบงเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™.

-Wundef
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบžเบปเบšเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฐเบซเบฒเบžเบฒเบเบขเบนเปˆเปƒเบ™ # เบ–เป‰เบฒ เบ—เบดเบ”โ€‹เบ—เบฒเบ‡โ€‹,
เบ™เบญเบเบ‚เบญเบ‡ เบเปเบฒเบ™เบปเบ”เป„เบงเป‰. เบ•เบปเบงเบฅเบฐเบšเบธเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบชเบนเบ™.

-Wunused-macros
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบกเบฐเบซเบฒเบžเบฒเบเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเบซเบผเบฑเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰. เบกเบฐเบซเบฒเบžเบฒเบเปเบกเปˆเบ™ เปƒเบซเบกเปˆ เบ–เป‰เบฒเบกเบฑเบ™เปเบกเปˆเบ™
เบ‚เบฐเบซเบเบฒเบเบซเบผเบทเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบขเบนเปˆเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡. preprocessor เบเบฑเบ‡เบˆเบฐเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
macro เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ„เบทเบ™เปƒเบซเบกเปˆเบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”.

เบกเบฒเป‚เบ„เปƒเบ™เบ•เบปเบง, เบกเบฐเบซเบฒเบžเบฒเบเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เบณเบชเบฑเปˆเบ‡, เปเบฅเบฐ เบกเบฐเบซเบฒเบžเบฒเบเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบฅเบงเบกเบกเบต
เป„เบŸเบฅเปŒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบ–เป‰เบฒเบกเบฐเบซเบฒเบžเบฒเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบˆเบดเบ‡, เปเบ•เปˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เปƒเบ™เบšเบฅเบฑเบญเบเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบ‚เป‰เบฒเบก, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
CPP เบˆเบฐเบฅเบฒเบเบ‡เบฒเบ™เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเปƒเบŠเป‰. เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡
เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบกเบฐเบซเบฒเบžเบฒเบเป‚เบ”เบ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเป‰เบฒเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เป‰เบฒเบก
เบ•เบฑเบ™. เบญเบตเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ dummy เบเบฑเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™:

#if เบเปเบฒเบ™เบปเบ” the_macro_causing_the_warning
#เบชเบธเบ”เบ—เป‰เบฒเบ

-Wendif-เบ›เป‰เบฒเบ
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆ #เบญเบทเปˆเบ™ or an #เบชเบธเบ”เบ—เป‰เบฒเบ เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบ‚เปเป‰เบ„เบงเบฒเบก. เบ™เบตเป‰เบกเบฑเบเบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™
เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก

#เบ–เป‰เบฒ FOO
...
# FOO เบญเบทเปˆเบ™
...
#endif FOO

"FOO" เบ—เบตเบชเบญเบ‡เปเบฅเบฐเบ—เบตเบชเบฒเบกเบ„เบงเบ™เบˆเบฐเบขเบนเปˆเปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™, เปเบ•เปˆเบกเบฑเบเบˆเบฐเบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบเบปเปˆเบฒ.
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹
เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเบฒเบ. เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž
เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”.

-Wsystem-headers
เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ
เปเบกเบ‡เป„เบกเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡, เบชเบฐเบ™เบฑเป‰เบ™เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™. เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบฅเบฐเบšเบปเบš
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

-w เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ—เบฑเบ‡เบซเบกเบปเบ”, เบฅเบงเบกเบ—เบฑเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆ GNU CPP เบญเบญเบเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- pedantic
เบญเบญเบเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบšเบฑเบ‡เบ„เบฑเบšเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C. เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเป„เบงเป‰
เบญเบญเบเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบžเบงเบเบกเบฑเบ™เบเบฐเบ•เบธเป‰เบ™เป€เบฅเบทเป‰เบญเบเป†เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบญเบฑเบ™เบ•เบฐเบฅเบฒเบ.

-pedantic เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹
เบญเบญเบเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบšเบฑเบ‡เบ„เบฑเบšเบ—เบฑเบ‡เปเบปเบ”, เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบšเบฑเบ‡เบ„เบฑเบšเบ—เบฑเบ‡เปเบปเบ”เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.
เบ™เบตเป‰เบฅเบงเบกเบกเบตเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบšเบฑเบ‡เบ„เบฑเบšเบ—เบตเปˆ GCC เบกเบตเบšเบฑเบ™เบซเบฒเป‚เบ”เบเบšเปเปˆเบกเบต - pedantic เปเบ•เปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™
เบ„เบณ เป€เบ•เบทเบญเบ™.

-M เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปƒเบซเป‰โ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹เบเปˆเบญเบ™โ€‹, เบญเบญเบโ€‹เบเบปเบ”โ€‹เบฅเบฐโ€‹เบšเบฝเบšโ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เป€เบฎเบฑเบ”เปƒเบซเป‰
เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เบเบฒเบ™โ€‹เบ‚เบถเป‰เบ™โ€‹เบเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบ‚เบญเบ‡โ€‹. preprocessor เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบ™เบถเปˆเบ‡
เป€เบฎเบฑเบ”เปƒเบซเป‰ เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ™เบฑเป‰เบ™, เบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”, เปเบฅเบฐเบŠเบทเปˆ
เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบฑเบ‡เบซเบกเบปเบ”เบฅเบงเบก, เบฅเบงเบกเบ—เบฑเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบฒเบˆเบฒเบ - เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹ or - เป„เบญเบกเบฒเป‚เบ„เบฃ เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡ -
เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฒเบ.

เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™ (เบเบฑเบš -MT or -MQ), เบŠเบทเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ
เบŠเบทเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบกเบต suffix เปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ object file suffix เปเบฅเบฐเบเบฑเบšเปƒเบ”เป†
เป€เบญเบปเบฒเบžเบฒเบเบชเปˆเบงเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบŠเบฑเป‰เบ™เบ™เปเบฒ. เบ–เป‰เบฒเบกเบตเบซเบผเบฒเบเป„เบŸเบฅเปŒเบฅเบงเบกเปเบฅเป‰เบงเบเบปเบ”เบฅเบฐเบšเบฝเบšเปเบกเปˆเบ™
เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบซเบผเบฒเบเบชเบฒเบเป‚เบ”เบเปƒเบŠเป‰ \- เปเบ–เบงเปƒเปเปˆ. เบเบปเบ”เบฅเบฐเบšเบฝเบšเบšเปเปˆเบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบœเบปเบ™เบ”เบตเบšเบฑเปŠเบเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™, เป€เบŠเบฑเปˆเบ™: -dM. เป€เบžเบทเปˆเบญเบซเบฅเบตเบเบฅเป‰เบฝเบ‡
เบเบฒเบ™เบ›เบฐเบชเบปเบกเบœเบปเบ™เบ”เบตเบšเบฑเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบšเบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™
เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบถเป‰เบ™เบเบฑเบš -MF, เบซเบผเบทเปƒเบŠเป‰เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบŠเบฑเปˆเบ™
DEPENDENCIES_OUTPUT. เบœเบปเบ™เบญเบญเบเบกเบฒเบ”เบตเบšเบฑเปŠเบเบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบเบฐเปเบชเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เบ—เบณ เบกเบฐเบ”เบฒ.

Passing -M เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ„เบปเบ™เบ‚เบฑเบšเบฅเบปเบ” -E, เปเบฅเบฐเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป‚เบ”เบเบกเบตเป€เบซเบ”เบœเบปเบ™ -w.

เป€เบญเบฑเบก เบ„เบท -M เปเบ•เปˆเบขเปˆเบฒเบเปˆเบฒเบงเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒ header เบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš header directory,
เบซเบผเบทเป„เบŸเบฅเปŒ header เบ—เบตเปˆเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒ, เป‚เบ”เบเบเบปเบ‡เบซเบผเบทเป‚เบ”เบเบ—เบฒเบ‡เบญเป‰เบญเบก, เบˆเบฒเบ header เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบงเบปเบ‡เป€เบฅเบฑเบšเบกเบธเบกเบซเบผเบทเบงเบปเบ‡เบขเบทเบกเบ„เบนเปˆเปƒเบ™ an #include
เบ„เปเบฒเบชเบฑเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบชเปˆเบงเบ™เบซเบปเบงเบ™เบฑเป‰เบ™เบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ เป€เบญเบฑเบก
เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ—เบตเปˆโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™ semantics เบˆเบฒเบ GCC เบฎเบธเปˆเบ™ 3.0 เปเบฅเบฐ
เบเปˆเบญเบ™ เปœเป‰เบฒ เบ™เบตเป‰.

-MF เป€เบญเบเบฐเบชเบฒเบ™
เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบš -M or เป€เบญเบฑเบก, เบเปเบฒเบ™เบปเบ”เป„เบŸเบฅเปŒเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบš. เบ–เป‰เบฒเบšเปเปˆเบกเบต -MF
switch เปเบกเปˆเบ™เปƒเบซเป‰ preprocessor เบชเบปเปˆเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเป„เบ›เบซเบฒเบšเปˆเบญเบ™เบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡
เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™.

เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเป„เบ”เป€เบงเบต -MD or -MMD, -MF overrides เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”.

-MG เป‚เบ”เบเบชเบปเบกเบ—เบปเบšเบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบŠเบฑเปˆเบ™: -M เบเบฒเบ™โ€‹เบฎเป‰เบญเบ‡โ€‹เบ‚เปโ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบชโ€‹, -MG เบชเบปเบกเบกเบธเบ”
เป„เบŸเบฅเปŒ header เบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เปเบกเปˆเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบฅเบฐเป€เบžเบตเปˆเบกเบžเบงเบเบกเบฑเบ™เปƒเบชเปˆเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเป‚เบ”เบเบšเปเปˆเบกเบต
เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹. เบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเปเบกเปˆเบ™เป€เบญเบปเบฒเป‚เบ”เบเบเบปเบ‡เบˆเบฒเบ "#include"
เบ—เบดเบ”โ€‹เบ—เบฒเบ‡โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™ prepending เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹. -MG เบเบฑเบ‡เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™, เป€เบ›เบฑเบ™
เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เป€เบฎเบฑเบ”เปƒเบซเป‰เบ™เบตเป‰เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”.

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡ makefiles.

-MP เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบ™เบฐเบ™เปเบฒ CPP เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ phony เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ dependency เบญเบทเปˆเบ™เบ™เบญเบเบˆเบฒเบ
เป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบ•เป, เป€เบฎเบฑเบ”เปƒเบซเป‰เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบšเปเปˆเบกเบตเบซเบเบฑเบ‡. เบเบปเบ”เบฅเบฐเบšเบฝเบš dummy เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”
เป€เบฎเบฑเบ”เปƒเบซเป‰ เปƒเบซเป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เป€เบญเบปเบฒเป„เบŸเบฅเปŒ header เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ makefile เบเบปเบ‡เบเบฑเบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ›เบปเบเบเบฐเบ•เบด:

test.o: test.c test.h

test.h:

-MT เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ
เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเป‚เบ”เบเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ CPP เปƒเบŠเป‰เป€เบงเบฅเบฒ
เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบ™เปเบฒโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹, เบฅเบถเบšโ€‹เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เปเบฅเบฐโ€‹เบ„เปเบฒโ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹
เป€เบŠเบฑเปˆเบ™โ€‹เบงเปˆเบฒ .c, เปเบฅเบฐเบ•เปเปˆเบ—เป‰เบฒเบเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เป€เบงเบ—เบต. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

An -MT เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบˆเบฐโ€‹เบ•เบฑเป‰เบ‡โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เปƒเบซเป‰โ€‹เปเบ™เปˆโ€‹เบ™เบญเบ™โ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบดเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹. เบ–เป‰เบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™
เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบซเบผเบฒเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ”เบฝเบงเบเบฑเบš -MT, เบซเบผเบทเปƒเบŠเป‰เบซเบผเบฒเบเบญเบฑเบ™
-MT เบ•เบปเบงเป€เบฅเบทเบญเบ

เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, -MT '$(objpfx)foo.o' เบญเบฒเบ”เบˆเบฐเปƒเบซเป‰

$(objpfx)foo.o: foo.c

-MQ เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ
เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -MT, เปเบ•เปˆเบกเบฑเบ™เบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบ•เบปเบงเบฅเบฐเบ„เบญเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบžเบดเป€เบชเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”.
-MQ '$(objpfx)foo.o' เป€เบฎเบฑเบ”เปƒเบซเป‰

$$(objpfx)foo.o: foo.c

เป€เบ›เบปเป‰เบฒเปเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบกเบญเบšเปƒเบซเป‰ -MQ.

-MD -MD เป€เบ—เบปเปˆเบฒเบเบฑเบš -M -MF เป€เบญเบเบฐเบชเบฒเบ™, เบเบปเบเป€เบงเบฑเป‰เบ™เบ™เบฑเป‰เบ™ -E เบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ. เบ„เบปเบ™เบ‚เบฑเบšเบฅเบปเบ”
เบเปเบฒเบ™เบปเบ” เป€เบญเบเบฐเบชเบฒเบ™ เบญเบตเบ‡เปƒเบชเปˆเบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ -o เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบซเป‰. เบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™, เบ„เบปเบ™เบ‚เบฑเบšเบฅเบปเบ”เปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบ•เปˆเบกเบต suffix เบ‚เบญเบ‡ .dเบ–เป‰เบฒโ€‹เบšเปเปˆโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบฑเบ™โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹,
เป€เบญเบปเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปเบฅเบฐเบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบ, เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰ a .d แž”แž…แŸ’แž…แŸแž™.

If -MD เปเบกเปˆเบ™เปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบš -E, เปƒเบ”เป† -o switch เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเป€เบžเบทเปˆเบญเบฅเบฐเบšเบธ
เป„เบŸเบฅโ€‹เปŒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ—เบตเปˆโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹, เปเบ•เปˆโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹ -E, เปเบ•เปˆเบฅเบฐเบ„เบปเบ™ -o เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเป€เบžเบทเปˆเบญเบฅเบฐเบšเบธ a
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเป€เบ›เบปเป‰เบฒเปเบฒเบ.

เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ -E เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบซเบกเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบงเปˆเบฒโ€‹, -MD เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ›เบฑเบ™
เบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

-MMD
เบ„เบท -MD เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบเปˆเบฒเบงเป€เบ–เบดเบ‡เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เบšเปเปˆเปเบกเปˆเบ™เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

-fpch-deps
เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒ, เบ—เบธเบ‡เบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบธเบ‡เบœเบปเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช
เบเบฑเบ‡เบฅเบฒเบเบŠเบทเปˆเป„เบŸเบฅเปŒเบˆเบฒเบเบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡ precompiled. เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
header precompiled เบˆเบฐเบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบกเบฑเบ™
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ header precompiled เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-fpch-preprocess
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰ header precompiled เบฎเปˆเบงเบกเบเบฑเบš -E. เบกเบฑเบ™เปเบŠเบเบžเบดเป€เบชเบ”
"#pragma", "#pragma GCC pch_preprocess"เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™"" เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เป€เบžเบทเปˆเบญเบซเบกเบฒเบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ
เบšเปˆเบญเบ™เบ—เบตเปˆเบซเบปเบงเบ‚เปเป‰ precompiled เป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™, เปเบฅเบฐเบ‚เบญเบ‡เบกเบฑเบ™ เบŠเบทเปˆโ€‹เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™เบ—เบตเปˆเบขเบนเปˆ เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -fpreprocessed เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, GCC เบฎเบฑเบšเบฎเบนเป‰ "#pragma" เบ™เบตเป‰เปเบฅเบฐเป‚เบซเบผเบ” PCH.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบˆเบฐโ€‹เบ›เบดเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹, เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบเปˆเบญเบ™โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹
เป€เปเบฒเบฐเปเบ—เป‰เป†เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆ GCC. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เป‚เบ”เบ - save-tempsโ€‹.

เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบ‚เบฝเบ™ "#pragma" เบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡, เปเบ•เปˆเบกเบฑเบ™เบ›เบญเบ”เป„เบžเบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚
เบŠเบทเปˆเป„เบŸเบฅเปŒเบ–เป‰เบฒเป„เบŸเบฅเปŒ PCH เบกเบตเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เบญเบทเปˆเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
absolute เบซเบผเบทเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบžเบตเปˆเบ™เป‰เบญเบ‡เบเบฑเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡ GCC.

-x c
-x c ++
-x เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡ - เบ„
-x assembler-with-cpp
เบฅเบฐเบšเบธเบžเบฒเบชเบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš: C, C++, Objective-C, เบซเบผเบทเบเบฒเบ™เบ›เบฐเบเบญเบš. เบ™เบตเป‰เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบฎเบฑเบ”
เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบซเบผเบทเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ; เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบฅเบทเบญเบ syntax เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ”
เบ„เบฒเบ”เบซเบงเบฑเบ‡. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, cpp เบˆเบฐ deduce เบžเบฒเบชเบฒเบˆเบฒเบ
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบญเบ‡เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡: .c, cc, .m, เบซเบผเบท .S. เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบปเปˆเบงเป„เบ›เบญเบทเปˆเบ™เป†เบชเปเบฒเบฅเบฑเบš
C ++ เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฑเบ‡เบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰. เบ–เป‰เบฒ cpp เบšเปเปˆเบฎเบฑเบšเบฎเบนเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ, เบกเบฑเบ™
เบˆเบฐเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเป€เบ›เบฑเบ™ C; เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบฅเบธเป‰เบ™เบเปˆเบญเบ™เปœเป‰เบฒเบ‚เบญเบ‡ cpp เบเบญเบกเบฎเบฑเบš a - เบžเบฒเบชเบฒ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบฑเบ‡โ€‹เบชเบญเบ‡โ€‹
เบžเบฒเบชเบฒ เปเบฅเบฐเบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบ, เป€เบžเบฒเบฐเบงเปˆเบฒ
เบกเบฑเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบš -l เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-std=เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
-ansi
เบฅเบฐเบšเบธเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ„เบงเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก. เบ›เบฐเบˆเบธโ€‹เบšเบฑเบ™ CPP เบฎเบนเป‰โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบš C
เปเบฅเบฐเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C++; เบ„เบปเบ™เบญเบทเปˆเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹:

"c90"
"c89"
"iso9899: 1990"
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C เบˆเบฒเบเบ›เบต 1990. c90 เปเบกเปˆเบ™ shorthand เบ›เบฐเป€เบžเบ™เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบšเบฑเบšเบ™เบตเป‰เบ‚เบญเบ‡
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

เป„เบ”เป‰ -ansi เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -std=c90.

"iso9899: 199409"
เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™ C เบ›เบต 1990, เบ”เบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เปƒเบ™โ€‹เบ›เบต 1994.

"iso9899: 1999"
"c99"
"iso9899: 199x"
"c9x"
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡, เบˆเบฑเบ”เบžเบตเบกเบกเบฒเปƒเบ™เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒ 1999. เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบžเบดเบกเป€เบœเบตเบเปเบœเปˆ, เบ™เบตเป‰
เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเป€เบ›เบฑเบ™ C9X.

"iso9899: 2011"
"c11"
"c1x"
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡, เบˆเบฑเบ”เบžเบตเบกเบกเบฒเปƒเบ™เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒ 2011. เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบžเบดเบกเป€เบœเบตเบเปเบœเปˆ, เบ™เบตเป‰
เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเป€เบ›เบฑเบ™ C1X.

"gnu90"
"gnu89"
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C 1990 เบšเบงเบเบเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

"gnu99"
"gnu9x"
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C 1999 เบšเบงเบเบเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU.

"gnu11"
"gnu1x"
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C 2011 เบšเบงเบเบเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU.

"c++98"
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C++ เบ›เบต 1998 เบšเบงเบเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚.

"gnu++98"
เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -std=c++98 เบšเบงเบเบเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” C++.

-AND- เปเบเบเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบงเบก. เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธเบ”เป‰เบงเบ -I เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปˆเบญเบ™ -AND- เบกเบต
เบ„เบปเป‰เบ™เบซเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเบ”เป‰เบงเบ "#include"เป„เบŸเบฅเปŒ""; เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป„เบ”เป‰เบ„เบปเป‰เบ™เบซเบฒ
"#เบฅเบงเบกเป„เบŸเบฅเปŒ>". เบ–เป‰เบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ”เป‰เบงเบ -I เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹
-AND-, เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบ—เบฑเบ‡เบซเบกเบปเบ” #include เบ—เบดเบ”เบ—เบฒเบ‡.

เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบก, -AND- inhibits เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบญเบ‡โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ„เบปเป‰เบ™เบซเบฒเบ—เปเบฒเบญเบดเบ”เบชเปเบฒเบฅเบฑเบš "#include"เป„เบŸเบฅเปŒ"". เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”.

-nostdinc
เบขเปˆเบฒเบ„เบปเป‰เบ™เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบง. เบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต
เบ—เปˆเบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบเบฑเบšโ€‹ -I เบ—เบฒเบ‡เป€เบฅเบทเบญเบ (เปเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ›เบฐเบˆเบธเบšเบฑเบ™, เบ–เป‰เบฒ
เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก) เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒ.

-nostdinc++
เบขเปˆเบฒเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒ header เปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฐเป€เบžเบฒเบฐ C++, เปเบ•เปˆเป€เบฎเบฑเบ”เบ•เปเปˆเป„เบ›
เบ„เบปเป‰เบ™เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบญเบทเปˆเบ™เป†. (เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบเปเปˆโ€‹เบชเป‰เบฒเบ‡ C ++โ€‹
เบซเปเบชเบฐเปเบธเบ”.)

- เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹ เป€เบญเบเบฐเบชเบฒเบ™
เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ เป€เบญเบเบฐเบชเบฒเบ™ เบ„เบทเบเบฑเบšเบงเปˆเบฒ "#include "file" เบ›เบฒเบเบปเบ”เป€เบ›เบฑเบ™เปเบ–เบงเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เปเบซเบผเปˆเบ‡เบ•เบปเป‰เบ™เบ•เป
เป„เบŸเบฅเปŒ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เปเบฒเบญเบดเบ”เบ„เบปเป‰เบ™เบซเบฒ เป€เบญเบเบฐเบชเบฒเบ™ เปเบกเปˆเบ™ preprocessor เป€เบฎเบฑเบ”เบงเบฝเบ
เบฅเบฐเบšเบปเบš เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ of เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เบ–เป‰เบฒเบšเปเปˆเบžเบปเบš
เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบฅเบทเบญเบ‚เบญเบ‡ "#include "..."" เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ„เบปเป‰เบ™เบซเบฒ
เบ—เบณ เบกเบฐเบ”เบฒ.

เบ–เป‰เบฒเบซเบผเบฒเบ - เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹, เป„เบŸเบฅโ€‹เปŒโ€‹เปเบกเปˆเบ™โ€‹เบฅเบงเบกโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹
เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

- เป„เบญเบกเบฒเป‚เบ„เบฃ เป€เบญเบเบฐเบชเบฒเบ™
เบ„เบทเบเบฑเบ™ - เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹, เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบ”เป†เบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบเบเบฒเบ™เบชเบฐเปเบเบ™ เป€เบญเบเบฐเบชเบฒเบ™ เบ–เบทเบเบ–เบตเป‰เบก
เบซเปˆเบฒเบ‡. Macros เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบเบฑเบ‡เบ„เบปเบ‡เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบกเบฐเบซเบฒเบžเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”
เบˆเบฒเบเบชเปˆเบงเบ™เบซเบปเบงเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡เบกเบฑเบ™.

เป„เบŸเบฅเปŒเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบ - เป„เบญเบกเบฒเป‚เบ„เบฃ เบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™เป„เบŸเบฅเปŒเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบ - เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹.

-idirafter dir
เบ„เบปเป‰เบ™เบซเบฒ dir เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ header, เปเบ•เปˆเป€เบฎเบฑเบ”เบกเบฑเบ™ เบซเบผเบฑเบ‡เบˆเบฒเบ เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเบ”เป‰เบงเบ -I เปเบฅเบฐ
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบปเบ”เปเบฅเป‰เบง. dir เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบ›เบฐเบเบญเบšเบกเบต
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต. เบ–เป‰เบฒ dir เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ "=", เบˆเบฒเบเบ™เบฑเป‰เบ™ "=" เบˆเบฐเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ sysroot
เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ; เป€เบšเบดเปˆเบ‡ --sysroot เปเบฅเบฐ -isysroot.

- เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบกโ€‹ เบ„เบณ เบ™เบณ เปœเป‰เบฒ
เบฅเบฐเบšเบธเบงเปˆเบฒ เบ„เบณ เบ™เบณ เปœเป‰เบฒ เป€เบ›เบฑเบ™เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เปเปˆเบกเบฒ -iwithprefix เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ–เป‰เบฒเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ
เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบ›เบฐเบเบญเบšเบกเบตเบชเบธเบ”เบ—เป‰เบฒเบ /.

-iwithprefix dir
-iwithprefix เบเปˆเบญเบ™ dir
เป€เบญเบเบฐเบชเบฒเบ™เบŠเป‰เบญเบ™เบ—เป‰เบฒเบ dir เบเบฑเบšเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบเบฑเบš - เบ„เปเบฒโ€‹เบ™เบดโ€‹เบเบฒเบกโ€‹, เปเบฅเบฐเป€เบžเบตเปˆเบกเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ„เบปเป‰เบ™เบซเบฒ. -iwithprefix เบเปˆเบญเบ™ เป€เบญเบปเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฝเบงเบเบฑเบ™ -I
เบˆเบฐ; -iwithprefix เบงเบฒเบ‡เบกเบฑเบ™เป„เบงเป‰เบšเปˆเบญเบ™เปƒเบ” -idirafter เบˆเบฐ.

-isysroot dir
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบท --sysroot เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹, เปเบ•เปˆโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒ header (เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
Darwin เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เปƒเบŠเป‰เบเบฑเบšเบ—เบฑเบ‡เป„เบŸเบฅเปŒ header เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”). เป€เบšเบดเปˆเบ‡
--sysroot เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹.

-Imultilib dir
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ dir เป€เบ›เบฑเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเปˆเบญเบเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบซเบปเบง C++ เบชเบฐเป€เบžเบฒเบฐเป€เบ›เบปเป‰เบฒเปเบฒเบ.

- เบฅเบฐเบšเบปเบš dir
เบ„เบปเป‰เบ™เบซเบฒ dir เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ header, เบซเบผเบฑเบ‡เบˆเบฒเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบ -I เปเบ•เปˆเบเปˆเบญเบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เปเบฒเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบฅเบฐเบšเบปเบš, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบ„เบทเบเบฑเบ™
เบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบžเบดเป€เบชเบ”เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ–เป‰เบฒ dir เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ”เป‰เบงเบ "=", เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ "=" เบˆเบฐเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ sysroot; เป€เบšเบดเปˆเบ‡ --sysroot เปเบฅเบฐ
-isysroot.

-iquote dir
เบ„เบปเป‰เบ™เบซเบฒ dir เบชเบฐเป€เบžเบฒเบฐเป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเบ”เป‰เบงเบ "#include"เป„เบŸเบฅเปŒ""; เบžเบงเบโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™
เบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบš "#includeเป„เบŸเบฅเปŒ>", เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ -I เปเบฅเบฐเบเปˆเบญเบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ–เป‰เบฒ dir เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ "=", เบˆเบฒเบเบ™เบฑเป‰เบ™ "=" เบˆเบฐเบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ
sysroot เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ; เป€เบšเบดเปˆเบ‡ --sysroot เปเบฅเบฐ -isysroot.

-fdirectives เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เป€เบกเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™, เบˆเบฑเบ”เบเบฒเบ™เบ„เบณเบชเบฑเปˆเบ‡, เปเบ•เปˆเบขเปˆเบฒเบ‚เบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบžเบฒเบ.

เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš -E เปเบฅเบฐ -fpreprocessed เบ•เบปเบงเป€เบฅเบทเบญเบ

เบเบฑเบš -E, preprocessing เปเบกเปˆเบ™เบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบŠเบฑเปˆเบ™ "#define",
"#ifdef", เปเบฅเบฐ "#error". เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ preprocessor เบญเบทเปˆเบ™เป†, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบžเบฒเบเปเบฅเบฐ
เบเบฒเบ™เปเบ›เบ‡ trigraph เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป„เบ”เป‰ -dD เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™ implicitly
enabled

เบเบฑเบš -fpreprocessed, เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐ macro builtin เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™
เบ„เบปเบ™เบžเบดเบเบฒเบ™. Macros เป€เบŠเบฑเปˆเบ™ "__LINE__", เป€เบŠเบดเปˆเบ‡เบ‚เบถเป‰เบ™เบเบฑเบšเบšเปเบฅเบดเบšเบปเบ”, เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™
เบ›เบปเบเบเบฐเบ•เบด. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบ—เบตเปˆเบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ”เป‰เบงเบ "-E
-fdirectives เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™".

เบเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡ -E เปเบฅเบฐ -fpreprocessed, เบเบปเบ”เบฅเบฐเบšเบฝเบšเบชเปเบฒเบฅเบฑเบš -fpreprocessed เป€เบญเบปเบฒเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™. เบ™เบตเป‰
เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹เป€เบ•เบฑเบกโ€‹เบ—เบตเปˆโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบœเปˆเบฒเบ™โ€‹เบกเบฒ preprocessed เบเบฑเบš "-E
-fdirectives เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™".

-fdollars-in-identifiers
เบเบญเบกเบฎเบฑเบš $ เปƒเบ™เบ•เบปเบงเบฅเบฐเบšเบธ.

-fextended-identifiers
เบเบญเบกเบฎเบฑเบšเบŠเบทเปˆเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบ•เบปเบงเบฅเบฐเบšเบธ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเบณเบฅเบฑเบš C99 (เปเบฅเบฐ เบฎเบธเปˆเบ™ C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ•เปเปˆเบกเบฒ) เปเบฅเบฐ C++.

-fno-canonical-system-headers
เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™, เบขเปˆเบฒเบซเบเปเป‰เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ”เป‰เบงเบ canonicalization.

-fpreprocessed
เบŠเบตเป‰เบšเบญเบเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต preprocessor เบงเปˆเบฒเป„เบŸเบฅเปŒ input เป„เบ”เป‰เบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบฅเป‰เบง. เบ™เบตเป‰
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบžเบฒเบ, เบเบฒเบ™เปเบ›เบ‡ trigraph, เบซเบผเบธเบ”เบžเบปเป‰เบ™เบˆเบฒเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเปเบ–เบงเปƒเปเปˆ,
เปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆ. preprocessor เบเบฑเบ‡เบฎเบฑเบšเบฎเบนเป‰เปเบฅเบฐเป€เบญเบปเบฒเบญเบญเบ
เบ„เปเบฒเป€เบซเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบœเปˆเบฒเบ™เป„เบŸเบฅเปŒ preprocessed เบเบฑเบš -C เบเบฑเบš compiler เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบšเบฑเบ™เบซเบฒ. เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰, preprocessor เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เปเบกเปˆเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ tokenizer เป€เบฅเบฑเบเบ™เป‰เบญเบ
เบชเปเบฒเบฅเบฑเบšเบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒ.

-fpreprocessed เปเบกเปˆเบ™ implicit เบ–เป‰เบฒเป„เบŸเบฅเปŒ input เบกเบตเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ™เบฒเบกเบชเบฐเบเบธเบ™ .i, .ii or .เป„เบก.
เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆ GCC เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบเปˆเบญเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ - save-tempsโ€‹.

-ftabstop=width
เบเปเบฒเบ™เบปเบ”เป„เบฅเบเบฐเบซเปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เปเบ–เบšเบขเบธเบ”. เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™เบฅเบฒเบเบ‡เบฒเบ™เบ–เบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เบ•เบปเบงเป€เบฅเบเปƒเบ™เบ„เปเบฒเป€เบ•เบทเบญเบ™เบซเบผเบทเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปเบ–เบšเบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™. เบ–เป‰เบฒเบกเบนเบ™เบ„เปˆเบฒเบซเบ™เป‰เบญเบเบฅเบปเบ‡
เบซเบผเบฒเบเบเบงเปˆเบฒ 1 เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒ 100, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 8.

-fdebug-cpp
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging GCC. เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบš -E, dumps debugging
เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเปเบœเบ™เบ—เบตเปˆเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ. เบ—เบธเบเป† token เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบ™เปเบฒเบซเบ™เป‰เบฒเป‚เบ”เบเบเบฒเบ™ dump เบ‚เบญเบ‡
เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹. เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ‚เบญเบ‡เปเบœเบ™เบ—เบตเปˆเบ–เบทเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡ token
เบˆเบฐเป€เบ›เบฑเบ™:

{"P":F ;"F":F ;"L": ;"C": ;"S": ;"M": ;"E": "loc": }

เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -E, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš.

-ftrack-macro-เบ‚เบฐเบซเบเบฒเบ[=เบฅเบฐเบ”เบฑเบš]
เบ•เบดเบ”เบ•เบฒเบกเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เป‚เบ—เป€เบ„เบฑเบ™เปƒเบ™เบ—เบปเปˆเบงเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบกเบฐเบซเบฒเบžเบฒเบ. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบ›เปˆเบญเบเบญเบญเบเบกเบฒ
เบเบฒเบ™เบงเบดเบ™เบดเป„เบชเบเปˆเบฝเบงเบเบฑเบš stack macro expansion stack เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบกเบทเปˆเบญเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบกเบฐเบซเบฒเบžเบฒเบ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ preprocessor เปเบฅเบฐ compiler เบšเปเบฅเบดเป‚เบžเบ
เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบซเบผเบฒเบ. เป„เบ”เป‰ เบฅเบฐเบ”เบฑเบš เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡ token
เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบซเบผเบธเบ”เบฅเบปเบ‡เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™. เบกเบนเบ™เบ„เปˆเบฒ 0 of
เบฅเบฐเบ”เบฑเบš de-activates เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบทเบเบฑเบšเบงเปˆเบฒเบšเปเปˆเบกเบต -ftrack-macro-เบ‚เบฐเบซเบเบฒเบ เบกเบตเบขเบนเปˆ
เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡. เบกเบนเบ™เบ„เปˆเบฒ 1 เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบชเบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบตเปˆ tokens เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบŠเบธเบ”โ€‹เป‚เบŠเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹
เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ” overhead. เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ™เบตเป‰ tokens เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เบœเบปเบ™โ€‹เบกเบฒโ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹เบ‚เบญเบ‡โ€‹
argument เบ‚เบญเบ‡ macro เบ„เป‰เบฒเบเบ„เบทเบŸเบฑเบ‡เบŠเบฑเบ™เบกเบตเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบฝเบงเบเบฑเบ™. เบกเบนเบ™เบ„เปˆเบฒ 2 เบ•เบดเบ”โ€‹เบ•เบฒเบก tokens
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบ„เปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบซเบดเบงเบ—เบตเปˆเบชเบธเบ”. เป€เบกเบทเปˆเบญเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰
เบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เบ„เปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ "-ftrack-macro-expansion=2" เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fexec-charset=เบชเบฒเบเป„เบŸ
เบเปเบฒเบ™เบปเบ”เบŠเบธเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบชเบฐเบ•เบฃเบดเบ‡เปเบฅเบฐเบ•เบปเบงเบญเบฑเบเบชเบญเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบกเปˆเบ™ UTF-8. เบชเบฒเบเป„เบŸ เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ”เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "iconv" เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš
เบ›เบปเบเบเบฐเบ•เบด.

-fwide-exec-charset=เบชเบฒเบเป„เบŸ
เบเปเบฒเบ™เบปเบ”เบŠเบธเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบงเป‰เบฒเบ‡, เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ•เบฃเบดเบ‡เบเบงเป‰เบฒเบ‡เปเบฅเบฐเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ UTF-32 เบซเบผเบท UTF-16, เบญเบฑเบ™เปƒเบ”เบเปเปˆเบ•เบฒเบกเบ—เบตเปˆเบเบปเบ‡เบเบฑเบšเบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡ "wchar_t". เป€เบ›เบฑเบ™
เบเบฑเบš -fexec-charset, เบชเบฒเบเป„เบŸ เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ”เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ "iconv" เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.
เบซเปเบชเบฐเปเบธเบ”; เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบˆเบฐเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป€เบซเบกเบฒเบฐ
เปเบ—เป‰เปƒเบ™ "wchar_t".

-finput-charset=เบชเบฒเบเป„เบŸ
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบŠเบธเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบ›เป‰เบญเบ™เป€เบ‚เบปเป‰เบฒ, เปƒเบŠเป‰เบชเบณเบฅเบฑเบšเบเบฒเบ™เปเบ›เบˆเบฒเบเบŠเบธเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ‚เบญเบ‡เบ•เบปเบงเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™
เป„เบŸเบฅเปŒเป„เบ›เบซเบฒเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบ GCC. เบ–เป‰เบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธ, เบซเบผเบท GCC
เบšเปเปˆเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบˆเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ UTF-8. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เปเบ—เบ™เบ—เบตเปˆเป‚เบ”เบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ เบซเบผเบทเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เบณเบชเบฑเปˆเบ‡เบ™เบตเป‰. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ -
เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒเบ–เป‰เบฒเบกเบตเบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡. เบชเบฒเบเป„เบŸ เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ”เป†
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "iconv" เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš.

-fworking-directory
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเปเบฒเบเปเบ–เบงเปƒเบ™เบœเบปเบ™เบญเบญเบเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต preprocessor เบ—เบตเปˆเบˆเบฐเบ›เปˆเบญเบเปƒเบซเป‰ compiler เป„เบ”เป‰
เบฎเบนเป‰เบˆเบฑเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปเบฅเป‰เบง, เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™เบˆเบฐเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเปเบ–เบงเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเปเบ–เบงเบ—เบตเบชเบญเบ‡
เบเบฑเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบŠเป‰เบญเบ™. GCC เบˆเบฐเปƒเบŠเป‰เบญเบฑเบ™เบ™เบตเป‰
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เป€เบกเบทเปˆเบญเบกเบฑเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™เบ—เบตเปˆเบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™, เป€เบ›เบฑเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒ
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰ implicitly เบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™ debugging เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เปเบ•เปˆเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเบฑเบšเบเบฑเป‰เบ‡เป„เบ”เป‰
เปเบšเบšเบŸเบญเบกเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ” -fno-working-directoryเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -P เบ—เบธเบ‡เบกเบตเบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡
เป€เบชเบฑเป‰เบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบšเปเปˆเบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡ "#line" เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก.

-fno-show-column
เบขเปˆเบฒเบžเบดเบกเบ•เบปเบงเป€เบฅเบเบ–เบฑเบ™เปƒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ–เป‰เบฒเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช
เบ–เบทเบเบชเบฐเปเบเบ™เป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ•เบปเบงเป€เบฅเบเบ–เบฑเบ™, เป€เบŠเบฑเปˆเบ™:
dejagnu.

-A เบ„เบฒเบ”เบ„เบฐเป€เบ™=เบ„เปเบฒเบ•เบญเบš
เป€เบฎเบฑเบ”เบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบเบฑเบš predicate เป„เบ”เป‰ เบ„เบฒเบ”เบ„เบฐเป€เบ™ เปเบฅเบฐเบ•เบญเบš เบ„เปเบฒเบ•เบญเบš. เปเบšเบšเบŸเบญเบกเบ™เบตเป‰เปเบกเปˆเบ™
เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเบšเปเบšเบšเป€เบเบปเปˆเบฒ -A เบ„เบฒเบ”เบ„เบฐเป€เบ™(เบ„เปเบฒเบ•เบญเบš), เบ—เบตเปˆเบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™
เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบžเบดเป€เบชเบ”เบ‚เบญเบ‡เปเบเบฐ.

-A -เบ„เบฒเบ”เบ„เบฐเป€เบ™=เบ„เปเบฒเบ•เบญเบš
เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบเบฑเบš predicate เบ„เบฒเบ”เบ„เบฐเป€เบ™ เปเบฅเบฐเบ•เบญเบš เบ„เปเบฒเบ•เบญเบš.

-dCHARS
CHARS เปเบกเปˆเบ™เบฅเบณเบ”เบฑเบšเปœเบถเปˆเบ‡ เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเปœเบถเปˆเบ‡เบ•เบปเบงเปœเบฑเบ‡เบชเบทเบ•เปเปˆเป„เบ›เบ™เบตเป‰, เปเบฅเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเปเบกเปˆเบ™
เบ™เบณเปœเป‰เบฒเบ”เป‰เบงเบเบŠเปˆเบญเบ‡. เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบญเบทเปˆเบ™เป†เบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเป‚เบ”เบ compiler เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เบซเบผเบท
เบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš GCC เบฎเบธเปˆเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบดเปˆเบ‡เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเบขเปˆเบฒเบ‡เบ‡เบฝเบšเป†. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธ
เบ•เบปเบงโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เบ‚เบฑเบ”โ€‹เปเบเปˆเบ‡โ€‹เบเบฑเบ™โ€‹, เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹.

M เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ›เบปเบเบเบฐเบ•เบด, เบชเป‰เบฒเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ #เบเปเบฒเบ™เบปเบ” เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™
macros เบเปเบฒเบ™เบปเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบญเบ‡ preprocessor, เบฅเบงเบกเบ—เบฑเบ‡ predefined
เบกเบฐเบซเบฒเบžเบฒเบ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเปƒเบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบเปˆเบญเบ™. เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเป„เบŸเบฅเปŒ foo.h, เบ„เปเบฒเบชเบฑเปˆเบ‡

เปเบ•เบฐ foo.h ; cpp -dM foo.h

เบˆเบฐเบชเบฐเปเบ”เบ‡ macro เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบเปˆเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -dM เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -E เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, -dM เบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเบซเบกเบฒเบเป€เบ›เบฑเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบท
-fdump-rtl-mach.

D เบ„เบท M เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบ™เบชเบญเบ‡เบ”เป‰เบฒเบ™: เบกเบฑเบ™เป€เบฎเบฑเบ” เบšเปเปˆ เบ›เบฐเบเบญเบšเบกเบต macro เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบเปˆเบญเบ™, เปเบฅเบฐเบกเบฑเบ™
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš เบ—เบฑเบ‡เบชเบญเบ‡ เป„เบ”เป‰ #เบเปเบฒเบ™เบปเบ” เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™. เบ—เบฑเบ‡เบชเบญเบ‡เบ›เบฐเป€เบžเบ”
เบ‚เบญเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

N เบ„เบท D, เปเบ•เปˆเบ›เปˆเบญเบเบžเบฝเบ‡เปเบ•เปˆเบŠเบทเปˆเบกเบฐเบซเบฒเบžเบฒเบ, เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™.

I เบœเบปเบ™เบœเบฐเบฅเบดเบ” #include เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™.

U เบ„เบท D เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบกเบฐโ€‹เป‚เบ„โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹, เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹
เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ preprocessor, เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”; เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบŠเบฑเบเบŠเป‰เบฒเบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบผเบท
เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบกเบฐเบซเบฒเบžเบฒเบ; เปเบฅเบฐ #เบชเบธเบ”เบเบญเบ” เบ—เบดเบ”เบ—เบฒเบ‡เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš macros เบ—เบปเบ”เบชเบญเบšเปเบ•เปˆ
เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™.

-P เบเบฑเบšเบเบฑเป‰เบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเปเบฒเบเปเบ–เบงเปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบˆเบฒเบเป‚เบ›เบฃเป€เบŠเบชเป€เบŠเบตเบเปˆเบญเบ™. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™ preprocessor เบเปˆเบฝเบงเบเบฑเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ” C, เปเบฅเบฐเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›
เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบชเบฑเบšเบชเบปเบ™เป‚เบ”เบ linemarkers.

-C เบขเปˆเบฒเบ›เบฐเบ–เบดเป‰เบกเบ„เปเบฒเป€เบซเบฑเบ™. เบ„เปเบฒเป€เบซเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบเบปเบเป€เบงเบฑเป‰เบ™
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เปเบฒโ€‹เบ„เบดเบ”โ€‹เป€เบซเบฑเบ™โ€‹เปƒเบ™โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹, เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบฅเบปเบšโ€‹เบžเป‰เบญเบกโ€‹เบเบฑเบšโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹.

เบ—เปˆเบฒเบ™เบ„เบงเบ™เบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ -C; เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰ preprocessor เป„เบ”เป‰
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™เป€เบ›เบฑเบ™ token เปƒเบ™เบชเบดเบ”เบ—เบดเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ„เปเบฒเป€เบซเบฑเบ™เบ—เบตเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆ
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™
เป€เบชเบฑเป‰เบ™เปเบซเบผเปˆเบ‡เบ—เปเบฒเบกเบฐเบ”เบฒ, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ token เบ—เปเบฒเบญเบดเบ”เปƒเบ™เป€เบชเบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™ #.

-CC เบขเปˆเบฒเบ›เบฐเบ–เบดเป‰เบกเบ„เปเบฒเป€เบซเบฑเบ™, เบฅเบงเบกเบ—เบฑเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบกเบฐเบซเบฒเบžเบฒเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบท -C, เบเบปเบเป€เบงเบฑเป‰เบ™
เบ„เปเบฒเบ„เบดเบ”เบ„เปเบฒเป€เบซเบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™ macro เบเบฑเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆ
เบกเบฐเบซเบฒเบžเบฒเบเป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบ.

เบ™เบญเบโ€‹เป€เบซเบ™เบทเบญโ€‹เป„เบ›โ€‹เบˆเบฒเบโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ„เบฝเบ‡โ€‹เบ‚เบญเบ‡โ€‹ -C เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เป„เบ”เป‰ -CC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฎเบฑเบ”เปƒเบซเป‰ C++-style เบ—เบฑเบ‡เปเบปเบ”
เบ„เบณเป€เบซเบฑเบ™เบžเบฒเบเปƒเบ™เบกเบฐเบซเบฒเบžเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ„เบณเป€เบซเบฑเบ™เปเบšเบš C. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบ•เปเปˆเบกเบฒ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบกเบฐเบซเบฒเบžเบฒเบเบˆเบฒเบเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡เปƒเบˆเบญเบญเบเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบชเบฒเบเปเบซเบผเปˆเบ‡.

เป„เบ”เป‰ -CC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเป€เบซเบฑเบ™ lint.

-cpp
เบžเบฐเบเบฒเบเบฒเบกเบฎเบฝเบ™เปเบšเบšเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต C preprocessors เปเบšเบšเป€เบเบปเปˆเบฒ, เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบš ISO C
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบเปˆเบญเบ™.

-trigraphs
เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฅเปเบฒเบ”เบฑเบš trigraph. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบฅเปเบฒเบ”เบฑเบšเบชเบฒเบกเบฅเบฑเบเบชเบฐเบ™เบฐ, เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ
??, เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ ISO C เป€เบžเบทเปˆเบญเบขเบทเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ”เบฝเบง. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, ??/ เบขเบทเบ™เบขเบนเปˆ
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ \, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ '??/n' เปเบกเปˆเบ™เบ•เบปเบงเบฅเบฐเบ„เบญเบ™เบ„เบปเบ‡เบ—เบตเปˆเบชเบณเบฅเบฑเบšเปเบ–เบงเปƒเปเปˆ. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบˆเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆ
trigraphs, เปเบ•เปˆเปƒเบ™เป‚เบซเบกเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบกเบฑเบ™เบ›เปˆเบฝเบ™เบžเบงเบเบกเบฑเบ™. เป€เบšเบดเปˆเบ‡ -std เปเบฅเบฐ -ansi
เบ•เบปเบงเป€เบฅเบทเบญเบ

เป€เบเบปเป‰เบฒ trigraphs เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบกเปˆเบ™

เป„เบ•เบฃเบ: ??(??)??<??>??=??/??' ??! ??-
เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™: [ ] { } # \ ^ | ~

-remap
เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบžเบดโ€‹เป€เบชเบ”โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบชเบฑเป‰เบ™โ€‹เบซเบผเบฒเบโ€‹
เบŠเบทเปˆ, เป€เบŠเบฑเปˆเบ™ MS-DOS.

- เบŠเปˆเบงเบ
--เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบเบฒเบ™โ€‹เบŠเปˆเบงเบโ€‹เป€เบซเบผเบทเบญโ€‹
เบžเบดเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบฑเบ‡เปเบปเบ” เปเบ—เบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบญเบฑเบ™เปƒเบ”เบญเบฑเบ™เปœเบถเปˆเบ‡เบเปˆเบญเบ™.

-v เป‚เบซเบกเบ” verbose. เบžเบดเบกเป€เบฅเบเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ GNU CPP เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐ
เบฅเบฒเบเบ‡เบฒเบ™เบฎเบนเบšเปเบšเบšเบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบงเบก.

-H เบžเบดเบกเบŠเบทเปˆเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ header file เบ—เบตเปˆเปƒเบŠเป‰, เบ™เบญเบเบˆเบฒเบเบเบดเบ”เบˆเบฐเบเปเบฒเบ›เบปเบเบเบฐเบ•เบดเบญเบทเปˆเบ™เป†. เปเบ•เปˆเบฅเบฐ
เบŠเบทเปˆเปเบกเปˆเบ™ indented เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเป€เบฅเบดเบเบขเบนเปˆเปƒเบ™ #include stack เบกเบฑเบ™เปเบกเปˆเบ™. เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบเบฝเบกเป„เบงเป‰เปเบฅเป‰เบง
เป„เบŸเบฅเปŒเบเบฑเบ‡เบ–เบทเบเบžเบดเบกเบญเบญเบ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เบงเปˆเบฒเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡; precompiled เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เป„เบŸเบฅเปŒเบซเบปเบงเปเบกเปˆเบ™เบžเบดเบกเบ”เป‰เบงเบ ...x เปเบฅเบฐเบญเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบš ...! .

-เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
- เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบžเบดเบกเปเบฒเบเป€เบฅเบเบฅเบธเป‰เบ™เบ‚เบญเบ‡ GNU CPP. เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบ”เบฝเบง, เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบญเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด.
เบ”เป‰เบงเบเบชเบญเบ‡เบ‚เบตเบ”, เบญเบญเบเป„เบ›เบ—เบฑเบ™เบ—เบต.

Passing เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ to เป„เบ”เป‰ เบ„เบปเบ™เบฅเบญเบšเบชเบฑเบ‡เบซเบฒเบ™
เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบเบญเบš.

- เบง.เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบœเปˆเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบเบญเบš. เบ–เป‰เบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”, เบกเบฑเบ™เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบ
เป€เบ›เบฑเบ™เบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

-Xassembler เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบœเปˆเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบเบญเบš. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบฅเบฐเบšเบปเบšเบชเบฐเป€เบžเบฒเบฐ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเบ›เบฐเบเบญเบšเบ—เบตเปˆ GCC เบšเปเปˆเบฎเบฑเบšเบฎเบนเป‰.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ -Xassembler เบชเบญเบ‡เบ„เบฑเป‰เบ‡,
เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡
เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเบกเบฒเบซเบผเบดเป‰เบ™เป€เบกเบทเปˆเบญ compiler เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบžเบงเบเบกเบฑเบ™เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบ–เป‰เบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡.

object-file-name
เบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบปเบ‡เบ—เป‰เบฒเบเบ”เป‰เบงเบเบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบเบ—เบตเปˆเบฎเบฑเบšเบฎเบนเป‰เบžเบดเป€เบชเบ”เปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบŠเบทเปˆ
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ เบซเบผเบทเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”. (เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ–เบทเบเปเบเบเบญเบญเบเบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เป‚เบ”เบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบญเบตเบ‡โ€‹เบ•เบฒเบกโ€‹เป€เบ™เบทเป‰เบญโ€‹เปƒเบ™โ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹.) เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เปเบกเปˆเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹, เป„เบŸเบฅโ€‹เปŒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ›เบฑเบ™โ€‹
เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

-c
-S
-E เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ”เป†เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เปเบฅเบฐเบŠเบทเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ
เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

-fuse-ld=bfd
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ bfd linker เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fuse-ld=เบ—เบญเบ‡
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบ„เปเบฒ linker เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-lเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”
-l เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”
เบ„เบปเป‰เบ™เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบตเบŠเบทเปˆ เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. (เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡เบเบฑเบš
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก POSIX เปเบฅเบฐเบšเปเปˆเปเบ™เบฐเบ™เปเบฒ.)

เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰; เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบŠเบญเบเบซเบฒ
เปเบฅเบฐเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, foo.o
-lz bar.o เบŠเบญเบโ€‹เบซเบฒโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹ z เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹ foo.o เปเบ•เปˆเบเปˆเบญเบ™ bar.oเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ bar.o เบซเบกเบฒเบเป€เบ–เบดเบ‡
เบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบ™ z, เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”.

เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เบปเป‰เบ™เบซเบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง
เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆ เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”.a. เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบŠเป‰เป„เบŸเบฅเปŒเบ™เบตเป‰เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰
เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เป‚เบ”เบโ€‹เบŠเบทเปˆโ€‹.

เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบ„เบปเป‰เบ™เบซเบฒเบฅเบงเบกเบกเบตเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบซเบผเบฒเบเบฅเบฒเบเบเบฒเบ™เบšเบงเบเบเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™
เบฅเบฐเบšเบธเบ”เป‰เบงเบ -L.

เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเป„เบŸเบฅเปŒเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰เปเบกเปˆเบ™เป„เบŸเบฅเปŒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” --- เปเบŸเป‰เบกเบˆเบฑเบ”เป€เบเบฑเบšเบ—เบตเปˆเบชเบฐเบกเบฒเบŠเบดเบเปเบกเปˆเบ™
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ. เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฑเบ”เบเบฒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เป‚เบ”เบเบเบฒเบ™เบชเบฐเปเบเบ™เบœเปˆเบฒเบ™เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบกเบฒเบŠเบดเบ
เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเป„เบ”เป‰เบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เบกเบฒเป€เบ–เบดเบ‡เบ•เบญเบ™เบ™เบฑเป‰เบ™เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”. เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เป„เบŸเบฅเปŒเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เปเบกเปˆเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เปเบฒเบกเบฐเบ”เบฒ, เบกเบฑเบ™เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เปเบšเบšเบ›เบปเบเบเบฐเบ•เบด. เป„เบ”เป‰
เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เปƒเบŠเป‰ a -l เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบŠเบทเปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹ -l
เบญเป‰เบญเบกเบฎเบญเบš เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” เบเบฑเบš lib เปเบฅเบฐ .a เปเบฅเบฐเบŠเบญเบเบซเบฒเบซเบผเบฒเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต.

-lobjc
เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฅเบฐเบ™เบตเบžเบดเป€เบชเบ”เบ™เบตเป‰ -l เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Objective-C เบซเบผเบท
เป‚เบ›เบฃเปเบเบก Objective-C++.

-nostartfiles
เบขเปˆเบฒเปƒเบŠเป‰เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -nostdlib or -nodefaultlibs เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-nodefaultlibs
เบขเปˆเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบžเบฝเบ‡เปเบ•เปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธ
เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบš, เป€เบŠเบฑเปˆเบ™
as -static-libgcc or -shared-libgcc, เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -nostartfiles เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

compiler เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒ "memcmp", "memset", "memcpy" เปเบฅเบฐ "memmove". เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ›เบปเบเบเบฐเบ•เบดเบฅเบฒเบเบเบฒเบ™เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบฅเบฒเบเบเบฒเบ™เปƒเบ™ libc. เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบเบปเบ™เป„เบเบญเบทเปˆเบ™เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเบšเบธ.

-nostdlib
เบขเปˆเบฒเปƒเบŠเป‰เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบซเบผเบทเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป„เบŸเบฅเปŒเปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเปเบกเปˆเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบเบฒเบ™เบฅเบฐเบšเบธเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบš, เป€เบŠเบฑเปˆเบ™: -static-libgcc or -shared-libgcc,
เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

compiler เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒ "memcmp", "memset", "memcpy" เปเบฅเบฐ "memmove". เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ›เบปเบเบเบฐเบ•เบดเบฅเบฒเบเบเบฒเบ™เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบฅเบฒเบเบเบฒเบ™เปƒเบ™ libc. เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบเบปเบ™เป„เบเบญเบทเปˆเบ™เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเบšเบธ.

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ bypassed เป‚เบ”เบ -nostdlib เปเบฅเบฐ -nodefaultlibs is libgcc.a, เป€เบ›เบฑเบ™
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ›เบฐเบˆเบณเบžเบฒเบเปƒเบ™เบเปˆเบญเบเบ—เบตเปˆ GCC เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบŠเบฐเบ™เบฐเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ, เบซเบผเบทเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบดเป€เบชเบ”เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบžเบฒเบชเบฒ.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ libgcc.a เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบญเบทเปˆเบ™เป†.
เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบ™เบปเบ” -nostdlib or -nodefaultlibs เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ—เปˆเบฒเบ™เบ„เบงเบ™
เบฅเบฐเบšเบธ -lgcc เบ„เบทโ€‹เบเบฑเบ™. เบ™เบตเป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚
เบšเบฑเบ™เบŠเบตเบเปˆเบญเบเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” GCC เบžเบฒเบเปƒเบ™. (เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ routine เบžเบฒเบเปƒเบ™เปเบกเปˆเบ™
"__main", เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ•เบปเบงเบชเป‰เบฒเบ‡ C++ เบ–เบทเบเป€เบญเบตเป‰เบ™.)

-pie
เบœเบฐเบฅเบดเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบŠเบธเบ”เบ”เบฝเบงเบเบฑเบ™เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก (-fpie,
-fPIE, เบซเบผเบทเบ•เบปเบงเป€เบฅเบทเบญเบเบเปˆเบญเบเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡) เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ™เบตเป‰.

-no-pie
เบขเปˆเบฒเบœเบฐเบฅเบดเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰.

-rdynamic
เบœเปˆเบฒเบ™เบ—เบธเบ‡ - เบชเบปเปˆเบ‡โ€‹เบญเบญเบโ€‹เปเบšเบšโ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เป„เบซเบงโ€‹ เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ ELF, เบเปˆเบฝเบงเบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™. เบ™เบตเป‰
เปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰, เปƒเบซเป‰เบเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง
เป‚เบ•เบฐ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "dlopen" เบซเบผเบทเป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบš
backtraces เบˆเบฒเบเบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™.

-s เป€เบญเบปเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

-static
เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”. เปƒเบ™เบฅเบฐเบšเบปเบšเบญเบทเปˆเบ™เป†, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™.

- เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹
เบœเบฐเบฅเบดเบ”เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป€เบŠเบดเปˆเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบงเบฑเบ”เบ–เบธเบญเบทเปˆเบ™เป†เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™
เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰. เบชเปเบฒเบฅเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡
เบเบฑเบ‡เบฅเบฐเบšเบธเบŠเบธเบ”เบ•เบปเบงเป€เบฅเบทเบญเบเบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก (-fpic, -fPIC, เบซเบผเบทเบ•เบปเบงเปเบšเบš
suboptions) เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ™เบตเป‰.[1]

-shared-libgcc
-static-libgcc
เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡ libgcc เป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เปƒเบŠเป‰
เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เบซเบผเบทเบชเบฐเบ–เบดเบ”, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™ libgcc เปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญ compiler เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบซเบเบฑเบ‡เป€เบฅเบตเบ.

เบกเบตเบซเบผเบฒเบเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ„เบงเบ™เปƒเบŠเป‰เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ libgcc
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบชเบฐเบšเบฑเบš static. เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ
เบ•เป‰เบญเบ‡เบเบฒเบ™เบ–เบดเป‰เบกเปเบฅเบฐเบˆเบฑเบšเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบ™เบ—เบปเปˆเบงเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบฑเป‰เบ™,
เปเบ•เปˆเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบ„เบงเบ™เปƒเบŠเป‰เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ libgcc.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป„เบ”เป€เบงเบต G++ เปเบฅเบฐ GCJ เบˆเบฐเป€เบžเบตเปˆเบกเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” -shared-libgcc เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเป‰เบฒเบ‡
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบซเบผเบทเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเป‰เบ™เบ•เป, เป€เบžเบฒเบฐเบงเปˆเบฒ C ++ เปเบฅเบฐ Java เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปƒเบŠเป‰
เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”.

เบ–เป‰เบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบ—เปˆเบฒเบ™เปƒเบŠเป‰เป„เบ”เป€เบงเบต GCC เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบžเบปเบšเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™
เบšเปเปˆเป„เบ”เป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฐเป€เบซเบกเบตเบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ libgcc. เบ–เป‰เบฒ GCC เบŠเบญเบเบซเบฒ, เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบกเบฑเบ™
เป€เบงเบฅเบฒ, เบ—เปˆเบฒเบ™เบกเบตเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ GNU เบซเบผเบทเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU เบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
--eh-frame-hdr, เบกเบฑเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฐเบšเบฑเบšเปเบšเปˆเบ‡เบ›เบฑเบ™เบ‚เบญเบ‡ libgcc เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เปƒเบŠเป‰เบ›เบฐเป‚เบเบ”เบˆเบฒเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐ optimizes เบซเปˆเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹ libgcc, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบชเบฐเบšเบฑเบš static เบ‚เบญเบ‡ libgcc เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบžเบทเปˆเบญเป€เบœเบตเบเปเบœเปˆเบœเปˆเบฒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเป‚เบซเบผเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบทเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบ„เบงเบ™เบˆเบฐเบ–เบดเป‰เบกเบซเบผเบทเบˆเบฑเบšเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, เบ—เปˆเบฒเบ™
เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ G++ เบซเบผเบท GCJ driver, เบ•เบฒเบกเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹, เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹ -shared-libgcc, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
libgcc.

-static-libasan
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ -fsanitize=เบ—เบตเปˆเบขเบนเปˆ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™, เป„เบ”เป€เบงเบต GCC
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบเบฑเบš libasanเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ libasan เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เปเบฅเบฐ
เป„เบ”เป‰ -static เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹ libasan.
เป„เบ”เป‰ -static-libasan เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹เบ„เบปเบ™โ€‹เบ‚เบฑเบš GCC เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹ libasan เบชเบฐเบ–เบดเบ•เบด, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†เบขเปˆเบฒเบ‡เบชเบฐเบ–เบดเบ”.

-static-libtsan
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ -fsanitize=เบเบฐเบ—เบนเป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™, เป„เบ”เป€เบงเบต GCC
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบเบฑเบš เบฅเบตเบšเบŠเบฒเบ™เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ เบฅเบตเบšเบŠเบฒเบ™ เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เปเบฅเบฐ
เป„เบ”เป‰ -static เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹ เบฅเบตเบšเบŠเบฒเบ™.
เป„เบ”เป‰ -static-libtsan เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹เบ„เบปเบ™โ€‹เบ‚เบฑเบš GCC เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹ เบฅเบตเบšเบŠเบฒเบ™ เบชเบฐเบ–เบดเบ•เบด, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†เบขเปˆเบฒเบ‡เบชเบฐเบ–เบดเบ”.

-static-liblsan
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ -fsanitize=เบฎเบปเปˆเบง เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™, เป„เบ”เป€เบงเบต GCC
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบเบฑเบš เบฅเบตเบšเบŠเบฒเบ™เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ เบฅเบตเบšเบŠเบฒเบ™ เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เปเบฅเบฐ
เป„เบ”เป‰ -static เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹ เบฅเบตเบšเบŠเบฒเบ™.
เป„เบ”เป‰ -static-liblsan เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹เบ„เบปเบ™โ€‹เบ‚เบฑเบš GCC เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹ เบฅเบตเบšเบŠเบฒเบ™ เบชเบฐเบ–เบดเบ•เบด, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†เบขเปˆเบฒเบ‡เบชเบฐเบ–เบดเบ”.

-static-libubsan
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ -fsanitize=เบšเปเปˆเป„เบ”เป‰เบเบณเบ™เบปเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™, เป„เบ”เป€เบงเบต GCC
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบเบฑเบš เบฅเบตเบšเบนเบŠเบฒเบ™เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ เบฅเบตเบšเบนเบŠเบฒเบ™ เบกเบตโ€‹เปƒเบซเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹,
เปเบฅเบฐ -static เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹
เบฅเบตเบšเบนเบŠเบฒเบ™. เป„เบ”เป‰ -static-libubsan เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹เบ„เบปเบ™โ€‹เบ‚เบฑเบš GCC เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹ เบฅเบตเบšเบนเบŠเบฒเบ™
statically, เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™ statically.

-static-libmpx
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ -fcheck-pointer เบ‚เบญเบšเป€เบ‚เบ” เปเบฅเบฐ -mmpx เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™, GCC
เป„เบ”เป€เบงเบตเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบเบฑเบš libmpxเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ libmpx เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เป€เบ›เบฑเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เปเบฅเบฐ -static เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ™เบตเป‰เบ•เปเปˆเบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ libmpx. เป„เบ”เป‰ -static-libmpx เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹เบ„เบปเบ™โ€‹เบ‚เบฑเบš GCC เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹ libmpx
statically, เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™ statically.

-static-libmpxwrappers
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ -fcheck-pointer เบ‚เบญเบšเป€เบ‚เบ” เปเบฅเบฐ -mmpx เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบต
เบเบฑเบ‡เปƒเบŠเป‰ -fno-chkp-use-wrappers, เป„เบ”เป€เบงเบต GCC เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ•เปเปˆเบเบฑเบš
libmpxwrappersเบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ libmpxwrappers เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เปเบฅเบฐ -static
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹ libmpxwrappers. เป„เบ”เป‰
-static-libmpxwrappers เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹เบ„เบปเบ™โ€‹เบ‚เบฑเบš GCC เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹ libmpxwrappers
statically, เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™ statically.

-static-libstdc++
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ g ++ เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™ C ++โ€‹, เป‚เบ”เบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบกเบฑเบ™โ€‹เบˆเบฐโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹
เบ•เปเปˆ libstdc++เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ libstdc++ เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เปเบฅเบฐ -static
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹ libstdc++. เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™
เบ›เบปเบเบเบฐเบ•เบดเบ”เบต. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐ freeze เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ libstdc++
เปƒเบŠเป‰เป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เป„เบ›เบซเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™. เป„เบ”เป‰
-static-libstdc++ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹ g ++ เบ„เบปเบ™เบ‚เบฑเบšเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ libstdc++ เบชเบฐเบ–เบดเบ•เบด, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†เบขเปˆเบฒเบ‡เบชเบฐเบ–เบดเบ”.

- เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹
เบœเบนเบเบกเบฑเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เปƒเบชเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบปเปˆเบงเป‚เบฅเบเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™. เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบ”เป†
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚ (เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐ overridden เป‚เบ”เบเบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเปเบเป‰เป„เบ‚เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ -Xlinker -z
-Xlinker defs). เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบšเบปเบšเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

-T script
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ script เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เป‚เบ”เบโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบซเบผเบฒเบโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU. เปƒเบ™เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบ, เป€เบŠเบฑเปˆเบ™: เป€เบ›เบปเป‰เบฒเปเบฒเบเบเบฐเบ”เบฒเบ™เป€เบ›เบปเปˆเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™,
เป„เบ”เป‰ -T เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”.

-Xlinker เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบœเปˆเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเป‰เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบฅเบฐเบšเบปเบšเบชเบฐเป€เบžเบฒเบฐ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆ GCC เบšเปเปˆเบฎเบฑเบšเบฎเบนเป‰.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ -Xlinker
เบชเบญเบ‡เบ„เบฑเป‰เบ‡, เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบœเปˆเบฒเบ™ - เบขเบทเบ™โ€‹เบขเบฑเบ™โ€‹
เบ„เปเบฒเบ™เบดเบเบฒเบก, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™ -Xlinker - เบขเบทเบ™โ€‹เบขเบฑเบ™โ€‹ -Xlinker เบ„เปเบฒเบ™เบดเบเบฒเบก. เบกเบฑเบ™เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ
เบเบฒเบ™เบ‚เบฝเบ™ -Xlinker "-เบขเบทเบ™เบขเบฑเบ™ เบ„เปเบฒเบ™เบดเบเบฒเบก", เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เบœเปˆเบฒเบ™เบชเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ›เบฑเบ™ a
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ”เบฝเบง, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบœเบนเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เบฒเบ”เบซเบงเบฑเบ‡.

เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบฑเบ™เบชเบฐเบ”เบงเบเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ=เบกเบนเบ™เบ„เปˆเบฒ syntax เบเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบˆเบปเป‰เบฒ
เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธ -Xlinker -map=output.map เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐ -Xlinker - เปเบœเบ™เบ—เบตเปˆ -Xlinker output.map.
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบทเปˆเบ™เป†เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ syntax เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

-Wl,เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบœเปˆเบฒเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเป‰เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ–เป‰เบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”, เบกเบฑเบ™เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเบซเบผเบฒเบเบญเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ syntax เบ™เบตเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ–เบฝเบ‡โ€‹เบเบฑเบšโ€‹
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, -Wl,-Map,output.map passes - เปเบœเบ™เบ—เบตเปˆ output.map เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš -Wl,-Map=output.map.

เบซเบกเบฒเบเป€เบซเบ”: เปƒเบ™ Ubuntu 8.10 เปเบฅเบฐเบฎเบธเปˆเบ™เบ•เปเปˆเบกเบฒ, เบชเปเบฒเบฅเบฑเบš LDFLAGS, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -Wl,-z,relro เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.
เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™ เบ™เบณ เปƒเบŠเป‰, เปƒเบŠเป‰ -Wl,-z,norelro.

-u เบชเบฑเบ™เบเบฒเบฅเบฑเบ
เบ—เบณเบ—เปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบ เบชเบฑเบ™เบเบฒเบฅเบฑเบ เปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”, เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”
เบกเบฑเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ -u เบซเบผเบฒเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบตเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡
เป‚เบกเบ”เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

-z เบ„เปเบฒ
-z เบ–เบทเบเบชเบปเปˆเบ‡เป‚เบ”เบเบเบปเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเป‰เบญเบกเบเบฑเบšเบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ เบ„เปเบฒ. เป€เบšเบดเปˆเบ‡เบžเบฒเบ
เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ Directory เบ„เบปเป‰เบ™เบซเบฒ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบเบฒเบ™โ€‹เบ„เบปเป‰เบ™โ€‹เบซเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบชเปˆเบงเบ™โ€‹เบซเบปเบงโ€‹, เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปเบฅเบฐโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹
เบ‚เบญเบ‡ compilerโ€‹:

-Idir
เป€เบžเบตเปˆเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต dir เป„เบ›เบซเบฒเบซเบปเบงเบ‚เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒ header
เป„เบŸเบฅเปŒ. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ override เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš, เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡
เบชเบฐเบšเบฑเบš, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบเปˆเบญเบ™เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบต
เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบœเบนเป‰เบ‚เบฒเบเบชเบฐเปœเบญเบ‡เปƒเบซเป‰ (เปƒเบŠเป‰ - เบฅเบฐเบšเบปเบš เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบฑเป‰เบ™). เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡
-I เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป„เบ”เป‰เบ–เบทเบเบชเบฐเปเบเบ™เบˆเบฒเบเบŠเป‰เบฒเบเบซเบฒเบ‚เบงเบฒ; เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบฒเบžเบฒเบเบซเบผเบฑเบ‡.

เบ–เป‰เบฒเบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ›เบฐเบเบญเบšเบกเบตเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ - เบฅเบฐเบšเบปเบš, เป€เบ›เบฑเบ™
เบเบฑเบ‡เบฅเบฐเบšเบธเป„เบงเป‰เบเบฑเบš -I, เบเบฒเบ™ -I เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบฑเบ‡เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเปเบ•เปˆ
เปƒเบ™โ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ•เปเบฒโ€‹เปเบซเบ™เปˆเบ‡โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบกเบตโ€‹เบ•เปˆเบญเบ‡โ€‹เป‚เบชเป‰โ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡ GCC เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš buggy เปเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบš
เบ„เปเบฒเบชเบฑเปˆเบ‡ "include_next" เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡เปƒเบˆ. เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบ—เป‰เป†
เบ„เปเบฒเบชเบฑเปˆเบ‡เบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เปƒเบŠเป‰ -nostdinc เปเบฅเบฐ / เบซเบผเบท - เบฅเบฐเบšเบปเบš เบ•เบปเบงเป€เบฅเบทเบญเบ

-iplugindir=dir
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒ plugins เบ—เบตเปˆเบœเปˆเบฒเบ™ -fplugin=เบŠเบทเปˆ เปเบ—เบ™โ€‹เบ—เบตเปˆ
-fplugin=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡/เบŠเบทเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™,. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰, เปเบ•เปˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆ
เบœเปˆเบฒเบ™เป„เบ›เป‚เบ”เบเบ„เบปเบ™เบ‚เบฑเบšเบฅเบปเบ”.

-iquotedir
เป€เบžเบตเปˆเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต dir เป„เบ›เบซเบฒเบซเบปเบงเบ‚เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒ header
เป„เบŸเบฅเปŒเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ "#include"เป„เบŸเบฅเปŒ""; เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบš "#include
<เป„เบŸเบฅเปŒ>", เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เบทเบเบฑเบ™เบเบฑเบš -I.

-Ldir
เป€เบžเบตเปˆเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต dir เป„เบ›เบซเบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบซเบฒ -l.

-Bเบ„เบณ เบ™เบณ เปœเป‰เบฒ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบšเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹, เบฅเบงเบกโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹, เปเบฅเบฐโ€‹
เป„เบŸเบฅเปŒเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡ compiler เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡.

เป‚เบ›เบฅเปเบเบฅเบกเป„เบ”เป€เบงเบต compiler เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบ cpp, cc1, as เปเบฅเบฐ ld.
เบกเบฑเบ™เบžเบฐเบเบฒเบเบฒเบก เบ„เบณ เบ™เบณ เปœเป‰เบฒ เป€เบ›เบฑเบ™เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบฑเบ™เบžเบฐเบเบฒเบเบฒเบกเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เบ—เบฑเบ‡เบกเบตเปเบฅเบฐเบšเปเปˆเบกเบต
เป€เบ„เบทเปˆเบญเบ‡/เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ/.

เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบเบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เป„เบ”เป€เบงเบต compiler เบ—เปเบฒเบญเบดเบ”เบžเบฐเบเบฒเบเบฒเบก -B เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ, เบ–เป‰เบฒเบกเบต.
เบ–เป‰เบฒเบŠเบทเปˆเบ™เบฑเป‰เบ™เบšเปเปˆเบžเบปเบš, เบซเบผเบทเบ–เป‰เบฒ -B เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰, เบ„เบปเบ™เบ‚เบฑเบšเบžเบฐเบเบฒเบเบฒเบกเบชเบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เบ„เบณเบ™เบณเปœเป‰เบฒ, /usr/lib/gcc/ เปเบฅเบฐ /usr/local/lib/gcc/. เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡เบญเบฑเบ™เบ™เบฑเป‰เบ™เบšเปเปˆเป„เบ”เป‰เบœเบปเบ™เปƒเบ™ เบ
เบŠเบทเปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบžเบปเบšโ€‹เป€เบซเบฑเบ™โ€‹, เบŠเบทเปˆโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบปเป‰เบ™โ€‹เบซเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™ PATH environment variable

compiler เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ -B เบซเบกเบฒเบเป€เบ–เบดเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เปเบฅเบฐเบ–เป‰เบฒ
เบกเบฑเบ™ เบˆเบณ เป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ•เบปเบงเบ‚เบฑเป‰เบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบขเบนเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡.

-B เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบœเบปเบ™เบฅเบฐเบšเบธเบŠเบทเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบฑเบ‡เปƒเบŠเป‰เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ™
linker, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ compiler เปเบ›เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ -L เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.
เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบเบญเบšเบกเบตเป„เบŸเบฅเปŒเปƒเบ™ preprocessor, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ compiler เปเบ›
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ - เบฅเบฐเบšเบปเบš เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบš preprocessor เป„เบ”เป‰โ€‹. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, compiler
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ เบเบฑเบšเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ.

เป„เบŸเบฅเปŒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ runtime libgcc.a เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -B เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ, เบ–เป‰เบฒ
เบ•เป‰เบญเบ‡เบเบฒเบ™. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบžเบปเบšเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบชเบญเบ‡เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบกเปˆเบ™เบžเบฐเบเบฒเบเบฒเบก, เปเบฅเบฐเบ™เบฑเป‰เบ™
เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”. เป„เบŸเบฅเปŒเบ–เบทเบเบ›เบฐเป„เบงเป‰เบˆเบฒเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบžเบปเบšเป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบญเบตเบเบงเบดเบ—เบตเปœเบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เบฅเบฐเบšเบธเบ„เบณเบ™เบณเปœเป‰เบฒเบ„เบทเบเบฑเบš -B เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก
เบ•เบปเบงเปเบ› GCC_EXEC_PREFIX.

เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™ kludge เบžเบดเป€เบชเบ”, เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ -B is [dir/]stageN/, เบšเปˆเบญเบ™เบ—เบตเปˆ N เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบ
เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ 0 เบซเบฒ 9, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ [dir/]เบฅเบงเบกเบ—เบฑเบ‡. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเปˆเบงเบโ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™ boot -
strapping compiler เป„เบ”เป‰.

-spec=เป€เบญเบเบฐเบชเบฒเบ™
เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ เป€เบญเบเบฐเบชเบฒเบ™ เบซเบผเบฑเบ‡เบˆเบฒเบ compiler เบญเปˆเบฒเบ™เปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ เบ‚เปเป‰เบเปเบฒเบซเบ™เบปเบ” เป„เบŸเบฅเปŒ, เป€เบžเบทเปˆเบญ override
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆ gcc เป‚เบ›เบฅเปเบเบฅเบกเบ„เบปเบ™เบ‚เบฑเบšเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฐเบซเบผเบฑเบšเบ—เบตเปˆเบˆเบฐเบœเปˆเบฒเบ™
to cc1, cc1plus, as, ld, เปเบฅเบฐเบญเบทเปˆเบ™เป† เบซเบผเบฒเบเบเปˆเบงเบฒเบซเบ™เบถเปˆเบ‡ -spec=เป€เบญเบเบฐเบชเบฒเบ™ เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™
เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เปเบฅเบฐเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบˆเบฒเบเบŠเป‰เบฒเบเบซเบฒเบ‚เบงเบฒ.

--sysroot=dir
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ dir เป€เบ›เบฑเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฎเบฒเบเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบซเบปเบง เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
compiler เบ›เบปเบเบเบฐเบ•เบดเบŠเบญเบเบซเบฒ headers เปƒเบ™ / usr / เบ›เบฐเบเบญเบšเบกเบต เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ™ / usr / lib, เบกเบฑเบ™
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒ dir/usr/เบฅเบงเบก เปเบฅเบฐ dir/usr/lib.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฅเบฐ -isysroot เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹ --sysroot เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เปเบ•เปˆ -isysroot เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒ headerโ€‹.

เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU (เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบฐเบšเบฑเบš 2.16) เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ–เป‰เบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เป„เบŸเบฅเปŒ header เบ‚เบญเบ‡
--sysroot เบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเบฅเบฑเบเบชเบฐเบ™เบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบšเปเปˆเป„เบ”เป‰.

--no-sysroot-suffix
เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, suffix เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบฎเบฒเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ --sysroot,
เบญเบตเบ‡เบ•เบฒเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบ—เบตเปˆเปƒเบŠเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเปˆเบงเบ™เบซเบปเบงเบญเบฒเบ”เบˆเบฐเบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡
dir/suffix/usr/include เปเบ—เบ™โ€‹เบ—เบตเปˆ dir/usr/เบฅเบงเบก. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ‚เบญเบ‡ suffix เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

-AND- เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบเบฐเบฅเบธเบ™เบฒเปƒเบŠเป‰ -iquote เปเบ—เบ™เบ—เบตเปˆ -I เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเปˆเบญเบ™
เป„เบ”เป‰ -AND- เปเบฅเบฐเป€เบญเบปเบฒ -AND- เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเปƒเบ”เป†เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ”เป‰เบงเบ -I เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปˆเบญเบ™
เป„เบ”เป‰ -AND- เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบŠเบญเบเบซเบฒเบžเบฝเบ‡เปเบ•เปˆเบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ "#include" เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.เป„เบŸเบฅเปŒ""; เบžเบงเบโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™
เบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบš "#includeเป„เบŸเบฅเปŒ>".

เบ–เป‰เบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ”เป‰เบงเบ -I เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹ -AND- เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ "#include" เบ—เบฑเบ‡เบซเบกเบปเบ”. (เบ›เบปเบเบเบฐเบ•เบด เบ—เบฑเบ‡เบซเบกเบปเบ” -I
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ–เบทเบเปƒเบŠเป‰เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰.)

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, -AND- เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ inhibits เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™ (เบšเปˆเบญเบ™โ€‹เบ—เบตเปˆ
เป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบกเบฒเบˆเบฒเบ) เป€เบ›เบฑเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ„เบปเป‰เบ™เบซเบฒเบ—เปเบฒเบญเบดเบ”เบชเปเบฒเบฅเบฑเบš "#include"เป„เบŸเบฅเปŒ"".
เบšเปเปˆเบกเบตเบ—เบฒเบ‡เบ—เบตเปˆเบˆเบฐ override เบœเบปเบ™เบเบฐเบ—เบปเบšเบ™เบตเป‰เบ‚เบญเบ‡ -AND-เบ—เบตเปˆเบขเบนเปˆ เบกเบต - เบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบŠเบญเบเบซเบฒ
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบกเบทเปˆเบญ compiler เบ–เบทเบเป€เบญเบตเป‰เบ™. เบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เปเบ—เป‰
เบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆ preprocessor เป€เบฎเบฑเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบกเบฑเบ™เบกเบฑเบเบˆเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบžเปเปƒเบˆ.

-AND- เบšเปเปˆเป„เบ”เป‰เบเบฑเบšเบเบฑเป‰เบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ header.
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, -AND- เปเบฅเบฐ -nostdinc เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”.

เบเบฒเบ™เบฅเบฐเบšเบธ เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ เป€เบ„เบทเปˆเบญเบ‡ เปเบฅเบฐ เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™ Version
เบงเบดเบ—เบตเบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ GCC เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ executable gcc, เบซเบผเบท เป€เบ„เบทเปˆเบญเบ‡-gcc เป€เบกเบทเปˆเบญเบ‚เป‰เบฒเบก -
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบซเบผเบท เป€เบ„เบทเปˆเบญเบ‡-gcc-เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ เป€เบžเบทเปˆเบญเปเบฅเปˆเบ™เป€เบงเบตเบŠเบฑเบ™เบญเบทเปˆเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบญเบฑเบ™เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบงเป‰
เบชเบธเบ”เบ—เป‰เบฒเบ.

เบญเบธเบ›เบฐเบเบญเบ™ เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡ เปเบฅเบฐ Configurations
เปเบ•เปˆเบฅเบฐเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฒเบกเบฒเบ”เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ -m, เป€เบฅเบทเบญเบ
เปƒเบ™เบšเบฑเบ™เบ”เบฒเบฎเบนเบšเปเบšเบšเบฎเบฒเบ”เปเบงเบ•เปˆเบฒเบ‡เป†เบซเบผเบทเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ --- เบ•เบปเบงเบขเปˆเบฒเบ‡, 68010 vs 68020, เปเบšเบšเป€เบฅเบทเปˆเบญเบ™
coprocessor เบซเบผเบทเบšเปเปˆเบกเบต. เบชเบฐเบšเบฑเบšเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ”เบฝเบงเบ‚เบญเบ‡ compiler เบชเบฒเบกเบฒเบ”เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบฎเบนเบšเปเบšเบš
เบซเบผเบทเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบญเบตเบ‡เบ•เบฒเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰.

เบšเบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡ compiler เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบžเบดเป€เบชเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบชเปเบฒเบฅเบฑเบš
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš compilers เบญเบทเปˆเบ™เป†เปƒเบ™เป€เบงเบ—เบตเบ”เบฝเบงเบเบฑเบ™.

AAArch64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” AArch64:

-mabi=เบŠเบทเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™ ilp32 เบชเปเบฒโ€‹เบฅเบฑเบš SysV-
เบ„เบทเบเบฑเบšเบ•เบปเบงเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆ int, long int เปเบฅเบฐ pointer เปเบกเปˆเบ™ 32-bit, เปเบฅเบฐ lp64 เบชเปเบฒเบฅเบฑเบš SysV เบ„เป‰เบฒเบเบ„เบท
เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆ int เปเบกเปˆเบ™ 32-bit, เปเบ•เปˆ int เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เบเบฒเบงเปเบกเปˆเบ™ 64-bit.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบปเป‰เบฒเปเบฒเบเบชเบฐเป€เบžเบฒเบฐ. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ LP64 เปเบฅเบฐ
ILP32 ABIs เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ; เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบกเป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ”เป‰เบงเบเบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™
ABI, เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบŠเบธเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” big-endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš an
aarch64_be-*-* เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mgeneral-regs-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป„เบ›.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” little-endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš an
aarch64-*-* เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™ aarch64_be-*-* เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mcmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบฅเบฐโ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹
เบ•เป‰เบญเบ‡เบขเบนเปˆเบžเบฒเบเปƒเบ™ 1GB เบ‚เบญเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบ•เบปเบงเบŠเบตเป‰เปเบกเปˆเบ™ 64 เบšเบดเบ”. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹
เบซเบผเบทเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เปเบฅเบฐเบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™
เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ.

-mcmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹
เบชเบฑเบ™เบเบฒเบฅเบฑเบเบˆเบฐเบ•เป‰เบญเบ‡เบขเบนเปˆเบžเบฒเบเปƒเบ™ 4GB เบ‚เบญเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบ•เบปเบงเบŠเบตเป‰เปเบกเปˆเบ™ 64 เบšเบดเบ”. เป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ เบซเบผเบทเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mcmodel=เปƒเบซเบเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบšเปเปˆเบกเบตเบเบฒเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ—เบตเปˆเบขเบนเปˆเปเบฅเบฐ
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹. เบ•เบปเบงเบŠเบตเป‰เปเบกเปˆเบ™ 64 เบšเบดเบ”. เป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mstrict-align
เบขเปˆเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบฅเบฐเบšเบปเบš.

-momit-leaf-frame-pointer
-mno-omit-leaf-frame-pointer
เบเบปเบเป€เบฅเบตเบ เบซเบผเบทเบฎเบฑเบเบชเบฒเบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบขเบนเปˆเปƒเบ™เปœเป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบกเปˆเบ™
Default

-mtls-dialect=desc
เปƒเบŠเป‰เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบ TLS เป€เบ›เบฑเบ™เบเบปเบ™เป„เบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ thread-local เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡ TLS
เบ•เบปเบงเปเบ›. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mtls-dialect=เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
เปƒเบŠเป‰ TLS เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเป€เบ›เบฑเบ™เบเบปเบ™เป„เบเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ thread-local เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡ TLS
เบ•เบปเบงเปเบ›

-mfix-cortex-a53-835769
-mno-fix-cortex-a53-835769
เป€เบ›เบตเบ”เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบชเปเบฒเบฅเบฑเบš ARM Cortex-A53 erratum เป€เบฅเบ 835769. เบ™เบตเป‰
เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เปƒเบชเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡ NOP เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™ 64-bit
multiply-accumulate เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-mfix-cortex-a53-843419
-mno-fix-cortex-a53-843419
เป€เบ›เบตเบ”เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบชเปเบฒเบฅเบฑเบš ARM Cortex-A53 erratum เป€เบฅเบ 843419. เบ™เบตเป‰
erratum workaround เปเบกเปˆเบ™เป€เบฎเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบœเปˆเบฒเบ™เบ—เบธเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™
เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

- เบกเบตเบ™เบฒ=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเป€เบ›เบปเป‰เบฒเปเบฒเบ, เป€เบฅเบทเบญเบเบ•เปเปˆเบ—เป‰เบฒเบเบ”เป‰เบงเบเปœเบถเปˆเบ‡ เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™
เบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปเบšเบšเบŸเบญเบก - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡{+[no]เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”}*, เบšเปˆเบญเบ™เบ—เบตเปˆ
เบ„เปˆเบฒเบญเบฐเบ™เบธเบเบฒเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš เป‚เบ„เป‰เบ‡ is armv8-a. เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เบกเบต
เป€เบญเบเบฐเบชเบฒเบ™เบขเบนเปˆเปƒเบ™เบžเบฒเบเบเปˆเบญเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบš.

เบšเปˆเบญเบ™เบ—เบตเปˆ - เบกเบตเบ™เบฒ เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบ‚เบญเบ‡โ€‹ -mtune or -mcpu เบเบฑเบ‡เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เป„เบ”เป‰
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เปเบกเปˆเบ™ tuned เป€เบžเบทเปˆเบญโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เบ”เบตโ€‹เปƒเบ™โ€‹เบ—เบปเปˆเบงโ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mtune=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆ GCC เบ„เบงเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เบฅเบฐโ€‹เบซเบฑเบ”. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบชเบณเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™: generic, cortex-a53, cortex-a57,
cortex-a72, exynos-m1, เบŸเป‰เบฒเบฎเป‰เบญเบ‡, xgene1.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบงเปˆเบฒ GCC เบ„เบงเบ™เบ›เบฑเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”
เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš big.LITTLE. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบชเบณเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™:
cortex-a57.cortex-a53, cortex-a72.cortex-a53.

เบšเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเบกเบต -mtune=, -mcpu= or - เบกเบตเบ™เบฒ= เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ›เบฑเบšเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”
เบ”เบตเปƒเบ™เบ—เบปเปˆเบงเบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบเป‚เบ”เบเบ•เบปเบงเบ›เบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”.

-mcpu=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ suffixed เป‚เบ”เบเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”
เบ•เบปเบงเปเบเป‰เป„เบ‚. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปเบšเบšเบŸเบญเบก -mcpu=cpu{+[no]เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”}*, เบšเปˆเบญเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”
เบ„เบธเบ™เบ„เปˆเบฒ เบชเบณ เบฅเบฑเบš cpu เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆ -mtune.

เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบžเบฒเบเบเปˆเบญเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบš (เบ„เบทเบเบฑเบšเบงเปˆเบฒเป‚เบ”เบ - เบกเบตเบ™เบฒ) เปเบฅเบฐเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบˆเบฐ
tune เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” (เป€เบ›เบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป‚เบ”เบ -mtune). เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบชเบปเบกเบ—เบปเบšเบเบฑเบš
- เบกเบตเบ™เบฒ or -mtune, เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบตโ€‹เบญเบฑเบ™โ€‹เบ”เบฑเบšโ€‹เบ•เบปเป‰เบ™โ€‹เปƒเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบ‚เบญเบ‡โ€‹เบ™เบตเป‰โ€‹
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

- เบกเบตเบ™เบฒ เปเบฅเบฐ -mcpu เบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”

เบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบเบฑเบš - เบกเบตเบ™เบฒ เปเบฅเบฐ -mcpu เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

crc เป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ CRC.

crypto
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ Crypto. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ Advanced SIMD เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.

fp เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบ.

เบŠเบดเบก
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบฑเป‰เบ™เบชเบนเบ‡ SIMD. เบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบณเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ - เบกเบตเบ™เบฒ เปเบฅเบฐ
-mcpu=.

Adapteva Epiphany เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš Adapteva Epiphany:

-mhalf-reg-file
เบขเปˆเบฒเบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ”เป†เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” "r32"..."r63". เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
เบฎเบฒเบ”เปเบง variants เบ—เบตเปˆเบ‚เบฒเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

-mprefer-short-insn-regs
เบกเบฑเบเบˆเบฑเบ”เบชเบฑเบ™เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบญเบ™เบชเบฑเป‰เบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”
เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบกเบตเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบซเบผเบธเบ”เบฅเบปเบ‡เบซเบผเบทเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบฅเบงเบก
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”.

-mbranch-cost=num
เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบชเบฒเบ‚เบฒเป€เบ›เบฑเบ™เบ›เบฐเบกเบฒเบ™ num เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "เบ‡เปˆเบฒเบเบ”เบฒเบ". เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆ a
heuristic เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เปƒเบ™เบ—เบปเปˆเบงเบเบฒเบ™เบ›เปˆเบญเบ.

-mcmove
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

-mnops=num
เบ›เปˆเบญเบ num NOPs เบเปˆเบญเบ™เบ—เบธเบเป†เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

-mno-soft-cmpsf
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง, เบ›เปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš "fsub".
เบ—เบธเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เป„เบงเบเบงเปˆเบฒเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบŠเบญเบšเปเบง, เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เปƒเบ™เบ—เบตเปˆเบ›เบฐเบ—เบฑเบšเบ‚เบญเบ‡ NaNs, เบซเบผเบทเป€เบกเบทเปˆเบญเบชเบญเบ‡เบ•เบปเบงเป€เบฅเบเบ™เป‰เบญเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ–เบทเบเบ›เบฝเบšเบ—เบฝเบšเป€เบŠเบฑเปˆเบ™เบ™เบฑเป‰เบ™
เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเป€เบ›เบฑเบ™เบชเบนเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -msoft-cmpsf, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰
เบŠเป‰เบฒเบเบงเปˆเบฒ, เปเบ•เปˆเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบŠเบญเบšเปเบงเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš IEEE.

-mstack-offset=num
เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ—เบดเบ‡เบ‚เบญเบ‡ stack เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰ stack. เบ•เบปเบงเบขเปˆเบฒเบ‡: เบ„เปˆเบฒเบ‚เบญเบ‡ 8
เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ›เบ” bytes เปƒเบ™เป„เบฅเบเบฐ "sp+0...sp+7" เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบš
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™ stack. เบ„เบธเบ™เบ„เปˆเบฒเบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ 8 or 16 เปเบกเปˆเบ™ untested เปเบฅเบฐเบ„เบปเบ‡เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™
เป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡ ABI; เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบต a
stack offset เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบเปˆเบงเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบšเปเปˆเป„เบ”เป‰
เป€เบฎเบฑเบ”เบงเบฝเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเป€เบกเบตเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป€เบ›เบฑเบ™ stack offset เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบˆเบฐเปƒเบซเป‰เบ—เปˆเบฒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เปเบ•เปˆเบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ stack offset เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡
เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก
--with-stack-offset=num เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-mno-เบฎเบญเบš-เปƒเบเป‰เบ—เบตเปˆเบชเบธเบ”
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบฎเบญเบšเป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบ•เบฑเบ”. เป„เบ”เป‰
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ -mround-เปƒเบเป‰เบ—เบตเปˆเบชเบธเบ”.

-mlong-เป‚เบ—
เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เป‚เบ”เบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบ—เบฑเบ‡เปเบปเบ”เบญเบฒเบ”เบˆเบฐเป€เบเบตเบ™
เบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "b" / "bl", เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบขเบนเปˆเบŸเบฑเบ‡เบŠเบฑเบ™
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ—เบซเบฒ (เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป‚เบ”เบเบเบปเบ‡). เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mshort-เป‚เบ—
เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เป‚เบ”เบเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”
เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "b" / "bl", เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเป‚เบ”เบเบเบปเบ‡. เป„เบ”เป‰
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ -mlong-เป‚เบ—.

-msmall16
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เบตเปˆเบขเบนเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเป‚เบซเบฅเบ”เป€เบ›เบฑเบ™เบ„เปˆเบฒ 16-bit unsigned. เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš
เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹ -mlong-เป‚เบ— semantics เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰.

-mfp-mode=เบฎเบนเบšเปเบšเบšเบเบฒเบ™
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบซเบกเบ”เบ—เบตเปˆเป€เบ”เบฑเปˆเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ. เบ™เบตเป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เป€เบฅเบทเปˆเบญเบ™ -
เป‚เบซเบกเบ”เบˆเบธเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปเบฅเบฐเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเป‚เบ—เบซเบฒเปเบฅเบฐเป€เบงเบฅเบฒเบเบฑเบšเบ„เบทเบ™. เบเบฒเบ™เป€เบฎเบฑเบ”
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ™เบตเป‰โ€‹เบเบปเบ‡โ€‹เบเบฑเบšโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเปˆเบงเบ™โ€‹เปƒเบซเบเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹
เป‚เบ›เบฃเปเบเบกเบ™เป‰เบญเบเบฅเบปเบ‡ เปเบฅเบฐเป„เบงเบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบซเบผเบตเบเบฅเปˆเบฝเบ‡เบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเป‚เปเบ”เบ—เบตเปˆเบšเปเปˆเบˆเบณเป€เบ›เบฑเบ™.

เบฎเบนเบšเปเบšเบšเบเบฒเบ™ เบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเปœเบถเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบœเบนเป‰เป‚เบ—
เป‚เปเบ”เปƒเบ”เป†เบเปเบ•เบฒเบกเบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡, เปเบฅเบฐเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰ เบซเบผเบทเบŸเบทเป‰เบ™เบŸเบนเป€เบกเบทเปˆเบญเบŸเบฑเบ‡เบŠเบฑเบ™
เบเบฑเบšเบ„เบทเบ™, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบทเปˆเบ™เป†. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบทเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบญเบทเปˆเบ™เป†เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบกเบตเป‚เบซเบกเบ” FPU เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”
เปƒเบŠเป‰เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบญเบฑเบ™เบ”เบฝเบงเป€เบเบตเบ™เบ‚เบฐเปœเบฒเบ” เปเบฅเบฐเบ„เบงเบฒเบกเป„เบงเป€เบเบตเบ™เบ‚เบฐเปœเบฒเบ”เบชเบณเบฅเบฑเบšเป‚เปเบ”เบžเบดเป€เบชเบ”เปƒเบ”เป†
เบชเบฐเบซเบผเบฑเบšเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™, เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฑเบšเบซเบผเบฒเบ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš FPU เบ—เบตเปˆเบŠเบฐเบ™เบฐ.

เบฅเบณ เบ•เบปเป‰เบ™
เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹เบญเบญเบ (เป€เบŠเบฑเปˆเบ™โ€‹: เบฎเบญเบšโ€‹
เป„เบ›เบชเบนเปˆเบชเบนเบ™) เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบฎเบญเบš. เบ™เบฑเป‰เบ™เบฅเบงเบกเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เบˆเบฒเบเบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเป„เบ›เป€เบ›เบฑเบ™
เป€เบฅเบเป€เบ•เบฑเบก.

เบฎเบญเบš-เปƒเบเป‰เบ—เบตเปˆเบชเบธเบ”
เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบฎเบญเบšโ€‹เบซเบฒโ€‹เปƒเบเป‰โ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบซเบผเบทโ€‹.
เปเบกเป‰เปเบ•เปˆเบฎเบนเบšเบŠเบปเบ‡เบกเบปเบ™.

int เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹เปƒเบ™ FPUโ€‹, เป€เบŠเบฑเปˆเบ™โ€‹: integerโ€‹
เบ„เบนเบ™, เบซเบผเบทเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ„เบนเบ™ เปเบฅเบฐเบชเบฐเบชเบปเบก.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mfp-mode=เบœเบนเป‰เป‚เบ—

-mnosplit-lohi
-mno-postinc
-mno-postmodify
เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ” 32-bit,
เบเบฒเบ™เบชเป‰เบฒเบ‡เบ—เบตเปˆเบขเบนเปˆเบซเบผเบฑเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบก, เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบ—เบตเปˆเบขเบนเปˆเบซเบผเบฑเบ‡เบเบฒเบ™เบ”เบฑเบ”เปเบเป‰. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ msplit-lohi, -mpost-inc, เปเบฅเบฐ -mpost-เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹.

-mnovect-double
เบ›เปˆเบฝเบ™เป‚เบซเบกเบ” SIMD เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ›เบฑเบ™ SImode. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mvect-double, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰
DImode เป€เบ›เบฑเบ™เป‚เบซเบกเบ” SIMD เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

-max-vect-align=num
เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบชเบนเบ‡เบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบฎเบนเบšเปเบšเบš vector เบ‚เบญเบ‡ SIMD. num เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ 4 เบซเบผเบท 8. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
8. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ ABI, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบฒเบเปเบกเปˆเบ™
เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเปƒเบŠเป‰เบฎเบนเบšเปเบšเบš vector เบ‚เบญเบ‡ SIMD เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐ / เบซเบผเบท
เบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

-msplit-vecmove-เบ•เบปเป‰เบ™
เปเบเบ vector เบเป‰เบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ„เปเบฒเบ”เบฝเบงเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบผเบ”เปƒเบซเบกเปˆ. เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบซเป‰
เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เปเบ•เปˆเบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™, เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง.

-m1reg-reg
เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบžเบทเปˆเบญเบ–เบทเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ -1, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป€เบ›เบฑเบ™เบฅเบปเบš
เบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบšเบฒเบ‡ bitmasks เป„เบงเบ‚เบถเป‰เบ™. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบชเปเบฒเบฅเบฑเบš reg เบกเบต r43 เปเบฅเบฐ r63,
เป€เบŠเบดเปˆเบ‡เบฅเบฐเบšเบธเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ, เปเบฅเบฐ none, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบต
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -m1reg-none.

ARC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบก:

-mbarrel-shifter
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ barrel shifter. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ
-mcpu=ARC601 เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบš.

-mcpu=cpu
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹, เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu.
เบเบฑเบ‡เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบฒเบ‡เบฅเบฑเบ” alias เบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เปเบฅเบฐ
เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบ. เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu เบกเบต

ARC600
เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš ARC600. เบ™เบฒเบกเปเบเบ‡: -mA6, -mARC600.

ARC601
เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš ARC601. เบ™เบฒเบกเปเบเบ‡: -mARC601.

ARC700
เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš ARC700. เบ™เบฒเบกเปเบเบ‡: -mA7, -mARC700. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ
เบเบฑเบš --with-cpu=arc700.

-mdpfp
-mdpfp-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”
FPX: เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ FPX เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ, เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบซเบ™เบฒเปเบซเบ™เป‰เบ™.

-mdpfp-เป„เบง
FPX: เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ FPX เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ, เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป„เบง.

-mno-dpfp-lrsr
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ LR เปเบฅเบฐ SR เบˆเบฒเบเบเบฒเบ™เปƒเบŠเป‰ FPX extension aux registers.

- เป€เบก
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบฅเบเบ„เบฐเบ™เบดเบ”เปเบšเบšเบ‚เบฐเบซเบเบฒเบ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆ "divaw", "เป€เบžเบตเปˆเบก", "subs",
เปเบฅเบฐ "sat16" เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบชเบฐเป€เปเบตเบชเบณเบฅเบฑเบš -mcpu=ARC700.

-mno-mpy
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ mpy เบชเปเบฒเบฅเบฑเบš ARC700.

- mmul32x16
เบชเป‰เบฒเบ‡ 32x16 bit multiply เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ mac.

-mmul64
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ mul64 เปเบฅเบฐ mulu64. เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš -mcpu=ARC600.

-mnorm
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ -mcpu=ARC700 เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบš.

-mspfp
-mspfp-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”
FPX: เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ FPX เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบง, tuned เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบซเบ™เบฒเปเบซเบ™เป‰เบ™.

-mspfp-เป„เบง
FPX: เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ FPX เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบง, tuned เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบง.

-msimd
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ ARC SIMD เบœเปˆเบฒเบ™เบ•เบปเบงเบชเป‰เบฒเบ‡เบชเบฐเป€เบžเบฒเบฐเป€เบ›เบปเป‰เบฒเปเบฒเบ. เบ–เบทเบเบ•เป‰เบญเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -mcpu=ARC700.

-msoft-float
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ; เบกเบฑเบ™เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบŠเบญเบšเปเบง
เบฅเบฐเบซเบฑเบ”เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ” overridden เป‚เบ”เบ FPX
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ; mspfp, mspfp-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”, เบซเบผเบท mspfp-เป„เบง เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบง, เปเบฅเบฐ mdpfp, mdpfp-
เบซเบ™เบฒเปเบซเบ™เป‰เบ™, เบซเบผเบท mdpfp-เป„เบง เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

-mswap
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฐเบซเบผเบฑเบš.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹, เปเบฅเบฐโ€‹เบเบฑเบ‡โ€‹เบเปเบฒโ€‹เบ™เบปเบ” preprocessorโ€‹
เบชเบฑเบ™เบเบฒเบฅเบฑเบเบกเบฐเบซเบฒเบžเบฒเบ.

-mdsp-packa
เบœเปˆเบฒเบ™เบฅเบปเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ DSP Pack A. เบเบฑเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™ "__Xdsp_packa".

-mdvbf
เบœเปˆเบฒเบ™เบฅเบปเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ butterfly เบชเบญเบ‡ viterbi. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰
เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบ preprocessor "__Xdvbf".

- mlock
เบœเปˆเบฒเบ™เบฅเบปเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เป‚เบซเบผเบ”/เบฎเป‰เบฒเบ™เบ—เบตเปˆเบ–เบทเบเบฅเบฑเบญเบ.
เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบ preprocessor "__Xlock".

-mmac-d16
เบ–เปˆเบฒเบเบ—เบญเบ”เบฅเบปเบ‡เป„เบ›เบซเบฒเบœเบนเป‰เบ›เบฐเบเบญเบš. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบ preprocessor "__Xxmac_d16".

-mmac-24
เบ–เปˆเบฒเบเบ—เบญเบ”เบฅเบปเบ‡เป„เบ›เบซเบฒเบœเบนเป‰เบ›เบฐเบเบญเบš. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบ preprocessor "__Xxmac_24".

-mrtsc
เบœเปˆเบฒเบ™เบฅเบปเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบงเบฅเบฒ 64-bit
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบ preprocessor "__Xrtsc".

-mswpe
เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบชเบฑเปˆเบ‡เบŠเบทเป‰ swap byte.
เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบ preprocessor "__Xswape".

- เป‚เบ—โ€‹เบฅเบฐโ€‹เบชเบฑเบš
เบœเปˆเบฒเบ™เบฅเบปเบ‡เป„เบ›เบซเบฒเบœเบนเป‰เบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ operand เบ„เบนเปˆเปเบฅเบฐเบ”เบฝเบงเบชเปเบฒเบฅเบฑเบš
เป‚เบ—เบฅเบฐเบชเบฑเบš. เบเบฑเบ‡เบ•เบฑเป‰เบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ preprocessor "__Xtelephony".

-mxy
เบœเปˆเบฒเบ™เบฅเบปเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ XY Memory. เบเบฑเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™ "__Xxy".

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบเบญเบšเบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบš:

- misize
เบญเบฐเบ—เบดเบšเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบœเบนเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ—เบตเปˆเบขเบนเปˆเป‚เบ”เบเบ›เบฐเบกเบฒเบ™.

-mannotate-align
เบญเบฐเบ—เบดเบšเบฒเบเบงเปˆเบฒเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบญเบฑเบ™เปƒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฎเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบชเบฑเป‰เบ™ เบซเบผเบท เบเบฒเบง.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ:

-marclinux
เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "arclinux" emulation. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš "arc-linux-uclibc" เปเบฅเบฐ
"arceb-linux-uclibc" เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ profileing เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฎเป‰เบญเบ‡เบ‚เป.

-marclinux_prof
เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบเบฒเบ™เปƒเบŠเป‰ "arclinux_prof" emulation. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš "arc-linux-uclibc" เปเบฅเบฐ
"arceb-linux-uclibc" เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ profileing เบ–เบทเบเบฎเป‰เบญเบ‡เบ‚เป.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ„เบงเบšเบ„เบธเบก semantics เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™:

-mepilogue-cfi
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบญเบšเบเบฒเบ™เป‚เบ—เบชเปเบฒเบฅเบฑเบšเบšเบปเบ”เบชเบฐเบซเบผเบธเบš.

-mno-epilogue-cfi
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบญเบšเบเบฒเบ™เป‚เบ—เบชเบณเบฅเบฑเบšเบšเบปเบ”เป€เบฅเบทเปˆเบญเบ‡.

-mlong-เป‚เบ—
เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ— insns เป€เบ›เบฑเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบก, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ
เป„เบฅเบเบฐเบ—เบตเปˆเบขเบนเปˆ 32-เบšเบดเบ”.

-เป‚เบ—เบ›เบฒเบ™เบเบฒเบ‡
เบขเปˆเบฒเปƒเบŠเป‰เป„เบฅเบเบฐเบ—เบตเปˆเบขเบนเปˆเปœเป‰เบญเบเบเบงเปˆเบฒ 25 bit เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเบŠเบปเบ”เป€เบŠเบตเบเบ—เบตเปˆเบกเบตเบขเบนเปˆ
เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบเบฒเบ™เป‚เบ—เบ–เบทเบเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™, เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบŠเปˆเบงเบ‡ 25-เบšเบดเบ”, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบŠเปˆเบงเบ‡ 21-เบšเบดเบ”
เบเบฑเบšเบชเบฒเบ‚เบฒเปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป€เบ›เบปเป‰เบฒเปเบฒเบ "arc-linux-uclibc" เปเบฅเบฐ "arceb-linux-uclibc".

-mno-sdata
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡ sdata. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป€เบ›เบปเป‰เบฒเปเบฒเบ "arc-linux-uclibc" เปเบฅเบฐ "arceb-linux-uclibc".

-mucb-mcount
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบ— mcount เบ•เบฒเบกเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ” UCB. เบ„เบทโ€‹เป€เบฎเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ™เบฑเบšโ€‹เปƒเบ™ callee เป„เบ”เป‰โ€‹,
เบšเปเปˆเปเบกเปˆเบ™เบœเบนเป‰เป‚เบ—. เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบท ARC เบˆเบฐเบ™เบฑเบšเบขเบนเปˆเปƒเบ™เบœเบนเป‰เป‚เบ—.

-mvolatile-cache
เปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒเปเบšเบšเบ›เบปเบเบเบฐเบ•เบดเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-volatile-cache
เป€เบ›เบตเบ”เปƒเบŠเป‰ cache bypass เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹เบ›เบฑเบšโ€‹เปเบ•เปˆเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ›เบฑเบšโ€‹เปเบ•เปˆเบ‡โ€‹:

-malign-เป‚เบ—
เป€เบฎเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ—.

-mauto-modify-reg
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบเปˆเบญเบ™/เบซเบผเบฑเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบเป‰เบฒเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

-mbbit-peephole
เป€เบ›เบตเบ”เปƒเบŠเป‰ bbit Peephole2.

-mno-brcc
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบœเปˆเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเป€เบ›เบปเป‰เบฒเปเบฒเบ arc_reorg เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ "BRcc"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบกเบฑเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฒเบ™เบœเบฐเบฅเบดเบ” "BRcc" เบ—เบตเปˆเบ–เบทเบเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป‚เบ”เบเบšเบฑเบ”เบฅเบงเบก.

-mcase-vector-pcrel
เปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบชเบฐเบซเบผเบฑเบš pc-relative - เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบชเบฑเป‰เบ™เบฅเบปเบ‡. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš -เบญเบช.

-mcompact-casesi
เป€เบ›เบตเบ”เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฐเบ—เบฑเบ”เบฎเบฑเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ -เบญเบช.

-mno-cond-exec
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบšเบฑเบ”เบœเปˆเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ ARCompact เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบฎเบญเบ”เบเบณเบ™เบปเบ”
เป€เบžเบทเปˆเบญเบŠเบฑเบเบŠเป‰เบฒเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เบŠเปˆเบญเบ‡เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเป€เบฅเบ operand, เบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบท,
เบ„เบงเบฒเบกโ€‹เบเบฒเบงโ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹, เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป€เบญโ€‹เบเบฐโ€‹เบฅเบฒเบ”โ€‹
pass เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบกเบฑเบเบˆเบฐเบ‚เบฒเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบญเบ” ARC เป„เบ”เป‰เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰
pass เบžเบดเป€เบชเบ”เบ›เบฐเบกเบฒเบ™เบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเบŠเบญเบเบซเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเป‰เบฒเบ‡
เป‚เบญเบเบฒเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบเบฒเบ™เบซเบผเบธเบ”เบชเบฒเบ‚เบฒ, เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒ
เป„เบ”เป‰เป€เบฎเบฑเบ”เปเบฅเป‰เบง. เบœเปˆเบฒเบ™เบ™เบตเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบตเป„เบ›, เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบฅเบฐเบซเบฑเบ”
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹, เปƒเบ™โ€‹เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบเบฒเบ™โ€‹เบฅเบงเบšโ€‹เบฅเบงเบกโ€‹เบžเบดโ€‹เป€เบชเบ”โ€‹, เบŠเบถเปˆเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบซเบเบฑเบ‡โ€‹เบˆเบถเปˆเบ‡โ€‹เบกเบตโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบฐโ€‹เบซเบผเบฑเบšโ€‹
เบกเบฑเบ™เบ›เบดเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ—เป€เบเบตเบ™เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”
เบŠเปˆเบงเบ‡เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ›เบฑเบšเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบŠเป‰ -เป‚เบ—เบ›เบฒเบ™เบเบฒเบ‡
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

-mearly-cbranchsi
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป‚เบซเบผเบ”เปƒเปเปˆเบเปˆเบญเบ™เบเบฒเบ™เปƒเบŠเป‰เบฎเบนเบšเปเบšเบš cbranchsi.

-mexpand-adddi
เบ‚เบฐเบซเบเบฒเบ "adddi3" เปเบฅเบฐ "subdi3" เปƒเบ™เป€เบงเบฅเบฒเบเบฒเบ™เบœเบฐเบฅเบดเบ” rtl เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ "add.f", "adc" เปเบฅเบฐเบญเบทเปˆเบ™เป†.

-mindexed-loads
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เบชเบฐเบ™เบต. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒเป€เบžเบฒเบฐเบงเปˆเบฒเบšเบฒเบ‡ optimizers เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบฎเป‰เบฒเบ™เบ„เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เบชเบฐเบ™เบตเบกเบตเบขเบนเปˆ, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบต.

-mlra
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบ™เบตเป‰เบเบฑเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบš ARC, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
compiler เปƒเบŠเป‰เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ reload (ie -mno-lra).

-mlra-priority-none
เบขเปˆเบฒเบŠเบตเป‰เบšเบญเบเบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เปƒเบ”เป†เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mlra-priority-compact
เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบš r0..r3 / r12..r15.

-mlra-priority-noncompact
เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™ regsiter เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบš r0..r3 / r12..r15.

-mno-millicode
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ optimizing เบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ” (เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -เบญเบช), prologues เปเบฅเบฐ epilogues เบ—เบตเปˆเบกเบตเป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบซเบผเบท
เบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบงเบ‡เบซเบผเบฒเบเบกเบฑเบเบˆเบฐเบชเบฑเป‰เบ™เบฅเบปเบ‡เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบžเบดเป€เบชเบ”
เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™ libgcc; เบญเบฑเบ™เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป€เบ›เบฑเบ™ เบกเบดเบ™เบฅเบดเป‚เบ„เบ” เป‚เบ—. เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡
เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐ / เบซเบผเบทเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™,
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เป‚เบ— millicode.

- เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบกโ€‹
Tweak เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 16-bit. เบ™เบตเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบ™เบฑเบš.

-mq-เบŠเบฑเป‰เบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบชเบญเบ™ 'q'. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ -เบญเบช.

-mRcq
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ” Rcq - เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเบฑเป‰เบ™เบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ™เบตเป‰. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mRcw
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ” Rcw - ccfsm condexec เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ™เบตเป‰. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
Default

-msize-level=เบฅเบฐเบ”เบฑเบš
เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบ‚เบฐเปœเบฒเบ”เบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบ„เบณเปเบ™เบฐเบ™เบณ เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡. เป„เบ”เป‰
เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบฅเบฐเบ”เบฑเบš เปเบกเปˆเบ™:

0 เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบฐเบซเบ™เบฒเบ”. เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ” เปเบฅเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบท 1.

1 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฑเป‰เบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป‚เบญเบเบฒเบ”.

2 เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ loops เปเบฅเบฐเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบญเบธเบ›เบฐเบชเบฑเบเบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡.

3 เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบซเบผเบธเบ”เบฅเบปเบ‡, เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบ Os เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

เบ™เบตเป‰เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐ 3 เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -เบญเบช เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบถเบ”เบ•เบดเบเปเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป€เบ—เบปเปˆเบฒเบเบฑเบšเบฅเบฐเบ”เบฑเบš 1.

-mtune=cpu
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบš cpu, overriding เปƒเบ”เป† implied เป‚เบ”เบ -mcpu=.

เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu เบกเบต

ARC600
เบ›เบฑเบšเบชเปเบฒเบฅเบฑเบš ARC600 cpu.

ARC601
เบ›เบฑเบšเบชเปเบฒเบฅเบฑเบš ARC601 cpu.

ARC700
เบ›เบšเบฑเบชเบณเบฅเบฑเบš ARC700 cpu เบ”เป‰เบงเบเบ•เบปเบงเบ„เบนเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

ARC700-xmac
เบ›เบฑเบšเบชเปเบฒเบฅเบฑเบš ARC700 cpu เบเบฑเบš XMAC block.

ARC725D
เบ›เบฑเบšเปเบ•เปˆเบ‡ CPU ARC725D.

ARC750D
เบ›เบฑเบšเปเบ•เปˆเบ‡ CPU ARC750D.

-mmultcost=num
เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบงเปˆเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹เบ„เบนเบ™โ€‹, เบกเบตโ€‹ 4 เป€เบ—เบปเปˆเบฒเบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ›เบปเบเบเบฐเบ•เบด.

-munalign-prob-threshold=เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™
เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบชเบฒเบ‚เบฒเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ tuning เบชเปเบฒเบฅเบฑเบš ARC700 เปเบฅเบฐ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป„เบง, เบชเบฒเบ‚เบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบ—เบตเปˆเป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเปเบกเปˆเบ™เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ
unaligned เปเบฅเบฐเบเบฒเบง, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ profileing เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบชเบฒเบ‚เบฒเบ—เบตเปˆเบˆเบฐ
เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปเบกเปˆเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบฅเบธเปˆเบกโ€‹เบ™เบตเป‰โ€‹ เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ (REG_BR_PROB_BASE/2), เป€เบŠเบฑเปˆเบ™: 5000.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบ”เป‰เบฒเบ™เบซเบผเบฑเบ‡, เปเบ•เปˆเบ•เบญเบ™เบ™เบตเป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบเปเบฅเป‰เบง
เปเบฅเบฐโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบฅเบปเบšโ€‹เบญเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เปˆเบญเบโ€‹เปƒเบ™โ€‹เบญเบฐโ€‹เบ™เบฒโ€‹เบ„เบปเบ”โ€‹:

- margonaut
FPX เบฅเป‰เบฒเบชเบฐเป„เบซเบก.

-mbig-endian
-EB เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ endian เปƒเบซเบเปˆ. เบ•เบญเบ™เบ™เบตเป‰เป€เบŠเบปเบฒเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเป‰เบง. เบœเบนเป‰เปƒเบŠเป‰
เบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบฐเบซเบฑเบ” big-endian, เบ„เบงเบ™เปƒเบŠเป‰เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ "arceb-elf32" เปเบฅเบฐ "arceb-linux-uclibc"
เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท, เป€เบŠเบดเปˆเบ‡ big-endian เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mlittle-endian
- THE เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ endian เบ™เป‰เบญเบ. เบ•เบญเบ™เบ™เบตเป‰เป€เบŠเบปเบฒเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเป‰เบง.
เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบฐเบซเบฑเบ” little-endian เบ„เบงเบ™เปƒเบŠเป‰ "arc-elf32" เปเบฅเบฐ "arc-linux-uclibc"
เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท, เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆ little-endian เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mbarrel_shifter
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mbarrel-shifter.

-mdpfp_compact
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mdpfp-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”.

-mdpfp_fast
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mdpfp-เป„เบง.

-mdsp_packa
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mdsp-packa.

-mEA
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ - เป€เบก.

-mmac_24
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mmac-24.

-mmac_d16
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mmac-d16.

-mspfp_compact
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mspfp-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”.

-mspfp_fast
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mspfp-เป„เบง.

-mtune=cpu
เบกเบนเบ™เบ„เปˆเบฒ เป‚เบ„เป‰เบ‡ 600, เป‚เบ„เป‰เบ‡ 601, เป‚เบ„เป‰เบ‡ 700 เปเบฅเบฐ arc700-xmac เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ cpu เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ ARC600, ARC601,
ARC700 เปเบฅเบฐ ARC700-xmac เบ•เบฒเบก เบฅเบณ เบ”เบฑเบš

-multcost=num
เบ›เปˆเบฝเบ™เปเบ—เบ™เป‚เบ”เบ -mmultcost.

ARM เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบžเบญเบ” ARM:

-mabi=เบŠเบทเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš ABI เบ—เบตเปˆเบฅเบฐเบšเบธ. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: apcs-gnu, atpcs, aapcs,
aapcs-linux เปเบฅเบฐ iwmmxt.

-mapcs-frame
เบชเป‰เบฒเบ‡เบเบญเบš stack เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบฒเบ™เป‚เบ—เบ‚เบฑเป‰เบ™เบ•เบญเบ™ ARM เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™
เบซเบ™เป‰เบฒเบ—เบตเปˆ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”.
เบเบฒเบ™เบฅเบฐเบšเบธ -fomit-frame-pointer เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบญเบš stack เบšเปเปˆเป€เบ›เบฑเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-apcs-frame. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบŠเบปเบฒเปƒเบŠเป‰เปเบฅเป‰เบง.

- เปเบœเบ™เบ—เบตเปˆ
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบท -mapcs-frame เปเบฅเบฐเบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

-mthumb-interwork
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป‚เบ—เบฅเบฐเบซเบงเปˆเบฒเบ‡เบŠเบธเบ”เบ„เบณเบชเบฑเปˆเบ‡ ARM เปเบฅเบฐ Thumb.
เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบเปˆเบญเบ™ v5, เบชเบญเบ‡เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบตเปˆโ€‹เป€เบŠเบทเปˆเบญโ€‹เบ–เบทโ€‹เป„เบ”เป‰โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-thumb-interwork, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบฑเบเบ™เป‰เบญเบ
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹ -mthumb-interwork เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ AAPCS
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบ.

-mno-sched-prolog
เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™ prologue เบซเบ™เป‰เบฒเบ—เบตเปˆ, เบซเบผเบทเบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบ‚เบญเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบขเบนเปˆเปƒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”
เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบฎเบนเป‰เป„เบ”เป‰ (เบซเบผเบทเปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบซเบ™เบถเปˆเบ‡
เบˆเบฒเบเบŠเบธเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡ prologues เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™), เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ
เบŠเบญเบเบซเบฒเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบฒเบเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-msched-prolog.

-mfloat-abi=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰ ABI เบˆเบธเบ”เปƒเบ”. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: เบญเปˆเบญเบ™เป†, softfp เปเบฅเบฐ
เบเบฒเบ.

เบเบฒเบ™เบฅเบฐเบšเบธ เบญเปˆเบญเบ™เป† เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบœเบฐเบฅเบดเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเปˆเบญเบ™
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบˆเบธเบ”โ€‹. softfp เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเบฒเบ”โ€‹เปเบง Floating-pointโ€‹
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบ•เปˆเบเบฑเบ‡เบ„เบปเบ‡เปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เปเบšเบšเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เบเบฒเบ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบชเบฐเป€เบžเบฒเบฐ FPU.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบปเป‰เบฒเปเบฒเบเบชเบฐเป€เบžเบฒเบฐ. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปเบ‚เบ‡-เป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เปเบฅเบฐ Soft-float ABIs เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ; เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบกเป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบš
ABI เบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบŠเบธเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” little-endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹.

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” big-endian; เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian.

- เบกเบตเบ™เบฒ=เบŠเบทเปˆ
เบญเบฑเบ™เบ™เบตเป‰เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ ARM เป€เบ›เบปเป‰เบฒเปเบฒเบ. GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญ
เบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบš. เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹เบซเบผเบทโ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹ -mcpu= เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบญเบฐเบ™เบธเบเบฒเบ”
เบŠเบทเปˆเปเบกเปˆเบ™: armv2, armv2a, armv3, armv3m, armv4, armv4t, armv5, armv5t, armv5e,
armv5te, armv6, armv6j, armv6t2, armv6z, armv6zk, armv6-เบก, armv7, armv7-a, armv7-r,
armv7-เบก, armv7e-m, armv7ve, armv8-a, armv8-a+crc, iwmmxt, iwmmxt2, ep9312.

-march=armv7ve เปเบกเปˆเบ™ armv7-a เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ virtualization.

-march=armv8-a+crc เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ ARMv8-A เบฎเปˆเบงเบกเบเบฑเบš
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ CRC32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-march=native เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบเบงเบ”เบžเบปเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡
เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบต. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™ GNU / Linux, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป„เบ”เป‰เบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เบšเปเปˆโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹
เบœเบปเบ™เบเบฐเบ—เบปเบš.

-mtune=เบŠเบทเปˆ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต ARM เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆ GCC เบ„เบงเบ™เบ›เบฑเบš
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”. เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ARM เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹. เบŠเบทเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: arm2, arm250, arm3, arm6,
arm60, arm600, arm610, arm620, arm7, เปเบ‚เบ™7เบก, เปเบ‚เบ™7เบ‡, เปเบ‚เบ™ 7dm, arm7di, เปเบ‚เบ™ 7dmi, arm70,
arm700, เปเบ‚เบ™700i, arm710, เปเบ‚เบ™ 710c, arm7100, arm720, arm7500, เปเบ‚เบ™7500fe, arm7tdmi,
arm7tdmi-s, เปเบ‚เบ™ 710t, เปเบ‚เบ™ 720t, เปเบ‚เบ™ 740t, เป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡, เบ›เบทเบ™โ€‹เปƒเบซเบเปˆ 110, เบ›เบทเบ™โ€‹เปƒเบซเบเปˆ 1100,
เบ›เบทเบ™โ€‹เปƒเบซเบเปˆ 1110, arm8, arm810, arm9, เปเบ‚เบ™9e, arm920, เปเบ‚เบ™ 920t, เปเบ‚เบ™ 922t, arm946e-s,
arm966e-s, arm968e-s, arm926ej-s, เปเบ‚เบ™ 940t, arm9tdmi, arm10tdmi, เปเบ‚เบ™ 1020t, arm1026ej-s,
เปเบ‚เบ™10e, เปเบ‚เบ™1020e, เปเบ‚เบ™1022e, arm1136j-s, arm1136jf-s, mpcore, mpcorenovfp, arm1156t2-s,
arm1156t2f-s, arm1176jz-s, arm1176jzf-s, cortex-a5, cortex-a7, cortex-a8, cortex-a9,
cortex-a12, cortex-a15, cortex-a53, cortex-a57, cortex-a72, cortex-r4, cortex-r4f,
cortex-r5, cortex-r7, cortex-m7, cortex-m4, cortex-m3, cortex-m1, cortex-m0,
cortex-m0plus, cortex-m1.small-multiply, cortex-m0.small-multiply,
cortex-m0plus.small-multiply, exynos-m1, marvell-pj4, xscale, iwmmxt, iwmmxt2, ep9312,
fa526, fa626, fa606te, fa626te, fmp626, fa726te, xgene1.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบงเปˆเบฒ GCC เบ„เบงเบ™เบ›เบฑเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”
เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš big.LITTLE. เบŠเบทเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: cortex-a15.cortex-a7,
cortex-a57.cortex-a53, cortex-a72.cortex-a53.

-mtune=เบ—เบปเปˆเบงเป„เบ›-เป‚เบ„เป‰เบ‡ เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ GCC เบ„เบงเบ™เบ›เบฑเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเบฐเบชเบปเบกเบœเบฐเบชเบฒเบ™
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบžเบฒเบเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ เป‚เบ„เป‰เบ‡. เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบตเปƒเบ™
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡
CPUs เปƒเบ™เบฅเบฐเบ”เบฑเบš, เปเบฅเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ pitfalls เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ CPUs เบญเบทเปˆเบ™เป†. เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฎเบธเปˆเบ™ GCC เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบเป‰เบญเบ™เบงเปˆเบฒเบฎเบธเปˆเบ™ CPU เบกเบฒเปเบฅเบฐเป„เบ›.

-mtune=native เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบเบงเบ”เบžเบปเบš CPU เบ‚เบญเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบชเป‰เบฒเบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ—เบตเปˆ
เบ›เบฐเบˆเบธเบšเบฑเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบฎเบญเบ‡เบฎเบฑเบšเบชเบฐเป€เบžเบฒเบฐเปƒเบ™ GNU/Linux, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ—เบฑเบ‡เปเบปเบ”
เบฎเบฑเบšเบฎเบนเป‰. เบ–เป‰เบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบšเปเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™.

-mcpu=เบŠเบทเปˆ
เบ™เบตเป‰เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” ARM เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญเบกเบฒเบˆเบฒเบ
เบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ ARM เป€เบ›เบปเป‰เบฒเปเบฒเบ (เบ„เบทเบเบฑเบšเบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบ - เบกเบตเบ™เบฒ) เปเบฅเบฐเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” ARM
เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” (เป€เบ›เบฑเบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹ -mtune). เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เปเบกเปˆเบ™เปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบš - เบกเบตเบ™เบฒ or -mtune, เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐโ€‹
เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

เบŠเบทเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบš -mtune.

-mcpu=เบ—เบปเปˆเบงเป„เบ›-เป‚เบ„เป‰เบ‡ เบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”, เปเบฅเบฐเป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡
-mtune=เบ—เบปเปˆเบงเป„เบ›-เป‚เบ„เป‰เบ‡, เบ—เบฐเป€เบฅเบชเบฒเบš -mtune เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

-mcpu=เป€เบ”เบตเบก เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบเบงเบ”เบžเบปเบš CPU เบ‚เบญเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบชเป‰เบฒเบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ—เบตเปˆ
เบ›เบฐเบˆเบธเบšเบฑเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบฎเบญเบ‡เบฎเบฑเบšเบชเบฐเป€เบžเบฒเบฐเปƒเบ™ GNU/Linux, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ—เบฑเบ‡เปเบปเบ”
เบฎเบฑเบšเบฎเบนเป‰. เบ–เป‰เบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบšเปเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™.

-mfpu=เบŠเบทเปˆ
เบ™เบตเป‰เบฅเบฐเบšเบธเบงเปˆเบฒเบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบ (เบซเบผเบทเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบฎเบฒเบ”เปเบง) เบกเบตเบขเบนเปˆเปƒเบ™
เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ. เบŠเบทเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: vfp, vfpv3, vfpv3-fp16, vfpv3-d16, vfpv3-d16-fp16,
vfpv3xd, vfpv3xd-fp16, neon, เบ™เบตเบญเบญเบ™-fp16, vfpv4, vfpv4-d16, fpv4-sp-d16, เบ™เบตเบญเบญเบ™-vfpv4,
fpv5-d16, fpv5-sp-d16, fp-armv8, เบ™เบตเบญเบญเบ™-fp-armv8, เปเบฅเบฐ crypto-neon-fp-armv8.

If -msoft-float เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰เบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบ.

เบ–เป‰เบฒเบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเป€เบฅเบทเบญเบเบ›เบฐเบเบญเบšเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ NEON (เบ•เบปเบงเบขเปˆเบฒเบ‡ -mfpu=neon),
เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡ GCC
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒ -funsafe-math-optimizations เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบฎเบฒเบ”เปเบง NEON
เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ IEEE 754 เบชเปเบฒเบฅเบฑเบšเป€เบฅเบเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบง (เปƒเบ™
เบ„เปˆเบฒเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบชเบนเบ™), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡ NEON เบญเบฒเบ”เบˆเบฐ
เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™.

-mfp16-format=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ "__fp16" เบ›เบฐเป€เบžเบ”เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เป€เบ„เบดเปˆเบ‡เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™. เบญเบฐเบ™เบธเบเบฒเบ”
เบŠเบทเปˆเปเบกเปˆเบ™ none, ieee, เปเบฅเบฐ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ; เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ none, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰ "__fp16"
เบ›เบฐเป€เบžเบ”เบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”.

-mstructure-size-boundary=n
เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เป„เบ”เป‰เบฅเบงเบšเบฅเบงเบกเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบซเบผเบฒเบเบซเบผเบฒเบเบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™
bits เบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™ 8, 32 เปเบฅเบฐ 64. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบชเปเบฒโ€‹เบฅเบฑเบš COFF เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ‚เบญเบ‡โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เปเบกเปˆเบ™โ€‹
8. เบ„เปˆเบฒเบ‚เบญเบ‡ 64 เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ ABI เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™.

เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบชเบฒเบกเบฒเบ”เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เป„เบง, เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ, เปเบ•เปˆเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰
เป€เบžเบตเปˆเบกโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹. เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบกเปˆเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ„เปˆเบฒเบซเบ™เบถเปˆเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบซเบผเบทเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”
เบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบกเบนเบ™เบ„เปˆเบฒเบญเบทเปˆเบ™, เบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบซเบผเบทเบชเบฐเบซเบฐเบžเบฑเบ™.

-mabort-on-norturn
เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ "เบเบปเบเป€เบฅเบตเบ" เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ "noreturn". เบกเบฑเบ™โ€‹เปเบกเปˆเบ™
เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบžเบฐเบเบฒเบเบฒเบกเบเบฑเบšเบ„เบทเบ™.

-mlong-เป‚เบ—
-mno-long-calls
เบšเบญเบ compiler เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ”เบเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ—เปเบฒเบญเบดเบ”
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ—เบซเบฒ subroutine เปƒเบ™เบ—เบฐเบšเบฝเบ™เบ™เบตเป‰. เบ™เบตเป‰
เบชเบฐเบงเบดเบ”เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™เบขเบนเปˆเบ™เบญเบเบ—เบตเปˆเบขเบนเปˆ 64-megabyte
เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบ›เบปเบเบเบฐเบ•เบดเบเปˆเบญเบ.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เบเบฒเบง.
heuristic เปเบกเปˆเบ™เบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆ, เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบกเบต "short_call"
เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ, เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ "#pragma no_long_calls",
เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เปเบฒเบ™เบดเบเบฒเบกเป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเปเบฅเป‰เบงเบžเบฒเบเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™
เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบšเปเปˆเป„เบ”เป‰เบซเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เบเบฒเบง. เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒ
เบ„เปเบฒเบ™เบดเบเบฒเบกเบŸเบฑเบ‡เบŠเบฑเบ™เบญเปˆเบญเบ™เปเบญ, เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "long_call" เบซเบผเบท "เบžเบฒเบเบชเปˆเบงเบ™"
เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ, เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ "#pragma long_calls"
เบชเบฐเป€เบซเบกเบตเบเบฒเบเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เบเบฒเบง.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเบฒเบ™เบฅเบฐเบšเบธ -mno-long-calls เบŸเบทเป‰เบ™เบŸเบน
เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบงเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป‚เบ—เบซเบฒเบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ "#pragma
long_calls_off" เบ„เปเบฒเบชเบฑเปˆเบ‡. เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบชเบฐเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบงเบดเบ—เบตเบเบฒเบ™ compiler
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™.

-msingle-pic-base
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ PIC เป€เบ›เบฑเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เบกเบฑเบ™เบขเบนเปˆเปƒเบ™
prologue เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ. เบฅเบฐเบšเบปเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ”เป‰เบงเบเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

-mpic เบกเบฑเบเบชเบฐเบกเบฒเบŠเบดเบ =reg
เบฅเบฐเบšเบธเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ PIC. เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบžเบทเป‰เบ™เบ–เบฒเบ™ PIC เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, the
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ compiler. เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบžเบทเป‰เบ™เบ–เบฒเบ™ PIC เบ”เบฝเบง,
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ R9 เบ–เป‰เบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ EABI เบซเบผเบทเบเบฒเบ™เบเบงเบ”เบชเบญเบš stack เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ R10.

-mpic-data-is-text-relative
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเปเบ•เปˆเบฅเบฐเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™เป€เบงเบฅเบฒเป‚เบซเบผเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™,
เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปเบเป‰เป„เบ‚เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš PC. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบญเบทเปˆเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ VxWorks RTP.

-mpoke-function-name
เบ‚เบฝเบ™เบŠเบทเปˆเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบชเปˆเปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก, เป‚เบ”เบเบเบปเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒ
เบšเบปเบ”เบšเบฑเบ™เบเบฒเบ. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ™เบตเป‰:

t0
.ascii "arm_poke_function_name", 0
.เบˆเบฑเบ”เบฎเบฝเบ‡
t1
.word 0xff000000 + (t1 - t0)
arm_poke_function_name
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
เบเปˆเบญเบ fp, ip, #4

เป€เบกเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” stack backtrace, เบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ "pc" เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ "fp +
0. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ•เบฑเป‰เบ‡ "pc - 12โ€‹" เปเบฅเบฐโ€‹เป€เบ—เบดเบ‡ 8 bitsโ€‹.
เบ•เบฑเป‰เบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒเบกเบตเบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบเบฑเบ‡เป„เบงเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบเบฒเบง "((pc[-3]) & 0xff000000)".

- เป‚เบ›เป‰เบกเบท
- เบกเบฒเบก
เป€เบฅเบทเบญเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฑเบ” ARM เปเบฅเบฐ Thumb. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐ ARM, เปเบ•เปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC เบเบฑเบš --with-mode=เบฅเบฑเบ” เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-mtpcs-frame
เบชเป‰เบฒเบ‡เบเบญเบš stack เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบฒเบ™เป‚เบ—เบ‚เบญเบ‡ Thumb Procedure เบชเปเบฒเบฅเบฑเบš
เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เปƒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”. (เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เปƒเบšเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป‚เบ—เบซเบฒเบญเบฑเบ™เบญเบทเปˆเบ™
functions.) เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-tpcs-frame.

-mtpcs-เปƒเบš-เบเบญเบš
เบชเป‰เบฒเบ‡เบเบญเบš stack เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบฒเบ™เป‚เบ—เบ‚เบญเบ‡ Thumb Procedure เบชเปเบฒเบฅเบฑเบš
เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”. (เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เปƒเบšเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบทเปˆเบ™เป†.)
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-apcs-เปƒเบš-เบเบญเบš.

-mcallee-super-interworking
เปƒเบซเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบžเบฒเบเบ™เบญเบเบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ ARM
เบ•เบฑเป‰เบ‡ header เบ—เบตเปˆเบชเบฐเบซเบผเบฑเบšเป„เบ›เปƒเบŠเป‰ Thumb mode เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™.
เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเป€เบญเบตเป‰เบ™เบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ AAPCS เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mcaller-super-interworking
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เป‚เบ—เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ (เบฅเบงเบกเบ—เบฑเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเป€เปเบทเบญเบ™) เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡
เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบ™เบซเบผเบทเบšเปเปˆ.
เบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ AAPCS เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mtp=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบเบฐเบ—เบนเป‰. เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™
เบญเปˆเบญเบ™เป†, เป€เบŠเบดเปˆเบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒ "__aeabi_read_tp", cp15, เป€เบŠเบดเปˆเบ‡เบ”เบถเบ‡เป€เบญเบปเบฒเบเบฐเบ—เบนเป‰
เบ•เบปเบงเบŠเบตเป‰เบˆเบฒเบ "cp15" เป‚เบ”เบเบเบปเบ‡ (เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ arm6k), เปเบฅเบฐ เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ—เบตเปˆ
เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบฅเบทเบญเบ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

-mtls-เบžเบฒเบชเบฒ =เบžเบฒเบชเบฒ
เบฅเบฐเบšเบธเบžเบฒเบชเบฒเป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบชเบญเบ‡ เบžเบฒเบชเบฒs เปเบกเปˆเบ™
เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™ ---gnu เปเบฅเบฐ gnu2. เป„เบ”เป‰ gnu เบžเบฒเบชเบฒเป€เบฅเบทเบญเบเป‚เบ„เบ‡เบเบฒเบ™ GNU เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบชเปเบฒเบฅเบฑเบš
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง TLS เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบ—เบปเปˆเบงเป‚เบฅเบ. เป„เบ”เป‰ gnu2 เบžเบฒเบชเบฒเป€เบฅเบทเบญเบ GNU
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹, เบ—เบตเปˆโ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบ”เบตเบโ€‹เบงเปˆเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹. GNU
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เปเบกเปˆเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบเบฑเบšโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹, เปเบ•เปˆโ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เปƒเบซเบกเปˆโ€‹
assembler, linker เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”. เบฎเบนเบšเปเบšเบš TLS exec เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เปเบฅเบฐเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบกเปˆเบ™
เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฅเบฐเบชเบฐเป€เบซเบกเบตเปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

-mword เบเบฒเบ™โ€‹เบเบปเบโ€‹เบเป‰เบฒเบโ€‹
เบชเป‰เบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ„เปเบฒ (เป€เบŠเบฑเปˆเบ™: R_ARM_ABS32). เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบ (uClinux, SymbianOS) เบšเปˆเบญเบ™เบ—เบตเปˆเบ•เบปเบงเป‚เบซเบผเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™เบเบณเบ™เบปเบ”.
เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰, เปเบฅเบฐเป€เบงเบฅเบฒเปƒเบ” -fpic or -fPIC เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

-mfix-cortex-m3-ldrd
เบšเบฒเบ‡ Cortex-M3 cores เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ "ldrd" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฑเบš
เบเบฒเบ™เบ—เบฑเบšเบŠเป‰เบญเบ™เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เปเบฅเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเป‰เบฒเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ -mcpu=cortex-m3 is
เบฅเบฐเบšเบธ.

-munaligned-เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹
-mno-unaligned-access
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบญเปˆเบฒเบ™ เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™เบ„เปˆเบฒ 16- เปเบฅเบฐ 32-เบšเบดเบ”เบˆเบฒเบเบ—เบตเปˆเบขเบนเปˆ
เบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ 16- เบซเบผเบท 32-เบšเบดเบ”. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ unaligned เปเบกเปˆเบ™เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™
pre-ARMv6 เปเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ ARMv6-M เบ—เบฑเบ‡เปเบปเบ”, เปเบฅเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เปเบปเบ”. เบ–เป‰เบฒ
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ unaligned เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบฑเบ™เบˆเบธเปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ a
byte เปƒเบ™เป€เบงเบฅเบฒ.

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ ARM "Tag_CPU_unaligned_access" เบ–เบทเบเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบ›เบฑเบ™
เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบซเบผเบทเบœเบดเบ”, เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เบ–เป‰เบฒเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปเบฅเป‰เบงเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™ "__ARM_FEATURE_UNALIGNED" เบเบฑเบ‡เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

-mneon-for-64bits
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เปƒเบŠเป‰ Neon เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™ 64-bits scalar. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบ—เบฐเบšเบฝเบ™เบซเบผเบฑเบเป„เบ›เบซเบฒ Neon เปเบกเปˆเบ™เบชเบนเบ‡.

-mslow-flash-data
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบŸเบฅเบ”เปเบกเปˆเบ™เบŠเป‰เบฒเบเบงเปˆเบฒเบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบ„เบณเบชเบฑเปˆเบ‡. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบฎเบนเป‰เบซเบ™เบฑเบ‡เบชเบท
เบเบฒเบ™เป‚เบซเบผเบ”เบ–เบทเบเบซเบผเบธเบ”เปœเป‰เบญเบเบฅเบปเบ‡เป€เบžเบทเปˆเบญเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ”เบตเบ‚เบถเป‰เบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš ARMv7 M-profile เปเบฅเบฐเบ›เบดเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-masm-syntax-unified
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบเบญเบš inline เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ syntax asm unified. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ›เบดเบ”เบขเบนเปˆ
เป€เบŠเบดเปˆเบ‡เบซเบกเบฒเบเป€เบ–เบดเบ‡ syntax เปเบšเปˆเบ‡เบญเบญเบ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš Thumb1 เปเบฅเบฐ
เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐ ARM เปเบฅเบฐ Thumb2. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบญเบ‡
GCC. syntax เปเบšเปˆเบ‡เบญเบญเบเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ›เบฐเบ•เบดเป€เบชเบ”.

- เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบกเบฑเบ™โ€‹
เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ” IT blocks เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡ ARMv8. เบ•เบฑเบ™ IT เบชเบฒเบกเบฒเบ”
เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 16-bit เบ”เบฝเบงเบˆเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ. เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบฎเบนเบšโ€‹เปเบšเบš ARMv8 Thumbโ€‹.

-mprint-tune-info
เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เบฑเบš CPU เป€เบ›เบฑเบ™เบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™เปƒเบ™เป„เบŸเบฅเปŒ assembler. เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰
เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš regression เบ‚เบญเบ‡ compiler เปเบฅเบฐเบšเปเปˆเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบปเปˆเบงเป„เบ›เปƒเบ™
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

APR เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” AVR:

-mmcu=mcu
เบฅเบฐเบšเบธเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Atmel AVR (ISA) เบซเบผเบทเบ›เบฐเป€เบžเบ” MCU.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™ @tie{}avr2.

GCC เบฎเบญเบ‡เบฎเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™ AVR เปเบฅเบฐ ISA เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

"avr2"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ„เบฅเบฒเบชเบชเบดเบ" เบ—เบตเปˆเบกเบตเป€เบ–เบดเบ‡ 8@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. mcu@tie{}= "attiny22",
"attiny26", "at90c8534", "at90s2313", "at90s2323", "at90s2333", "at90s2343",
"at90s4414", "at90s4433", "at90s4434", "at90s8515", "at90s8535".

"avr25"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ„เบฅเบฒเบชเบชเบดเบ" เบ—เบตเปˆเบกเบตเป€เบ–เบดเบ‡ 8@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเปเบฅเบฐเบ”เป‰เบงเบ "MOVW"
เบ„เบณ เปเบ™เบฐ เบ™เบณ. mcu@tie{}= "ata5272", "ata6616c", "attiny13", "attiny13a",
"attiny2313", "attiny2313a", "attiny24", "attiny24a", "attiny25", "attiny261",
"attiny261a", "attiny43u", "attiny4313", "attiny44", "attiny44a", "attiny441",
"attiny45", "attiny461", "attiny461a", "attiny48", "attiny828", "attiny84",
"attiny84a", "attiny841", "attiny85", "attiny861", "attiny861a", "attiny87",
"attiny88", "at86rf401".

"avr3"
เบญเบธเบ›เบฐเบเบญเบ™ "Classic" เบ—เบตเปˆเบกเบต 16@tie{}KiB เบชเบนเบ‡เบชเบธเบ” 64@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.
mcu@tie{}= "at43usb355", "at76c711".

"avr31"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ„เบฅเบฒเบชเบชเบดเบ" เบ—เบตเปˆเบกเบต 128@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. mcu@tie{}= "atmega103",
"at43usb320".

"avr35"
เบญเบธเบ›เบฐเบเบญเบ™ "Classic" เบ—เบตเปˆเบกเบต 16@tie{}KiB เบชเบนเบ‡เบชเบธเบ” 64@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบเบฑเบš
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "MOVW". mcu@tie{}= "ata5505", "ata6617c", "ata664251",
"atmega16u2", "atmega32u2", "atmega8u2", "attiny1634", "attiny167", "at90usb162",
"at90usb82".

"avr4"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบตเบชเบนเบ‡เป€เบ–เบดเบ‡ 8@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. mcu@tie{}= "ata6285",
"ata6286", "ata6289", "ata6612c", "atmega48", "atmega48a", "atmega48p",
"atmega48pa", "atmega8", "atmega8a", "atmega8hva", "atmega8515", "atmega8535",
"atmega88", "atmega88a", "atmega88p", "atmega88pa", "at90pwm1", "at90pwm2",
"at90pwm2b", "at90pwm3", "at90pwm3b", "at90pwm81".

"avr5"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบต 16@tie{}KiB เบชเบนเบ‡เบชเบธเบ” 64@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.
mcu@tie{}= "ata5702m322", "ata5782", "ata5790", "ata5790n", "ata5795", "ata5831",
"ata6613c", "ata6614q", "atmega16", "atmega16a", "atmega16hva", "atmega16hva2",
"atmega16hvb", "atmega16hvbrevb", "atmega16m1", "atmega16u4", "atmega161",
"atmega162", "atmega163", "atmega164a", "atmega164p", "atmega164pa", "atmega165",
"atmega165a", "atmega165p", "atmega165pa", "atmega168", "atmega168a",
"atmega168p", "atmega168pa", "atmega169", "atmega169a", "atmega169p",
"atmega169pa", "atmega32", "atmega32a", "atmega32c1", "atmega32hvb",
"atmega32hvbrevb", "atmega32m1", "atmega32u4", "atmega32u6", "atmega323",
"atmega324a", "atmega324p", "atmega324pa", "atmega325", "atmega325a",
"atmega325p", "atmega325pa", "atmega3250", "atmega3250a", "atmega3250p",
"atmega3250pa", "atmega328", "atmega328p", "atmega329", "atmega329a",
"atmega329p", "atmega329pa", "atmega3290", "atmega3290a", "atmega3290p",
"atmega3290pa", "atmega406", "atmega64", "atmega64a", "atmega64c1", "atmega64hve",
"atmega64hve2", "atmega64m1", "atmega64rfr2", "atmega640", "atmega644",
"atmega644a", "atmega644p", "atmega644pa", "atmega644rfr2", "atmega645",
"atmega645a", "atmega645p", "atmega6450", "atmega6450a", "atmega6450p",
"atmega649", "atmega649a", "atmega649p", "atmega6490", "atmega6490a",
"atmega6490p", "at90can32", "at90can64", "at90pwm161", "at90pwm216", "at90pwm316",
"at90scr100", "at90usb646", "at90usb647", "at94k", "m3000".

"avr51"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบต 128@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. mcu@tie{}= "atmega128",
"atmega128a", "atmega128rfa1", "atmega128rfr2", "atmega1280", "atmega1281",
"atmega1284", "atmega1284p", "atmega1284rfr2", "at90can128", "at90usb1286",
"at90usb1287".

"avr6"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบต PC 3-byte, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}KiB เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก.
เบ„เบงเบฒเบกเบŠเบปเบ‡ เบˆเบณ. mcu@tie{}= "atmega256rfr2", "atmega2560", "atmega2561", "atmega2564rfr2".

"avrxmega2"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 8@tie{}KiB เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ” 64@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก.
mcu@tie{}= "atxmega16a4", "atxmega16a4u", "atxmega16c4", "atxmega16d4",
"atxmega16e5", "atxmega32a4", "atxmega32a4u", "atxmega32c3", "atxmega32c4",
"atxmega32d3", "atxmega32d4", "atxmega32e5", "atxmega8e5".

"avrxmega4"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 64@tie{}KiB เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ” 128@tie{}KiB เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก
เบ„เบงเบฒเบกเบŠเบปเบ‡ เบˆเบณ. mcu@tie{}= "atxmega64a3", "atxmega64a3u", "atxmega64a4u", "atxmega64b1",
"atxmega64b3", "atxmega64c3", "atxmega64d3", "atxmega64d4".

"avrxmega5"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 64@tie{}KiB เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ” 128@tie{}KiB เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก
เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ เปเบฅเบฐ เบซเบผเบฒเบเบเบงเปˆเบฒ 64@tie{}KiB เบ‚เบญเบ‡ RAM. mcu@tie{}= "atxmega64a1",
"atxmega64a1u".

"avrxmega6"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก. mcu@tie{}=
"atxmega128a3", "atxmega128a3u", "atxmega128b1", "atxmega128b3", "atxmega128c3",
"atxmega128d3", "atxmega128d4", "atxmega192a3", "atxmega192a3u", "atxmega192c3",
"atxmega192d3", "atxmega256a3", "atxmega256a3b", "atxmega256a3bu",
"atxmega256a3u", "atxmega256c3", "atxmega256d3", "atxmega384c3", "atxmega384d3".

"avrxmega7"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก เปเบฅเบฐเบซเบผเบฒเบเบเบงเปˆเบฒ
64@tie{}KiB เบ‚เบญเบ‡ RAM. mcu@tie{}= "atxmega128a1", "atxmega128a1u", "atxmega128a4u".

"avrtiny"
"TINY" เบญเบธเบ›เบฐเบเบญเบ™เบซเบผเบฑเบเบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบกเบต 512@tie{}B เบชเบนเบ‡เบชเบธเบ” 4@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก.
mcu@tie{}= "attiny10", "attiny20", "attiny4", "attiny40", "attiny5", "attiny9".

"avr1"
ISA เบ™เบตเป‰เบ–เบทเบเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบซเบผเบฑเบ AVR เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ” เปเบฅเบฐเบฎเบญเบ‡เบฎเบฑเบšเบชเบฐเป€เบžเบฒเบฐเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
mcu@tie{}="attiny11", "attiny12", "attiny15", "attiny28", "at90s1200".

-maccumulate-args
เบชเบฐเบชเบปเบกเบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบฒเบญเบญเบเปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบš / เบ›เปˆเบญเบเบžเบทเป‰เบ™เบ—เบตเปˆ stack เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบฒเบญเบญเบเบ„เบฑเป‰เบ‡เบ”เบฝเบงเปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ prologue/epilogue. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰,
เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบ—เบตเปˆเบญเบญเบเบกเบฒเปเบกเปˆเบ™ pushed เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐ popped เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™.

Popping เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡เปƒเบ™ AVR เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบเบฒเบ™เบชเบฐเบชเบปเบกเบžเบทเป‰เบ™เบ—เบตเปˆ stack เบญเบฒเบ”เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™
เบšเปเปˆเปƒเบซเป‰เป€เบญเบปเบฒเบญเบญเบเบˆเบฒเบ stack เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เป„เบ›โ€‹เบชเบนเปˆโ€‹เบเบฒเบ™โ€‹เบซเบผเบธเบ”โ€‹เบœเปˆเบญเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบซเบผเบฒเบโ€‹เป€เบžเบทเปˆเบญโ€‹
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเปƒเบ™ stack เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบท printf.

-mbranch-cost=เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ
เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบชเบฒเบ‚เบฒเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบžเบทเปˆเบญ เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ. เบ„เบธเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบ™เป‰เบญเบ, เบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบฅเบปเบš. เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบชเบฒเบ‚เบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0.

-mcall-prologues
เบŸเบฑเบ‡เบŠเบฑเบ™ prologues/epilogues เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบฅเบฒเบเบเบฒเบ™เบเปˆเบญเบเบ—เบตเปˆเป€เปเบฒเบฐเบชเบปเบก. เบฅเบฐเบซเบฑเบ”
เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบฅเบปเบ‡.

- mint8
เบชเบปเบกเบกเบธเบ” "int" เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™ 8-bit. เบญเบฑเบ™เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ—เบธเบเบ›เบฐเป€เบžเบ”: a "char" เปเบกเปˆเบ™ 1
byte, "int" เปเบกเปˆเบ™ 1 byte, "long" เปเบกเปˆเบ™ 2 bytes, เปเบฅเบฐ "long long" เปเบกเปˆเบ™ 4 bytes. เบเบฐเบฅเบธเบ™เบฒ
เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C, เปเบ•เปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ™เป‰เบญเบเบฅเบปเบ‡
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”.

-mn-flash=num
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ num เป€เบ—เบทเปˆเบญ 64@tie{}KiB.

-mno-interrupts
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบฎเบฒเบ”เปเบง. เบฅเบฐเบซเบฑเบ”เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบฅเบปเบ‡.

-mrelax
เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เปเบ—เบ™ "CALL" resp. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "JMP" เป‚เบ”เบ "RCALL" resp เบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒ. "RJMP"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เป‰เบฒเบกเบต. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ -mrelax เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบตเปˆเบก --mlink-เบœเปˆเบญเบ™เบ„เบฒเบ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹
เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡ assembler เปเบฅเบฐ --เบžเบฑเบเบœเปˆเบญเบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

Jump relaxing เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ linker เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบเบฒเบ™เป‚เบ”เบ”เบšเปเปˆเป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบเปˆเบญเบ™
เบฅเบฐเบซเบฑเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบฐเบซเบฑเบ” assembler เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ compiler เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™,
เปเบ•เปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบ•เบปเบงเบ›เบฐเบเบญเบš
เบฅเบฐเบซเบฑเบ”.

เบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเบ•เป‰เบญเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป€เบšเบดเปˆเบ‡เบžเบฒเบ "EIND" เปเบฅเบฐ
linker stubs เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

-mrmw
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบญเบธเบ›เบฐเบเบญเบ™เบฎเบญเบ‡เบฎเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบญเปˆเบฒเบ™-เบ”เบฑเบ”เปเบเป‰-เบ‚เบฝเบ™ "XCH", "LAC", "LAS"
เปเบฅเบฐ "LAT".

-msp8
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบปเบงเบŠเบตเป‰ stack เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 8-bit, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ byte เบชเบนเบ‡เบ‚เบญเบ‡
เบ•เบปเบงเบŠเบตเป‰ stack เปเบกเปˆเบ™เบชเบนเบ™. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ”เป‰เบงเบเบกเบท.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™เป‚เบ”เบ compiler เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเปเบฅเบฐเบชเป‰เบฒเบ‡ multilibs เบชเปเบฒเบฅเบฑเบš
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ "avr2" เปเบฅเบฐ "avr25". เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ›เบฐเบชเบปเบกเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเปเบฅเบฐเบšเปเปˆเบกเบต
"SPH". เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบญเบทเปˆเบ™เบ™เบญเบเบˆเบฒเบ -mmcu=avr2 or -mmcu=avr25 เป„เบ”เป€เบงเบต compiler เป€เบžเบตเปˆเบก
เบซเบผเบทเป€เบญเบปเบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบญเบเบˆเบฒเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡ compiler เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เป€เบžเบฒเบฐเบงเปˆเบฒ compiler
เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฎเบนเป‰เบงเปˆเบฒเบญเบธเบ›เบฐเบเบญเบ™เบซเบผเบทเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบกเบตเบ•เบปเบงเบŠเบตเป‰ stack 8-bit เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบšเปเปˆเบกเบต "SPH"
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบซเบผเบทเบšเปเปˆ.

-mstrict-X
เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบขเบนเปˆ "X" เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบฎเบฒเบ”เปเบงเบชเบฐเป€เบซเบ™เบต. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ "X" เปเบกเปˆเบ™
เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบฒเบ‡เบญเป‰เบญเบก, เบซเบผเบฑเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบก เบซเบผเบทเบเบฒเบ™เบซเบผเบธเบ”เปœเป‰เบญเบเบฅเบปเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "X" เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš "Y" เบซเบผเบท "Z" เป€เบŠเบดเปˆเบ‡
เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, emulated เป‚เบ”เบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป‚เบซเบผเบ”เบ„เปˆเบฒเบ—เบตเปˆเบกเบต
"X+const" เบ—เบตเปˆเบขเบนเปˆเบเบฑเบš "const < 64" เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เบฅเบปเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป„เบ›เบซเบฒเบ—เบฐเบšเบฝเบ™ Rn is
เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™

adiw r26, const ; X += const
ld , X ; =*X
sbiw r26, const ; X -= const

-mtiny-stack
เบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบฝเบ™ 8@tie{}bits เบ•เปˆเปเบฒเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰ stack.

-nodevicelib
เบขเปˆเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบฒเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบชเบฐเป€เบžเบฒเบฐเบญเบธเบ›เบฐเบเบญเบ™เบ‚เบญเบ‡ AVR-LibC "libdev.a".

-Waddr-space-เปเบ›เบ‡
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
space เบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบˆเบธเบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบ‚เบฒเป€เบ‚เบปเป‰เบฒ.

"EIND" เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเปˆเบงเบฒ 128 Ki Bytes เบ‚เบญเบ‡ Flash

เบ•เบปเบงเบŠเบตเป‰เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™ 16@tie{}bits wide. เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ เบซเบผเบทเบ›เป‰เบฒเบเบเบณเบเบฑเบš
เบ–เบทเบเบชเบฐเปเบ”เบ‡เป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเบšเป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบกเปเบฅเบฐเบเบฒเบ™เป‚เบ—เบชเบฒเบกเบฒเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบฅเบฐเบซเบฑเบ”เปƒเบ”เป†
เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป„เบฅเบเบฐ 64@tie{}Ki เบ„เปเบฒ.

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบกเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}Ki bytes เบ‚เบญเบ‡
เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบดเป€เบชเบ”เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "EIND" เบ—เบตเปˆเป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™
เบชเปˆเบงเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "EICALL" เบซเบผเบท "EIJMP" เปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบกเปเบฅเบฐเบเบฒเบ™เป‚เบ—เบซเบฒเบญเบธเบ›เบฐเบเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป‚เบ”เบ compiler เปเบฅเบฐเปเบกเปˆเบ™
เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เปเป‰เบˆเบณเบเบฑเบ”เบšเบฒเบ‡เบญเบฑเบ™:

* เบ„เบญเบกเบžเบตเบงเป€เบŠเบตเบšเปเปˆเป€เบ„เบตเบเบ•เบฑเป‰เบ‡ "EIND".

* เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเปƒเบŠเป‰ "EIND" implicitely เปƒเบ™ "EICALL"/"EIJMP" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบทเบญเบฒเบ”เบˆเบฐเบญเปˆเบฒเบ™
"EIND" เป‚เบ”เบเบเบปเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบฒเบ‡เบญเป‰เบญเบก / เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒเป‚เบ”เบเบงเบดเบ—เบต "RET"
เบ„เบณ เปเบ™เบฐ เบ™เบณ.

* เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ "EIND" เบšเปเปˆเป€เบ„เบตเบเบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบผเบทเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, "EIND" เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบ / เบŸเบทเป‰เบ™เบŸเบนเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบทเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡
เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบด prologue/epilogue.

* เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบกเป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐ goto computed, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเป‰เบฒเบ‡ เบฅเบณ เบ•เบปเป‰เบ™. เบฅเบณเบ•เบปเป‰เบ™
เปเบกเปˆเบ™ pads เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป€เบญเบตเป‰เบ™เบงเปˆเบฒ trampolines. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบก / เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒ
เบ•เบปเป‰เบ™เป„เบกเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. stub เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบเบฐเป‚เบ”เบ”เป‚เบ”เบเบเบปเบ‡เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

* เบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบ Linker เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเป‰เบฒเบ‡ stubs เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡
เปƒเบ™เบ—เบธเบเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™. เป€เบšเบดเปˆเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบ compiler -mrelax เปเบฅเบฐเบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ --เบžเบฑเบเบœเปˆเบญเบ™.
เบกเบตเบเปเบฅเบฐเบ™เบตเบกเบธเบกเบ—เบตเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบกเปˆเบ™ supposed เบˆเบฐเบชเป‰เบฒเบ‡ stubs เปเบ•เปˆ aborts
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเปเบฅเบฐเบšเปเปˆเบกเบตเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.

* script linker เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเบˆเบฑเบ”เบฅเบฝเบ‡เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบต "EIND = 0". เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™ supposed
เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ "EIND != 0", script linker เบเปเบฒเบ™เบปเบ”เป€เบญเบ‡เบ•เป‰เบญเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.
เป€เบžเบทเปˆเบญเบงเบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ ".trampolines" เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆ
"EIND" เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™.

* เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ libgcc เบšเปเปˆเป€เบ„เบตเบเบ•เบฑเป‰เบ‡ "EIND". เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบœเบฐเบชเบปเบกเบœเบฐเบชเบฒเบ™
เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบˆเบฒเบ libgcc เปเบฅเบฐ AVR-LibC. เบชเปเบฒเบฅเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ AVR-LibC เบเปˆเบฝเบงเบเบฑเบš "EIND", เป€เบšเบดเปˆเบ‡ AVR-
เบ„เบนเปˆเบกเบทเบœเบนเป‰เปƒเบŠเป‰ LibC ("http://nongnu.org/avr-libc/user-manual/")

* เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบชเบฐเป€เบžเบฒเบฐเป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "EIND" เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡เป‚เบ”เบ
เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบขเบนเปˆเปƒเบ™เบžเบฒเบ ".init3". เบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบญเบ™
เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ RAM เปเบฅเบฐเป‚เบ—เบซเบฒเบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡, เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบดเบ”เบ‚เบญเบ‡
เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ AVR-LibC เบ—เบตเปˆเบเปเบฒเบ™เบปเบ” "EIND" เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ vector เปเบกเปˆเบ™
เบ•เบฑเป‰เบ‡เบขเบนเปˆ.

#เบฅเบงเบกเบ—เบฑเบ‡

void static
__attribute__((section(.init3"),naked,used,no_instrument_function))
init3_set_eind (void)
{
__asm โ€‹โ€‹volatile ("ldi r24,pm_hh8(__trampolines_start)\n\t"
"เบญเบญเบ %i0,r24" :: "n" (&EIND): "r24","เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ");
}

เบชเบฑเบ™เบเบฒเบฅเบฑเบ "__trampolines_start" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

* Stubs เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เป‰เบฒเบกเบตเบชเบญเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เป„เบ”เป‰เบžเบปเบš:

-
(เบชเบฑเป‰เบ™ เบชเบณ เบฅเบฑเบš เบœเบฐเบฅเบดเบ” เบฅเบณ เบ•เบปเป‰เบ™) เป€เบŠเบฑเปˆเบ™โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹:

LDI r24, lo8(gs( ))
LDI r25, hi8(gs( ))

-
เบ™เบญเบ เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆ stubs เบ•เบฑเป‰เบ‡เบขเบนเปˆ.

* compiler เบ›เปˆเบญเบเบ•เบปเบงเปเบเป‰เป„เบ‚ "gs" เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเปเบฒเบฅเบฑเบšเบ›เป‰เบฒเบเบฅเบฐเบซเบฑเบ”เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

-
-
- -mcall-prologues>
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

-
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เป„เบ”เป‰ -fno-jump-tables เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

-
-
* เป‚เบ”เบ”เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบŠเบฑเปˆเบ™เบ™เบฑเป‰เบ™ เบšเปเปˆ เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™:

int main (void)
{
/* เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เบ„เปเบฒโ€‹เบชเบฑเบš 0x2 */
เบเบฑเบšเบ„เบทเบ™ ((int(*)(void)) 0x2)();
}

เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, stub เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™, ie เบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป‚เบ”เบเบœเปˆเบฒเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ
("func_4" เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡):

int main (void)
{
extern int func_4 (void);

/* เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ—เบขเบนเปˆเบ—เบตเปˆ byte address 0x4 */
เบเบฑเบšเบ„เบทเบ™ func_4();
}

เปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš -Wl,--defsym,func_4=0x4. เบญเบตเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, "func_4"
เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เบญเบ‡ "RAMPD", "RAMPX", "RAMPY" เปเบฅเบฐ "RAMPZ" เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบดเป€เบชเบ”

เบšเบฒเบ‡เบญเบธเบ›เบฐเบเบญเบ™ AVR เบฎเบญเบ‡เบฎเบฑเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ 64@tie{}KiB range เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰
เบ”เป‰เบงเบเบ•เบปเบงเบŠเบตเป‰ 16 เบšเบดเบ”. เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ” 64@tie{}KiB เบ™เบตเป‰, เป„เบ”เป‰
เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™ "RAMP" เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเบชเบนเบ‡เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆ: "X", "Y", "Z"
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบขเบนเปˆเปเบกเปˆเบ™เบชเบปเบกเบ—เบปเบšเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบดเป€เบชเบ” "RAMPX", "RAMPY", "RAMPZ".
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบขเบนเปˆเบเบงเป‰เบฒเบ‡. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, "RAMPD" เปเบกเปˆเบ™เปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš
เบ—เบตเปˆเบขเบนเปˆเป‚เบ”เบเบเบปเบ‡.

* เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบžเบดโ€‹เป€เบชเบ” "RAMPโ€‹" เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฑเบšโ€‹เบชเบนเบ™โ€‹.

* เบ–เป‰เบฒเบ APR เบŠเบทเปˆ เบ—เบตเปˆเบขเบนเปˆ Spaces, เบŠเบทเปˆ เบ—เบตเปˆเบขเบนเปˆ เบŠเปˆเบญเบ‡ เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เบซเบผเบท "__flashโ€‹" เปเบกเปˆเบ™โ€‹
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ "RAMPZ" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™.

* เบ–เป‰เบฒเบญเบธเบ›เบฐเบเบญเบ™เบฎเบญเบ‡เบฎเบฑเบš RAM เปƒเบซเบเปˆเบเบงเปˆเบฒ 64@tie{}KiB เปเบฅเบฐ compiler เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.
"RAMPZ" เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”, "RAMPZ" เบ–เบทเบเบ•เบฑเป‰เบ‡เปƒเบซเบกเปˆเป€เบ›เบฑเบ™เบชเบนเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™.

* เบ–เป‰เบฒเบญเบธเบ›เบฐเบเบญเบ™เบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "RAMP" เบชเบฐเป€เบžเบฒเบฐ, ISR prologue/epilogue
เบšเบฑเบ™เบ—เบถเบ / เบŸเบทเป‰เบ™เบŸเบน SFR เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบนเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฅเบฐเบซเบฑเบ” ISR เบญเบฒเบ”เบˆเบฐ
(เป‚เบ”เบ implicitly) เปƒเบŠเป‰เบกเบฑเบ™.

* RAM เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ 64@tie{}KiB เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเป‚เบ”เบ GCC เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ AVR. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰
inline assembler เป€เบžเบทเปˆเบญเบญเปˆเบฒเบ™เบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบขเบนเปˆ 16-bit เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบซเบ™เบถเปˆเบ‡เปƒเบ™ "RAMP" เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบ›เบฑเบšเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบนเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡.

AVR เบกเบฒเป‚เบ„เบฃเปƒเบ™เบ•เบปเบง

GCC เบเปเบฒเบ™เบปเบ” macro เปƒเบ™เบ•เบปเบงเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบขเบนเปˆเบซเบผเบท
เบ‚เบฒเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”. เป€เบเบทเบญเบšเบ—เบธเบ macro เปƒเบ™เบ•เบปเบงเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™ deduced เบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™
เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปเบฅเบฐโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบˆเบถเปˆเบ‡โ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹ -mmcu= เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

เบชเบณเบฅเบฑเบšเบกเบฒเป‚เบ„เบฃเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบชเบฐเป€เบžเบฒเบฐ AVR เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบซเป‰เป€เบšเบดเปˆเบ‡ APR เบŠเบทเปˆ เบ—เบตเปˆเบขเบนเปˆ เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡ เปเบฅเบฐ APR Built-in
เบซเบ™เป‰เบฒเบ—เบตเปˆ.

"__AVR_ARCH__"
Build-in macro เบ—เบตเปˆเปเบเป‰เป„เบ‚เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบเบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบกเบ—เบตเปˆเบฅเบฐเบšเบธเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐ
เบ‚เบทเป‰เบ™เบเบฑเบš -mmcu=mcu เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบกเปˆเบ™:

2, 25, 3, 31, 35, 4, 5, 51, 6

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ mcu= "avr2", "avr25", "avr3", "avr31", "avr35", "avr4", "avr5", "avr51", "avr6",

เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš เปเบฅเบฐ

100, 102, 104, 105, 106, 107

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ mcu= "avrtiny", "avrxmega2", "avrxmega4", "avrxmega5", "avrxmega6", "avrxmega7",
เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบ–เป‰เบฒ mcu เบฅเบฐเบšเบธเบญเบธเบ›เบฐเบเบญเบ™, เบกเบฐเบซเบฒเบžเบฒเบเปƒเบ™เบ•เบปเบงเบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ•เบฒเบกเบ„เบงเบฒเบกเป€เปเบฒเบฐเบชเบปเบก. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฑเบš -mmcu=atmega8 เบกเบฐเบซเบฒเบžเบฒเบเปเบกเปˆเบ™เบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 4.

"__AVR_เบญเบธเบ›เบฐเบเบญเบ™__"
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ -mmcu=เบญเบธเบ›เบฐเบเบญเบ™ เบเปเบฒเบ™เบปเบ” macro เปƒเบ™เบ•เบปเบงเบ™เบตเป‰เป€เบŠเบดเปˆเบ‡เบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡เบŠเบทเปˆเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™. เบชเปเบฒเบฅเบฑเบš
เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, -mmcu=atmega8 เบเปเบฒเบ™เบปเบ” macro เปƒเบ™เบ•เบปเบง "__AVR_ATmega8__", -mmcu=attiny261a
เบเปเบฒเบ™เบปเบ” "__AVR_ATtiny261A__", เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบŠเบทเปˆ macro เปƒเบ™เบ•เบปเบงเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป‚เบ„เบ‡เบเบฒเบ™ "__AVR_เบญเบธเบ›เบฐเบเบญเบ™__" เบšเปˆเบญเบ™เบ—เบตเปˆ เบญเบธเบ›เบฐเบเบญเบ™ เป€เบ›เบฑเบ™
เบŠเบทเปˆเบญเบธเบ›เบฐเบเบญเบ™เบˆเบฒเบเบ„เบนเปˆเบกเบทเบœเบนเป‰เปƒเบŠเป‰ AVR. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ เบญเบธเบ›เบฐเบเบญเบ™ เปƒเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™
เบกเบฐเบซเบฒเบžเบฒเบ เปเบฅเบฐ เบญเบธเบ›เบฐเบเบญเบ™ in -mmcu=เบญเบธเบ›เบฐเบเบญเบ™ เปเบกเปˆเบ™เบงเปˆเบฒเบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เบ•เบปเบงเบžเบดเบกเบ™เป‰เบญเบเบชเบฐเป€เปเบต.

If เบญเบธเบ›เบฐเบเบญเบ™ เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เปเบ•เปˆโ€‹เบกเบตโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบซเบผเบฑเบโ€‹เป€เบŠเบฑเปˆเบ™โ€‹ avr51, เบกเบฐเบซเบฒเบžเบฒเบเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เบเปเบฒเบ™เบปเบ”.

"__AVR_DEVICE_NAME__"
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ -mmcu=เบญเบธเบ›เบฐเบเบญเบ™ เบเปเบฒเบ™เบปเบ” macro เปƒเบ™เบ•เบปเบงเบ™เบตเป‰เปƒเบซเป‰เบเบฑเบšเบŠเบทเปˆเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
เบเบฑเบš -mmcu=atmega8 macro เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ "atmega8".

If เบญเบธเบ›เบฐเบเบญเบ™ เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เปเบ•เปˆโ€‹เบกเบตโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบซเบผเบฑเบโ€‹เป€เบŠเบฑเปˆเบ™โ€‹ avr51, เบกเบฐเบซเบฒเบžเบฒเบเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เบเปเบฒเบ™เบปเบ”.

"__AVR_XMEGA__"
เบญเบธเบ›เบฐเบเบญเบ™ / เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบฑเบ™เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบ„เบญเบšเบ„เบปเบง XMEGA.

"__AVR_HAVE_ELPM__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "ELPM".

"__AVR_HAVE_ELPMX__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบต "ELPM Rn,Z" เปเบฅเบฐ "ELPM Rn,Z+" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

"__AVR_HAVE_MOVW__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "MOVW" เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 16-เบšเบดเบ”.

"__AVR_HAVE_LPMX__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบต "LPM Rn,Z" เปเบฅเบฐ "LPM Rn,Z+" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

"__AVR_HAVE_MUL__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ•เบปเบงเบ„เบนเบ™เบฎเบฒเบ”เปเบง.

"__AVR_HAVE_JMP_CALL__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "JMP" เปเบฅเบฐ "CALL". เบ™เบตเป‰เปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบต
เบขเปˆเบฒเบ‡เปœเป‰เบญเบ 16@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก.

"__AVR_HAVE_EIJMP_EICALL__"
"__AVR_3_BYTE_PC__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "EIJMP" เปเบฅเบฐ "EICALL". เบ™เบตเป‰เปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™
เบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก. เบ™เบตเป‰เบเปเปˆเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™
counter (PC) เปเบกเปˆเบ™ 3@tie{}byte wide.

"__AVR_2_BYTE_PC__"
เบ•เบปเบงเบ™เบฑเบšเป‚เบ›เบฃเปเบเบฃเบก (PC) เปเบกเปˆเบ™ 2@tie{}byte wide. เบ™เบตเป‰เปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเป€เบ–เบดเบ‡
128@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก.

"__AVR_HAVE_8BIT_SP__"
"__AVR_HAVE_16BIT_SP__"
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบปเบงเบŠเบตเป‰ stack (SP) เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™ 8-bit เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš 16-bit เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป‚เบ”เบ
compiler เป„เบ”เป‰. เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบกเบฐเบซเบฒเบžเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบ -mtiny-stack.

"__AVR_HAVE_SPH__"
"__AVR_SP8__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบต SPH (เบชเปˆเบงเบ™เบชเบนเบ‡เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰ stack) เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบดเป€เบชเบ”เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบซเบผเบทเบกเบต
เบ•เบปเบงเบŠเบตเป‰ stack 8-bit, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบกเบฐเบซเบฒเบžเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบ
-mmcu= เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ -mmcu=avr2 เปเบฅเบฐ -mmcu=avr25 เป‚เบ”เบ -msp8.

"__AVR_HAVE_RAMPD__"
"__AVR_HAVE_RAMPX__"
"__AVR_HAVE_RAMPY__"
"__AVR_HAVE_RAMPZ__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบต "RAMPD", "RAMPX", "RAMPY", "RAMPZ" เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบดเป€เบชเบ”,
เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

"__NO_INTERRUPTS__"
เบกเบฐเบซเบฒเบžเบฒเบเบ™เบตเป‰เบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡ -mno-interrupts เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

"__AVR_ERRATA_SKIP__"
"__AVR_ERRATA_SKIP_JMP_CALL__"
เบšเบฒเบ‡เบญเบธเบ›เบฐเบเบญเบ™ AVR (AT90S8515, ATmega103) เบˆเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเบ‚เป‰เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 32-bit เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบกเบต
เบฎเบฒเบ”เปเบงเบœเบดเบ”เบžเบฒเบ”. เบ‚เป‰เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™ "SBRS", "SBRC", "SBIS", "SBIC" เปเบฅเบฐ "CPSE".
เบกเบฐเบซเบฒเบžเบฒเบเบ—เบตเบชเบญเบ‡เบ–เบทเบเบเบณเบ™เบปเบ”เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ "__AVR_HAVE_JMP_CALL__" เบ–เบทเบเบ•เบฑเป‰เบ‡เป„เบงเป‰เบ™เบณ.

"__AVR_ISA_RMW__"
เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Read-Modify-Write (XCH, LAC, LAS เปเบฅเบฐ LAT).

"__AVR_SFR_OFFSET__=เบŠเบปเบ”เป€เบŠเบตเบ"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบดเป€เบชเบ”เบ‚เบญเบ‡ I/O เป‚เบ”เบเบเบปเบ‡เป€เบŠเบฑเปˆเบ™ "IN",
"OUT", "SBI", เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบญเบทเปˆเบ™เบ„เบทเบเบฑเบšเบ—เบตเปˆเปเบเป‰เป„เบ‚เป‚เบ”เบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเบฐ
เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ RAM เป€เบŠเบฑเปˆเบ™ "LD" เบซเบผเบท "STS". เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบญเบธเบ›เบฐเบเบญเบ™เปเบฅเบฐเบกเบต
เบ—เบตเปˆเบˆเบฐเบซเบฑเบเบญเบญเบเบˆเบฒเบเบ—เบตเปˆเบขเบนเปˆ RAM เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบขเบนเปˆ I/O@tie{}เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

"__WITH_AVRLIBC__"
compiler เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš AVR-Libc. เป€เบšเบดเปˆเบ‡ --with-avrlibc
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบ”เบณ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-mcpu=cpu[-sirevision]
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Blackfin เป€เบ›เบปเป‰เบฒเปเบฒเบ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, cpu เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™
bf512, bf514, bf516, bf518, bf522, bf523, bf524, bf525, bf526, bf527, bf531, bf532,
bf533, bf534, bf536, bf537, bf538, bf539, bf542, bf544, bf547, bf548, bf549, bf542m,
bf544m, bf547m, bf548m, bf549m, bf561, bf592.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ sirevision เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบดเบฅเบดเป‚เบ„เบ™เบ‚เบญเบ‡ Blackfin เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”. เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ”เป†เบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบดเบฅเบดเป‚เบ„เบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.
If sirevision is none, เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบงเบฝเบเปƒเบ”เป†. เบ–เป‰เบฒ sirevision is เปƒเบ”, เบ—เบฑเบ‡เบซเบกเบปเบ”
เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เบกเบฐเบซเบฒเบžเบฒเบ "__SILICON_REVISION__".
เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™เบชเบญเบ‡เบ•เบปเบงเป€เบฅเบเป€เบฅเบเบ–เบฒเบ™เบชเบดเบšเบซเบปเบเบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบฅเบฐเบ•เบปเบงเป€เบฅเบเป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™
เบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบดเบฅเบดเป‚เบ„เบ™. เบ–เป‰เบฒ sirevision is none, "__SILICON_REVISION__" เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”.
If sirevision is เปƒเบ”, the "__SILICON_REVISION__" เบ–เบทเบเบเบณเบ™เบปเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™ 0xffff. เบ–เป‰เบฒเบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ sirevision เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, GCC เบ–เบทเบงเปˆเบฒเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเบกเปˆเบซเบผเป‰เบฒเบชเบธเบ”เบ‚เบญเบ‡เบŠเบดเบฅเบดเป‚เบ„เบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ
เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” Blackfin เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

GCC เบเปเบฒเบ™เบปเบ” macro preprocessor เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰ cpuเบ—เบตเปˆเบขเบนเปˆ เบชเปเบฒโ€‹เบฅเบฑเบš bfin-elf เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท,
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ BSP เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ libgloss เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™ if - เบŠเบดเบก is
เบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰.

เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, bf532 เบ–เบทเบเปƒเบŠเป‰เป€เบ›เบฑเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš bf561 เบšเปเปˆเบชเบปเบกเบšเบนเบ™. เบชเปเบฒเบฅเบฑเบš bf561, เบกเบตเบžเบฝเบ‡เปเบ•เปˆ macro preprocessor เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบเปเบฒเบ™เบปเบ”.

- เบŠเบดเบก
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™ simulator เป„เบ”เป‰. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡
BSP เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ libgloss เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš bfin-elf
เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เป€เบŠเบฑเปˆเบ™: - เบซเปเบชเบฐเปเบธเบ”เบเบฒเบ‡ เปเบฅเบฐ -mfdpic, เปเบฒเบเป€เบ–เบดเบ‡
- เบŠเบดเบก.

-momit-leaf-frame-pointer
เบขเปˆเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ™เบตเป‰เบซเบผเบตเบเบฅเป‰เบฝเบ‡เบเบฒเบ™
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบเบญเบšโ€‹เปเบฅเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹
เบกเบตเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fomit-frame-pointer เป€เบญเบปเบฒเบเบญเบš
เบ•เบปเบงเบŠเบตเป‰เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบเบฒเบเบ‚เบถเป‰เบ™.

-mspecld-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเบกเบต
เบเบฒเบ™เป‚เบซเบผเบ”เบ„เบฒเบ”เบ„เบฐเป€เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฐเป‚เบ”เบ”. เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเปƒเบŠเป‰,
"__WORKAROUND_SPECULATIVE_LOADS" เบ–เบทเบเบเบณเบ™เบปเบ”.

-mno-specld-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰.

-mcsync-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, compiler เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเบกเบต CSYNC เบซเบผเบท
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSYNC เป„เบงเป€เบเบตเบ™เป„เบ›เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเปƒเบŠเป‰,
"__WORKAROUND_SPECULATIVE_SYNCS" เบ–เบทเบเบเบณเบ™เบปเบ”.

-mno-csync-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ CSYNC เบซเบผเบท SSYNC เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบŠเบฑเปˆเบ™เบเบฑเบ™
เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

-mlow-64k
เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, compiler เปเบกเปˆเบ™เบšเปเปˆเป€เบชเบเบ„เปˆเบฒเป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบ„เบงเบฒเบกเบฎเบนเป‰เบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”
เป‚เบ›เบฅเปเบเบฅเบกเป€เบซเบกเบฒเบฐเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เปˆเปเบฒ 64k.

-mno-low-64k
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ arbitrarily. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mstack-check-l1
เป€เบฎเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบš stack เป‚เบ”เบเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ scratchpad L1 เป‚เบ”เบ uClinux
เปเบเปˆเบ™.

- เบซเปเบชเบฐเปเบธเบ”เบเบฒเบ‡
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบœเปˆเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™ ID เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบšเปเปˆเบกเบตเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ virtual
เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ -fPIC. เบ”เป‰เบงเบ bfin-elf เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡
- เบŠเบดเบก.

-mno-id-shared-library
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบ ID เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mleaf-id-shared-library
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™ ID เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เปเบ•เปˆเบชเบปเบกเบกเบธเบ”
เบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ™เบตเป‰เบซเบผเบทเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบˆเบฐเบšเปเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™ ID เบญเบทเปˆเบ™เป†.
เบ™เบฑเป‰เบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ”เบ”เปเบฅเบฐเบเบฒเบ™เป‚เบ—.

-mno-leaf-id-shared-library
เบขเปˆเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบˆเบฐเบšเปเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™ ID เปƒเบ”.
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบŠเป‰เบฒเบฅเบปเบ‡เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ”เบ”เปเบฅเบฐเป‚เบ—เบซเบฒ insns.

-mshared-library-id=n
เบฅเบฐเบšเบธเปเบฒเบเป€เบฅเบเบ›เบฐเบˆเบณเบ•เบปเบงเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ•เบฒเบก ID เบ—เบตเปˆเบเบณเบฅเบฑเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบก.
เบเบฒเบ™เบฅเบฐเบšเบธเบ„เปˆเบฒเบ‚เบญเบ‡ 0 เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบเบงเปˆเบฒ; เบเปเบฒเบ™เบปเบ”เบเปเบฒเบฅเบฑเบ‡เบกเบนเบ™เบ„เปˆเบฒเบญเบทเปˆเบ™เป†
เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ•เบปเบงเป€เบฅเบเบ™เบฑเป‰เบ™เปƒเบซเป‰เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ เปเบ•เปˆเบšเปเปˆเบกเบตเบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡ เบซเบผเบทเป€เบงเบฅเบฒเบซเบผเบฒเบ.
เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เบฅเบฐเป€เบงเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

-msep-เบ‚เปเป‰เบกเบนเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ
เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบšเปเปˆเบกเบต
เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ virtual เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.

-mno-sep-data
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mlong-เป‚เบ—
-mno-long-calls
เบšเบญเบ compiler เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ”เบเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ—เปเบฒเบญเบดเบ”
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ—เบซเบฒ subroutine เปƒเบ™เบ—เบฐเบšเบฝเบ™เบ™เบตเป‰. เบ™เบตเป‰
เบชเบฐเบงเบดเบ”เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™เบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบขเบนเปˆ 24-bit เบ‚เบญเบ‡
เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ—เปเบšเบšเบ›เบปเบเบเบฐเบ•เบด.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเบฒเบ™เบฅเบฐเบšเบธ -mno-long-calls เบŸเบทเป‰เบ™เบŸเบน
เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบชเบฐเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เบญเบกเบžเบตเบงเป€เบ•เบต
เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™.

-mfast-fp
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เป„เบง. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ™เบตเป‰เบœเปˆเบญเบ™เบ„เบฒเบเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡ IEEE
เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบˆเบธเบ”เบฅเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เปเปˆเบเบฑเบš Not-a-Number (NAN), เปƒเบ™
เบ„เบงเบฒเบกโ€‹เบชเบปเบ™โ€‹เปƒเบˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹.

-minline-plt
เป€เบ›เบตเบ”เปƒเบŠเป‰ inlining เบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™ PLT เปƒเบ™เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ
เบœเบนเบเบกเบฑเบ”เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบกเบฑเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเบšเปเปˆเบกเบต -mfdpic.

- mmulticore
เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบšเบšเบ”เปˆเบฝเบงเบชเบณเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Multicore Blackfin. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”
เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ scripts เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ multicore เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰, เปเบฅเบฐเบเปเบฒเบ™เบปเบ”
เบกเบฐเบซเบฒเบžเบฒเบ "__BFIN_MULTICORE". เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -mcpu=bf561[-sirevision].

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš - mcorea or -mcoreb, เป€เบŠเบดเปˆเบ‡เป€เบฅเบทเบญเบเบซเบ™เบถเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ-
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ•เปเปˆเบซเบผเบฑเบ. เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ - mcorea or -mcoreb, เบเบฒเบ™
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก single-application/dual-core เบ–เบทเบเปƒเบŠเป‰. เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰, เบ•เบปเป‰เบ™เบ•เป
เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡ Core B เบ„เบงเบ™เบกเบตเบŠเบทเปˆเป€เบ›เบฑเบ™ "coreb_main".

เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ–เบทเบเปƒเบŠเป‰, เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบซเบผเบฑเบเบ”เบฝเบงเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

- mcorea
เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบšเบšเบ”เปˆเบฝเบงเบชเบณเบฅเบฑเบš Core A เบ‚เบญเบ‡ BF561 เปƒเบ™เป€เบงเบฅเบฒเบ™เบณเปƒเบŠเป‰ one-application-per-
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบซเบผเบฑเบ. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐเบชเบฐเบ„เบดเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Core
A, เปเบฅเบฐเบกเบฐเบซเบฒเบžเบฒเบ "__BFIN_COREA" เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™
เบชเบปเบกเบ—เบปเบšเบเบฑเบš - mmulticore.

-mcoreb
เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบšเบšเบชเบฐเปเบ•เบ™เป€เบฅเบ”เบชเปเบฒเบฅเบฑเบš Core B เบ‚เบญเบ‡ BF561 เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ•เปเปˆ.
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบซเบผเบฑเบ. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐเบชเบฐเบ„เบดเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Core
B, เปเบฅเบฐเบกเบฐเบซเบฒเบžเบฒเบ "__BFIN_COREB" เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, "coreb_main"
เบ„เบงเบ™เปƒเบŠเป‰เปเบ—เบ™ "เบ•เบปเป‰เบ™เบ•เป". เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบชเบปเบกเบ—เบปเบšเบเบฑเบš
- mmulticore.

-msdram
เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบšเบšเบ”เปˆเบฝเบงเบชเบณเบฅเบฑเบš SDRAM. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐเบชเบฐเบ„เบดเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ SDRAM, เปเบฅเบฐ macro "__BFIN_SDRAM" เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เป„เบ”เป‰
เบ•เบปเบงเป‚เบซเบฅเบ”เบ„เบงเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ SDRAM เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.

-micplb
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ ICPLBs เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™
เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ. เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ Linux, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒ ICPLBs เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰; เบชเปเบฒเบฅเบฑเบš
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฐเปเบ•เบ™เบญเบฐเป‚เบฅเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเบ›เบดเบ”เป„เบงเป‰.

C6X เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

- เบกเบตเบ™เบฒ=เบŠเบทเปˆ
เบ™เบตเป‰เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบš. เบญเบฐเบ™เบธเบเบฒเบ”
เบŠเบทเปˆเปเบกเปˆเบ™: c62x, c64x, c64x+, c67x, c67x+, c674x.

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบซเบเปˆ.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบŠเบดเบก
เป€เบฅเบทเบญเบเป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบš simulator.

-msdata=เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™ ".neardata", เป€เบŠเบดเปˆเบ‡เบŠเบตเป‰เป„เบ›
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "B14". เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปƒเบ™เบชเปˆเบงเบ™ ".bss",
เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเบ•เบดเบ”เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™ ".neardata". เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™
เบžเบฒเบเบชเปˆเบงเบ™ ".rodata". เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบกเปˆเบ™
".fardata", ".far" เปเบฅเบฐ ".const".

-msdata=เบ—เบฑเบ‡เปเบปเบ”
เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบงเบฑเบ”เบ–เบธเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เปเบฅเบฐ
เปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "B14" เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบงเบเบกเบฑเบ™.

-msdata=เบšเปเปˆเบกเบต
เบขเปˆเบฒเปƒเบŠเป‰เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เปเบฅเบฐเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡
เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ”. เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฑเบ‡เปเบปเบ”เป„เบงเป‰เปƒเบ™ ".fardata"
เบžเบฒเบ, เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™ uninitialized เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบžเบฒเบ ".far". เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™
เบžเบฒเบเบชเปˆเบงเบ™ ".const".

CRIS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบžเบญเบ” CRIS.

- เบกเบตเบ™เบฒ=เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ
-mcpu=เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบฅเบฐเบšเบธ. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ เบกเบต
v3, v8 เปเบฅเบฐ v10 เบชเปเบฒเบฅเบฑเบš ETRAX 4, ETRAX 100, เปเบฅเบฐ ETRAX 100 LX เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ v0
เบเบปเบเป€เบงเบฑเป‰เบ™ cris-axis-linux-gnu, เบšเปˆเบญเบ™เบ—เบตเปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ v10.

-mtune=เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ
เบ›เบšเบฑ เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบเบปเบเป€เบงเบฑเป‰เบ™
ABI เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ เบกเบต
เป€เบŠเบฑเปˆเบ™โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ - เบกเบตเบ™เบฒ=เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ.

-mmax-stack-frame=n
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบญเบš stack เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบเบตเบ™ n เป„เบš.

-metrax4
-metrax100
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -metrax4 เปเบฅเบฐ -metrax100 เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบทเบชเปเบฒเบฅเบฑเบš - เบกเบตเบ™เบฒ=v3 เปเบฅเบฐ - เบกเบตเบ™เบฒ=v8
เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

-mmul-bug-เปเบเป‰เป„เบ‚
-mno-mul-bug-เปเบเป‰เป„เบ‚
เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเปเบกเบ‡เป„เบกเป‰เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "muls" เปเบฅเบฐ "mulu" เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบš CPU เบ—เบตเปˆเบกเบฑเบ™
เบ™เบณเปƒเบŠเป‰. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เป„เบ”เป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mpdebug
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเปŠเบ verbose เบชเบฐเป€เบžเบฒเบฐ CRIS เปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบš. เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบดเบ”โ€‹ #NO_APP formatted-code เบ•เบปเบงเบŠเบตเป‰เบšเบญเบเป€เบ–เบดเบ‡
assembler เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบ›เบฐเบเบญเบš.

-mcc-init
เบขเปˆเบฒเปƒเบŠเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ; เบชเบฐเป€เบซเบกเบต emit เบ›เบฝเบšเบ—เบฝเบšเปเบฅเบฐ
เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

-mno-เบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡
เบขเปˆเบฒเบ›เปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เปƒเบ™เป‚เบซเบกเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบ•เบญเบš.
เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™.

-mstack-align
-mno-stack-align
-mdata-align
-mno-data-align
-mconst-align
-mno-const-align
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰ (เบšเปเปˆ- เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹) เบˆเบฑเบ”โ€‹เบเบฒเบ™ (เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹) เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบญเบš stackโ€‹,
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบชเปˆเบงเบ™โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เปเบฅเบฐโ€‹เบ„เปˆเบฒโ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ”เบฝเบงโ€‹
เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบš CPU เบ—เบตเปˆเป€เบฅเบทเบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ 32-bit. ABI
เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เป€เบŠเบฑเปˆเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เป‚เบ„เบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เป‚เบ”เบโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹.

-m32-เบšเบดเบ”
-m16-เบšเบดเบ”
-m8-เบšเบดเบ”
เบ„เป‰เบฒเบเบเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบ stack- data- เปเบฅเบฐ const-align เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฑเบ”เปƒเบซเป‰
stack frame, เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบ‚เบฝเบ™โ€‹เป„เบ”เป‰โ€‹เปเบฅเบฐโ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบกเปˆเบ™ 32-bit, 16-bit เบซเบผเบท 8-bit เบˆเบฑเบ”โ€‹เบฅเบฝเบ‡โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบš.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ 32-เบšเบดเบ”.

-mno-prologue-epilogue
-mprologue-epilogue
เบเบฑเบš -mno-prologue-epilogue, prologue เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐ epilogue เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™
เบ‚เบญเบš stack เป„เบ”เป‰เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™เปเบฅเบฐเบšเปเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฑเบšเบ„เบทเบ™เบซเบผเบทเบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เบเบฑเบšเบ„เบทเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบฅเบฐเบซเบฑเบ”. เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบฎเปˆเบงเบกเบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบฒเบเบ•เบฒเบ‚เบญเบ‡
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก: เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เบซเบผเบทเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ—เบ•เป‰เบญเบ‡เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบšเบฑเบ™เบ—เบถเบ, เบซเบผเบทเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™.

-mno-gotplt
-mgotplt
เบเบฑเบš -fpic เปเบฅเบฐ -fPIC, เบšเปเปˆเบชเป‰เบฒเบ‡ (เป€เบฎเบฑเบ”เบชเป‰เบฒเบ‡) เบฅเปเบฒเบ”เบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป‚เบซเบฅเบ”
เบ—เบตเปˆเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฒเบเบชเปˆเบงเบ™ PLT เบ‚เบญเบ‡ GOT เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ (เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบญเบทเปˆเบ™เป†
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ) เป‚เบ—เบซเบฒ PLT. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mgotplt.

-melf
เบ•เบปเบงเป€เบฅเบทเบญเบ no-op เปเบšเบšเป€เบเบปเปˆเบฒเบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰เบเบฑเบš cris-axis-elf เปเบฅเบฐ cris-axis-linux-gnu เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เป€เบ›เบปเป‰เบฒ เปเบฒเบ.

-mlinux
เบ•เบปเบงเป€เบฅเบทเบญเบ no-op เปเบšเบšเป€เบเบปเปˆเบฒเบ–เบทเบเบฎเบฑเบšเบฎเบนเป‰เบเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ cris-axis-linux-gnu เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-เบŠเบดเบก
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰, เบฎเบฑเบšเบฎเบนเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš cris-axis-elf, เบˆเบฑเบ”เปเบˆเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš input-output
เบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” simulator. เบฅเบฐเบซเบฑเบ”, เบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบชเบนเบ™
เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบ•เบดเบ”เบ•เปเปˆเบเบฑเบ™.

-sim2
เบ„เบท -เบŠเบดเบกเปเบ•เปˆเบœเปˆเบฒเบ™เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ 0x40000000 เปเบฅเบฐเบชเบนเบ™.
เบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ 0x80000000.

CR16 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบžเบญเบ” CR16.

-mmac
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ„เบนเบ™เบชเบฐเบชเบปเบก. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mcr16cplus
-mcr16c
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ CR16C เบซเบผเบท CR16C+. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ CR16C+ เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบŠเบดเบก
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” libsim.a เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบณเบฅเบญเบ‡. เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš ELF
compiler เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

- mint32
เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเป€เบ›เบฑเบ™ 32-bit wide.

-mbit-ops
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "sbit"/"cbit" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบšเบดเบ”.

-mdata-model=เบฎเบนเบšเปเบšเบš
เป€เบฅเบทเบญเบเบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบฎเบนเบšเปเบšเบš เบกเบต เบขเบนเปˆเปƒเบเป‰, เป„เบ or เบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡. เบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡ เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป„เบ เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบš -mcr16c, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ CR16C เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เป„เบ.

Darwin เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ Darwin.

FSF GCC on Darwin เบšเปเปˆเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ "เป„เบ‚เบกเบฑเบ™"; เบกเบฑเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบชเปเบฒเบฅเบฑเบš
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ”เบฝเบงเบ—เบตเปˆ GCC เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. GCC เบ‚เบญเบ‡ Apple เปƒเบ™ Darwin เบชเป‰เบฒเบ‡ "เป„เบ‚เบกเบฑเบ™"
เป„เบŸเบฅเปŒเบ–เป‰เบฒเบซเบผเบฒเบ -เป‚เบ„เป‰เบ‡ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰; เบกเบฑเบ™เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™เป‚เบ”เบเบเบฒเบ™เปเบฅเปˆเบ™ compiler เบซเบผเบท linker
เบซเบผเบฒเบเบ„เบฑเป‰เบ‡เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš lipo.

เบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™ (เป€เบŠเบฑเปˆเบ™: ppc7400 or ppc970 or i686) เบ–เบทเบโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป‚เบ”เบโ€‹
เบ—เบธเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธ ISA เบ—เบตเปˆ GCC เบเปเบฒเบฅเบฑเบ‡เบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เป€เบŠเบฑเปˆเบ™: -mcpu or - เบกเบตเบ™เบฒ. เป„เบ”เป‰
-force_cpusubtype_ALL เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ override เบ™เบตเป‰.

เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ‚เบญเบ‡ Darwin เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบกเบทเปˆเบญเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบเบฑเบš ISA เบšเปเปˆเบเบปเบ‡เบเบฑเบ™. เป„เบ”เป‰
เป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบš, as, เบžเบฝเบ‡เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ‚เบญเบ‡
เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit เปƒเบ™ a ppc750 เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ. เป„เบ”เป‰
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, /usr/bin/libtool, เบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบฅเบฐเบžเบดเบกเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰
เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบกเบฑเบ™ (เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบฐเบเบฒเบเบฒเบกเป€เบญเบปเบฒ a ppc970 เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเปƒเบ™ a ppc7400 เบซเปเบชเบฐเบซเบกเบธเบ”). เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป„เบ”เป‰โ€‹, ld, เบ‡เบฝเบšเป†เปƒเบซเป‰เบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบญเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบกเบฑเบ™
เป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™.

-Fdir
เป€เบžเบตเปˆเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบญเบš dir เป„เบ›เบซเบฒเบซเบปเบงเบ‚เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบซเบฒ
เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ header. เบฅเบฒเบ เบเบฒเบ™ เป€เบซเบผเบปเปˆเบฒ เบ™เบตเป‰ เปเบกเปˆเบ™ interleaved เบเบฑเบš เบ—เบตเปˆ เบเปเบฒ เบ™เบปเบ” เป„เบงเป‰ เป‚เบ”เบ -I
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบฅเบฐโ€‹เบ–เบทเบโ€‹เบชเบฐโ€‹เปเบเบ™โ€‹เปƒเบ™โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบŠเป‰เบฒเบโ€‹เบซเบฒโ€‹เบ‚เบงเบฒโ€‹.

เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบญเบšเปเบกเปˆเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบเบญเบšเปƒเบ™เบกเบฑเบ™. เบเบญเบšเป€เบ›เบฑเบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบต a Headers เปเบฅเบฐ / เบซเบผเบท เบชเปˆเบงเบ™เบซเบปเบงเบชเปˆเบงเบ™เบ•เบปเบง เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ™เบฑเป‰เบ™เป‚เบ”เบเบเบปเบ‡
เบชเบดเป‰เบ™เบชเบธเบ”เปƒเบ™ .เบเบญเบš. เบŠเบทเปˆเบ‚เบญเบ‡เบเบญเบšเป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ™เบตเป‰เบšเปเปˆเบฅเบงเบก
เป„เบ”เป‰ .เบเบญเบš. เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบญเบšเปเบกเปˆเบ™เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบญเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบเบฑเบš Headers เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบเปˆเบญเบ™. เบเบญเบšเบเปˆเบญเบเปเบกเปˆเบ™เบเบญเบš
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบเบญเบšเบ‚เบญเบ‡ Frameworks เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต. เบฅเบงเบกเบกเบตเบเบญเบšเบเปˆเบญเบ
headers เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบเบญเบšเบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ subframework, เบซเบผเบท
เปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบเบญเบšเบเปˆเบญเบเบ‚เบญเบ‡เบžเบตเปˆเบ™เป‰เบญเบ‡. เบชเบญเบ‡ subframeworks เปเบกเปˆเบ™เบญเป‰เบฒเบเบ™เป‰เบญเบ‡เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™
เบเบญเบšเบ”เบฝเบงเบเบฑเบ™. เบเบญเบšเบเปˆเบญเบเบšเปเปˆเบ„เบงเบ™เบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบญเบš; เบ
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบˆเบฐเบ–เบทเบเบญเบญเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบกเบตเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบเบญเบšเบเปˆเบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เบกเบต
เบเบญเบšเบเปˆเบญเบ; เปƒเบ™โ€‹เบญเบฐโ€‹เบ™เบฒโ€‹เบ„เบปเบ”, เบเบปเบ™โ€‹เป„เบโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹เป€เบžเบทเปˆเบญโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ™เบตเป‰. เป„เบ”เป‰
เบเบญเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฒเบกเบฒเบ”เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™ / System / Library / เบ‚เบญเบš เปเบฅเบฐ
/ Library / เบ‚เบญเบš. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ›เบฐเบเบญเบšเบกเบตเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ "#include ",
เบšเปˆเบญเบ™เบ—เบตเปˆ Framework เบซเบกเบฒเบเป€เบ–เบดเบ‡เบŠเบทเปˆเบ‚เบญเบ‡เบเบญเบšเปเบฅเบฐ header.h เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™
เบชเปˆเบงเบ™เบซเบปเบงเบชเปˆเบงเบ™เบ•เบปเบง or Headers เบฅเบฐเบšเบปเบš.

- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹dir
เบ„เบท -F เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบดเปˆเบ™โ€‹เบ›เบปเบงโ€‹เป€เบ›เบฑเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ•เบปเป‰เบ™เบ•เป
เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ™เบตเป‰ - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹ เปเบฅเบฐ -F เปเบกเปˆเบ™ เบงเปˆเบฒ เบกเบต - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹ compiler เบšเปเปˆเป„เบ”เป‰เป€เบ•เบทเบญเบ™
เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ header เบžเบปเบšเป€เบซเบฑเบ™เบœเปˆเบฒเบ™ dir. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡
เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เบญเบšโ€‹เบ„เบปเบง C เบ‚เบญเบ‡โ€‹เบžเบฒโ€‹เบชเบฒโ€‹.

-gused
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เบตเบšเบฑเบ stabs,
เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ -feliminate-unused-debug-เบชเบฑเบ™เบเบฒเบฅเบฑเบ. เบญเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ ON.

- gfull
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเบณเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบ เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบฑเบ‡เปเบปเบ”.

-mmacosx-version-min=เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ
เป€เบงเบตเบŠเบฑเปˆเบ™เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡ MacOS X เบ—เบตเปˆ executable เบ™เบตเป‰เบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เป„เบ”เป‰ เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ. เบ—เบณ เบกเบฐเบ”เบฒ
เบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ เบฅเบงเบกเบกเบต 10.1, 10.2, เปเบฅเบฐ 10.3.9.

เบ–เป‰เบฒ compiler เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰ headers เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบšเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆ compiler เบเปเบฒเบฅเบฑเบ‡เปเบฅเปˆเบ™, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบšเบปเบšเปเบฅเบฐเบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒ
เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

- mkernel
เป€เบ›เบตเบ”เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ kernel. เป„เบ”เป‰ - mkernel เบŠเบธเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -static, -fno-เบ—เบปเปˆเบงเป„เบ›,
-fno-use-cxa-atexit, -fno-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, -fno-เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป‚เบ—-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, -fapple-kext,
-fno-เบญเปˆเบญเบ™เปเบญ เปเบฅเบฐ -fno-rtti เบšเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบŠเป‰โ€‹เป„เบ”เป‰โ€‹. เป‚เปเบ”เบ™เบตเป‰เบเบฑเบ‡เบ•เบฑเป‰เบ‡ -mno-altivec,
-msoft-float, -fno-builtin เปเบฅเบฐ - เบชเบฒเบ‚เบฒ เบก เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ PowerPC.

-mone-byte-bool
เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ "bool" เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ "sizeof(bool)==1". เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ "sizeof(bool)"
เปเบกเปˆเบ™ 4 เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Darwin/PowerPC เปเบฅเบฐ 1 เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Darwin/x86, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆ x86.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -mone-byte-bool switch เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ binary
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™. เบเบฒเบ™เปƒเบŠเป‰เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™
recompiling เป‚เบกเบ”เบนเบ™เบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบš. เปƒเบŠเป‰เบ™เบตเป‰
เบชเบฐเบซเบผเบฑเบšเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mfix-and-continue
-ffix-and-เบชเบทเบšเบ•เปเปˆ
-findirect-เบ‚เปเป‰เบกเบนเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เป€เบŠเบฑเปˆเบ™: เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GDB
เป‚เบซเบผเบ”เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง .o เป„เบŸเบฅเปŒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปเบฅเปˆเบ™เปเบฅเป‰เบง. -findirect-เบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐ
-ffix-and-เบชเบทเบšเบ•เปเปˆ เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™.

-all_load
เป‚เบซเบผเบ”เบชเบฐเบกเบฒเบŠเบดเบเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ„เบฑเบ‡เป€เบเบฑเบšเบ–เบฒเบงเบญเบ™. เป€เบšเบดเปˆเบ‡เบœเบนเป‰เบŠเบฒเบ ld(1) เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

-arch_errors_fatal
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบฒเบ.

-bind_at_load
เป€เบฎเบฑเบ”เปƒเบซเป‰เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ–เบทเบเปเบฒเบเป„เบงเป‰เบงเปˆเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบˆเบฐเบœเบนเบเบกเบฑเบ”เบ—เบฑเบ‡เปเบปเบ”
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป„เบŸเบฅเปŒเบ–เบทเบเป‚เบซเบฅเบ”เบซเบผเบทเป€เบ›เบตเบ”เบ•เบปเบง.

- เบกเบฑเบ”
เบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒเบฎเบนเบšเปเบšเบšเบกเบฑเบ” Mach-o. เป€เบšเบดเปˆเบ‡เบœเบนเป‰เบŠเบฒเบ ld(1) เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

-bundle_loader เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹ เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰ เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เป€เบšเบดเปˆเบ‡เบœเบนเป‰เบŠเบฒเบ ld(1) เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

-dynamiclib
เป€เบกเบทเปˆเบญเบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, GCC เบœเบฐเบฅเบดเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Darwin libtool เบ„เปเบฒเบชเบฑเปˆเบ‡.

-force_cpusubtype_ALL
เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ GCC เบกเบต เบ—เบฑเบ‡เบซเบกเบปเบ” subtype, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เบ„เบงเบšเบ„เบธเบกเป‚เบ”เบ
เป„เบ”เป‰ -mcpu or - เบกเบตเบ™เบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-allowable_client client_name
-client_name
-compatibility_version
- เบฎเบธเปˆเบ™_เบ›เบฐเบˆเบธเบšเบฑเบ™
-dead_strip
-dependency-file
-dylib_file
-dylinker_install_name
- เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง
-exported_symbols_list
- เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹
-flat_namespace
-force_flat_namespace
-headerpad_max_install_names
-image_base
-เปƒเบ™โ€‹เบกเบฑเบ™
-install_name
-keep_private_externs
-multi_module
-multiply_defined
-multiply_defined_unused
-noall_load
-no_dead_strip_inits_and_terms
-nofixprebinding
- เบ™เบฒเบกเบชเบฐเบเบธเบ™
- noprebind
-noseglinkedit
-pagezero_size
- prebind
-prebind_all_twolevel_modules
-private_bundle
-read_only_relocs
-sectalign
-sectobject เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹
- เป€เบ›เบฑเบ™โ€‹เบซเบเบฑเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹
-seg1 addr
-sectcreate
-sectobject เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹
- เบ‚เบฐโ€‹เปเบซเบ™เบ‡โ€‹เบเบฒเบ™โ€‹
-segaddr
-segs_read_only_addr
-segs_read_write_addr
-seg_addr_table
-seg_addr_table_filename
-seglinkedit
-segprot
-segs_read_only_addr
-segs_read_write_addr
-single_module
-static
-sub_library
-sub_umbrella
- twolevel_namespace
- เบ„เบฑเบ™เบฎเบปเปˆเบก
- เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹
-unexported_symbols_list
-weak_reference_mismatch
- whatsloaded
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Darwin. เบซเบ™เป‰เบฒเบ—เบตเปˆ Darwin linker man เบญเบฐเบ—เบดเบšเบฒเบ
เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

DEC Alpha เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” DEC Alpha:

-mno-soft-float
-msoft-float
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบฅเบญเบ
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -msoft-float เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™ libgcc.a เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ. เป€เบงเบฑเป‰เบ™ เป€เบชเบ เปเบ•เปˆ เบงเปˆเบฒ เบžเบงเบ เป€เบ‚เบปเบฒ เป€เบˆเบปเป‰เบฒ เป„เบ”เป‰ เบ–เบทเบ เบ—เบปเบ” เปเบ—เบ™ เป‚เบ”เบ เบเบฒเบ™ เบ›เบปเบ เบเบฐ เบ•เบด เบ—เบตเปˆ emulate เป„เบ”เป‰
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ, เบซเบผเบทเบฅเบงเบšเบฅเบงเบกเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป€เบญเบตเป‰เบ™ emulations เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
routines, routines เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš
Alpha เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡
เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เป‚เบ—เบซเบฒเบžเบงเบเป€เบ‚เบปเบฒ.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Alpha เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบกเบต
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ.

-mfp-reg
-mno-fp-regs
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบŠเบธเบ”เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ. -mno-fp-regs
implies -msoft-float. เบ–เป‰เบฒเบŠเบธเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบˆเบธเบ”เบฅเบญเบ
operands เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เปƒเบ™เบˆเปเบฒเบ™เบงเบ™ integer registers เบ„เบทเบเบฑเบšเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™ integers เปเบฅเบฐ floating-point
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบœเปˆเบฒเบ™เปƒเบ™ $0 เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ $f0. เบ™เบตเป‰เปเบกเปˆเบ™เบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบˆเบธเบ”เบฅเบญเบ เบซเบผเบทเบ„เปˆเบฒเบชเบปเปˆเบ‡เบ„เบทเบ™ เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป‚เบ”เบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก
เบเบฑเบš -mno-fp-regs เบ•เป‰เบญเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบšเบšเบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบเปˆเบ™เบ—เบตเปˆเบšเปเปˆเปƒเบŠเป‰, เปเบฅเบฐเป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™
เบšเปเปˆเบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบน, เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ.

-เบกเบตเปˆ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ Alpha เบ™เบณเปƒเบŠเป‰เบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเบ›เบฑเบšเปเบ•เปˆเบ‡เป„เบ”เป‰เบชเบนเบ‡เบชเบธเบ”
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบกเบฑเบ™เบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ IEEE. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก,
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ, เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบŠเบญเบšเปเบงเปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš IEEE เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ เบเบปเบเป€เบงเบฑเป‰เบ™ เบงเปˆเบฒ inexact-เบ—เบธเบ‡ เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฎเบฑเบเบชเบฒ (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰).
เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เป€เบกเป‚เบ„เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบเปˆเบญเบ™ "_IEEE_FP" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบเปเบ•เปˆเบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡
เบ•เบปเบงเป€เบฅเบ denormalized เปเบฅเบฐเบ„เปˆเบฒ IEEE เบžเบดเป€เบชเบ”เป€เบŠเบฑเปˆเบ™: not-a-number เปเบฅเบฐ plus/minus
เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”. Alpha compilers เบญเบทเปˆเบ™เป€เบญเบตเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ -ieee_with_no_inexact.

-mieee-with-inexact
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบท -เบกเบตเปˆ เบเบปเบเป€เบงเบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบเบฑเบ‡เบฎเบฑเบเบชเบฒ IEEE inexact-เบ—เบธเบ‡.
เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” IEEE เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™
เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”. เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ "_IEEE_FP", "_IEEE_FP_EXACT" เป„เบ”เป‰เบ–เบทเบเบเบณเบ™เบปเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบกเบฐเบซเบฒเบžเบฒเบเบเปˆเบญเบ™เป‚เบ›เบฃเป€เบŠเบชเป€เบŠเบต.
เปƒเบ™เบšเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Alpha เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฒเบ”เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเป‰เบฒเบเบงเปˆเบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบตเบฅเบฐเบซเบฑเบ”เบซเบ™เป‰เบญเบเบซเบผเบฒเบเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบš
inexact-เบ—เบธเบ‡, เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. Alpha compilers เบญเบทเปˆเบ™เป‚เบ—เบซเบฒ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰ -ieee_with_inexact.

-mfp-trap-mode=เป‚เบซเบกเบ”เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบฑเบเบˆเบฑเบšเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบˆเบธเบ”เบฅเบญเบเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. Alpha เบญเบทเปˆเบ™เป†
compilers เป€เบญเบตเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ -fptm เป‚เบซเบกเบ”เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ. เบฎเบนเบšเปเบšเบšเบเบฒเบ™เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบตเปˆ
เบ„เบธเบ™เบ„เปˆเบฒ:

n เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เบ›เบปเบเบเบฐเบ•เบด). เบเบฒเบ™เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบžเบฝเบ‡เปเบ•เปˆเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปเบกเปˆเบ™
เบŠเบญเบšเปเบงเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰ (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เปเบšเปˆเบ‡เปเบเบเบ”เป‰เบงเบเบˆเบฑเปˆเบ™เบˆเบฑเบšเบชเบนเบ™).

u เบ™เบญเบโ€‹เป€เบซเบ™เบทเบญโ€‹เป„เบ›โ€‹เบˆเบฒเบโ€‹เบเบฑเบšโ€‹เบ”เบฑเบโ€‹เป€เบ›เบตเบ”โ€‹เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เป‚เบ”เบ n, เบเบฑเบšเบ”เบฑเบ underflow เปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™.

su เบ„เบท u, เปเบ•เปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป„เบ”เป‰เบ–เบทเบเบซเบกเบฒเบเบงเปˆเบฒเบ›เบญเบ”เป„เบžเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบŠเบญเบšเปเบง (เป€เบšเบดเปˆเบ‡
เบ„เบนเปˆเบกเบทเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Alpha เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”).

เป€เบเบก heroine เป€เบซเบกเบฒเบฐเบชเบปเบก เบ„เบท su, เปเบ•เปˆเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ inexact เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™.

-mfp-rounding-mode=เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบกเบปเบ™โ€‹
เป€เบฅเบทเบญเบเป‚เปเบ”เบเบฒเบ™เปเบธเบ™เบ‚เบญเบ‡ IEEE. Alpha compilers เบญเบทเปˆเบ™เป€เบญเบตเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ -fprm
เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบกเบปเบ™โ€‹. เป„เบ”เป‰ เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบกเบปเบ™โ€‹ เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™:

n เป‚เปเบ” IEEE เบ›เบปเบเบเบฐเบ•เบด. เบ•เบปเบงเป€เบฅเบเบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเบ–เบทเบเบ›เบฑเบ”เป„เบ›เบซเบฒเบ—เบตเปˆเปƒเบเป‰เบ—เบตเปˆเบชเบธเบ”
เปเบฒเบเป€เบฅเบเป€เบ„เบทเปˆเบญเบ‡ เบซเบผเบท เบ•เปเปˆเบเบฑเบšเปเบฒเบเป€เบฅเบเป€เบ„เบทเปˆเบญเบ‡เบ„เบนเปˆ เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เบœเบนเบเบกเบฑเบ”.

m เบฎเบญเบšเป„เบ›เบชเบนเปˆเบเบฒเบ™เบฅเบปเบš infinity.

c เป‚เปเบ”เบเบฒเบ™เปเบธเบ™เบ•เบฑเบ”เปเบฅเป‰เบง. เบ•เบปเบงเป€เบฅเบเบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ–เบทเบเบ›เบฑเบ”เป„เบ›เบซเบฒเบชเบนเบ™.

d เป‚เปเบ”เบเบฒเบ™เปเบธเบ™เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ. เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบ„เบงเบšเบ„เบธเบกเบˆเบธเบ”เบฅเบญเบ (fpcr, เป€เบšเบดเปˆเบ‡
เบ„เบนเปˆโ€‹เบกเบทโ€‹เบเบฒเบ™โ€‹เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบเบฐโ€‹เบเปเบฒ Alphaโ€‹) เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบกเบปเบ™โ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹. เบ„
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เป€เบฅเบตเปˆเบกเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ™เบตเป‰เบชเบณเบฅเบฑเบšเบเบฒเบ™เบซเบฑเบ™เป„เบ›เบชเบนเปˆเบšเบงเบเบšเบงเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™,
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ”เบฑเบ”เปเบเป‰ fpcr, d เป€เบ—เบปเปˆเบฒเบเบฑเบšเบฎเบญเบšเป„เบ›เบชเบนเปˆเบšเบงเบ
เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”.

-mtrap-precision=เบˆเบฑเปˆเบ™เบˆเบฑเบšเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ
เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Alpha, เบเบฑเบšเบ”เบฑเบเบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบต
เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบŠเบญเบšเปเบงเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบŸเบทเป‰เบ™เบ•เบปเบงเบˆเบฒเบเบˆเบฑเปˆเบ™เบˆเบฑเบšเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบปเบเบเบฐเบ•เบดเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบขเบธเบ”เป€เบŠเบปเบฒ. GCC เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเป„เบ”เป‰
เบ”เบฑเบเบˆเบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ” a
เบเบฑเบšเบ”เบฑเบเบˆเบธเบ”เบฅเบญเบ. เบญเบตเบ‡เบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ, เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเป„เบ”เป‰:

p เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เปเบฅเบฐโ€‹เบซเบกเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบงเปˆเบฒโ€‹เบœเบนเป‰โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ”เบฑเบโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เปƒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบธเบ”เบฅเบญเบ.

f เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ•เบปเบงเบˆเบฑเบšเบˆเบฑเปˆเบ™เบˆเบฑเบšเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ” a
เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบธเบ”เบฅเบญเบ.

i เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ•เบปเบงเบˆเบฑเบšเบˆเบฑเปˆเบ™เบˆเบฑเบšเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™
เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบกเบตเบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบธเบ”เบฅเบญเบ.

Alpha compilers เบญเบทเปˆเบ™เป†เบชเบฐเบซเบ™เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ -scope_safe เปเบฅเบฐ
-resumption_safe.

-mieee-เบชเบญเบ”เบ„เปˆเบญเบ‡
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฒเบเป€เบ–เบดเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ IEEE. เป€เบˆเบปเป‰เบฒเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡เบฅเบฐเบšเบธ -mtrap-precision=i เปเบฅเบฐเบ—เบฑเบ‡ -mfp-trap-mode=su or
-mfp-trap-mode=sui. เบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบเบฒเบ™ emit เบชเบฒเบ .เบ—เบธเบ‡ 48 เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹
prologue เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ›เบฐเบเบญเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

-mbuild-เบ„เบปเบ‡เบ—เบตเปˆ
เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด GCC เบเบงเบ”เบชเบญเบšเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ 32- เบซเบผเบท 64-bit เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบกเบฑเบ™เป„เบ”เป‰เบšเป
เบˆเบฒเบเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ™เป‰เบญเบเบเบงเปˆเบฒเปƒเบ™เบชเบญเบ‡เบซเบผเบทเบชเบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”, เบกเบฑเบ™ outputs เป„เบ”เป‰
เบ„เบปเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเปœเบฑเบ‡เบชเบท เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เบกเบฑเบ™เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™.

เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰ GCC เบเปเปˆเบชเป‰เบฒเบ‡ เบ—เบฑเบ‡เบซเบกเบปเบ” เบ•เบปเบงเป€เบฅเบเบ„เบปเบ‡เบ—เบตเปˆเป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฒเบ (เบชเบนเบ‡เบชเบธเบ”เปเบกเปˆเบ™เบซเบปเบ).

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ•เบปเบงเป‚เบซเบผเบ”เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™. เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡ เบ
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เบกเบฑเบ™เบ•เป‰เบญเบ‡เบเป‰เบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบŠเบญเบเบซเบฒเบ•เบปเบงเปเบ›เปเบฅเบฐ
เบ„เบปเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

-mbwx
-mno-bwx
-mcix
-mno-cix
-mfix
-mno-เปเบเป‰เป„เบ‚
-mmax
-mno-เบชเบนเบ‡เบชเบธเบ”
เบฅเบฐเบšเบธเบงเปˆเบฒ GCC เบ„เบงเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบ BWX, CIX, FIX เปเบฅเบฐ MAX
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ CPU
เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบเบœเปˆเบฒเบ™ -mcpu= เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบซเบผเบทเบ‚เบญเบ‡ CPU เบ—เบตเปˆ GCC เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบšเปเปˆเบกเบต
เบฅเบฐเบšเบธ.

-mfloat-vax
-mfloat-ieee
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) VAX F เปเบฅเบฐ G floating-point arithmetic เปเบ—เบ™
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡ IEEE เบ”เบฝเบงเปเบฅเบฐเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

-mexplicit-relocs
-mno-explicit-relocs
เบ•เบปเบงเบ›เบฐเบเบญเบš Alpha เป€เบเบปเปˆเบฒเบšเปเปˆเบกเบตเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เบเป‰เบฒเบเบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบปเบเป€เบงเบฑเป‰เบ™เบœเปˆเบฒเบ™
เบกเบฐเบซเบฒเบžเบฒเบเบ›เบฐเบเบญเบš. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบกเบฐเบซเบฒเบžเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”.
GNU binutils เป€เบ›เบฑเบ™เบชเบฐเบšเบฑเบš 2.12 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ syntax เปƒเบซเบกเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เป„เบ”เป‰
เปเบฒเบเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบงเปˆเบฒเบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ„เบงเบ™เบ™เบณเปƒเบŠเป‰เบเบฑเบšเบ„เบณเปเบ™เบฐเบ™เบณเบญเบฑเบ™เปƒเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ GCC เบเบงเบ”เบžเบปเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ assembler เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™
เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก.

-msmall-เบ‚เปเป‰เบกเบนเบ™
-mlarge-data
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mexplicit-relocs เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰, เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบœเปˆเบฒเบ™ gp-เบžเบตเปˆเบ™เป‰เบญเบ‡
เบเบฒเบ™เบเบปเบเบเป‰เบฒเบ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -msmall-เบ‚เปเป‰เบกเบนเบ™ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบงเบฑเบ”เบ–เบธ 8 bytes เบเบฒเบงเบซเบผเบทเบ™เป‰เบญเบเบเบงเปˆเบฒเปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™
a เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ เบ‚เปเป‰เบกเบนเบ™ เบžเบทเป‰เบ™เบ—เบตเปˆ (เบžเบฒเบเบชเปˆเบงเบ™ ".sdata" เปเบฅเบฐ ".sbss") เปเบฅเบฐเบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบœเปˆเบฒเบ™ 16-bit
เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $gp. เบ™เบตเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป€เบžเบทเปˆเบญ
64KB, เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบปเบงเปเบ›เบ•เปˆเบฒเบ‡เป†เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เบœเปˆเบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฝเบง.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mlarge-data. เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰
2GB. เป‚เบ›เบฃเปเบเบฃเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเบเบงเปˆเบฒ 2GB เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰ "malloc" เบซเบผเบท "mmap" เป€เบžเบทเปˆเบญ
เบˆเบฑเบ”เบชเบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™ heap เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.

เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, -fpic implies -msmall-เบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐ -fPIC
implies -mlarge-data.

-msmall-text
- เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -msmall-text เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, compiler เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
(เบซเบผเบทเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™) เป€เบซเบกเบฒเบฐเปƒเบ™ 4MB, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เบ”เป‰เบงเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒ.
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -msmall-เบ‚เปเป‰เบกเบนเบ™ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, compiler เบชเบฒเบกเบฒเบ”เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบšเปˆเบ‡เบ›เบฑเบ™
เบ„เปˆเบฒ $gp เบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™
เป‚เบ—เบˆเบฒเบ 4 เบซเบฒ 1.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ - เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹.

-mcpu=cpu_type
เบเปเบฒเบ™เบปเบ”เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ
cpu_type. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ EV เบŠเบทเปˆเบฎเบนเบšเปเบšเบš เบซเบผเบทเปเบฒเบเป€เบฅเบเบŠเบดเบšเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™.
GCC เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบšเบ„เบญเบšเบ„เบปเบง EV4, EV5 เปเบฅเบฐ EV6 เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบฅเบฐ
เป€เบฅเบทเบญเบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฒเบเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธ. เบ–เป‰เบฒ
เบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต, GCC เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆ
compiler เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu_type เบกเบต

เป€เบฎเบทเบญเบ™4
เป€เบฎเบทเบญเบ™45
21064
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบ›เบฑเบ™ EV4 เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เป€เบฎเบทเบญเบ™5
21164
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบ›เบฑเบ™ EV5 เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เป€เบฎเบทเบญเบ™56
21164a
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบ›เบฑเบ™ EV5 เปเบฅเบฐเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ BWX.

pca56
21164pc
21164PC
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบ›เบฑเบ™ EV5 เปเบฅเบฐเบฎเบญเบ‡เบฎเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ BWX เปเบฅเบฐ MAX.

เป€เบฎเบทเบญเบ™6
21264
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบ›เบฑเบ™ EV6 เปเบฅเบฐเบฎเบญเบ‡เบฎเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ BWX, FIX, เปเบฅเบฐ MAX.

เป€เบฎเบทเบญเบ™67
21264a
เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบ›เบฑเบ™ EV6 เปเบฅเบฐเบฎเบญเบ‡เบฎเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ BWX, CIX, FIX, เปเบฅเบฐ MAX.

เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบนเบ™เบ„เปˆเบฒ native, เป€เบŠเบดเปˆเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบˆเบปเป‰เบฒเบžเบฒเบš. -mcpu=เป€เบ”เบตเบก เบšเปเปˆเบกเบตเบœเบปเบ™เบซเบเบฑเบ‡เบ–เป‰เบฒ GCC เบšเปเปˆเบฎเบฑเบšเบฎเบนเป‰
เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”.

-mtune=cpu_type
เบเปเบฒเบ™เบปเบ”เบžเบฝเบ‡เปเบ•เปˆเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type. เป„เบ”เป‰
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.

เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบนเบ™เบ„เปˆเบฒ native, เป€เบŠเบดเปˆเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบˆเบปเป‰เบฒเบžเบฒเบš. -mtune=native เบšเปเปˆเบกเบตเบœเบปเบ™เบซเบเบฑเบ‡เบ–เป‰เบฒ GCC เบšเปเปˆเบฎเบฑเบšเบฎเบนเป‰
เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”.

-mmemory-latency=เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ latency เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เบงเบ™เบˆเบฐเบชเบปเบกเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ›เบปเบเบเบฐเบ•เบดเบ•เบฒเบกเบ—เบตเปˆเป€เบซเบฑเบ™เป‚เบ”เบ
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบ•เบปเบงเป€เบฅเบเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบชเบนเบ‡
เป‚เบ”เบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ cache เบžเบฒเบเบ™เบญเบเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบš เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ เบกเบต

เบˆเปเบฒเบ™เบงเบ™
เบ•เบปเบงเป€เบฅเบเบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบฎเบญเบšเบงเบฝเบ™เป‚เบกเบ‡.

L1
L2
L3
เบ•เบปเป‰เบ™เบ•เป
compiler เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบฎเบญเบšเบงเบฝเบ™เป‚เบกเบ‡เบชเปเบฒเบฅเบฑเบš "เบ›เบปเบเบเบฐเบ•เบด" EV4 &
เบฎเบฒเบ”เปเบง EV5 เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบ”เบฑเบš 1, 2 เปเบฅเบฐ 3 cache (เบเบฑเบ‡เป€เบญเบตเป‰เบ™เบงเปˆเบฒ Dcache, Scache, เปเบฅเบฐ
Bcache), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เบปเป‰เบ™เบ•เป. เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒ L3 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš EV5 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

FR30 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบžเบญเบ” FR30.

-msmall-เปเบšเบš
เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ, เปเบ•เปˆเบกเบฑเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ
เบงเปˆเบฒเบ„เปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบ เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ—เบฑเบ‡เปเบปเบ”เป€เปเบฒเบฐเบชเบปเบกเบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 20-เบšเบดเบ”.

-mno-lsim
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ runtime เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบเบญเบšเบกเบต
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบˆเปเบฒเบฅเบญเบ‡ (libsim.a) เปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ linker.

LIF เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-mgpr-32
เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 32 เบชเบฐเบšเบฑเบšเบ—เปเบฒเบญเบดเบ”.

-mgpr-64
เบ™เบณเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เบ—เบฑเบ‡เปเบปเบ” 64 เบชเบฐเบšเบฑเบš.

-mfpr-32
เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 32 เบˆเบธเบ”เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰.

-mfpr-64
เบ™เบณเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เบ—เบฑเบ‡เปเบปเบ” 64 เบˆเบธเบ”.

-mhard-float
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™.

-msoft-float
เปƒเบŠเป‰เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ›เบฐเบˆเบณเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ.

-malloc-cc
เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ.

-mfixed-cc
เบขเปˆเบฒเบžเบฐเบเบฒเบเบฒเบกเบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰ "icc0" เปเบฅเบฐ
"fcc0".

-mdword
เบ›เปˆเบฝเบ™ ABI เป€เบžเบทเปˆเบญเปƒเบŠเป‰ insns เบ„เปเบฒเบชเบญเบ‡เบ„เปเบฒ.

-mno-dword
เบขเปˆเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบญเบ‡เบ„เปเบฒ.

-mdouble
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบญเบ‡เบˆเบธเบ”เบฅเบญเบ.

-mno-double
เบขเปˆเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบญเบ‡เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰.

- เบชเบทเปˆโ€‹เบกเบงเบ™โ€‹เบŠเบปเบ™
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบทเปˆ.

-mno-media
เบขเปˆเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบทเปˆ.

- เบกเบปเบงเบฅเบฑเบ”
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบนเบ™ เปเบฅเบฐเบšเบงเบ/เบฅเบปเบš.

-mno-muladd
เบขเปˆเบฒเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ„เบนเบ™ เปเบฅเบฐเบฅเบปเบš.

-mfdpic
เป€เบฅเบทเบญเบ FDPIC ABI, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒ
เบซเบ™เป‰เบฒเบ—เบตเปˆ. เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ”เป†เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš PIC/PIE, เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ -fPIEเบ—เบตเปˆเบขเบนเปˆ เบกเบต -fpic or
-fpie, เบกเบฑเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ GOT entries เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 12-bit เบˆเบฒเบ GOT
เบ—เบตเปˆเบขเบนเปˆเบ–เบฒเบ™; เบเบฑเบš -fPIC or -fPIE, GOT offsets เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบ”เป‰เบงเบ 32 bits. เบ”เป‰เบงเบ เบ
bfin-elf เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ - เบŠเบดเบก.

-minline-plt
เป€เบ›เบตเบ”เปƒเบŠเป‰ inlining เบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™ PLT เปƒเบ™เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ
เบœเบนเบเบกเบฑเบ”เบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบกเบฑเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเบšเปเปˆเบกเบต -mfdpic. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป„เบงเปเบฅเบฐเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™ (ie, -fPIC or -fpic), เบซเบผเบท
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบŠเบฑเปˆเบ™: -O3 เบซเบผเบทเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

-mTLS
เบชเบปเบกเบกเบธเบ”เบชเปˆเบงเบ™ TLS เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบเบฐเบ—เบนเป‰.

-mtls
เบขเปˆเบฒเบ–เบทเป€เบญเบปเบฒเบžเบฒเบเบชเปˆเบงเบ™ TLS เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™.

-mgrel-ro
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบเบปเบเบเป‰เบฒเบ "GPREL" เปƒเบ™ FDPIC ABI เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฎเบนเป‰เบงเปˆเบฒเบขเบนเปˆเปƒเบ™
เบžเบฒเบเบชเปˆเบงเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบเบปเบเป€เบงเบฑเป‰เบ™ -fpic or -fpie: เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒ
เบกเบฑเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบŠเปˆเบงเบโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบŠเบปเบ”โ€‹เป€เบŠเบตเบโ€‹เปƒเบ™โ€‹เบ—เบปเปˆเบงโ€‹เป‚เบฅเบโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹, เบกเบฑเบ™โ€‹เบ„เป‰เบฒ 1 เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ 4โ€‹
-fPIC or -fPIE, เบกเบฑเบ™เบŠเบทเป‰เบ‚เบฒเบ 3 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบš 4, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเปเบšเปˆเบ‡เบ›เบฑเบ™เป‚เบ”เบเบซเบผเบฒเบ
เบชเบฑเบ™เบเบฒเบฅเบฑเบ, เปเบฅเบฐเบกเบฑเบ™เบซเบฅเบตเบเบฅเปˆเบฝเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒ GOT เบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบญเป‰เบฒเบ‡เบญเบตเบ‡, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™
เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบŠเบฐเบ™เบฐ. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™, -mno-gprel-ro เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบกเบฑเบ™เป„เบ”เป‰.

-multilib-library-pic
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš (เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เบšเปเปˆเปเบกเปˆเบ™ FD) pic libraries. เบกเบฑเบ™เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบ -mlibrary-pic, เบ„เบทโ€‹เบเบฑเบ™
เป€เบ›เบฑเบ™เป‚เบ”เบ -fPIC เปเบฅเบฐ -fpic เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -mfdpic. เป€เบˆเบปเป‰เบฒเบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เบกเบฑเบ™เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

-mlinked-fp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡ EABI เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบเบญเบš stack
เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰
-mno-linked-fp.

-mlong-เป‚เบ—
เปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบ—เบฒเบ‡เบญเป‰เบญเบกเป€เบžเบทเปˆเบญเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเบ™เบญเบเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ›เบฐเบˆเบธเบšเบฑเบ™. เบ™เบตเป‰
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบงเบฒเบ‡โ€‹เป„เบงเป‰โ€‹เบ—เบธเบโ€‹เบšเปˆเบญเบ™โ€‹เบžเบฒเบโ€‹เปƒเบ™โ€‹เบŠเปˆเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆ 32-bitโ€‹.

-malign-labels
เบžเบฐเบเบฒเบเบฒเบกเบˆเบฑเบ”เบงเบฒเบ‡เบ›เป‰เบฒเบเบเบณเบเบฑเบšเปƒเบซเป‰เป€เบ›เบฑเบ™เบ‚เบญเบšเป€เบ‚เบ” 8-byte เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆ NOPs เป€เบ‚เบปเป‰เบฒเปƒเบ™เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆ VLIW เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เปƒเบซเบกเปˆโ€‹
เปเบžเบฑเบเป€เบเบฑเบ”; เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบตเปˆเบก NOPs เปƒเบซเป‰เบเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

-mlibrary-pic
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” EABI เบ—เบตเปˆเบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ•เบณเปเปœเปˆเบ‡.

-macc-4
เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเบตเปˆเบ•เบปเบงเบชเบฐเบชเบปเบกเบชเบทเปˆเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

-macc-8
เปƒเบŠเป‰โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบ›เบ”โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบชเบปเบกโ€‹เบชเบทเปˆโ€‹เบกเบงเบ™โ€‹เบŠเบปเบ™โ€‹.

-mpack
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ VLIW.

-mno-pack
เบขเปˆเบฒเบซเบธเป‰เบกเบซเปเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ VLIW.

-mno-เบ—เบธเบ‡
เบขเปˆเบฒเปเบฒเบเบชเบฐเบงเบดเบ” ABI เปƒเบ™ e_flags.

-mcond-เบเป‰เบฒเบ
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mno-cond-move
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mscc
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mno-scc
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mcond-exec
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mno-cond-exec
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mvliw-เบชเบฒเบ‚เบฒ
เปเบฅเปˆเบ™เบœเปˆเบฒเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ™เบˆเบธเบชเบฒเบ‚เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ VLIW (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mno-vliw-เบชเบฒเบ‚เบฒ
เบขเปˆเบฒเปเบฅเปˆเบ™เบœเปˆเบฒเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ™เบˆเบธเบชเบฒเบ‚เบฒเป€เบ‚เบปเป‰เบฒเปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ VLIW.

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-Mmulti-cond-exec-exec
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ "&&" เปเบฅเบฐ "||" เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mno-multi-cond-exec
เบ›เบดเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ "&&" เปเบฅเบฐ "||" เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹.

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mnested-cond-exec
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบงเบฒเบ‡เป„เบงเป‰ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-mno-nested-cond-exec
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบงเบฒเบ‡เป„เบงเป‰.

เบชเบฐเบงเบดเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging compiler เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปƒเบ™ a
เบชเบฐเบšเบฑเบšเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-moptimize-membar
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เป€เบญเบปเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "membar" เบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™เบญเบญเบเบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ compiler.
เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-optimize-membar
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡ "membar" เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฒเบ
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

-mtomcat-เบชเบฐเบ–เบดเบ•เบด
เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบญเบฒเบเปเบเบฑเบชเป€เบžเบทเปˆเบญเบžเบดเบกเบชเบฐเบ–เบดเบ•เบด tomcat.

-mcpu=cpu
เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”. เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบกเปˆเบ™ frv, fr550,
tomcat, fr500, fr450, fr405, fr400, fr300 เปเบฅเบฐ เบ‡เปˆเบฒเบเบ”เบฒเบ.

GNU / Linux เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ GNU / Linux:

-mglibc
เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” GNU C. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบ™ *-*-linux-*uclibc* เปเบฅเบฐ
*-*-linux-*android* เป€เบ›เบปเป‰เบฒ เปเบฒเบ.

- muclibc
เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” uCibc C. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบ›เบตเบ”เบขเบนเปˆ *-*-linux-*uclibc* เป€เบ›เบปเป‰เบฒ เปเบฒเบ.

-mbionic
เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” Bionic C. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบ›เบตเบ”เบขเบนเปˆ *-*-linux-*android* เป€เบ›เบปเป‰เบฒ เปเบฒเบ.

-mandroid
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก Android. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบ›เบตเบ”เบขเบนเปˆ
*-*-linux-*android* เป€เบ›เบปเป‰เบฒ เปเบฒเบ.

เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบก, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ -mbionic, -fPIC, -fno-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ เปเบฅเบฐ -fno-rtti by
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป„เบ”เป€เบงเบต GCC เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ Android
เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบชเบธเบ”เบ—เป‰เบฒเบ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ macro preprocessor "__ANDROID__" เป€เบ›เบฑเบ™
เบเปเบฒเบ™เบปเบ”.

-tno-android-cc
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เบญเบ‡ -mandroid, ie, เบšเปเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ -mbionic, -fPIC,
-fno-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ เปเบฅเบฐ -fno-rtti เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

-tno-android-ld
เบ›เบดเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ -mandroid, ie, เบœเปˆเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Linux เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

H8 / 300 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” H8/300:

-mrelax
เบซเบเปเป‰เบšเบฒเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป€เบกเบทเปˆเบญเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰; เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
- เบœเปˆเบญเบ™เบ„เบฒเบ.

-mh เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš H8/300H.

-เบ™เบฒเบ‡โ€‹เบชเบฒเบง เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš H8S.

- เบ™ เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš H8S เปเบฅเบฐ H8/300H เปƒเบ™เบฎเบนเบšเปเบšเบšเบ›เบปเบเบเบฐเบ•เบด. เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ•เป‰เบญเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เบšเปเปˆเบงเปˆเบฒเบˆเบฐเบเบฑเบš -mh or -เบ™เบฒเบ‡โ€‹เบชเบฒเบง.

-ms2600
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš H8S/2600. เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบฑเบš -เบ™เบฒเบ‡โ€‹เบชเบฒเบง.

-mexr
เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ stack เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เป‰เบงเบเบˆเปเบžเบฒเบš
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mexr. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ H8S เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mno-exr
เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเบšเปเปˆเป„เบ”เป‰เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เปƒเบ™ stack เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบˆเปเบžเบฒเบš
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-exr. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ H8S เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

- mint32
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™ "int" 32 bits เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-malign-300
เปƒเบ™ H8/300H เปเบฅเบฐ H8S, เปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš H8/300. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเปเบฒเบฅเบฑเบš H8/300H เปเบฅเบฐ H8S เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบ„เบงเบฒเบกเบเบฒเบง เปเบฅเบฐเป€เบฅเบทเปˆเบญเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 4-byte.
-malign-300 เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเบญเบ”เบ„เปˆเบญเบ‡เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 2-byte. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™
เปƒเบ™ H8/300.

HPPA เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบ„เบญเบšเบ„เบปเบง HPPA เบ‚เบญเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบต:

- เบกเบตเบ™เบฒ=เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบฅเบฐเบšเบธ. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ เบกเบต
1.0 เบชเปเบฒเบฅเบฑเบš PA 1.0, 1.1 เบชเปเบฒเบฅเบฑเบš PA 1.1, เปเบฅเบฐ 2.0 เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต PA 2.0. เบญเป‰เบฒเบ‡โ€‹เป€เบ–เบดเบ‡
/usr/lib/sched.models เปƒเบ™เบฅเบฐเบšเบปเบš HP-UX เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก
เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบกเบตเบ•เบปเบงเป€เบฅเบเบ•เปˆเปเบฒเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบนเบ‡เบเบงเปˆเบฒ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ•เบปเบงเป€เบฅเบ, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เบญเบทเปˆเบ™.

-mpa-risc-1-0
-mpa-risc-1-1
-mpa-risc-2-0
เบ„เบณ เบชเบฑเบšเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ - เบกเบตเบ™เบฒ=1.0, - เบกเบตเบ™เบฒ=1.1, เปเบฅเบฐ - เบกเบตเบ™เบฒ=2.0 เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

-mjump-in-delay
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ เปเบฅเบฐเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mdisable-fpregs
เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบ”เบเปเปˆเบ•เบฒเบก. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš
เบฅเบงเบšเบฅเบงเบก kernels เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบตเป‰เบเบฝเบ”เบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ. เบ–เป‰เบฒ
เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰, compiler
เป€เบญเบปเบฒเบฅเบนเบเบญเบญเบ.

-mdisable-indexing
เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ compiler เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเบ”เบฑเบ”เบชเบฐเบ™เบต. เบ™เบตเป‰เบซเบผเบตเบเบฅเป‰เบฝเบ‡เบšเบฒเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ
เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡ MIG เบžเบฒเบเปƒเบ•เป‰ MACH.

-mno-space-regs
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC
เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบกเป„เบงเบ‚เบถเป‰เบ™ เปเบฅเบฐเปƒเบŠเป‰เป‚เปเบ”เบ—เบตเปˆเบขเบนเปˆเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ—เบตเปˆเบšเปเปˆเบ‚เบฐเปœเบฒเบ”.

เบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบ”เบฑเบš 0 PA เบฅเบฐเบšเบปเบšเปเบฅเบฐเปเบเปˆเบ™.

-mfast-indirect-calls
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบšเปเปˆเป€เบ„เบตเบเบ‚เป‰เบฒเบกเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC
เบ›เปˆเบญเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบกเป„เบงเบ‚เบถเป‰เบ™.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เปƒเบ™เบ—เบตเปˆเบ›เบฐเบ—เบฑเบšเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™ เบซเบผเบทเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เบดเบ”เบเบฑเบ™.

-mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบซเป‰เบกเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ
เปเบกเปˆเบ™เบญเบฑเบ™เปœเบถเปˆเบ‡เบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบ—เบฐเบšเบฝเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก kernel
เบฅเบฐเบซเบฑเบ”. เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบชเบญเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบเบเบญเบญเบเป‚เบ”เบ dash. เบซเบผเบฒเบ
เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเบšเบธเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

-mlong-load-store
เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบซเบผเบ” 3-instruction เปเบฅเบฐเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ•เบฒเบกเบ—เบตเปˆเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบ HP-UX 10
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš +k เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบก HPโ€‹.

-mportable-runtime
เปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเบ—เบตเปˆเบชเบฐเป€เปœเบตเป‚เบ”เบ HP เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš ELF.

- เบกเบ
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡ assembler เบžเบฝเบ‡เปเบ•เปˆ GAS เป€เบ‚เบปเป‰เบฒเปƒเบˆ.

-mschedule=cpu-type
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ•เบฒเบกเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu-type. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ cpu-type เบกเบต 700 7100, 7100LC, 7200, 7300 เปเบฅเบฐ 8000. เบญเป‰เบฒเบ‡โ€‹เป€เบ–เบดเบ‡
/usr/lib/sched.models เปƒเบ™เบฅเบฐเบšเบปเบš HP-UX เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก
เป€เบ„เบทเปˆเบญเบ‡เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 8000.

-mlinker-opt
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบœเปˆเบฒเบ™เปƒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ HP-UX. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเบฑเบ™เบเบฒเบฅเบฑเบ
เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰. เบกเบฑเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ HP-UX 8 เปเบฅเบฐ HP-UX 9 เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™.
เปƒเบซเป‰เบ‚เปเป‰เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” bogus เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™.

-msoft-float
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ HPPA เบ—เบฑเบ‡เปเบปเบ”. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบชเบดเปˆเบ‡เบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบ‚เบญเบ‡
C compiler เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เปƒเบ™ cross-
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป€เบฎเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เป€เบžเบทเปˆเบญโ€‹เปƒเบซเป‰โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹
เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เป‰เบฒเบก.

-msoft-float เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เปƒเบ™เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”; เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบก เบ—เบฑเบ‡เบซเบกเบปเบ” เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เบฅเบงเบšเบฅเบงเบก libgcc.a, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบš GCC, เบเบฑเบš -msoft-float เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰
เป€เบฎเบฑเบ”โ€‹เบงเบฝเบ.

-msio
เบชเป‰เบฒเบ‡เบ„เปˆเบฒเบเบณเบ™เบปเบ”เบฅเปˆเบงเบ‡เปœเป‰เบฒ, "_SIO", เบชเบณเบฅเบฑเบšเป€เบŠเบตเบšเป€เบงเบต IO. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mwsio. เบ™เบตเป‰เบชเป‰เบฒเบ‡
เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบเปˆเบญเบ™, "__hp9000s700", "__hp9000s700__" เปเบฅเบฐ "_WSIO", เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบ IO.
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ HP-UX เปเบฅเบฐ HI-UX.

-mgnu-ld
เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบš GNU ld. เบ™เบตเป‰เบœเปˆเบฒเบ™ - เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹ to ld เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
เบซเปเบชเบฐเปเบธเบ”. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™ เบซเบผเบท implicitly, เบเบฑเบš
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบญเบฑเบ™เปƒเบ” ld เป€เบญเบตเป‰เบ™เบงเปˆเบฒ; เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆ
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปเบกเปˆเบ™เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบ™เบฑเป‰เบ™ ld. เป„เบ”เป‰ ld เบ—เบตเปˆเบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ
--with-ld configure เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ„เบปเป‰เบ™เบซเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡ GCC, เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰ PATH.
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ GCC เบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ เบ—เบตเปˆ `gcc -print-prog-name=ld`. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™ 64-bit HP-UX GCC, ie configured เบเบฑเบš
hppa*64*-*-hpux*.

-mhp-ld
เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบš HP ld. เบ™เบตเป‰เบœเปˆเบฒเบ™ -b to ld เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™
เปเบฅเบฐเบœเปˆเบฒเบ™ +เบเบญเบกเบฎเบฑเบš เบ›เบฐเป€เบžเบ”เบšเปเปˆเบเบปเบ‡เบเบฑเบ™ to ld เปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ GCC เปเบกเปˆเบ™
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™ เบซเบผเบท implicitly, เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ HP. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš
เบ—เบตเปˆ ld เป€เบญเบตเป‰เบ™เบงเปˆเบฒ; เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบฝเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ™เบฑเป‰เบ™ ld. เป„เบ”เป‰ ld
เบ—เบตเปˆเบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ --with-ld เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบเบฒเบ™เบŠเบญเบเบซเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡ GCC
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰ PATH. เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ GCC เบชเบฒเบกเบฒเบ”เบžเบดเบกเป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰
เบ—เบตเปˆ `gcc -print-prog-name=ld`. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบขเบนเปˆเปƒเบ™ HP-UX 64-bit เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
GCC, ie configured เบเบฑเบš hppa*64*-*-hpux*.

-mlong-เป‚เบ—
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เป‚เบ—เบเบฒเบง. เบ™เบตเป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเป€เบซเบกเบต
เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบซเบฒ stub เบ—เบตเปˆเบชเป‰เบฒเบ‡ linker. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เบเบฒเบงเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เป„เบฅโ€‹เบเบฐโ€‹เบซเปˆเบฒเบ‡โ€‹เบˆเบฒเบโ€‹เป€เบงเบฑเบšโ€‹เป„เบŠโ€‹เป‚เบ—โ€‹เบซเบฒโ€‹เบˆเบธเบ”โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบซเบผเบทโ€‹เบซเบปเบงโ€‹เบซเบ™เปˆเบงเบโ€‹เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹, เป€เบ›เบฑเบ™โ€‹
เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ—เบตเปˆโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹, เป€เบเบตเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เบฅเปˆเบงเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบชเบฒโ€‹เบ‚เบฒโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹. เป„เบ”เป‰
เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™ 7,600,000 เปเบฅเบฐ 240,000 bytes, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบชเปเบฒเบฅเบฑเบš PA 2.0
เปเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ PA 1.X. Sibcalls เบชเบฐเป€เบซเบกเบตเบกเบตเบˆเปเบฒเบเบฑเบ”เบขเบนเปˆเบ—เบตเปˆ 240,000 bytes.

เป„เบฅโ€‹เบเบฐโ€‹เบซเปˆเบฒเบ‡โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบงเบฑเบ”โ€‹เปเบ—เบโ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
-function-sections เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบซเบผเบทเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ - เบกเบ เปเบฅเบฐ -mno-portable-runtime เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
เบฎเปˆเบงเบกเบเบฑเบ™เบžเบฒเบเปƒเบ•เป‰ HP-UX เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ SOM.

เบกเบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบธเบ”เบฅเบปเบ‡. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก,
เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ
เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบเบฒเบงเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ assembler เปเบฅเบฐ linker,
เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบง
เบเบฒเบ™เป‚เบ—เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡, เปเบฅเบฐเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ pic เบเบฒเบงเบซเบผเบท pc-relative เป‚เบ—เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ™เป‰เบญเบ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบฒเบ‡เบญเป‰เบญเบกเปเบกเปˆเบ™เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบš ELF 32-bit เปƒเบ™เบฅเบฐเบซเบฑเบ”เบฎเบนเบš
เปเบฅเบฐเบกเบฑเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบเบฒเบง.

-muix=unix-std
เบชเป‰เบฒเบ‡ compiler predefines เปเบฅเบฐเป€เบฅเบทเบญเบ startfile เบชเปเบฒเบฅเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ UNIX เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰.
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ unix-std เบกเบต 93, 95 เปเบฅเบฐ 98. 93 เบฎเบญเบ‡เบฎเบฑเบšเบ—เบธเบเบฅเบธเป‰เบ™ HP-UX.
95 เบกเบตเบขเบนเปˆเปƒเบ™ HP-UX 10.10 เปเบฅเบฐเบ•เปเปˆเบกเบฒ. 98 เบกเบตเบขเบนเปˆเปƒเบ™ HP-UX 11.11 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 93 เบชเปเบฒเบฅเบฑเบš HP-UX 10.00, 95 เบชเปเบฒเบฅเบฑเบš HP-UX 10.10 เป€เบ–เบดเบ‡เปเบกเปˆเบ™ 11.00, เปเบฅเบฐ 98
เบชเปเบฒเบฅเบฑเบš HP-UX 11.11 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-muix=93 เปƒเบซเป‰เบ„เปเบฒเบ™เบดเบเบฒเบกเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš GCC 3.3 เปเบฅเบฐ 3.4. -muix=95 เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰
เบ„เปเบฒเบ™เบดเบเบฒเบกเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบš "XOPEN_UNIX" เปเบฅเบฐ "_XOPEN_SOURCE_EXTENDED", เปเบฅเบฐ startfile
unix95.o. -muix=98 เปƒเบซเป‰เบ„เบณเบ™เบดเบเบฒเบกเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบณเบฅเบฑเบš "_XOPEN_UNIX",
"_XOPEN_SOURCE_EXTENDED", "_INCLUDE__STDC_A1_SOURCE" เปเบฅเบฐ "_INCLUDE_XOPEN_SOURCE_500",
เปเบฅเบฐ startfile unix98.o.

เบกเบฑเบ™โ€‹เปเบกเปˆเบ™ เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ•เปˆเบฒเบ‡เป†
เบ›เบปเบเบเบฐเบ•เบด. เบกเบฑเบ™เบเบฑเบ‡เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เบตเปˆเบฎเป‰เบฒโ€‹โ€‹เบ
เบเบฒเบ™เบ”เบนเปเบฅเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

เบฅเบฐเบซเบฑเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฑเบšเบซเบผเบฒเบเบเปˆเบงเบฒเบซเบ™เบถเปˆเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ UNIX เบˆเบฐเบ•เป‰เบญเบ‡เบ—เบปเบ”เบชเบญเบš,
เบ•เบฑเป‰เบ‡เปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบ•เบปเบงเปเบ› "__xpg4_extended_mask" เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก. เบŠเบญเบšเปเบง GNU เบชเปˆเบงเบ™เปƒเบซเบเปˆ
เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ™เบตเป‰.

-nolibdld
เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปƒเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ libdld.sl เป€เบกเบทเปˆเบญ -static เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™
เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ HP-UX 10 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-static
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” HP-UX เบ‚เบญเบ‡ setlocale เปƒเบ™ libc เบกเบตเบ„เบงเบฒเบกเบ‚เบถเป‰เบ™เบเบฑเบš libdld.sl. เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™
เบšเปเปˆเปเบกเปˆเบ™เบชเบฐเบšเบฑเบšเป€เบเบฑเบšเบ‚เบญเบ‡ libdld.sl. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -static เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹,
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเบดเป€เบชเบ”เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ™เบตเป‰.

เปƒเบ™ HP-UX 10 เปเบฅเบฐเบ•เปเปˆเบกเบฒ, เป„เบ”เป€เบงเบต GCC เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš
libdld.sl เป€เบกเบทเปˆเบญ -static เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบ–เบฒเบ™เบชเบญเบ‡
เป€เบ›เบฑเบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เปƒเบ™เบžเบญเบ” 64-bit, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเป‰เบฒเบ‡ binaries เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™
เบเปเบฅเบฐเบ™เบตเปƒเบ”เบเปเปˆเบ•เบฒเบก. เป„เบ”เป‰ -nolibdld เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบ„เบปเบ™เบ‚เบฑเบš GCC เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบก
เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

- เบเบฐเบ—เบนเป‰
เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš multithreading เบเบฑเบš the dce เบเบฐโ€‹เบ—เบนเป‰ เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบžเบฒเบเปƒเบ•เป‰ HP-UX. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡ preprocessor เปเบฅเบฐ linker.

IA-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Intel IA-64.

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบซเบเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ HP-UX.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ AIX5 เปเบฅเบฐ GNU/Linux.

-mgnu-as
-mno-gnu-as
เบชเป‰เบฒเบ‡ (เบซเบผเบทเบšเปเปˆ) เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบ›เบฐเบเบญเบš GNU. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mgnu-ld
-mno-gnu-ld
เบชเป‰เบฒเบ‡ (เบซเบผเบทเบšเปเปˆ) เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-pic
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปƒเบŠเป‰เบ•เบปเบงเบŠเบตเป‰เบ•เบปเบงเบŠเบตเป‰เบ—เบปเปˆเบงเป‚เบฅเบ. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเปเปˆเปเบกเปˆเบ™เบ•เปเบฒเปเบซเบ™เปˆเบ‡
เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”, เปเบฅเบฐเบฅเบฐเป€เบกเบตเบ” IA-64 ABI.

-mvolatile-asm-stop
-mno-volatile-asm-stop
เบชเป‰เบฒเบ‡ (เบซเบผเบทเบขเปˆเบฒ) เบขเบธเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบ—เบฑเบ™เบ—เบตเบเปˆเบญเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ asm เบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡.

-mregister-names
-mno-register-names
เบชเป‰เบฒเบ‡ (เบซเบผเบทโ€‹เบšเปเปˆโ€‹) in, loc, เปเบฅเบฐ เบญเบญเบ เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŠเบทเปˆเบชเปเบฒเบฅเบฑเบšเบ—เบฐเบšเบฝเบ™ stacked. เบ™เบตเป‰
เบญเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

-mno-sdata
-msdata
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ (เบซเบผเบทเป€เบ›เบตเบ”เปƒเบŠเป‰) เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเปเบกเบ‡เป„เบกเป‰ optimizer.

-mconstant-gp
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ„เปˆเบฒเบ•เบปเบงเบŠเบตเป‰เบ—เบปเปˆเบงเป‚เบฅเบเบ„เบปเบ‡เบ—เบตเปˆเบญเบฑเบ™เบ”เบฝเบง. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ” kernel.

-mauto-pic
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเบ•เบปเบ™เป€เบญเบ‡เป„เบ”เป‰. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ -mconstant-gp. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”
เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เป€เบŸเบตเบกเปเบง.

-minline-float-divide-min-latency
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เปƒเบ™เปเบ–เบงเบ‚เบญเบ‡เบ„เปˆเบฒเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เป€เบงเบฅเบฒ latency เบ•เปเปˆเบฒเบชเบธเบ”
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ.

-minline-float-divide-max-throughput
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เปƒเบ™เปเบ–เบงเบ‚เบญเบ‡เบ„เปˆเบฒเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบนเบ‡เบชเบธเบ”
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ.

-mno-inline-float-divide
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™เปเบ–เบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบ.

-minline-int-divide-min-latency
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡ inline เบ‚เบญเบ‡เบ„เปˆเบฒ integer เป‚เบ”เบเปƒเบŠเป‰ latency เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ.

-minline-int-divide-max-throughput
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡ inline เบ‚เบญเบ‡เบ„เปˆเบฒ integer เป‚เบ”เบเปƒเบŠเป‰ throughput เบชเบนเบ‡เบชเบธเบ”
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ.

-mno-inline-int-divide
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™เปเบ–เบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ„เปˆเบฒเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก.

-minline-sqrt-min-latency
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเปƒเบ™เปเบ–เบงเป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบต latency เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ.

-minline-sqrt-max-throughput
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบเบชเบญเบ‡เปเบ–เบงเปƒเบ™เปเบ–เบงเป‚เบ”เบเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบชเบนเบ‡เบชเบธเบ”.

-mno-inline-sqrt
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” inline เบชเปเบฒเบฅเบฑเบš "sqrt".

-mfused-madd
-mno-fused-madd
เป€เบฎเบฑเบ” (เบšเปเปˆ) เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ fused multiply/add เบซเบผเบท multiply/subtract
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

-mno-dwarf2-asm
-mdwarf2-asm
เบขเปˆเบฒ (เบซเบผเบทเป€เบฎเบฑเบ”) เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบ›เบฐเบเบญเบšเบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเปŠเบเป€เบฅเบเปเบ–เบง DWARF 2.
เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบกเบทเปˆเบญเบšเปเปˆเปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบเบญเบš GNU.

-mearly-stop-bits
-mno-early-stop-bits
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบšเบดเบ”โ€‹เบขเบธเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบงเบฒเบ‡โ€‹เป„เบงโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบเปˆเบญเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹
เบเบฐเบ•เบธเป‰เบ™เบˆเบธเบ”เบขเบธเบ”. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบตเป„เบ›
เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™.

-mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบซเป‰เบกเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ
เปเบกเปˆเบ™เบญเบฑเบ™เปœเบถเปˆเบ‡เบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบ—เบฐเบšเบฝเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก kernel
เบฅเบฐเบซเบฑเบ”. เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบชเบญเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบเบเบญเบญเบเป‚เบ”เบ dash. เบซเบผเบฒเบ
เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเบšเบธเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

-mtls-size=tls-size
เบฅเบฐเบšเบธเบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบ TLS เบ—เบฑเบ™เบ—เบต. เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™ 14, 22, เปเบฅเบฐ 64.

-mtune=cpu-type
เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบชเบญเบ™เบชเบณเบฅเบฑเบš CPU เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™ เบ—เบฒเบ”เป€เบ™เบฅเบฐเบ™เบฝเบก,
itanium1, เบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™, itanium2, เปเบฅเบฐ mckinley.

-milp32
-mlp64
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบซเบผเบท 64-bit. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบเปเบฒเบ™เบปเบ” int,
เบเบฒเบง เปเบฅเบฐเบŠเบตเป‰เป„เบ›เบซเบฒ 32 bits. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 64-bit เบเปเบฒเบ™เบปเบ” int เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐเบเบฒเบงเปเบฅเบฐ
เบŠเบตเป‰เป„เบ›เบซเบฒ 64 bits. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบธเบ‡เบชเบฐเป€เบžเบฒเบฐ HP-UX.

-mno-sched-br-data-spec
-msched-br-data-spec
(Dis/En)เบชเบฒเบกเบฒเบ”เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เปเป‰เบกเบนเบ™เบเปˆเบญเบ™เป‚เบซเบผเบ”เปƒเปเปˆ. เบ™เบตเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "ld.a" เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ ("ld.c" / "chk.a"). เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™'.

-msched-ar-data-spec
-mno-sched-ar-data-spec
(En/Dis) เบชเบฒเบกเบฒเบ”เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เบซเบผเบฑเบ‡เบˆเบฒเบเป‚เบซเบผเบ”เบ„เบทเบ™เปƒเปเปˆ. เบ™เบตเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "ld.a" เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ ("ld.c" / "chk.a"). เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เป€เบ›เบตเบ”เปƒเบŠเป‰'.

-mno-sched-control-spec
-msched-control-spec
(Dis/En)เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™เป„เบฅเบเบฐ
เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เบžเบฒเบเบžเบทเป‰เบ™ (เป€เบŠเบฑเปˆเบ™: เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบผเบ”เบ„เบทเบ™เปƒเปเปˆ). เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ "ld.s"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ "chk.s". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
'เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™'.

-msched-br-in-data-spec
-mno-sched-br-in-data-spec
(En/Dis) เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เบณเปเบ™เบฐเบ™เบณเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™
เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเบเปˆเบญเบ™เป‚เบซเบผเบ”เปƒเปเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -msched-br-data-spec
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เป€เบ›เบตเบ”เปƒเบŠเป‰'.

-msched-ar-in-data-spec
-mno-sched-ar-in-data-spec
(En/Dis) เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เบณเปเบ™เบฐเบ™เบณเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™
เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเป‚เบซเบผเบ”เบ„เบทเบ™เปƒเปเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -msched-ar-data-spec
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เป€เบ›เบตเบ”เปƒเบŠเป‰'.

-msched-in-control-spec
-mno-sched-in-control-spec
(En/Dis) เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบš
เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป‚เบซเบผเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -msched-control-spec enabled
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เป€เบ›เบตเบ”เปƒเบŠเป‰'.

-mno-sched-prefer-non-data-spec-insns
-msched-prefer-non-data-spec-insns
เบ–เป‰เบฒเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ–เบทเบเป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบšเปเปˆเบกเบต
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบญเบทเปˆเบ™โ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบญเบฐเบ™เบธเบฅเบฑเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™'.

-mno-sched-prefer-non-control-spec-insns
-msched-prefer-non-control-spec-insns
เบ–เป‰เบฒเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบˆเบฐเบ–เบทเบเป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบกเบต
เบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เปƒเบ™เบ‚เบฐเบ™เบฐเบ™เบตเป‰. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบซเบผเบฒเบ
เบญเบฐเบ™เบธเบฅเบฑเบเบซเบผเบฒเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™'.

-mno-sched-count-spec-in-critical-path
-msched-count-spec-in-critical-path
เบ–เป‰เบฒเป€เบ›เบตเบ”เปƒเบŠเป‰, เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ
เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบเบซเบผเบฒเบ
เบญเบฐเบ™เบธเบฅเบฑเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 'เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™'.

-msched-spec-ldc
เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบ‡เปˆเบฒเบเป†. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-msched-control-spec-ldc
เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‡เปˆเบฒเบเป†เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบเบฒเบ™เบ„เบงเบšเบ„เบธเบก. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-msched-stop-bits-เบซเบผเบฑเบ‡เบˆเบฒเบ-เบ—เบธเบเป†เบฎเบญเบšเบงเบฝเบ™
เบงเบฒเบ‡เบˆเบธเบ”เบขเบธเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบธเบเป†เบฎเบญเบšเป€เบกเบทเปˆเบญเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-msched-fp-mem-deps-zero-cost
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เปเบฅเบฐเบเบฒเบ™เป‚เบซเบผเบ”เปเบกเปˆเบ™เบšเปเปˆเบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบ‚เบฑเบ”เปเบเป‰เบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบธเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฝเบงเบเบฑเบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-msel-sched-dont-check-control-spec
เบชเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบ. เบ—เบธเบ‡เบ™เบตเป‰เปเบกเปˆเบ™
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-msched-max-memory-insns=max-insns
เบˆเปเบฒเบเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ insns เบ•เปเปˆเบเบธเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปƒเบซเป‰เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ•เปˆเปเบฒเบเบงเปˆเบฒ
insns เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปƒเบ™โ€‹เบเบธเปˆเบกโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹.
เป€เบฅเบทเป‰เบญเบเป†เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เบ‚เบญเบ‡เบ—เบฐเบ™เบฒเบ„เบฒเบ™ cache. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 1.

-msched-max-memory-insns-hard-limit
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบ msched-max-memory-insns เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เบ—เบตเปˆโ€‹เบเบฒเบ, เบšเปเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบก
เบซเบผเบฒเบเบเบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบ™เบฑเป‰เบ™เบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เปเบกเปˆเบ™ "เบญเปˆเบญเบ™", เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบกเปˆเบ™เบกเบฑเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”, เปเบ•เปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบญเบฒเบ”เบˆเบฐเบเบฑเบ‡เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰.

LM32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ LatticeMico32:

-mbarrel-shift-enabled
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เปˆเบฝเบ™เบ–เบฑเบ‡.

-mdivide-เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบšเปˆเบ‡ เปเบฅเบฐเป‚เบกเบ”เบนเบฅ.

- multiply-enabled
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ„เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-msign-extend-enabled
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เป€เบŠเบฑเบ™เบŠเบทเปˆ.

-muser-enabled
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบเปเบฒเบ™เบปเบ”.

M32C เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-mcpu=เบŠเบทเปˆ
เป€เบฅเบทเบญเบ CPU เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบŠเบทเปˆ เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™ r8 เบ„ เบชเปเบฒเบฅเบฑเบš R8C/Tiny
เป„เบฅเบเบฐเบเบฒเบ™, m16c เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ” M16C (เป€เบ–เบดเบ‡ /60), เบก32เบŠเบก เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ” M16C/80, เบซเบผเบท m32c
เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ” M32C/80.

- เบŠเบดเบก
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™ simulator เป„เบ”เป‰. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบˆเบฑเบšเบชเบฐเบซเบผเบฑเบš
เบซเปเบชเบฐเบซเบกเบธเบ” runtime เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เป„เบŸเบฅเปŒ I/O. เป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบšเปเปˆ
เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบฎเบฒเบ”เปเบงเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡; เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡
เบชเบฐเปœเบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” runtime เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบชเบณเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ I/O เปƒเบ”เบเปเป„เบ”เป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

-memregs=เบˆเปเบฒเบ™เบงเบ™
เบฅเบฐเบšเบธเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ pseudo-based เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ GCC เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”.
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ pseudo-เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบตเบเบฒเบ™เบŠเบทเป‰เบ‚เบฒเบเบฅเบฐเบซเบงเปˆเบฒเบ‡
เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ GCC เป€เบซเบกเบฒเบฐเบเบฑเบšเบฅเบฐเบซเบฑเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เปเบฅเบฐเบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบธเบเป‚เบกเบ”เบนเบ™เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เบ”เป‰เบงเบเป€เบซเบ”เบœเบปเบ™เบ™เบตเป‰, เป€เบˆเบปเป‰เบฒเบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เบกเบฑเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ GCC.

M32R/D เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Renesas M32R/D:

-m32r2
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš M32R/2.

-m32rx
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš M32R/X.

-m32r
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš M32R. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเบดเปˆเบ‡เบ‚เบญเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบญเบฒเป„เบชเบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เปˆเปเบฒเบเบงเปˆเบฒ 16MB (เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบขเบนเปˆเป„เบ”เป‰
loaded เบเบฑเบš "ld24" instruction), เปเบฅเบฐเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ subroutines เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เบ”เป‰เบงเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "bl". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเปƒเบ”เบ™เบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบ”เป‰เบงเบเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบ•เบปเบงเปเบšเบš".

-mmodel=เบ›เบฒเบ™เบเบฒเบ‡
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบงเบฑเบ”เบ–เบธเบญเบฒเบ”เบˆเบฐเบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบเปเป„เบ”เป‰เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ 32-bit (เบ•เบปเบงเบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบชเป‰เบฒเบ‡
"seth/add3" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ), เปเบฅเบฐเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เบธเบ subroutines เปเบกเปˆเบ™
เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เบ”เป‰เบงเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "bl".

-mmodel=เปƒเบซเบเปˆ
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบงเบฑเบ”เบ–เบธเบญเบฒเบ”เบˆเบฐเบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบเปเป„เบ”เป‰เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ 32-bit (เบ•เบปเบงเบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบชเป‰เบฒเบ‡
"seth/add3" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ), เปเบฅเบฐเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ subroutines เบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™
เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบšเบฑเบ™โ€‹เบฅเบธโ€‹เป„เบ”เป‰โ€‹เบ”เป‰เบงเบโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ "blโ€‹" (เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบตโ€‹เบชเป‰เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบŠเบฑเบโ€‹เบŠเป‰เบฒโ€‹เบซเบผเบฒเบโ€‹
"seth/add3/jl" เบฅเปเบฒเบ”เบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ).

-msdata=เบšเปเปˆเบกเบต
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ. เบ•เบปเบงเปเบ›เบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ ".data", ".bss", เบซเบผเบท
".rodata" (เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "section"). เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบžเบฒเบเบชเปˆเบงเบ™ ".sdata" เปเบฅเบฐ ".sbss". เบงเบฑเบ”เบ–เบธเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เป€เบญเบปเบฒเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบžเบฒเบเบชเปˆเบงเบ™" เป‚เบ”เบเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบžเบฒเบเบชเปˆเบงเบ™.

-msdata=sdata
เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบฅเบฐเบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบžเบดเป€เบชเบ”
เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบญเป‰เบฒเบ‡เบญเบตเบ‡เบžเบงเบเบกเบฑเบ™.

-msdata=เปƒเบŠเป‰
เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบเปเบฅเบฐเบชเบฐเบ–เบดเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เปเบฅเบฐเบชเป‰เบฒเบ‡เบžเบดเป€เบชเบ”
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบญเป‰เบฒเบ‡เบญเบตเบ‡เบžเบงเบเบกเบฑเบ™.

-G num
เบงเบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐเบชเบฐเบ–เบดเบ”เปœเป‰เบญเบเบเบงเปˆเบฒ เบซเบผเบทเป€เบ—เบปเปˆเบฒเบเบฑเบš num bytes เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบท
เบžเบฒเบเบชเปˆเบงเบ™ BSS เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบเบฐเบ•เบดเบซเบผเบทเบžเบฒเบเบชเปˆเบงเบ™ BSS. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ num is
8. เป„เบ”เป‰ -msdata เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹ เบ‚เปเป‰เบกเบนเบ™ or เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ—เบตเปˆเบˆเบฐเบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบš.

เป‚เบกเบ”เบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™ -G num เบ„เปˆเบฒ. เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ num เบญเบฒเบ”เบˆเบฐ เบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ; เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบซเป‰เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”
เบ‚เปเป‰เบ„เบงเบฒเบก--- เบฅเบฐเบซเบฑเบ”เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.

-mdebug
เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบชเบฐเป€เบžเบฒเบฐ M32R เปƒเบ™ compiler เบชเบฐเปเบ”เบ‡เบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบŠเปˆเบงเบเป„เบ”เป‰
เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ debugging.

-malign-loops
เบˆเบฑเบ”เบฎเบฝเบ‡เบ—เบธเบ loops เปƒเบซเป‰เป€เบ›เบฑเบ™เบ‚เบญเบšเป€เบ‚เบ” 32-byte.

-mno-align-loops
เบขเปˆเบฒเบšเบฑเบ‡เบ„เบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡ 32-byte เบชเปเบฒเบฅเบฑเบš loops. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-missue-rate=เบˆเปเบฒเบ™เบงเบ™
เบšเบฑเบ™เบซเบฒ เบˆเปเบฒเบ™เบงเบ™ เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เปเปˆเบฎเบญเบšเบงเบฝเบ™. เบˆเปเบฒเบ™เบงเบ™ เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™ 1 เบซเบผเบท 2 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mbranch-cost=เบˆเปเบฒเบ™เบงเบ™
เบˆเปเบฒเบ™เบงเบ™ เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™ 1 เบซเบผเบท 2. เบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™ 1 เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบ‚เบฒเปเบกเปˆเบ™เบกเบฑเบเบซเบผเบฒเบเบเบงเปˆเบฒเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบฅเบฐเบซเบฑเบ”, เบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™ 2, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเปƒเบŠเป‰.

-mflush-trap=เบˆเปเบฒเบ™เบงเบ™
เบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฅเป‰เบฒเบ‡เปเบ„เบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 12. เบ–เบทเบเบ•เป‰เบญเบ‡
เบ•เบปเบงเป€เบฅเบเปเบกเปˆเบ™เบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ 0 เบซเบฒ 15 เบฅเบงเบก.

-mno-flush-เบ”เบฑเบ
เบฅเบฐเบšเบธเบงเปˆเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบฅเป‰เบฒเบ‡เปเบ„เบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบเบฑเบšเบ”เบฑเบ.

-mflush-func=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒเป€เบžเบทเปˆเบญ flush cache. เป„เบ”เป‰
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ _flush_cache, เปเบ•เปˆเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบเบฑเบšเบ”เบฑเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰.

-mno-flush-func
เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™ OS เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเป‰เบฒเบ‡เปเบ„เบ”.

M680x0 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต M680x0 เปเบฅเบฐ ColdFire. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ‚เบถเป‰เบ™เบเบฑเบšเบงเปˆเบฒเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปƒเบ”เบ–เบทเบเป€เบฅเบทเบญเบเป€เบกเบทเปˆเบญ compiler เป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”; เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เปƒเบซเป‰เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

- เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ M680x0 เบซเบผเบท ColdFire.
เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡ เป‚เบ„เป‰เบ‡ เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ M680x0 เปเบกเปˆเบ™: 68000, 68010, 68020, 68030,
68040, 68060 เปเบฅเบฐ cpu32. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ ColdFire เบ–เบทเบเป€เบฅเบทเบญเบเบ•เบฒเบก Freescale's
เบเบฒเบ™เบˆเบฑเบ”เบ›เบฐเป€เบžเบ” ISA เปเบฅเบฐเบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: เบญเบดเบ”เบชเบฐเบขเบฒ, isaaplus, isab เปเบฅเบฐ เป„เบญเบŠเบฒเบ.

GCC เบเปเบฒเบ™เบปเบ”เบกเบฐเบซเบฒเบžเบฒเบ "__mcfเป‚เบ„เป‰เบ‡__" เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš ColdFire
เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ. เป„เบ”เป‰ เป‚เบ„เป‰เบ‡ เปƒเบ™เบกเบฐเบซเบฒเบžเบฒเบเบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ - เบกเบตเบ™เบฒ เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเปƒเบซเป‰เป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, - เบกเบตเบ™เบฒ เปเบฅเบฐ -mtune เป€เบฅเบทเบญเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ„เบญเบšเบ„เบปเบงเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบ•เปˆเบกเบฑเบ™เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบˆเบธเบฅเบฐเบžเบฒเบเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ.

-mcpu=cpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต M680x0 เบซเบผเบท ColdFire เบชเบฐเป€เบžเบฒเบฐ. M680x0 cpus เปเบกเปˆเบ™:
68000, 68010, 68020, 68030, 68040, 68060, 68302, 68332 เปเบฅเบฐ cpu32. The ColdFire cpus
เปเบกเปˆเบ™เปƒเบซเป‰เป‚เบ”เบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบˆเบฑเบ”เบ›เบฐเป€เบžเบ” CPUs เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบญเบšเบ„เบปเบง:

เบ„เบญเบšเบ„เบปเบง: -mcpu เบเบฐเบ—เบนเป‰เบ—เบตเปˆ
51 : 51 51ac 51 เบ 51cn 51 เป€เบญเบฑเบก 51 เปเบกเปˆเบ™ 51jf 51 เบ›เบต 51jm 51mm 51 เป€เบ„ 51 เบ•เบก
5206 : 5202 5204 5206
5206 : 5206
5208 : 5207 5208
5211a : 5210a 5211a
5213 : 5211 5212 5213
5216 : 5214 5216
52235 : 52230 52231 52232 52233 52234 52235
5225 : 5224 5225
52259 : 52252 52254 52255 52256 52258 52259
5235 : 5232 5233 5234 5235 523x
5249 : 5249
5250 : 5250
5271 : 5270 5271
5272 : 5272
5275 : 5274 5275
5282 : 5280 5281 5282 528x
53017 : 53011 53012 53013 53014 53015 53016 53017
5307 : 5307
5329 : 5327 5328 5329 532x
5373 : 5372 5373 537x
5407 : 5407
5475 : 5470 5471 5472 5473 5474 5475 547x 5480 5481 5482 5483 5484 5485

-mcpu=cpu overrides - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡ if เป‚เบ„เป‰เบ‡ เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš cpu. เบเบฒเบ™เบ›เบฐเบชเบปเบกเบญเบทเปˆเบ™เป†เบ‚เบญเบ‡
-mcpu เปเบฅเบฐ - เบกเบตเบ™เบฒ เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”.

GCC เบเบณเบ™เบปเบ” macro "__mcf_cpu_cpu" เป€เบกเบทเปˆเบญเป€เบ›เบปเป‰เบฒเปเบฒเบ ColdFire cpu เบ–เบทเบเป€เบฅเบทเบญเบ. เบกเบฑเบ™เบเบฑเบ‡
เบเปเบฒเบ™เบปเบ” "__mcf_family_เบ„เบญเบšเบ„เบปเบง", เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ เบ„เบญเบšเบ„เบปเบง เปเบกเปˆเบ™เปƒเบซเป‰เป‚เบ”เบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

-mtune=เบ›เบšเบฑ
เบ›เบฑเบšเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบˆเบธเบฅเบฐเบžเบฒเบเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบžเบฒเบเปƒเบ™เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ - เบกเบตเบ™เบฒ
เปเบฅเบฐ -mcpu. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบˆเบธเบฅเบฐเบžเบฒเบ M680x0 เปเบกเปˆเบ™: 68000, 68010, 68020, 68030, 68040,
68060 เปเบฅเบฐ cpu32. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบˆเบธเบฅเบฐเบžเบฒเบเบ‚เบญเบ‡ ColdFire เปเบกเปˆเบ™: cfv1, cfv2, cfv3, cfv4 เปเบฅเบฐ
cfv4e.

เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ -mtune=68020-40 เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ”เบตเปƒเบ™ 68020,
68030 เปเบฅเบฐ 68040 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. -mtune=68020-60 เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปเบ•เปˆเบ›เบฐเบเบญเบšเบกเบต 68060 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบ›เบฑเบ™
เบ”เบต. เบ—เบฑเบ‡โ€‹เบชเบญเบ‡โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบ„เบฑเบ”โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹เบชเบดเบ™โ€‹เปƒเบˆโ€‹เบเบฒเบ™โ€‹เบ›โ€‹เบšโ€‹เบฑโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹ -m68020-40 เปเบฅเบฐ -m68020-60
เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

GCC เบเปเบฒเบ™เบปเบ” macro "__mcเป‚เบ„เป‰เบ‡" เปเบฅเบฐ "__mcเป‚เบ„เป‰เบ‡__" เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐ 680x0โ€‹
เป‚เบ„เป‰เบ‡. เบกเบฑเบ™เบเบฑเบ‡เบเปเบฒเบ™เบปเบ” "mcเป‚เบ„เป‰เบ‡" เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒ -ansi เบซเบผเบทเบšเปเปˆเปเบกเปˆเบ™ GNU -std เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.
เบ–เป‰เบฒ GCC เบเปเบฒเบฅเบฑเบ‡เบ›เบฑเบšเบฅเบฐเบ”เบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ, เบ•เบฒเบกเบ—เบตเปˆเป€เบฅเบทเบญเบเป‚เบ”เบ -mtune=68020-40 or
-mtune=68020-60, เบกเบฑเบ™เบเปเบฒเบ™เบปเบ” macro เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”.

GCC เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”เบกเบฐเบซเบฒเบžเบฒเบ "__mเบญเบนเบฃ__" เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ›เบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบเบฐโ€‹เบเปเบฒโ€‹เบˆเบธโ€‹เบฅเบฐโ€‹เบžเบฒเบ ColdFireโ€‹
เบญเบนเบฃ, เบšเปˆเบญเบ™เบ—เบตเปˆ เบญเบนเบฃ เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

-m68000
-mc68000
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68000. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš
เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ 68000. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68000.

เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš microcontrollers เบ—เบตเปˆเบกเบตเปเบเบ™ 68000 เบซเบผเบท EC000, เบฅเบงเบกเบ—เบฑเบ‡ 68008,
68302, 68306, 68307, 68322, 68328 เปเบฅเบฐ 68356.

-m68010
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68010. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš
เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ 68010. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68010.

-m68020
-mc68020
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68020. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš
เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ 68020. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68020.

-m68030
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68030. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš
เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ 68030. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68030.

-m68040
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68040. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš
เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ 68040. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68040.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบšเบเบฑเป‰เบ‡เบเบฒเบ™เปƒเบŠเป‰ 68881/68882 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ
เบŠเบญเบšเปเบงเบขเบนเปˆเปƒเบ™ 68040. เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เป‰เบฒ 68040 เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบ•เบฒเบก.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

-m68060
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68060. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš
เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ 68060. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68060.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบšเบเบฑเป‰เบ‡เบเบฒเบ™เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 68020 เปเบฅเบฐ 68881/68882 เบ—เบตเปˆเบ•เป‰เบญเบ‡เบกเบต
emulated เป‚เบ”เบเบŠเบญเบšเปเบงเปƒเบ™ 68060. เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ 68060 เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเบฅเบฐเบซเบฑเบ”.
เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบ•เบฒเบกเบ„เบณเปเบ™เบฐเบ™เบณเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mcpu32
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš CPU32. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰
เบฅเบฐเบšเบปเบšเบ—เบตเปˆเปƒเบŠเป‰ CPU32. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=cpu32.

เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš microcontrollers เบ—เบตเปˆเบกเบต CPU32 เบซเบผเบท CPU32+ core, เบฅเบงเบกเบ—เบฑเบ‡ 68330,
68331, 68332, 68333, 68334, 68336, 68340, 68341, 68349 เปเบฅเบฐ 68360.

-m5200
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš CPU ColdFire 520X. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ compiler เปเบกเปˆเบ™
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš 520X. เบกเบฑเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -mcpu=5206, เปเบฅเบฐเบ”เบฝเบงเบ™เบตเป‰
เบ„เบฑเบ”เบ„เป‰เบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™.

เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš microcontroller เบ—เบตเปˆเบกเบตเปเบเบ™ 5200, เบฅเบงเบกเบ—เบฑเบ‡ MCF5202, MCF5203,
MCF5204 เปเบฅเบฐ MCF5206.

-m5206e
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš CPU ColdFire 5206e. เบ•เบญเบ™เบ™เบตเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ -mcpu=5206e.

-m528x
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบกเบฒเบŠเบดเบเบ‚เบญเบ‡เบ„เบญเบšเบ„เบปเบง ColdFire 528X. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™
เบ„เบฑเบ”เบ„เป‰เบฒเบ™เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบ—เบฝเบšเป€เบ—เบปเปˆเบฒ -mcpu=528x.

-m5307
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš CPU ColdFire 5307. เบ•เบญเบ™เบ™เบตเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡
เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ -mcpu=5307.

-m5407
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš CPU ColdFire 5407. เบ•เบญเบ™เบ™เบตเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡
เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ -mcpu=5407.

-mcfv4e
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš CPU เบ„เบญเบšเบ„เบปเบง ColdFire V4e (เป€เบŠเบฑเปˆเบ™: 547x/548x). เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -mcpu=547x, เปเบฅเบฐเปเบกเปˆเบ™
เบ”เบฝเบงเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™.

-m68020-40
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68040, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเบกเปˆเปƒเบ”เป†. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ™เบตเป‰
เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบ‚เป‰เบญเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบžเบฒเบšโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™ 68020/68881 เบซเบผเบท 68030 เบซเบผเบท a
68040. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบกเปˆเบ™เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 68881 เบ—เบตเปˆเป€เบฎเบฑเบ”เบ•เบฒเบกเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เปƒเบ™
68040โ€‹.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68020 -mtune=68020-40.

-m68020-60
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบš 68060, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเบกเปˆเปƒเบ”เป†. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ™เบตเป‰
เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบ‚เป‰เบญเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบžเบฒเบšโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™ 68020/68881 เบซเบผเบท 68030 เบซเบผเบท a
68040. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบกเปˆเบ™เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 68881 เบ—เบตเปˆเป€เบฎเบฑเบ”เบ•เบฒเบกเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เปƒเบ™
68060โ€‹.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=68020 -mtune=68020-60.

-mhard-float
-m68881
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ 68020 เบ‚เบถเป‰เบ™เป„เบ›, เปเบฅเบฐ
เบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™ ColdFire เบ—เบตเปˆเบกเบต FPU. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบกเบฐเบซเบฒเบžเบฒเบ "__HAVE_68881__" เปƒเบ™
เป€เบ›เบปเป‰เบฒเปเบฒเบ M680x0 เปเบฅเบฐ "__mcffpu__" เปƒเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบ ColdFire.

-msoft-float
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰; เปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เปเบ—เบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ 68000, 68010, เปเบฅเบฐ 68832 เป€เบ›เบปเป‰เบฒเปเบฒเบ. เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ ColdFire
เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบšเปเปˆเบกเบต FPU.

-mdiv
-mno-div
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบเบฒเบ™เปเบšเปˆเบ‡เบฎเบฒเบ”เปเบง ColdFire เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบซเบผเบทเบญ. เบ–เป‰เบฒ
- เบกเบตเบ™เบฒ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -mcpu, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ "เป€เบ›เบตเบ”" เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ ColdFire เปเบฅเบฐ "เบ›เบดเบ”"
เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ M680x0. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบ CPU เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ (เบšเปเปˆเบงเปˆเบฒเบˆเบฐ
CPU เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบซเบผเบทเบญเบฑเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบ -mcpu). เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ "เบ›เบดเบ”"
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -mcpu=5206 เปเบฅเบฐ "เบชเบธเบ”" เบชเปเบฒเบฅเบฑเบš -mcpu=5206e.

GCC เบเปเบฒเบ™เบปเบ” macro "__mcfhwdiv__" เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.

-mshort
เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบžเบดเบก "int" เป€เบ›เบฑเบ™ 16 bits wide, เป€เบŠเบฑเปˆเบ™ "short int". เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต
เบœเปˆเบฒเบ™ stack เปเบกเปˆเบ™เบเบฑเบ‡เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ”เบŠเบฒเบเปเบ”เบ™ 16-bit เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบขเบนเปˆเปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบกเบต API
เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบชเบปเปˆเบ‡เป€เบชเบตเบกเป€เบ›เบฑเบ™ 32-bit.

-mno-เบชเบฑเป‰เบ™
เบขเปˆเบฒเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ›เบฐเป€เบžเบ” "int" เบเบงเป‰เบฒเบ‡ 16 เบšเบดเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mnobitfield
-mno-bitfield
เบขเปˆเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™ bit-field. เป„เบ”เป‰ -m68000, -mcpu32 เปเบฅเบฐ -m5200 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบซเบกเบฒเบโ€‹เป€เบ–เบดเบ‡โ€‹
-mnobitfield.

-mbitfield
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™ bit-field. เป„เบ”เป‰ -m68020 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบซเบกเบฒเบเป€เบ–เบดเบ‡ -mbitfield. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบญเบญเบเปเบšเบšเบกเบฒเบชเปเบฒเบฅเบฑเบš 68020.

-mrtd
เปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เปเบเป‰เป„เบ‚
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบšเบ„เบทเบ™เบกเบฒเบ”เป‰เบงเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "rtd", เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบปเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ
เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฑเบšเบ„เบทเบ™. เบ™เบตเป‰เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบœเบนเป‰เป‚เบ—เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เบ›เบฐเบเบปเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™.

เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™เบ™เบตเป‰เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเปƒเบŠเป‰เบขเบนเปˆเปƒเบ™ Unix, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบˆเบปเป‰เบฒ
เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบกเบฑเบ™เป„เบ”เป‰เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ Unix compiler.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰ prototypes เบŸเบฑเบ‡เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ•เบปเบงเปเบ›
เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ (เบฅเบงเบกเบ—เบฑเบ‡ "printf"); เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบฅเบฐเบซเบฑเบ”เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเปˆเบฒเบ‡เบฎเบธเบ™เปเบฎเบ‡เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡. (เบ›เบปเบเบเบฐเบ•เบด, เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบžเบดเป€เบชเบ”เปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเบขเปˆเบฒเบ‡เบšเปเปˆเบกเบตเบญเบฑเบ™เบ•เบฐเบฅเบฒเบ.)

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "rtd" เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ 68010, 68020, 68030, 68040, 68060 เปเบฅเบฐ CPU32.
เป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™ 68000 เบซเบผเบท 5200.

-mno-rtd
เบขเปˆเบฒเปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเป€เบฅเบทเบญเบเป‚เบ”เบ -mrtd. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-malign-int
-mno-align-int
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒ GCC เบงเบฒเบ‡ "int", "long", "long long", "float", "double", เปเบฅเบฐ "long.
double" เบ•เบปเบงเปเบ›เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 32-bit (-malign-int) เบซเบผเบทเบ‚เบญเบšเป€เบ‚เบ” 16-เบšเบดเบ”
(-mno-align-int). เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบ•เบปเบงเปเบ›เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 32-bit เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ
เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป„เบงเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบต 32-bit busses เป‚เบ”เบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบผเบฒเบ.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -malign-int เบชเบฐเบซเบผเบฑเบš, GCC เบˆเบฑเบ”เบงเบฒเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡
เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ—เบตเปˆโ€‹เบžเบดเบกโ€‹เป€เบœเบตเบโ€‹เปเบœเปˆโ€‹เบซเบผเบฒเบโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เบ„เบนเปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
m68k.

-mpcrel
เปƒเบŠเป‰ pc-relative addressing mode เบ‚เบญเบ‡ 68000 เป‚เบ”เบเบเบปเบ‡, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ global
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบปเบ”เป€เบŠเบตเบ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ -fpic, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบ 16-bit เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”
เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ pc-relative. -fPIC เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹ -mpcrel, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต 68020 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-mno-strict-align
-mstrict-align
เบขเปˆเบฒ (เป€เบฎเบฑเบ”) เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบฅเบฐเบšเบปเบš.

-msep-เบ‚เปเป‰เบกเบนเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ
เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบšเปเปˆเบกเบต
เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ virtual. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ -fPIC.

-mno-sep-data
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบซเปเบชเบฐเปเบธเบ”เบเบฒเบ‡
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบœเปˆเบฒเบ™เบงเบดเบ—เบตเบเบฒเบ™ ID เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เปเบฅเบฐโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เปเบงเบ”โ€‹เบฅเป‰เบญเบกโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒ virtualโ€‹
เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ -fPIC.

-mno-id-shared-library
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบ ID เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mshared-library-id=n
เบฅเบฐเบšเบธเปเบฒเบเป€เบฅเบเบ›เบฐเบˆเบณเบ•เบปเบงเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ•เบฒเบก ID เบ—เบตเปˆเบเบณเบฅเบฑเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบก.
เบเบฒเบ™เบฅเบฐเบšเบธเบ„เปˆเบฒเบ‚เบญเบ‡ 0 เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบเบงเปˆเบฒ; เบเปเบฒเบ™เบปเบ”เบเปเบฒเบฅเบฑเบ‡เบกเบนเบ™เบ„เปˆเบฒเบญเบทเปˆเบ™เป†
เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฑเบšโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบŠเปˆเบญเบ‡โ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบซเบผเบทโ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบซเบผเบฒเบโ€‹.
เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เบฅเบฐเป€เบงเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

-mxgot
-mno-xgot
เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบชเปเบฒเบฅเบฑเบš ColdFire, เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ–เป‰เบฒ
GOT เบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 8192 เบฅเบฒเบเบเบฒเบ™. เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เปƒเบซเบเปˆเบเบงเปˆเบฒ เปเบฅเบฐเบŠเป‰เบฒเบเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต M680x0, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™; -fPIC
เบžเบฝเบ‡เบžเป.

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฝเบงเป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เบ„เปˆเบฒเบˆเบฒเบ GOT. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™
เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ GOT เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ›เบฐเบกเบฒเบ™ 64k. เบ—เบธเบเบขเปˆเบฒเบ‡
เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบŠเบฑเปˆเบ™:

เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ–เบทเบเบ•เบฑเบ”เปƒเบซเป‰เบžเปเบ”เบต: R_68K_GOT16O foobar

เบ–เป‰เบฒเบชเบดเปˆเบ‡เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบš -mxgot. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบš
GOTs เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ -mxgot เปเบกเปˆเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™
เปƒเบŠเป‰ 4 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบ”เบถเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบปเปˆเบงเป‚เบฅเบ.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบšเบฒเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบฅเบงเบกเบ—เบฑเบ‡เบฎเบธเปˆเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU, เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบ”เป‰
เบซเบผเบฒเบ GOTs เปเบฅเบฐเบˆเบฑเบ”เบฅเบฝเบ‡ GOT entries. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mxgot เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ”เบฝเบงเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบฒเบเบเปˆเบงเบฒ 8192 GOT
เบฅเบฒเบเบเบฒเบ™. เปœเป‰เบญเบเบซเบผเบฒเบเป€เบฎเบฑเบ”.

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เปƒเบ”เป†เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ GCC เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ•เปเบฒเปเบซเบ™เปˆเบ‡.

MCore เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš Motorola M*Core processorsโ€‹.

-mhardlit
-mno-hardlit
เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เปเบ–เบงเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฐเปเบชเบฅเบฐเบซเบฑเบ”เบ–เป‰เบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปƒเบ™เบชเบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบทเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ.

-mdiv
-mno-div
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบšเปˆเบ‡. (เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

-mrelax เบ—เบฑเบ™เบ—เบต
-mno-เบœเปˆเบญเบ™เบ„เบฒเบ-เบ—เบฑเบ™เบ—เบต
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เป‚เบ”เบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™ bitโ€‹.

-mwide-bitfields
-mno-wide-bitfields
เบ›เบฐเบ•เบดเบšเบฑเบ” bit-fields เป€เบ›เบฑเบ™ "int"-size เบชเบฐเป€เปเบต.

-m4byte functions
-mno-4byte-functions
เบšเบฑเบ‡เบ„เบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เปƒเบซเป‰เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 4-byte.

-mcallgraph-data
-mno-callgraph-data
เบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™ callgraph.

-mslow-bytes
-mno-slow-bytes
เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เปเบฒเบชเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบญเปˆเบฒเบ™เบ›เบฐเบฅเบดเบกเบฒเบ™ byte.

-mlittle-endian
-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian.

-m210
-m340
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต 210.

-mno-lsim
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš runtime เป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบฅเบฐเป€เบงเบฑเป‰เบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” simulator
(libsim.a) เบˆเบฒเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ linker.

-mstack-increment=เบ‚เบฐเบซเบ™เบฒเบ”
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ stack เบ”เบฝเบง. เบกเบนเบ™เบ„เปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบชเบฒเบกเบฒเบ”
เป€เบžเบตเปˆเบกโ€‹เบ„เบงเบฒเบกโ€‹เป„เบงโ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹เบ‚เบญเบ‡โ€‹
เบžเบทเป‰เบ™เบ—เบตเปˆ stack, เปเบ•เปˆเบžเบงเบเบกเบฑเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป„เบ”เป‰เบ–เป‰เบฒ stack เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ
เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0x1000.

เป€เบกเบ› เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-mabsdiff
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "abs", เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡เบ—เบฐเบšเบฝเบ™.

-mall-opts
เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ” --- เบชเบฐโ€‹เป€เบฅเปˆเบโ€‹, เบ„เบนเบ™โ€‹, เปเบšเปˆเบ‡โ€‹, เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบšเบดเบ”โ€‹,
เบชเบนเบ™เบ™เบณเปœเป‰เบฒ, เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡, เบ•เปˆเบณเบชเบธเบ”/เบชเบนเบ‡เบชเบธเบ”, เบ„เบฅเบดเบš, เปเบฅเบฐเบ„เบงเบฒเบกเบญเบตเปˆเบกเบ•เบปเบง.

- เบชเบฐเป€เบฅเปˆเบ
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "ave", เป€เบŠเบดเปˆเบ‡เบ„เบดเบ”เป„เบฅเปˆเบ„เปˆเบฒเบชเบฐเป€เบฅเปˆเบเบ‚เบญเบ‡เบชเบญเบ‡เบ—เบฐเบšเบฝเบ™.

-mbased=n
เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ” n bytes เบซเบผเบทเบ™เป‰เบญเบเบเบงเปˆเบฒเปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบชเปˆเบงเบ™ ".based" เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
เบ•เบปเบงเปเบ›เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $tp เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™, เปเบฅเบฐเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ” 128-byte.
เป„เบ›เบซเบฒเบžเบฒเบเบชเปˆเบงเบ™ ".based".

- เบšเบดเบ”
เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบšเบดเบ” --- เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบšเบดเบ” ("btstmโ€‹"โ€‹)โ€‹, set ("bsetmโ€‹"โ€‹) , clear
("bclrm"), invert ("bnotm"), เปเบฅเบฐ test-and-set ("tas").

-mc=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เปƒเบ”เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™. เบŠเบทเปˆ เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบขเบนเปˆเปƒเบเป‰, เบซเบผเบท เป„เบ.

-mclip
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "clip". เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ -mclip เบšเปเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡
เปƒเบซเป‰ -mminmax.

-mconfig=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเปœเบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบผเบฑเบเปƒเบ™เบ•เบปเบง. เปเบ•เปˆเบฅเบฐเบŠเบดเบš MeP เบกเบตเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™
เป‚เบกเบ”เบนเบ™เปƒเบ™เบกเบฑเบ™; เปเบ•เปˆเบฅเบฐเป‚เบกเบ”เบนเบ™เบกเบต CPU เบซเบผเบฑเบ เปเบฅเบฐเบซเบผเบฒเบเบซเบผเบฒเบเบ‚เบญเบ‡ coprocessors, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบ•เปเปˆเบžเปˆเบงเบ‡. เป€เบ„เบทเปˆเบญเบ‡เบกเบท "MeP-Integrator", เบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ GCC, เบชเบฐเบซเบ™เบญเบ‡
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰; เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ Default.

-mcop
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™ 32-bit. เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹
เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง coprocessor เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบœเปˆเบฒเบ™ -mconfig= เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-mcop32
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡ coprocessor 32-bit.

-mcop64
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡ coprocessor 64-bit.

-mivc2
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ IVC2. IVC2 เป€เบ›เบฑเบ™เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™ VLIW 64-เบšเบดเบ”.

-mdc
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเปเบ›เบ„เบปเบ‡เบ—เบตเปˆเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เบžเบฒเบ ". เปƒเบเป‰".

-mdiv
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "div" เปเบฅเบฐ "divu".

-เป€เบกเบš
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” big-endian.

-mel
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” little-endian.

-mio-volatile
เบšเบญเบเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบงเปˆเบฒเบ•เบปเบงเปเบ›เปƒเบ”เป†เบ—เบตเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ "io" เบˆเบฐเป€เบ›เบฑเบ™
เบ–เบทเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบœเบฑเบ™เบœเบงเบ™.

-ml เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเปเบ›เบ–เบทเบเบกเบญเบšเปเบฒเบเปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™ ".far" เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mleaz
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "leadz" (leading zero).

-เบกเบก เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเปเบ›เบ–เบทเบเบกเบญเบšเปเบฒเบเปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™ ". เปƒเบเป‰" เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mminmax
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "min" เปเบฅเบฐ "max".

- mmult
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ„เบนเบ™ เปเบฅเบฐเบ„เบนเบ™เบชเบฐเบชเบปเบก.

-mno-opts
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -mall-opts.

-mrepeat
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบณเบชเบฑเปˆเบ‡ "เป€เบฎเบฑเบ”เบŠเป‰เบณ" เปเบฅเบฐ "เป€เบฎเบฑเบ”เบŠเป‰เบณ", เบ™เบณเปƒเบŠเป‰เบชเบณเบฅเบฑเบšเบเบฒเบ™ looping เบ•เปˆเบณ.

-เบ™เบฒเบ‡โ€‹เบชเบฒเบง เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเปเบ›เบ—เบฑเบ‡เปเบปเบ”เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ›เบซเบฒเบžเบฒเบเบชเปˆเบงเบ™ ".tiny". เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบกเบต a
65536-byte เบˆเปเบฒเบเบฑเบ”เปƒเบ™เบžเบฒเบเบ™เบตเป‰. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ•เบปเบงเปเบ›เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบŠเป‰เบžเบทเป‰เบ™เบ–เบฒเบ™ %gp
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

-msatur
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบญเบตเปˆเบกเบ•เบปเบง. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ compiler เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบˆเบธเบšเบฑเบ™
เบชเป‰เบฒเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เปเบ•เปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบญเบทเปˆเบ™เป†,
เป€เบŠเบฑเปˆเบ™ "เป€เบ›เบฑเบ™".

-msdram
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ SDRAM เปเบ—เบ™เบเบฒเบ™เปเบฅเปˆเบ™เบ•เบฒเบก ROM เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบŠเบดเบก
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เป€เบงเบฅเบฒเปเบฅเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบณเบฅเบญเบ‡.

-msimnovec
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime simulator, เบšเปเปˆเบฅเบงเบกเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบ•เบปเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเปเบฅเบฐ
เบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™ vectors เปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡.

-mtf
เป€เบฎเบฑเบ”เปƒเบซเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ›เบซเบฒเบžเบฒเบเบชเปˆเบงเบ™ ".far". เป‚เบ”เบเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ›เบซเบฒเบžเบฒเบเบชเปˆเบงเบ™ ". near".

-mtiny=n
เบ•เบปเบงเปเบ›เบ—เบตเปˆเป€เบ›เบฑเบ™ n เป„เบšเบ•เปŒ เบซเบผเบทเบ™เป‰เบญเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™ ".tiny". เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ•เบปเบงเปเบ›เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ $gp. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™ 4, เปเบ•เปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ
เบกเบฑเบ™เบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ” 65536 เป„เบšเป„เบšเบ•เปเปˆเบชเปˆเบงเบ™ ".tiny".

MicroBlaze เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-msoft-float
เปƒเบŠเป‰เบเบฒเบ™เบˆเบณเบฅเบญเบ‡เบŠเบญเบšเปเบงเบชเบณเบฅเบฑเบšเบˆเบธเบ”เบฅเบญเบ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

-mhard-float
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง.

-mmmcpy
เบขเปˆเบฒเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบšเบฅเบฑเบญเบ, เปƒเบŠเป‰ "memcpy".

-mno-clearbss
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เปƒเบŠเป‰ -fno-zero-initialized-in-bss เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

-mcpu=cpu-type
เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡, เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบš CPU เบ—เบตเปˆเปƒเบซเป‰. เบ„เปˆเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบฎเบนเบšเปเบšเบš vX.YY.Z, เบšเปˆเบญเบ™เบ—เบตเปˆ X เป€เบ›เบฑเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹, YY เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบ„เป‰เบฒโ€‹เบซเบ™เป‰เบญเบโ€‹, เปเบฅเบฐโ€‹ Z is
เบฅเบฐเบซเบฑเบ”เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰. เบ„เปˆเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™ v3.00.a, v4.00.b, v5.00.a, v5.00.b, v5.00.b,
v6.00.a.

-mxl-soft-mul
เปƒเบŠเป‰เบŠเบญเบšเปเบง multiply emulation (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

-mxl-soft-div
เปƒเบŠเป‰เบเบฒเบ™เบˆเบณเบฅเบญเบ‡เบŠเบญเบšเปเบงเบชเบณเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

-mxl-barrel-shift
เปƒเบŠเป‰เบ•เบปเบงเบ›เปˆเบฝเบ™เบ–เบฑเบ‡เบฎเบฒเบ”เปเบง.

-mxl-pattern-เบ›เบฝเบšเบ—เบฝเบš
เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-msmall-divides
เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบŠเบญเบเบซเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบฅเบปเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ.

-mxl-stack-เบเบงเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เปƒเบŠเป‰ -fstack-เบเบงเบ”โ€‹เบชเบญเบšโ€‹ เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

-mxl-gp-opt
เปƒเบŠเป‰เบžเบฒเบเบชเปˆเบงเบ™ ".sdata"/"sbss" GP-relative.

-mxl-เบ„เบนเบ™-เบชเบนเบ‡
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบ„เบนเบ™เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบชเบนเบ‡เบ‚เบญเบ‡ 32x32 เบ„เบนเบ™.

-mxl-float-เปเบ›เบ‡
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบ›เบ‡เบˆเบธเบ”เบฅเบญเบเบฎเบฒเบ”เปเบง.

-mxl-float-sqrt
เปƒเบŠเป‰เบเบฒเบ™เบชเบญเบ™เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง.

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบซเบเปˆ.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian.

-mxl-เบชเบฑเปˆเบ‡เบ„เบทเบ™เปƒเปเปˆ
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบชเบฑเปˆเบ‡เบ„เบทเบ™เปƒเบซเบกเปˆ (swap เปเบฅเบฐ byte reversed load/store).

-mxl-mode-app-model
เป€เบฅเบทเบญเบเบฎเบนเบšเปเบšเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ app-model. เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™

เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰
เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™), เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ crt0.o.

xmdstub
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฑเบš Xilinx Microprocessor Debugger (XMDโ€‹) เบŠเบญเบšโ€‹เปเบงโ€‹เบ—เบตเปˆโ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒ intrusiveโ€‹
เบ•เบปเบงเปเบ—เบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ xmdstub. เบ™เบตเป‰เปƒเบŠเป‰เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ crt1.o เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบขเบนเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
เป‚เบ›เบฃเปเบเบก 0x800.

bootstrap
เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป‚เบซเบฅเบ”เป‚เบ”เบเปƒเบŠเป‰ bootloader. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เปƒเบŠเป‰เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
crt2.o เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบกเบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ vector reset processor. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบก
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป‚เบญเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เป‚เบฎเบ‡โ€‹เบ‡เบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป€เบ›เบฑเบ™ bootloader เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

novectors
เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบต vectors MicroBlaze เปƒเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบžเบฒเบเปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ crt3.o เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -xl-mode-app-model เป€เบ›เบฑเบ™เบ™เบฒเบกเปเบเบ‡เบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบ -mxl-mode-app-model.

MIPS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-EB เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” big-endian.

- THE เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” little-endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ mips*el-*-* เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

- เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ เป‚เบ„เป‰เบ‡, เบŠเบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡ MIPS ISA เบ—เบปเปˆเบงเป„เบ›, เบซเบผเบท
เบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบชเบฐเป€เบžเบฒเบฐ. เบŠเบทเปˆ ISA เปเบกเปˆเบ™: เป„เบก1, เป„เบก2, เป„เบก3, เป„เบก4,
เป„เบก32, mips32r2, mips32r3, mips32r5, mips32r6, เป„เบก64, mips64r2, mips64r3, mips64r5
เปเบฅเบฐ mips64r6. เบŠเบทเปˆเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบกเปˆเบ™: 4kc, 4km, 4kp, 4ksc, 4 เป€เบ„, 4 เป€เบ„เบก, 4 เปเบเป‰เบง, 4ksd,
5kc, 5kf, 20kc, 24kc, 24kf2_1, 24kf1_1, 24 เป€เบ„, 24kef2_1, 24kef1_1, 34kc, 34kf2_1,
34kf1_1, 34kn, 74kc, 74kf2_1, 74kf1_1, 74kf3_2, 1004kc, 1004kf2_1, 1004kf1_1,
loongson2e, loongson2f, loongson3a, M4K, M14K, m14kc, m14ke, m14kec, octeon, octeon+,
octeon2, octeon3, orion, p5600, r2000, r3000, r3900, r4000, r4400, r4600, r4650,
r4700, r6000, r8000, rm7000, rm9000, r10000, r12000, r14000, r16000, sb1, sr71000,
vr4100, vr4111, vr4120, vr4130, vr4300, vr5000, vr5400, vr5500, xlr เปเบฅเบฐ xlp. เป„เบ”เป‰
เบกเบนเบ™เบ„เปˆเบฒเบžเบดเป€เบชเบ” เบˆเบฒเบ-abi เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš ABI เบ—เบตเปˆเป€เบฅเบทเบญเบ
(เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™, เป„เบก1 เบชเปเบฒเบฅเบฑเบš 32-bit ABIs เปเบฅเบฐ เป„เบก3 เบชเปเบฒเบฅเบฑเบš 64-bit ABIs).

เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท Linux/GNU เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบนเบ™เบ„เปˆเบฒ native, เป€เบŠเบดเปˆเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบšเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบˆเบปเป‰เบฒเบžเบฒเบš. -march=native เบšเปเปˆเบกเบตเบœเบปเบ™เบ–เป‰เบฒ GCC เป€เบฎเบฑเบ”
เบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”.

เปƒเบ™เบŠเบทเปˆเป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เบชเบธเบ”เบ—เป‰เบฒเบ 000 เบชเบฒเบกเบฒเบ”เบซเบเปเป‰เป€เบ›เบฑเบ™ k (เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, - เบกเบตเบ™เบฒ=r2k).
เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบฅเบฐ vr เบญเบฒเบ”เบˆเบฐเบ‚เบฝเบ™ r.

เบŠเบทเปˆเบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก nf2_1 เบญเป‰เบฒเบ‡เป€เบ–เบดเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบต FPUs เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบญเบฑเบ”เบ•เบฒ
เบซเบผเบฑเบ, เบŠเบทเปˆเบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก nf1_1 เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบต FPUs clocked เปƒเบ™เบญเบฑเบ”เบ•เบฒเบ”เบฝเบงเบเบฑเบ™
เป€เบ›เบฑเบ™เบซเบผเบฑเบ, เปเบฅเบฐเบŠเบทเปˆเบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก nf3_2 เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบต FPUs clocked เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™
เบ‚เบญเบ‡ 3:2 เบเปˆเบฝเบงเบเบฑเบšเบซเบผเบฑเบ. เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰, nf เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเป€เบ›เบฑเบ™
เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบท nf2_1 เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ nx เปเบฅเบฐ bfx เบ–เบทเบเบเบญเบกเบฎเบฑเบšเป€เบ›เบฑเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบท nf1_1.

GCC เบเปเบฒเบ™เบปเบ”เบชเบญเบ‡ macro เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เบญเบฑเบ™เบ—เบณเบญเบดเบ”เปเบกเปˆเบ™ "_MIPS_ARCH",
เป€เบŠเบดเปˆเบ‡เปƒเบซเป‰เบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเป€เบ›เบปเป‰เบฒเปเบฒเบ, เป€เบ›เบฑเบ™เบชเบฐเบ•เบฃเบดเบ‡. เบญเบฑเบ™เบ—เบตเบชเบญเบ‡เบกเบตเปเบšเบšเบŸเบญเบก
"_MIPS_ARCH_เบŸเบน", เบšเปˆเบญเบ™เบ—เบตเปˆ เบŸเบน เปเบกเปˆเบ™เบ„เปˆเบฒเบ•เบปเบงเบžเบดเบกเปƒเบซเบเปˆเบ‚เบญเบ‡ "_MIPS_ARCH". เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
- เบกเบตเบ™เบฒ=r2000 เบ•เบฑเป‰เบ‡ "_MIPS_ARCH" เป€เบ›เบฑเบ™ "r2000" เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบกเบฐเบซเบฒเบžเบฒเบ "_MIPS_ARCH_R2000".

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ "_MIPS_ARCH" macro เปƒเบŠเป‰เบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เปƒเบ™โ€‹เบญเบทเปˆเบ™เป†
เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†, เบกเบฑเบ™เบกเบตเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเป€เบ•เบฑเบกเปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบซเบเปเป‰ 000 as k. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ เบˆเบฒเบ-
เบŠเปˆเบงเบเป€เบซเบฅเบทเบญ, เบกเบฐเบซเบฒเบžเบฒเบเบ•เบฑเป‰เบ‡เบŠเบทเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ—เบตเปˆเปเบเป‰เป„เบ‚เปเบฅเป‰เบง (เบ—เบฑเบ‡ "mips1" เบซเบผเบท "mips3"). เบกเบฑเบ™เบŠเบทเปˆ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ เบเบณ เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบšเปเปˆเบกเบต - เบกเบตเบ™เบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบซเป‰.

-mtune=เป‚เบ„เป‰เบ‡
เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบซเป‰ เป‚เบ„เป‰เบ‡. เปƒเบ™เบšเบฑเบ™เบ”เบฒเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบงเบดเบ—เบตเบเบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ, เปเบฅเบฐเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ—เบตเปˆเบฎเบฑเบšเบฎเบนเป‰เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบฅเบเป€เบฅเบ. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ เป‚เบ„เป‰เบ‡ เบ„เปˆเบฒ
เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš เบชเบณ เบฅเบฑเบš - เบกเบตเบ™เบฒ.

เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰, GCC เบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบ - เบกเบตเบ™เบฒ. เป‚เบ”เบ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ - เบกเบตเบ™เบฒ เปเบฅเบฐ -mtune เบฎเปˆเบงเบกเบเบฑเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบš a
เบ„เบญเบšเบ„เบปเบงเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เปเบ•เปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบกเบฒเบŠเบดเบเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ„เบญเบšเบ„เบปเบงเบ™เบฑเป‰เบ™.

-mtune เบเปเบฒเบ™เบปเบ” macro "_MIPS_TUNE" เปเบฅเบฐ "_MIPS_TUNE_เบŸเบน", เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฝเบงเบเบฑเบ™
เบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบฑเบ™ - เบกเบตเบ™เบฒ เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

-mips1
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips1.

-mips2
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips2.

-mips3
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips3.

-mips4
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips4.

-mips32
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips32.

-mips32r3
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips32r3.

-mips32r5
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips32r5.

-mips32r6
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips32r6.

-mips64
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips64.

-mips64r2
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips64r2.

-mips64r3
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips64r3.

-mips64r5
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips64r5.

-mips64r6
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips64r6.

-mips16
-mno-mips16
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ” MIPS16. เบ–เป‰เบฒ GCC เบเปเบฒเบฅเบฑเบ‡เบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ MIPS32 เบซเบผเบท MIPS64
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ, เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡ MIPS16e ASE.

เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ” MIPS16 เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™
"mips16" เปเบฅเบฐ "nomips16" เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ.

-mflip-mips16
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” MIPS16 เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบซเบผเบฑเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ–เบปเบ”เบ–เบญเบ
เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบฅเบฐโ€‹เบซเบฑเบ” MIPS16 / เบšเปเปˆโ€‹เปเบกเปˆเบ™ MIPS16 เบ›เบฐโ€‹เบชเบปเบกโ€‹, เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบกเบตโ€‹เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบกเบฐโ€‹เบ”เบฒโ€‹
เปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰.

-minterlink-เบšเบตเบšเบญเบฑเบ”
-mno-interlink-compressed
เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™ (เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™) เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ™เบฑเป‰เบ™โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™ (เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบšเบตเบšโ€‹เบญเบฑเบ”) MIPS ISA เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆ-
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ” MIPS16 เปเบฅเบฐ microMIPS, เปเบฅเบฐเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” ISA เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒ MIPS16 เป‚เบ”เบเบเบปเบ‡ เบซเบผเบท
เบฅเบฐเบซเบฑเบ” microMIPS; เบกเบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบฒเบ™เป‚เบ— เบซเบผเบทเบเบฒเบ™เป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบก. -minterlink-เบšเบตเบšเบญเบฑเบ”
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ›เบดเบ”เบเบฒเบ™เป‚เบ”เบ”เป‚เบ”เบเบเบปเบ‡เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ GCC เบฎเบนเป‰เบงเปˆเบฒเป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ”เบ”เบšเปเปˆเปเบกเปˆเบ™
เบ–เบทเบเบšเบตเบšเบญเบฑเบ”.

-minterlink-mips16
-mno-interlink-mips16
เบ™เบฒเบกเปเบเบ‡เบ‚เบญเบ‡ -minterlink-เบšเบตเบšเบญเบฑเบ” เปเบฅเบฐ -mno-interlink-compressed. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
predate microMIPS ASE เปเบฅเบฐเบ–เบทเบเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡.

-mabi=32
-mabi=o64
-mabi=n32
-mabi=64
-mabi=เบญเบตเบšเบต
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš ABI เบ—เบตเปˆเปƒเบซเป‰.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ EABI เบกเบต 32-bit เปเบฅเบฐ 64-bit variant. GCC เบ›เบปเบเบเบฐเบ•เบดเบชเป‰เบฒเบ‡ 64-bit
เบฅเบฐเบซเบฑเบ”เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ 64-bit, เปเบ•เปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ -mgp32 เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบฅเบฐเบซเบฑเบ” 32-bit
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš O64 ABI, เป€เบšเบดเปˆเบ‡http://gcc.gnu.org/projects/mipso64-abi.html>.

GCC เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบปเบงเปเบ›เบ‚เบญเบ‡ o32 ABI เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™ 64 เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ.
เบเบงเป‰เบฒเบ‡เบเบงเปˆเบฒ 32 เบšเบดเบ”. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเป€เบญเบปเบฒเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ™เบตเป‰เบเบฑเบš -mabi=32 -mfp64. ABI เบ™เบตเป‰
เบญเบตเบ‡เปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "mthc1" เปเบฅเบฐ "mfhc1" เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ–เบทเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš
เป‚เบ›เป€เบŠเบ”เป€เบŠเบต MIPS32R2, MIPS32R3 เปเบฅเบฐ MIPS32R5.

เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบฅเบฐเบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เบเบฑเบ‡เบ„เบปเบ‡เบ„เบทเบเบฑเบ™, เปเบ•เปˆเปเบ•เปˆเบฅเบฐเบ„เบปเบ™
เบ„เปˆเบฒ scalar เปเบกเปˆเบ™เบœเปˆเบฒเบ™เบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™ 64-bit เบ”เบฝเบงเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เบนเปˆเบ‚เบญเบ‡ 32-bit
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ„เปˆเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™ scalar เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบ™ $f0 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เบšเปเปˆเปเบกเปˆเบ™ a
$f0/$f1 เบ„เบนเปˆ. เบŠเบธเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ— - เบšเบฑเบ™เบ—เบถเบเบเบฑเบ‡เบ„เบทเบเบฑเบ™เปƒเบ™เบงเปˆเบฒเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ -
เบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เบ•เบปเบงเป€เบฅเบเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰.

เบชเบญเบ‡เบ•เบปเบงเปเบ›เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡ o32 ABI เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบˆเบฒเบ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 32-bit เบซเบฒ 64-bit. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ FPXX (-mfpx) เปเบฅเบฐ FP64A (-mfp64
-mno-odd-spreg). เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ FPXX เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เปเบปเบ”เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡
เป€เบกเบทเปˆเบญเปเบฅเปˆเบ™เป‚เบ”เบเปƒเบŠเป‰ 32-bit เบซเบผเบท 64-bit registers. เบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบ™เป„เบ”เป‰
FP32 เบซเบผเบท FP64, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบชเบญเบ‡. เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ FP64A เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ FP64 เปเบ•เปˆ
เบซเป‰เบฒเบกเบšเปเปˆเปƒเบซเป‰เปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบญเบฑเบ™เบ”เบฝเบงเบ—เบตเปˆเบกเบตเบ•เบปเบงเป€เบฅเบเบ„เบตเบ. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™
เบชเบปเบกเบ—เบปเบšเบเบฑเบšเบฎเบนเบšเปเบšเบš "FRE" เบ‚เบญเบ‡ FPUs เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต MIPS32R5 เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เบฑเบ‡ FP32.
เปเบฅเบฐเบฅเบฐเบซเบฑเบ” FP64A เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบ™เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เบฎเบนเบšเปเบšเบš FPU.

- mabicalls
-mno-abicalls
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเป„เบ”เบ™เบฒเบกเบดเบเปเบšเบš SVR4.
- mabicalls เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš SVR4.

-mshared
-mno-เปเบšเปˆเบ‡เบ›เบฑเบ™
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™, เปเบฅเบฐเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ - mabicalls.

เบ—เบฑเบ‡เบซเบกเบปเบ” - mabicalls เบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ™เบตเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”, เป‚เบ”เบเบšเปเปˆเบชเบปเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ„เบท -fPIC เปเบฅเบฐ -fpic. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบ›เบฑเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ, GNU toolchain เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบœเบนเบเบกเบฑเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบกเบฑเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ GP เบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒ
เบฅเปเบฒเบ”เบฑเบšเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เปเบฅเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบ™เบตเป‰
เป‚เบซเบกเบ”เบ–เบทเบเป€เบฅเบทเบญเบเป‚เบ”เบ -mno-เปเบšเปˆเบ‡เบ›เบฑเบ™.

-mno-เปเบšเปˆเบ‡เบ›เบฑเบ™ เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš binutils 2.16 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒเปเบฅเบฐเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบžเบฝเบ‡เปเบ•เปˆ
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš ABI เบ‚เบญเบ‡เบชเบธเบ”เบ—เป‰เบฒเบ
เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰; เบกเบฑเบ™เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆ ABI เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mno-เปเบšเปˆเบ‡เบ›เบฑเบ™
เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ—เบฑเบ‡เบ™เป‰เบญเบเบเบงเปˆเบฒ เปเบฅเบฐเป„เบงเบเบงเปˆเบฒ.

-mshared เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mplt
-mno-plt
เบชเบปเบกเบกเบธเบ” (เบšเปเปˆเบชเบปเบกเบกเบธเบ”) เบงเปˆเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ PLTs เปเบฅเบฐเบชเปเบฒเป€เบ™เบปเบฒ
เบเบฒเบ™เบเบปเบเบเป‰เบฒเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ -mno-เปเบšเปˆเบ‡เบ›เบฑเบ™ - mabicalls. เบชเปเบฒเบฅเบฑเบš n64 ABI, เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹ -msym32.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰ -mplt เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC เบเบฑเบš --with-mips-plt. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
is -mno-plt เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™.

-mxgot
-mno-xgot
เบเบปเบ (เบšเปเปˆเบเบปเบ) เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ›เบปเบเบเบฐเบ•เบดเบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบปเบ”เป€เบŠเบตเบเบ—เบปเปˆเบงเป‚เบฅเบ.

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฝเบงเป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เบ„เปˆเบฒเบˆเบฒเบ GOT. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™
เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ GOT เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ›เบฐเบกเบฒเบ™ 64k. เบ—เบธเบเบขเปˆเบฒเบ‡
เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบŠเบฑเปˆเบ™:

เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ–เบทเบเบ•เบฑเบ”เปƒเบซเป‰เบžเปเบ”เบต: R_MIPS_GOT16 foobar

เบ–เป‰เบฒเบชเบดเปˆเบ‡เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบš -mxgot. เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบผเบฒเบ
GOTs เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบเบฑเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบชเบฒเบก
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบ”เบถเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบปเปˆเบงเป‚เบฅเบ.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบšเบฒเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡ GOTs เบซเบผเบฒเบ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ—เปˆเบฒเบ™
เบ„เบงเบ™เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆ -mxgot เป€เบกเบทเปˆเบญเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ”เบฝเบงเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบฒเบเบเปˆเบงเบฒ 64k
เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™ GOT. เปœเป‰เบญเบเบซเบผเบฒเบเป€เบฎเบฑเบ”.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เปƒเบ”เป†เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ GCC เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡.

-mgp32
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบเบงเป‰เบฒเบ‡ 32 เบšเบดเบ”.

-mgp64
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบเบงเป‰เบฒเบ‡ 64 เบšเบดเบ”.

-mfp32
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เบเบงเป‰เบฒเบ‡ 32 เบšเบดเบ”.

-mfp64
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เบเบงเป‰เบฒเบ‡ 64 เบšเบดเบ”.

-mfpx
เบขเปˆเบฒเบชเบปเบกเบกเบธเบ”เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ.

-mhard-float
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบˆเบธเบ”เบฅเบญเบ.

-msoft-float
เบขเปˆเบฒเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบšเบšเบˆเบธเบ”เบฅเบญเบ. เบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เป‚เบ”เบโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹.

-mno-float
เป€เบ—เบปเปˆเบฒเบเบฑเบš -msoft-float, เปเบ•เปˆเบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบ‡เบเบทเบ™เบเบฑเบ™เบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบฅเบงเบšเบฅเบงเบก
เบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ”เป†เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เบˆเบธเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™
เบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบเบšเบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ MIPS เป‚เบฅเบซเบฐเป€เบ›เบปเปˆเบฒ, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒเบŠเบธเบ”เบžเบดเป€เบชเบ”เบ‚เบญเบ‡
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ‚เบฒเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบธเบ”เบฅเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ” (เบฅเบงเบกเบ—เบฑเบ‡, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰.
เบˆเบธเบ” "printf" เบฎเบนเบšเปเบšเบš). เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -mno-float เบšเบฑเบ‡เป€เบญเบตเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™, เบกเบฑเบ™เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบ—เบปเบ™เบ—เบธเบเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบผเบทเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เป€เบงเบฅเบฒเปเบฅเปˆเบ™.

-msingle-float
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mdouble-float
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ. เบ™เบตเป‰
เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-modd-spreg
-mno-odd-spreg
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเปเบšเบšเบ”เบฝเบงเบ•เบปเบงเป€เบฅเบเบ„เบตเบเบชเปเบฒเบฅเบฑเบš o32
ABI. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบฎเบนเป‰เบงเปˆเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.
เป€เบกเบทเปˆเบญเปƒเบŠเป‰ o32 FPXX ABI, -mno-odd-spreg เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mabs=2008
-mabs=เบกเปเบฅเบฐเบ”เบปเบ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เบ›เบดเปˆเบ™โ€‹เบ›เบปเบงโ€‹เบ‚เบญเบ‡โ€‹เบšเปเปˆโ€‹เบซเบกเบฒเบโ€‹เป€เบฅเบโ€‹เบžเบดโ€‹เป€เบชเบ” (NaNโ€‹) IEEE 754โ€‹
เบ‚เปเป‰เบกเบนเบ™เบˆเบธเบ”เบฅเบญเบเบ”เป‰เบงเบ "abs.fmt" เปเบฅเบฐ "เบšเปเปˆ.fmt" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบผเบทเป€เบงเบฅเบฒเปƒเบ” -mabs=เบกเปเบฅเบฐเบ”เบปเบ เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เบ›เบดเปˆเบ™โ€‹เบ›เบปเบงโ€‹เบกเปโ€‹เบฅเบฐโ€‹เบ”เบปเบโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ„เบฑเบ”โ€‹เป€เบฅเบทเบญเบโ€‹. เปƒเบ™โ€‹เบ™เบตเป‰
เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ—เบตเปˆโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เปเบฅเบฐโ€‹เบซเบผเบตเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹
เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ NaN. เบฅเปเบฒเบ”เบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเบฒเบงเบเบงเปˆเบฒ
เบ—เบตเปˆ manipulate เบญเบฒเบเบฒเบ™เบ‚เบญเบ‡ datum เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปเบ—เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ
เป„เบ”เป‰ -ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹.

เป„เบ”เป‰ -mabs=2008 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบทเบญเบเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบง IEEE 754-2008. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ™เบตเป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบเป€เบฅเบเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เบเปเบฅเบฐเบ™เบต, เบฅเบงเบกเบ—เบฑเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบšเปˆเบญเบ™เบ—เบตเปˆเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™ NaN. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเบฐเป€เบซเบกเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡.

-mnan=2008
-mnan=เบกเปเบฅเบฐเบ”เบปเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบเบžเบดเป€เบชเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเป€เบฅเบ (NaN) IEEE 754
เบ‚เปเป‰เบกเบนเบ™เบˆเบธเบ”เบฅเบญเบ.

เป„เบ”เป‰ -mnan=เบกเปเบฅเบฐเบ”เบปเบ เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบฅเบทเบญเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบšเบšเป€เบเบปเปˆเบฒ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰ NaNs เบ‡เบฝเบš (qNaNs)
เปเบกเปˆเบ™เปเบฒเบเป€เบ–เบดเบ‡เป‚เบ”เบเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ™เบชเบณเบ„เบฑเบ™เบญเบฑเบ™เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™ 0, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
เบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™ NaNs (sNaNs) เปเบกเปˆเบ™เปเบฒเบเป€เบ–เบดเบ‡เป‚เบ”เบเบชเปˆเบงเบ™เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเปเบฒเบเบ•เปเปˆเบ—เป‰เบฒเบเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™.
เบชเบฐเปœเบฒเบก 1.

เป„เบ”เป‰ -mnan=2008 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบทเบญเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” IEEE 754-2008. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰ qNaNs เปเบกเปˆเบ™
เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบ bit เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเบซเบ™เป‰เบฒเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™ 1, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ sNaNs
เปเบกเปˆเบ™เปเบฒเบเป€เบ–เบดเบ‡เป‚เบ”เบเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ™เบชเบณเบ„เบฑเบ™เบญเบฑเบ™เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ„เบท 0.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mnan=เบกเปเบฅเบฐเบ”เบปเบ เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ GCC เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบ --with-nan=2008.

-mllsc
-mno-llsc
เปƒเบŠเป‰ (เบซเป‰เบฒเบกเปƒเบŠเป‰) ll, sc, เปเบฅเบฐ เบŠเบดเบ‡ เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปƒเบ™เบ•เบปเบง
เบซเบ™เป‰เบฒเบ—เบตเปˆ. เป€เบกเบทเปˆเบญเบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเบ–เบทเบเบฅเบฐเบšเบธ, GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เป‰เบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบงเบเป€เบ‚เบปเบฒ.

-mllsc เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime เบชเบฒเบกเบฒเบ” emulate เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐ -mno-llsc
เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš ISAs เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC เบเบฑเบš --with-llsc เปเบฅเบฐ -- without-llsc เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.
--with-llsc เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ; เป€เบšเบดเปˆเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡
เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

-mdsp
-mno-dsp
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบเบฒเบ™เปเบเป‰เป„เบ‚ 1 เบ‚เบญเบ‡ MIPS DSP ASE.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” macro preprocessor "__mips_dsp". เบกเบฑเบ™เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”
"__mips_dsp_rev" เป€เบ›เบฑเบ™ 1.

-MDSPR2
-mno-dspr2
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบเบฒเบ™เปเบเป‰เป„เบ‚ 2 เบ‚เบญเบ‡ MIPS DSP ASE.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” macro preprocessor "__mips_dsp" เปเบฅเบฐ "__mips_dspr2". เบกเบฑเบ™
เบเบฑเบ‡เบเปเบฒเบ™เบปเบ” "__mips_dsp_rev" เป€เบ›เบฑเบ™ 2.

-msmartmips
-mno-smartmips
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) MIPS SmartMIPS ASE.

- เบ„เบนเปˆเบ”เบฝเบง
-mno-paired-single
เปƒเบŠเป‰ (เบซเป‰เบฒเบกเปƒเบŠเป‰) เบ„เบนเปˆเบ„เบนเปˆ-เบ„เบณเปเบ™เบฐเบ™เบณเบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ”เบฝเบง.
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบˆเบธเบ”โ€‹เบฅเบญเบโ€‹เบฎเบฒเบ”โ€‹เปเบงโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹.

-mdmx
-mno-mdmx
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบชเบทเปˆเบ”เบดเบˆเบดเบ•เบญเบฅ MIPS. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” 64-bit เปเบฅเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
enabled

-mips3d
-mno-mips3d
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) MIPS-3D ASE. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -mips3d implies - เบ„เบนเปˆเบ”เบฝเบง.

-mmmicromips
-mno-micromips
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ” microMIPS.

เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” MicroMIPS เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™
เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "micromips" เปเบฅเบฐ "nomicromips".

-mmt
-mno-mt
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) MT Multithreading เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-mmcu
-mno-mcu
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MIPS MCU ASE.

- เป€เบกเบงเบฒ
-mno-eva
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MIPS Enhanced Virtual Addressing.

-mvirt
-mno-virt
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ MIPS Virtualization Application.

-mxpa
-mno-xpa
เปƒเบŠเป‰ (เบขเปˆเบฒเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MIPS eXtended Physical Address (XPA).

-mlong64
เบšเบฑเบ‡เบ„เบฑเบšเบ›เบฐเป€เบžเบ” "เบเบฒเบง" เปƒเบซเป‰เบเบงเป‰เบฒเบ‡ 64 เบšเบดเบ”. เป€เบšเบดเปˆเบ‡ -mlong32 เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ‚เบญเบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเบงเบŠเบตเป‰.

-mlong32
เบšเบฑเบ‡เบ„เบฑเบš "เบเบฒเบง", "int", เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰เปƒเบซเป‰เบเบงเป‰เบฒเบ‡ 32 เบšเบดเบ”.

เบ‚เบฐเบซเบ™เบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ "int", "long"s เปเบฅเบฐ pointers เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš ABI. เบ—เบฑเบ‡เปเบปเบ”
ABIs เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเปƒเบŠเป‰ 32-bit "int"s. n64 ABI เปƒเบŠเป‰ 64-bit "เบเบฒเบง", เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš 64-bit
EABI; เบ„เบปเบ™เบญเบทเปˆเบ™เปƒเบŠเป‰ 32-bit "เบเบฒเบง"s. เบ•เบปเบงเบŠเบตเป‰เปเบกเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš "เบเบฒเบง", เบซเบผเบท
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹, เบญเบฑเบ™โ€‹เปƒเบ”โ€‹เบเปโ€‹เบ•เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบ™เป‰เบญเบโ€‹เบเบงเปˆเบฒโ€‹.

-msym32
-mno-sym32
เบชเบปเบกเบกเบธเบ” (เบšเปเปˆเบชเบปเบกเบกเบธเบ”) เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบฑเบ‡เปเบปเบ”เบกเบตเบ„เปˆเบฒ 32-เบšเบดเบ”, เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฅเบทเบญเบ.
ABI. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš -mabi=64 เปเบฅเบฐ -mno-abicalls เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒ เปเบฅเบฐเป„เบงเบเบงเปˆเบฒเบ•เปเปˆเบเบฑเบšเบ—เบตเปˆเบขเบนเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบ.

-G num
เป€เบญเบปเบฒเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบžเบฒเบเบ™เบญเบเบ—เบตเปˆเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบเบงเปˆเบฒ num เป„เบšเบ•เปŒ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ GCC เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™; เป€เบšเบดเปˆเบ‡
-mgpopt เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -G เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

-mlocal-sdata
-mno-local-sdata
เบ‚เบฐเบซเบเบฒเบ (เบšเปเปˆเบ‚เบฐเบซเบเบฒเบ) เป„เบ”เป‰ -G เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เป€เบŠเบฑเปˆเบ™เบ•เบปเบงเปเบ›เบ„เบปเบ‡เบ—เบตเปˆ
เปƒเบ™ C. -mlocal-sdata เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฑเบ‡เปเบปเบ”.

เบ–เป‰เบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบปเปˆเบกเบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป€เบเบตเบ™เป„เบ›, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐ
เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเบฑเบš -mno-local-sdataเบ—เบตเปˆเบขเบนเปˆ เบ—เปˆเบฒเบ™
เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบกเบต -mno-local-sdata, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”
เบญเบญเบเบˆเบฒเบเบซเป‰เบญเบ‡เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ•เบปเป‰เบ™เบ•เป.

-mextern-sdata
-mno-extern-sdata
เบชเบปเบกเบกเบธเบ” (เบšเปเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ) เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบžเบฒเบเบ™เบญเบเบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ -G เบ‚เบตเบ” เบˆเบณ เบเบฑเบ”. -mextern-sdata เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป‚เบกเบ”เบนเบ™ Mod เบเบฑเบš -mextern-sdata -G num -mgpopt, เปเบฅเบฐ Mod เบญเป‰เบฒเบ‡เบญเบตเบ‡ เบ
เบ•เบปเบงเปเบ› เบงเบฒ เบ™เบฑเป‰เบ™เบšเปเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ num bytes, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ เบงเบฒ เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆ
เปƒเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹. เบ–เป‰เบฒ เบงเบฒ เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเป‚เบกเบ”เบนเบ™เบญเบทเปˆเบ™, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบก
เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบกเบตเบชเบนเบ‡เบžเบฝเบ‡เบžเป -G เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบซเบผเบทโ€‹เบ„เบฑเบ”โ€‹เบ•เบดเบ”โ€‹เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ "เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹" เบเบฑเบšโ€‹ เบงเบฒ's
เบ„เปเบฒเบ™เบดเบเบฒเบก. เบ–เป‰เบฒ เบงเบฒ เปเบกเปˆเบ™เบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบžเบฝเบ‡เบžเป -G
เบ•เบฑเป‰เบ‡.

เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบธเบเป‚เบกเบ”เบนเบ™
เบเบฑเบšเบ”เบฝเบงเบเบฑเบ™ -G เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบต
เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹ -G เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เปเบฅเบฐโ€‹เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -mno-extern-sdata เปƒเบซเป‰เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบžเบฒเบเบ™เบญเบ.

-mgpopt
-mno-gpopt
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) GP-relative accesses เบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบฎเบนเป‰เบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบžเบฒเบ; เป€เบšเบดเปˆเบ‡ -G, -mlocal-sdata เปเบฅเบฐ -mextern-sdata. -mgpopt เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

-mno-gpopt เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $gp เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡
"_gp". เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบšเบนเบ”
monitor, เป‚เบ›เบฃเปเบเบฃเบกเบ—เบตเปˆเป€เบญเบตเป‰เบ™ boot monitor routines เบœเปˆเบฒเบ™เบ„เปˆเบฒเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™ $gp. (เปƒเบ™
เบชเบฐโ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹, เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบเบงเบ”โ€‹เบเบฒ boot เบ•เบปเบงโ€‹เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹เป€เบญเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เปเบฅเป‰เบงโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบเบฑเบšโ€‹ 0.)

-mno-gpopt implies -mno-local-sdata เปเบฅเบฐ -mno-extern-sdata.

-membedded-data
-mno-embedded-data
เบˆเบฑเบ”เบชเบฑเบ™เบ•เบปเบงเปเบ›เปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบเปˆเบญเบ™เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เปเปˆเป„เบ›เปƒเบ™เบžเบฒเบ
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบ‚เปเป‰เบกเบนเบ™. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบŠเป‰เบฒเบฅเบปเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ
เบเปˆเบงเบฒเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™ RAM เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐ
เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบฅเบฐเบšเบปเบšเบเบฑเบ‡เบ•เบปเบง.

-muninit-const-in-rodata
-mno-uninit-const-in-rodata
เป€เบญเบปเบฒเบ•เบปเบงเปเบ› "const" เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบชเบปเบกโ€‹เบ—เบปเบšโ€‹เบเบฑเบšโ€‹ -membedded-data.

-mcode-readable=เบ•เบฑเป‰เบ‡
เบฅเบฐเบšเบธเบงเปˆเบฒ GCC เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเปˆเบฒเบ™เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เบกเบต
เบชเบฒเบกโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹:

-mcode-readable=เปเบกเปˆเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบญเบฒเบ”เบˆเบฐเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบขเปˆเบฒเบ‡เป€เบชเบฅเบต. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mcode-readable=pcrel
MIPS16 PC-relative เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰, เปเบ•เปˆเบญเบทเปˆเบ™เป†
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเปเปˆเบ„เบงเบ™เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต 4KSc เปเบฅเบฐ 4KSd
เป€เบกเบทเปˆเบญเบฅเบฐเบซเบฑเบ” TLBs เบกเบตเบšเบดเบ” Read Inhibit. เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบเปˆเบฝเบงเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต
เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ / เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ„เบนเปˆ SRAM เปเบฅเบฐโ€‹เบงเปˆเบฒโ€‹,
เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบš M4K, เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เป‚เบซเบผเบ” PC-relative เป„เบ›เบซเบฒ RAM เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-mcode-readable=เบšเปเปˆ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™
เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ„เบนเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ / เบ‚เปเป‰เบกเบนเบ™ SRAM เปเบ•เปˆ
เบ—เบตเปˆ (เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš M4K) เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เป‚เบซเบผเบ” PC-relative เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป„เบ›เบซเบฒ
RAM เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-msplit-เบ—เบตเปˆเบขเบนเปˆ
-mno-split-addresses
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบปเบเบเป‰เบฒเบ "%hi()" เปเบฅเบฐ "%lo()". เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป„เบ”เป‰เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเป‚เบ”เบ -mexplicit-relocs เปเบ•เปˆเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ–เบญเบเบซเบฅเบฑเบ‡
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

-mexplicit-relocs
-mno-explicit-relocs
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเป‰เบฒเบเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบกเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ—เบตเปˆเบขเบนเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบ.
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เป€เบฅเบทเบญเบเป‚เบ”เบ -mno-explicit-relocs, เปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ macro assembler เปเบ—เบ™.

-mexplicit-relocs เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบเบญเบšเบ™เบฑเป‰เบ™
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบปเบเบเป‰เบฒเบ.

-mcheck-เบชเบนเบ™-เบžเบฐเปเบ™เบ
-mno-check-zero-division
เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ (เบขเปˆเบฒเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ) เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบซเบฒเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ”เป‰เบงเบเบชเบนเบ™.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mcheck-เบชเบนเบ™-เบžเบฐเปเบ™เบ.

-mdivide-เบเบฑเบšเบ”เบฑเบ
-mdivide-breaks
เบฅเบฐเบšเบปเบš MIPS เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป‚เบ”เบเบชเบนเบ™เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เบˆเบฑเปˆเบ™เบˆเบฑเบšเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบซเบผเบท a
เบ—เปเบฒโ€‹เบฅเบฒเบโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ, เปเบ•เปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™ MIPS เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
II เปเบฅเบฐเบ•เปเปˆเบกเบฒ. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบšเบฒเบ‡เบฅเบธเป‰เบ™เบ‚เบญเบ‡ Linux kernel เบกเบต bug เบ—เบตเปˆเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบ”เบฑเบ
เบˆเบฒเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก ("SIGFPE"). เปƒเบŠเป‰ -mdivide-เบเบฑเบšเบ”เบฑเบ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบงเบเป€เบ‚เบปเบฒเปเบฅเบฐ -mdivide-breaks เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰
เบžเบฑเบเบœเปˆเบญเบ™.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง -mdivide-เบเบฑเบšเบ”เบฑเบ, เปเบ•เปˆเบ™เบตเป‰เบชเบฒเบกเบฒเบ” overridden เปƒเบ™เป€เบงเบฅเบฒ configure
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ --with-divide=เปเบ•เบ. เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เปเบšเปˆเบ‡เป‚เบ”เบเบชเบนเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™
-mno-check-zero-division.

-mmmcpy
-mno-memcpy
เบšเบฑเบ‡เบ„เบฑเบš (เบšเปเปˆเบšเบฑเบ‡เบ„เบฑเบš) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "memcpy" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเป‰เบฒเบเบ•เบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ trivial. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-mno-memcpy, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบขเบนเปˆเปƒเบ™เปเบ–เบงเบ‚เบญเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ„เบปเบ‡เบ—เบตเปˆเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”.

-mlong-เป‚เบ—
-mno-long-calls
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ (เบซเป‰เบฒเบกเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "jal". เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ "jal"
เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เปเบ•เปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบœเบนเป‰เป‚เบ—เปเบฅเบฐเบœเบนเป‰เป‚เบ—เบขเบนเปˆเปƒเบ™ 256 megabyte เบ”เบฝเบงเบเบฑเบ™
เบชเปˆเบงเบ™เปเบšเปˆเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบฅเบฐเบซเบฑเบ” abicalls. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-long-calls.

- เบšเป‰เบฒ
-mno-mad
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "mad", "madu" เปเบฅเบฐ "mul", เบ•เบฒเบกเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ
R4650 ISA.

- mimadd
-mno-imadd
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเปเบฒเบ™เบงเบ™ "madd" เปเบฅเบฐ "msub". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
- mimadd เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ "madd" เปเบฅเบฐ "msub" เบเบปเบเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบš 74k
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เบงเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบŠเป‰เบฒเบฅเบปเบ‡.

-mfused-madd
-mno-fused-madd
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰ multiply-accumulate, เป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒ
เบกเบตเบขเบนเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mfused-madd.

เปƒเบ™ CPU R8000 เป€เบกเบทเปˆเบญเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบนเบ™เบชเบฐเบชเบปเบกเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡
เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบ•เบฒเบกเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบญเบฑเบ™เป€เบ›เบฑเบ™เบ™เบดเบ” เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš FCSR Flush
เบชเบนเบ™เบšเบดเบ”. เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เบšเบฒเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™. เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เป†
เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เปเบกเปˆเบ™โ€‹เบ•เบปเบงโ€‹เป€เบฅเบโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบ—เบฝเบšโ€‹เป€เบ—เบปเปˆเบฒโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เบ„เบนเบ™โ€‹เปเบเบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบซเบฒเบโ€‹,
เป€เบžเบตเปˆเบก, เบฅเบปเบš เปเบฅเบฐเบ›เบฐเบ•เบดเป€เบชเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-nocpp
เบšเบญเบเบœเบนเป‰เบ›เบฐเบเบญเบš MIPS เบšเปเปˆเปƒเบซเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ preprocessor เบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™เป„เบฅเบเบฐเป„เบŸเบฅเปŒ assembler เบœเบนเป‰เปƒเบŠเป‰ (เบกเบต a
.s suffix) เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบเบญเบšเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

-mfix-24k
-mno-fix-24k
เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบกเบฒเบ™ 24K E48 (เบ‚เปเป‰เบกเบนเบ™เบชเบนเบ™เป€เบชเบเปƒเบ™เบฎเป‰เบฒเบ™เบ„เป‰เบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบ•เบตเบกเป€เบ‡เบดเบ™). เบงเบดเบ—เบตเปเบเป‰เป„เบ‚
เบ–เบทเบเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบœเบนเป‰เบ›เบฐเบเบญเบšเบซเบผเบฒเบเบเบงเปˆเบฒเป‚เบ”เบ GCC.

-mfix-r4000
-mno-fix-r4000
เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” CPU R4000 เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™:

- เบ„เปเบฒเบชเบญเบ‡เบ„เปเบฒเบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบฒเบ”เบˆเบฐเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”
เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฅเบตเปˆเบกเบเบฒเบ™เบซเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก.

- เบ„เปเบฒเบชเบญเบ‡เบ„เปเบฒเบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบฒเบ”เบˆเบฐเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
เบเบฒเบ™เบ„เบนเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบเบณเบฅเบฑเบ‡เบ”เบณเป€เบ™เบตเบ™เบขเบนเปˆ.

- เบเบฒเบ™เบซเบฒเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบญเบฒเบ”เบˆเบฐเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ เบ–เป‰เบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบŠเปˆเบญเบ‡เบŠเบฑเบเบŠเป‰เบฒเบ‚เบญเบ‡ a
เป€เบญเบปเบฒเบชเบฒเบ‚เบฒเบซเบผเบทเบเบฐเป‚เบ”เบ”.

-mfix-r4400
-mno-fix-r4400
เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” CPU R4400 เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™:

- เบ„เปเบฒเบชเบญเบ‡เบ„เปเบฒเบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบฒเบ”เบˆเบฐเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”
เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฅเบตเปˆเบกเบเบฒเบ™เบซเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก.

-mfix-r10000
-mno-fix-r10000
เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” R10000 เบ—เบตเปˆโ€‹เปเบ™เปˆโ€‹เบ™เบญเบ™โ€‹:

- เบฅเบณเบ”เบฑเบš "ll"/"sc" เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบžเบถเบ”เบ•เบดเบเบณเบญเบฐเบ•เบญเบกเปƒเบ™เบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบเปˆเบญเบ™ 3.0. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐ
deadlock เปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ 2.6 เปเบฅเบฐเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบฑเป‰เบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฒเบ‚เบฒ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. -mfix-r10000 เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ - เบกเบตเบ™เบฒ=r10000 เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰; -mno-fix-r10000
เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™.

-mfix-rm7000
-mno-fix-rm7000
เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบกเบฒเบ™ RM7000 "dmult"/"dmultu" errata. เบเบฒเบ™เปเบเป‰เป„เบ‚เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ
เบœเบนเป‰เบ›เบฐเบเบญเบšเบซเบผเบฒเบเบเบงเปˆเบฒเป‚เบ”เบ GCC.

-mfix-vr4120
-mno-fix-vr4120
เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” VR4120 เบšเบฒเบ‡เบขเปˆเบฒเบ‡:

- "dmultu" เบšเปเปˆเบชเบฐเป€เบซเบกเบตเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

- "div" เปเบฅเบฐ "ddiv" เบšเปเปˆเบชเบฐเป€เบซเบกเบตเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ operands
เปเบกเปˆเบ™เบ—เบฒเบ‡เบฅเบปเบš.

เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบžเบฐเปเบ™เบเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบดเป€เบชเบ”เปƒเบ™ libgcc.a. เปƒเบ™
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบžเบฝเบ‡เปเบ•เปˆเป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "mips64vr*-elf" เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” VR4120 เบญเบทเปˆเบ™เป†เบ•เป‰เบญเบ‡เบเบฒเบ™ NOP เบ—เบตเปˆเบˆเบฐเปƒเบชเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบšเบฒเบ‡เบ„เบนเปˆเบ‚เบญเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบœเบนเป‰เบ›เบฐเบเบญเบš, เบšเปเปˆเปเบกเปˆเบ™เป‚เบ”เบ GCC เป€เบญเบ‡.

-mfix-vr4130
เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบกเบฒเบ™ VR4130 "mflo"/"mfhi" errata. เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ”เบโ€‹
assembler เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป‚เบ”เบ GCC, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ GCC เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เปƒเบŠเป‰ "mflo" เปเบฅเบฐ "mfhi" เบ–เป‰เบฒ
VR4130 "macc", "macchi", "dmacc" เปเบฅเบฐ "dmacchi" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เปเบ—เบ™.

-mfix-sb1
-mno-fix-sb1
เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบฑเบ CPU SB-1 เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. (เบ›เบฐเบˆเบธเบšเบฑเบ™เบ—เบธเบ‡เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบ›เบฐเบกเบฒเบ™ SB-1
เบเบฒเบ™เปเบเป‰เป„เบ‚ 2 "F1" เปเบฅเบฐ "F2" เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบˆเบธเบ”เบฅเบญเบ.)

-mr10k-cache-barrier=เบ•เบฑเป‰เบ‡
เบฅเบฐเบšเบธเบงเปˆเบฒ GCC เบ„เบงเบ™เปเบŠเบ cache barriers เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เบ‚เบญเบ‡
เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบเปˆเบฝเบงเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต R10K.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ, R10K เบžเบฐเบเบฒเบเบฒเบกเบ„เบฒเบ”เบ„เบฐเป€เบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบชเบฒเบ‚เบฒเปเบฅเบฐ speculatively เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฒเบเบชเบฒเบ‚เบฒ "เป€เบญเบปเบฒ". เบกเบฑเบ™เบ•เปเปˆเบกเบฒ
เบเบปเบเป€เบฅเบตเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เป‰เบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ„เบฒเบ”เบ„เบฐเป€เบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™ R10K,
เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบญเบปเบฒเบฅเบนเบเบญเบญเบเบเปเปˆเบชเบฒเบกเบฒเบ”เบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡.

เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบฎเป‰เบฒเบ™ kernel เปเบฅเบฐ, เบญเบตเบ‡เบ•เบฒเบกเบฅเบฐเบšเบปเบš, เบเบฒเบ™เป‚เบซเบผเบ” kernel.
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฎเป‰เบฒเบ™เบ„เป‰เบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบญเบฒเบ”เบˆเบฐเป‚เบซเบฅเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ cache
เปเบฅเบฐเปเบฒเบเป€เบชเบฑเป‰เบ™ cache เบงเปˆเบฒเป€เบ›เบทเป‰เบญเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบฎเป‰เบฒเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบˆเบฐเบ–เบทเบเบเบปเบเป€เบฅเบตเบเปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡. เบ–เป‰เบฒ DMA
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบฝเบ™เปƒเบชเปˆเบžเบทเป‰เบ™เบ—เบตเปˆเบ”เบฝเบงเบเบฑเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบเปˆเบญเบ™เบ—เบตเปˆเป€เบชเบฑเป‰เบ™ "เป€เบ›เบทเป‰เบญเบ™" เปเบกเปˆเบ™ flushed, เป„เบ”เป‰
เบ‚เปเป‰เบกเบนเบ™ cache เบ‚เบฝเบ™เบ—เบฑเบšเบ‚เปเป‰เบกเบนเบ™ DMA-ed. เป€เบšเบดเปˆเบ‡เบ„เบนเปˆเบกเบทเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” R10K เบชเปเบฒเบฅเบฑเบšเป€เบ•เบฑเบก
เบฅเบฒเบเบฅเบฐเบญเบฝเบ”, เบฅเบงเบกเบ—เบฑเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบญเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบญเบทเปˆเบ™เป†.

เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบญเบฑเบ™เปœเบถเปˆเบ‡เบ„เบทเบเบฒเบ™เปƒเบชเปˆเบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบเบตเบ”เบ‚เบงเบฒเบ‡ cache เบเปˆเบญเบ™เบ—เบตเปˆเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ™เบฑเป‰เบ™
เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบขเปˆเบฒเบ‡โ€‹เบชเบปเบกโ€‹เป€เบซเบ”โ€‹เบชเบปเบกโ€‹เบœเบปเบ™ เปเบฅเบฐโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ„เบฝเบ‡โ€‹เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบญเบปเบฒโ€‹เบฅเบนเบโ€‹เบญเบญเบ.
-mr10k-cache-barrier=เบ•เบฑเป‰เบ‡ เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ GCC เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰. เบกเบฑเบ™
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ byte เปƒเบ”เป†เปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบšเปเปˆเบกเบตเบ‚เป‰เบฒเบ‡
เบœเบปเบ™เบเบฐเบ—เบปเบš:

1. เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบ„เบญเบšเบ„เบญเบ‡เป‚เบ”เบเบเบญเบš stack เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™;

2. เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบ„เบญเบšเบ„เบญเบ‡เป‚เบ”เบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ stack เบ‚เบฒเป€เบ‚เบปเป‰เบฒ;

3. เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบเบถเบ”เป‚เบ”เบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบงเบฅเบฒเบ„เบปเบ‡เบ—เบตเปˆ.

เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบญเบ‡ kernel เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบกเบตเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบžเบทเป‰เบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ›เบญเบ”เป„เบžเปเบ—เป‰เป†.

เบ–เป‰เบฒเป‚เบ›เบฃเปเบเบฃเบกเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบŠเบฑเปˆเบ™:

void foo (void);

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” "foo" เบ•เป‰เบญเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ "j foo" เปเบฅเบฐ "jal foo" เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.
เบ„เบฒเบ”เบ„เบฐเป€เบ™. GCC เป€เบ„เบปเบฒเบฅเบปเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบฑเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡. เบกเบฑเบ™
เบ„เบฒเบ”เบซเบงเบฑเบ‡เปƒเบซเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ GCC (เป€เบŠเบฑเปˆเบ™: เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบšเบ—เบตเปˆเบ‚เบฝเบ™เบ”เป‰เบงเบเบกเบท) เบˆเบฐเป€เบฎเบฑเบ”เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบกเบตโ€‹เบชเบฒเบกโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹:

-mr10k-cache-barrier=load-store
เปƒเบชเปˆ cache barrier เบเปˆเบญเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบซเบผเบทเบฎเป‰เบฒเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™
เปเบฅเบฐเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเบฐเป€เบญเบปเบฒเบฅเบนเบเบญเบญเบ.

-mr10k-cache-barrier=เบฎเป‰เบฒเบ™
เปƒเบชเปˆ cache barrier เบเปˆเบญเบ™เบฎเป‰เบฒเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เปเบฅเบฐ
เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเบฐเป€เบญเบปเบฒเบฅเบนเบเบญเบญเบ.

-mr10k-cache-barrier=เบšเปเปˆเบกเบต
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เปเบŠเบเบ‚เบญเบ‡เบญเบธเบ›เบฐเบชเบฑเบเปเบ„เบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mflush-func=เบกเปˆเบงเบ™
-mno-flush-func
เบเปเบฒเบ™เบปเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒเป€เบžเบทเปˆเบญ flush เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ I เปเบฅเบฐ D, เบซเบผเบทเบšเปเปˆเปƒเบซเป‰เป‚เบ—เบซเบฒเปƒเบ”เป†
เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ–เป‰เบฒเป€เบญเบตเป‰เบ™เบงเปˆเบฒ, เบŸเบฑเบ‡เบŠเบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ—เบปเปˆเบงเป„เบ›
"_flush_func", เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบŠเปˆเบงเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆ cache เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบ
flushed, เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบŠเปˆเบงเบ‡เบ„เบงเบฒเบกเบˆเปเบฒ, เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™ 3 (เป€เบžเบทเปˆเบญ flush เบ—เบฑเบ‡เบชเบญเบ‡ caches). เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš GCC เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš, เปเบ•เปˆเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบšเปเปˆเบงเปˆเบฒเบˆเบฐ
"_flush_func" เบซเบผเบท "__cpu_flush".

mbranch-cost=num
เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบชเบฒเบ‚เบฒเป€เบ›เบฑเบ™เบ›เบฐเบกเบฒเบ™ num เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "เบ‡เปˆเบฒเบเบ”เบฒเบ". เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆ a
heuristic เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เปƒเบ™เบ—เบปเปˆเบงเบเบฒเบ™เบ›เปˆเบญเบ. เบชเบนเบ™
cost redundantly เป€เบฅเบทเบญเบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ -mtune เบ•เบฑเป‰เบ‡.

- เบชเบฒเบ‚เบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
-mno-เบชเบฒเบ‚เบฒ-เบญเบฒเบ”เบˆเบฐ
เป€เบ›เบตเบ” เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบชเบฒเบ‚เบฒเบ—เบตเปˆเปœเป‰เบฒเบˆเบฐเป€เบ›เบฑเบ™, เป‚เบ”เบเบšเปเปˆเบ„เบณเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ–เป‰เบฒ
เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ. เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš MIPS32 เปเบฅเบฐ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ MIPS64 เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™; เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆ,
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบžเบฒเบฐเบงเปˆเบฒ MIPS32 เปเบฅเบฐ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ MIPS64 เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ.

-mfp-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™
-mno-fp-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™
เบฅเบฐเบšเบธเบงเปˆเบฒเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ FP เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบซเบผเบทเบšเปเปˆ. เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡ FP
เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบงเปˆเบฒเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ FP เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.

เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™ SB-1, เบ–เป‰เบฒเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™ FP เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบ›เปˆเบญเบ 64-bit.
code, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบชเบญเบ‡เบ—เปเปˆ FP. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบ—เปเปˆ FP เบ—เปเปˆเบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mvr4130-เบˆเบฑเบ”เบฎเบฝเบ‡
-mno-vr4130-align
เบ—เปเปˆ VR4130 เปเบกเปˆเบ™เบชเบญเบ‡เบ—เบฒเบ‡ superscalar, เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบญเบญเบเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบฎเปˆเบงเบกเบเบฑเบ™เบ–เป‰เบฒเบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™ 8-byte เบˆเบฑเบ”เบฎเบฝเบ‡. เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, GCC เบชเบญเบ”เบ„เปˆเบญเบ‡
เบ„เบนเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบฑเบ™เบ„เบดเบ”เบงเปˆเบฒเบ„เบงเบ™เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบš VR4130. เบกเบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”
เป„เบงเบเบงเปˆเบฒ, เปเบ•เปˆเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เปƒเบซเบเปˆเบ‚เบถเป‰เบ™. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ
เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš -O3.

-msynci
-mno-sync
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "sync" เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "sync" (เบ–เป‰เบฒเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™) เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบกเบทเปˆเบญ "__builtin___clear_cache" เปเบกเปˆเบ™
เบฅเบงเบšเบฅเบงเบก.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆ -mno-sync, เปเบ•เปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ” overridden เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ
GCC เบเบฑเบš --with-sync.

เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ”เบฝเบง, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบฑเบ™เบ›เบญเบ”เป„เบžเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ "sync".
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™เบซเบผเบฒเบเบฅเบฐเบšเบปเบšเบซเบผเบฒเบเปเบเบ™ (SMP), เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ invalidate
cache เปƒเบ™เบ—เบธเบเปเบเบ™เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”.

-mrelax-pic-เป‚เบ—
-mno-relax-pic-calls
เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ— PIC เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $25 เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡.
เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเบ–เป‰เบฒ
เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเป‚เบ”เบเบเบปเบ‡.

-mrelax-pic-เป‚เบ— เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบเบญเบš เปเบฅเบฐ a
linker เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ ".reloc" เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฒเบ™เบŠเบธเบกเบ™เบธเบกเปเบฅเบฐ -mexplicit-relocs เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบœเบปเบ™เบเบฐเบ—เบปเบš. เบเบฑเบš -mno-explicit-relocs, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ
assembler เปเบฅเบฐ linker เบ”เบฝเบงเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบˆเบฒเบ compiler.

-mmcount-ra-เบ—เบตเปˆเบขเบนเปˆ
-mno-mcount-ra-เบ—เบตเปˆเบขเบนเปˆ
เบ›เปˆเบญเบ (เบšเปเปˆ emit) เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ "_mcount" เปเบเป‰เป„เบ‚เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เป‚เบ—
เบ—เบตเปˆเบขเบนเปˆ. เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ‚เบฐเบซเบเบฒเบเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆ "_mcount" เบ›เบปเบเบเบฐเบ•เบดเบ”เป‰เบงเบเบญเบฑเบ™เปƒเปเปˆ
ra-เบ—เบตเปˆเบขเบนเปˆ เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เป€เบŠเบดเปˆเบ‡เบกเบตเบ›เบฐเป€เบžเบ” "intptr_t *" เปเบฅเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $ 12.
เบˆเบฒเบเบ™เบฑเป‰เบ™ "_mcount" เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบ—เบตเปˆเบขเบนเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบฑเบ‡เบชเบญเบ‡เบญเบฑเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

* เบชเบปเปˆเบ‡เบ„เบทเบ™เบ—เบตเปˆเบขเบนเปˆเปƒเปเปˆเปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $31.

* เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เปƒเบซเบกเปˆโ€‹เปƒเบ™ "*ra-เบ—เบตเปˆเบขเบนเปˆ", เบ–เป‰เบฒ ra-เบ—เบตเปˆเบขเบนเปˆ เปเบกเปˆเบ™ nonnull.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-mcount-ra-เบ—เบตเปˆเบขเบนเปˆ.

MMIX เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš MMIX:

-mlibfuncs
-mno-libfuncs
เบฅเบฐเบšเบธเบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบžเบฒเบเปƒเบ™เบเบณเบฅเบฑเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบก, เบ–เปˆเบฒเบเบ—เบญเบ”เบ„เปˆเบฒเบ—เบฑเบ‡เปเบปเบ”เปƒเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบšเปเปˆเบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”.

- mepsilon
-mno-epsilon
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš "rE"
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ epsilon.

-mabi=mmixware
-mabi=gnu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบŸเบฑเบ‡เบŠเบฑเบ™เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบ—เบตเปˆ (เปƒเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ
function) เบ–เบทเบเป€เบซเบฑเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $0 เบ‚เบถเป‰เบ™เป„เบ›, เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบš GNU ABI เบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบ—เบปเปˆเบงเป‚เบฅเบ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $231 เบ‚เบถเป‰เบ™เป„เบ›.

-mzero-extend
-mno-zero-extend
เป€เบกเบทเปˆเบญโ€‹เบญเปˆเบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบˆเบฒเบโ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เปƒเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบชเบฑเป‰เบ™โ€‹เบโ€‹เปˆโ€‹เบงเบฒ 64 bitsโ€‹, เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ (เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹) zero-
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบชเบฑเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ.

-mknutdiv
-mno-knuthdiv
เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบฅเบทเบญเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบซเบฒเบ™.
เบ”เป‰เบงเบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, -mno-knuthdiv, เบญเบฒเบเบฒเบ™เบ‚เบญเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบญเบฒเบเบฒเบ™เบ‚เบญเบ‡
เป€เบ‡เบดเบ™เบ›เบฑเบ™เบœเบปเบ™. เบ—เบฑเบ‡เบชเบญเบ‡เบงเบดเบ—เบตเปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เบ•เบฒเบกเป€เบฅเบเป€เบฅเบ, เบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เป€เบเบทเบญเบšเบชเบฐเป€เบžเบฒเบฐ
เปƒเบŠเป‰เปเบฅเป‰เบง.

-mtoplevel - เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹
-mno-toplevel-เบชเบฑเบ™เบเบฒเบฅเบฑเบ
เบฅเปˆเบงเบ‡เปœเป‰เบฒ (เบซเป‰เบฒเบกเบฅเปˆเบงเบ‡เปœเป‰เบฒ) เบ : เบเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบปเปˆเบงเป‚เบฅเบเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบšเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบš "PREFIX".

-melf
เบชเป‰เบฒเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบš ELF, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ mmo เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ
เป„เบ”เป‰ เบกเบก เป€เบ„เบทเปˆเบญเบ‡เบˆเบณเบฅเบญเบ‡.

-mbranch-เบ„เบฒเบ”
-mno-branch-predict
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบชเบฒเบ‚เบฒเบ„เบปเบ‡เบ—เบตเปˆ
เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบชเบฒเบ‚เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

-mbase-เบ—เบตเปˆเบขเบนเปˆ
-mno-base-dresses
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ เบ–เบฒเบ™ เบ—เบตเปˆเบขเบนเปˆ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™
เบชเป‰เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” (เบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบœเบนเป‰เบ›เบฐเบเบญเบšเปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ) เบชเปเบฒเบฅเบฑเบš a
เบ„เบปเบ‡เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™เบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป‚เบฅเบ. เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบžเบทเป‰เบ™เบ–เบฒเบ™
เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบขเบนเปˆเบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 0 เบซเบฒ 255 เบˆเบฒเบเบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™. เป„เบ”เป‰
เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบชเบฑเป‰เบ™เปเบฅเบฐเป„เบง, เปเบ•เปˆเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ—เบตเปˆ
เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เปเบกเปˆเบ™เบˆเปเบฒเบเบฑเบ”. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบซเบผเบฒเบ
เบญเบฒเบ”เบˆเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบต -mno-base-dresses.

-msingle-เบญเบญเบ
-mno-single-เบญเบญเบ
เบšเบฑเบ‡เบ„เบฑเบš (เบšเปเปˆเบšเบฑเบ‡เบ„เบฑเบš) เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบˆเบธเบ”เบญเบญเบเบ”เบฝเบงเปƒเบ™เปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™.

MN10300 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Matsushita MN10300:

- เปเบกเบ‡เป„เบกเป‰เบซเบผเบฒเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบนเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต MN10300.
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-mult-bug
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบนเบ™เบชเปเบฒเบฅเบฑเบš MN10300
เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™.

-เปเบกเปˆ33
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AM33.

-mno-am33
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AM33. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
Default

-mam33-2
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AM33/2.0.

-เปเบกเปˆ34
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AM34.

-mtune=cpu-type
เปƒเบŠเป‰เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” CPU เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป€เบงเบฅเบฒเบเปเบฒเบ™เบปเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.
เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เบ›เบฐเป€เบžเบ”เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ›เบฐเป€เบžเบ” CPU เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™
mn10300, am33, เป€เบงเบฅเบฒ 33-2 or am34.

-mreturn-pointer-on-d0
เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เปˆเบฒเบ•เบปเบงเบŠเบตเป‰, เบชเบปเปˆเบ‡เบ„เบทเบ™เบ•เบปเบงเบŠเบตเป‰เบ—เบฑเบ‡ "a0" เปเบฅเบฐ
"d0". เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ•เบปเบงเบŠเบตเป‰เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™ "a0", เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเป‚เบ—เบซเบฒเปเบšเบšเบ™เบฑเป‰เบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเปเบšเบšเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบตเบ”เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™; เปƒเบŠเป‰ -mno-return-pointer-on-d0 เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™.

-mno-crt0
เบขเปˆเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ C run-time.

-mrelax
เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบงเปˆเบฒเบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเบœเปˆเบฒเบ™เป„เบ›
เบซเบเปเป‰เบชเบฒเบ‚เบฒ, เบเบฒเบ™เป‚เบ— เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ„เบงเบฒเบกเบˆเบณเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš
เป€เบกเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบธเบ”เบ—เป‰เบฒเบ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰.

- เบกเบฐเบฅเบต
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบชเป‰เบฒเบ‡ Long เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Word เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™
AM33 เบซเบผเบทเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” macro preprocessor
"__LIW__".

- mnoliw
เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบชเป‰เบฒเบ‡ Long เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Word เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบเปเบฒเบ™เบปเบ” macro preprocessor "__NO_LIW__".

-msetlb
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ SETLB เปเบฅเบฐ Lcc เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™
AM33 เบซเบผเบทเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” macro preprocessor
"__SETLB__".

- mnosetlb
เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบชเป‰เบฒเบ‡ SETLB or Lcc เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”
เบกเบฐเบซเบฒเบžเบฒเบเบเปˆเบญเบ™เป‚เบ›เบฃเป€เบŠเบชเป€เบŠเบต "__NO_SETLB__".

Moxie เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-เป€เบกเบš
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” big-endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ moxie-*-* เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

-mel
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” little-endian.

-mmul.x
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ mul.x เปเบฅเบฐ umul.x. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ moxiebox-*-*
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

-mno-crt0
เบขเปˆเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ C run-time.

MSP430 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš MSP430:

-masm-hex
เบšเบฑเบ‡เบ„เบฑเบšเบœเบปเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ hex เบชเบฐเป€เปเบต. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเป€เบŠเบฑเบ™
เป€เบฅเบเบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบก, เปเบ•เปˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบš testsuite เปเบฅเบฐ/เบซเบผเบท เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบ‡เบฒเบก.

-mmcu=
เป€เบฅเบทเบญเบ MCU เป€เบžเบทเปˆเบญเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ C preprocessor เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ
เบŠเบทเปˆ MCU, เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเบžเบดเบกเปƒเบซเบเปˆ เปเบฅเบฐเบเปˆเบญเบ™ เปเบฅเบฐเบซเบผเบฑเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ”เป‰เบงเบ __. เบญเบฑเบ™เบ™เบตเป‰
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบ msp430.เบŠเบก เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบชเปˆเบงเบ™เบซเบปเบงเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบฐเป€เบžเบฒเบฐ MCU
เบเบทเปˆเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฑเบ‡เบเปเบฒเบ™เบปเบ” ISA เป€เบžเบทเปˆเบญเปƒเบŠเป‰. เบ–เป‰เบฒเบŠเบทเปˆ MCU เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ 430 ISA เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบทเบเป€เบฅเบทเบญเบ, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ 430X ISA เบ–เบทเบเป€เบฅเบทเบญเบ. เบ
เบŠเบทเปˆ MCU เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡ msp430 เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบ 430 ISA. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™
generic msp430x เบŠเบทเปˆ MCU เป€เบฅเบทเบญเบ 430X ISA.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, MCU-specific linker script เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ linker. เป„เบ”เป‰
เบŠเบทเปˆ script เปเบกเปˆเบ™เบŠเบทเปˆเบ‚เบญเบ‡ MCU เบเบฑเบš .ld เบ•เปเปˆเบ—เป‰เบฒเบ. เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹ -mmcu=xxx on
เป„เบ”เป‰ gcc เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบ C preprocessor "__XXX__" เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒ script เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ xxx.ld.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเบปเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹.

-mcpu=
เบฅเบฐเบšเบธ ISA เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰. เบ„เปˆเบฒเบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเปเบกเปˆเบ™ msp430, msp430x เปเบฅเบฐ msp430xv2. เบ™เบตเป‰
เบ•เบปเบงเป€เบฅเบทเบญเบเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เป„เบ”เป‰ -mmcu= เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบ ISA.

- เบŠเบดเบก
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime simulator เปเบฅเบฐ linker script. เบฅเบปเบšเบฅเป‰เบฒเบ‡เบชเบฐเบ„เบฃเบดเบšเปƒเบ”เป†เบเปเบ•เบฒเบก
เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ„เบฑเบ”โ€‹เป€เบฅเบทเบญเบโ€‹เป‚เบ”เบโ€‹ -mmcu= เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

- เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹
เปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ (20-bit pointers, 32-bit "size_t").

-msall
เปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ (16-bit pointers, 16-bit "size_t").

-mrelax
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบšเบœเบนเป‰เบ›เบฐเบเบญเบšเปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบˆเบปเบ™เบเปˆเบงเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบธเบ”เบ—เป‰เบฒเบ.

mhwmult=
เบญเบฐเบ—เบดเบšเบฒเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบ„เบนเบ™เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเป‚เบ”เบเป€เบ›เบปเป‰เบฒเปเบฒเบ. เบ„เปˆเบฒเบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเปเบกเปˆเบ™
none เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบฎเบฒเบ”โ€‹เปเบงโ€‹เบ„เบนเบ™โ€‹, 16bit เบชเปเบฒเบฅเบฑเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš 16-bit-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ multiply
เป‚เบ”เบ MCUs เบ•เบปเป‰เบ™. 32bit เบชเปเบฒเบฅเบฑเบš 16/32-bit multiply เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ MCUs เบ•เปเปˆเบกเบฒเปเบฅเบฐ เบŠเบธเบ” f5
เบชเปเบฒเบฅเบฑเบš 16/32-bit multiply เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ F5-series MCUs. เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เป€เบŠเบฑเปˆเบ™เบเบฑเบ™
เบกเบญเบšเปƒเบซเป‰. เบญเบฑเบ™เบ™เบตเป‰เบšเบญเบ GCC เปƒเบซเป‰เบซเบฑเบเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบฎเบฒเบ”เปเบงเบ„เบนเบ™เป‚เบ”เบเบญเบตเบ‡เบ•เบฒเบกเบŠเบทเปˆ MCU
เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ -mmcu เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ–เป‰เบฒเบšเปเปˆเบกเบต -mmcu เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹ 32bit เบฎเบฒเบ”เปเบง
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบนเบ™เปเบกเปˆเบ™เบชเบปเบกเบกเบธเบ”. เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบเบฒเบ™เบ—เบฐเบงเบตเบ„เบนเบ™เบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบฒเบ™เป‚เบ—เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ›เบปเบเบเบฐเบ•เบด. เบ™เบตเป‰เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”
เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบขเบนเปˆ -O3 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒเบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบกเบฎเบฒเบ”เปเบง
เบ•เบปเบงเบ„เบนเบ™เบ–เบทเบเป€เบญเบตเป‰เบ™เปƒเบ™เปเบ–เบง. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒ, เปเบ•เปˆเป„เบงเบ‚เบถเป‰เบ™.

เบฎเบฒเบ”เปเบง multiply routines เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเปเบฅเปˆเบ™เปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบน
เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒเบชเปเบฒเป€เบฅเบฑเบ”. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบ›เบญเบ”เป„เบžเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™
เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ›เบปเบเบเบฐเบ•เบด.

- minrt
เป€เบ›เบตเบ”เปƒเบŠเป‰เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ - เบšเปเปˆเบกเบต static initializers เบซเบผเบท
เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡. เบญเบฑเบ™เบ™เบตเป‰เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเบณเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบˆเบณเบเบฑเบ”เบ„เบงเบฒเบกเบˆเบณ. compiler เบ›เบฐโ€‹เบเบญเบšโ€‹เบกเบตโ€‹
เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹เบžเบดโ€‹เป€เบชเบ”โ€‹เปƒเบ™โ€‹เบšเบฒเบ‡โ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ—เบตเปˆโ€‹เบšเบญเบโ€‹เบ•เบปเบงโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เปเบฅเบฐ runtime เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบซเบฑเบ” fragments
เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™.

NDS32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” NDS32:

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบš big-endian.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบš little-endian.

-mreduced-regs
เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบซเบผเบธเบ”เบฅเบปเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

-mful-regs
เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบŠเบธเบ”เป€เบ•เบฑเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

-mcmov
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

-mno-cmov
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

-mperf-ext
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

-mno-perf-ext
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

-mv3push
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ v3 push25/pop25.

-mno-v3push
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ v3 push25/pop25.

-m16-เบšเบดเบ”
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 16-bit.

-mno-16-bit
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 16-bit.

-misr-vector-size=num
เบฅเบฐเบšเบธเบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ vector interrupt, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™ 4 เบซเบผเบท 16.

-mcache-block-size=num
เบฅเบฐเบšเบธเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ cache block, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ 2 เบฅเบฐเบซเบงเปˆเบฒเบ‡ 4 เปเบฅเบฐ 512.

- เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mcmodel=code-model
เบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡

เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ” เปเบฅเบฐเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ 512KB.
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบขเบนเปˆเบžเบฒเบเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ 16MB.

เบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบขเบนเปˆเบžเบฒเบเปƒเบ™ 512KB เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบžเบฒเบเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ 4GB. เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ„เบงเบ™เบˆเบฐเบเบฑเบ‡เบขเบนเปˆเปƒเบ™ 16MB
เบ—เบตเปˆเบขเบนเปˆ เบ—เบตเปˆเบขเบนเปˆ.

เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ”เบชเบฒเบกเบฒเบ”เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ 4GB.

-mctor-dtor
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ•เบปเบงเบชเป‰เบฒเบ‡/เบ•เบปเบงเบ—เบณเบฅเบฒเบ.

-mrelax
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบœเปˆเบญเบ™เบ„เบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

Nios II เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Altera Nios II.

-G num
เบงเบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐเบชเบฐเบ–เบดเบ”เปœเป‰เบญเบเบเบงเปˆเบฒ เบซเบผเบทเป€เบ—เบปเปˆเบฒเบเบฑเบš num bytes เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบท
เบžเบฒเบเบชเปˆเบงเบ™ BSS เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบเบฐเบ•เบดเบซเบผเบทเบžเบฒเบเบชเปˆเบงเบ™ BSS. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ num is
8.

-mgpopt=เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
-mgpopt
-mno-gpopt
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบตเปˆเบ™เป‰เบญเบ‡เบ‚เบญเบ‡ GP. เบ•เปเปˆเป„เบ›เบ™เบตเป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เบŠเบทเปˆเปเบกเปˆเบ™
เบฎเบฑเบšเบฎเบนเป‰:

none
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ GP-relative.

เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™
เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ GP-relative เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบžเบฒเบเบ™เบญเบเบซเบผเบท
เบญเปˆเบญเบ™เป€เบžเบ. เบเบฑเบ‡เปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆ GP-relative เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™
เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป‚เบ”เบเบœเปˆเบฒเบ™เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "เบžเบฒเบเบชเปˆเบงเบ™".

เบ—เบปเปˆเบงเป‚เบฅเบ
เป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เปเบ•เปˆเบเบฑเบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ GP-relative เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆ
เบžเบฒเบเบ™เบญเบเบซเบผเบทเบญเปˆเบญเบ™เปเบญ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹, เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™โ€‹เบงเปˆเบฒโ€‹เบ—เบธเบโ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ‚เบญเบ‡โ€‹
เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ (เบฅเบงเบกเบ—เบฑเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”) เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™ -G เบ•เบฑเป‰เบ‡.

เบ‚เปเป‰เบกเบนเบ™
เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ GP-relative เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบชเปˆเบงเบ™ BSS เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบซเบกเบฒเบฐเปƒเบ™ 64K เบ‚เบญเบ‡
เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบฅเบฐเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเป€เบžเบทเปˆเบญเบˆเบฑเบ”เบชเบฑเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบฒเบเปƒเบ™
เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบ—เบปเปˆเบงเป‚เบฅเบ.

เบ—เบฑเบ‡เบซเบกเบปเบ” เบชเป‰เบฒเบ‡เบ—เบตเปˆเบขเบนเปˆ GP-relative เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบ‚เปเป‰เบกเบนเบ™. เบ–เป‰เบฒ
เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบชเปˆเบงเบ™ BSS เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡
เบžเปเบ”เบตเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ 64K เปเบฅเบฐเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเป€เบžเบทเปˆเบญเบˆเบฑเบ”เบชเบฑเบ™
เบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบ—เบปเปˆเบงเป‚เบฅเบ.

-mgpopt เป€เบ—เบปเปˆเบฒเบเบฑเบš -mgpopt=เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เปเบฅเบฐ -mno-gpopt เป€เบ—เบปเปˆเบฒเบเบฑเบš -mgpopt=เบšเปเปˆเบกเบต.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mgpopt เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบงเบฅเบฒ -fpic or -fPIC เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เปเบฒโ€‹เปเบซเบ™เปˆเบ‡ -
เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ Nios II ABI เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GP-relative เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™.

เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ” -mno-gpopt เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบต
เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบฅเบงเบกเบ—เบฑเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™ GOT เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ™เบตเป‰, เป„เบ”เป‰
16-bit offset เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ GP-relative เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”.

-mel
-เป€เบกเบš
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” little-endian (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™) เบซเบผเบท big-endian (เบ—เบปเบ”เบฅเบญเบ‡) เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

-mbypass-cache
-mno-bypass-cache
เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ” เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบฑเบ‡เปเบปเบ”เป€เบžเบทเปˆเบญเบ‚เป‰เบฒเบกเปเบ„เบ”เบชเบฐเป€เปเบตเป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเปเบ› I/O เบ‚เบญเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เป€เบžเบทเปˆเบญ bypass cache.

-mno-cache-volatile
-mcache-volatile
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เบ‚เป‰เบฒเบกเปเบ„เบ”เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเปเบ› I/O เบ‚เบญเบ‡เบเบฒเบ™เป‚เบซเบผเบ” เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เป€เบžเบทเปˆเบญ bypass cache.

-mno-fast-sw-div
-mfast-sw-div
เบขเปˆเบฒเปƒเบŠเป‰เบเบฒเบ™เปเบšเปˆเบ‡เป„เบงเบ•เบฒเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบเบ™เป‰เบญเบเป†. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป„เบง
เปเบšเปˆเบ‡เบขเบนเปˆ -O3 เปเบฅเบฐเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

-mno-hw-mul
-mhw-mul
-mno-hw-mulx
-mhw-mulx
-mno-hw-div
-mhw-div
เป€เบ›เบตเบ”เปƒเบŠเป‰เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰ "mul", "mulx" เปเบฅเบฐ "div" เบ„เบญเบšเบ„เบปเบงเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบ
เบชเบฑเบ‡เบฅเบงเบก. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เปˆเบญเบ "mul" เปเบฅเบฐเบšเปเปˆเบ›เปˆเบญเบ "div" เปเบฅเบฐ "mulx".

-mcustom-insn=N
-mno- custom-insn
เปเบ•เปˆเบฅเบฐเบ„เบปเบ™ -mcustom-insn=N เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹ N เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ insnเบ—เบตเปˆเบขเบนเปˆ เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, -mcustom-fadds=253 เบชเป‰เบฒเบ‡ custom
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ 253 เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบˆเบธเบ”โ€‹เบ”เบฝเบงโ€‹เบ„เบงเบฒเบกโ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบžเบตเปˆเบกโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹
เบžเบถเบ”เบ•เบดเบเบณเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”.

เบ„เบธเบ™เบ„เปˆเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ‚เบญเบ‡ insn เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบงเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบญเบทเปˆเบ™โ€‹, floating-pointโ€‹
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฑเบš IEEE 754 semantics เบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐ
เบเบปเบ‡เบเบฑเบšเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ C เบซเบผเบทเบ—เบฝเบšเป€เบ—เบปเปˆเบฒ GCC เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบง.

เบˆเบธเบ”เบฅเบญเบเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง:

fadds, fsubs, fdivs, fmuls
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบฅเบเป€เบฅเบเบ–เบฒเบ™เบชเบญเบ‡.

fnegs
เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™เบฅเบฐเบšเบฝเบš.

fabss
Unary เบ„เปˆเบฒเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡.

fcmpeqs, fcmpges, fcmpgts, fcmples, fcmplts, fcmpnes
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš.

fmins, fmaxs
เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบ‚เบฑเป‰เบ™เบ•เปเปˆเบฒเบชเบธเบ” เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ”. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
-ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

fsqrts
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบฎเบฒเบเบชเบญเบ‡ Unary.

fcoss, fsins, ftans, เป„เบ‚เบกเบฑเบ™, fexps, เป„เบกเป‰เบ„เป‰เบญเบ™เป€เบ—เบปเป‰เบฒ
เบŸเบฑเบ‡เบŠเบฑเบ™ trigonometric เบˆเบธเบ”เบฅเบญเบ เปเบฅเบฐเป€เบฅเบเบเบณเบฅเบฑเบ‡. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -funsafe-math-optimizations เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹.

เบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ:

faddd, fsubd, fdivd, fmuld
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เป€เบฅเบเป€เบฅเบเบ–เบฒเบ™เบชเบญเบ‡.

fnegd
เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™เบฅเบฐเบšเบฝเบš.

fabsd
Unary เบ„เปˆเบฒเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡.

fcmpeqd, fcmpged, fcmpgtd, fcmpled, fcmpltd, fcmpned
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš.

เปƒเบˆ, fmaxd
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ”. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
-ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

fsqrtd
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบฎเบฒเบเบชเบญเบ‡ Unary.

fcosd, fsin, ftand, เป„เบ‚เบกเบฑเบ™, fexpd, flogd
เบŸเบฑเบ‡เบŠเบฑเบ™ trigonometric เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ เปเบฅเบฐ exponential. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -funsafe-math-optimizations เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹.

เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ:

fextsd
เบเบฒเบ™เบ›เปˆเบฝเบ™เบˆเบฒเบเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบงเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

ftruncds
เบเบฒเบ™เปเบ›เบ‡เบˆเบฒเบเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบง.

เปเบเป‰เป„เบ‚, เปเบเป‰เป„เบ‚, fixdi, fixdu
เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบˆเบฒเบโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ›โ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹เบ—เบตเปˆโ€‹เป€เบŠเบฑเบ™โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹, เบเบฑเบšโ€‹
เบ•เบฑเบ”เป„เบ›เบซเบฒเบชเบนเบ™.

เป„เบ”เป‰เบ•เบฐเบซเบผเบญเบ”
เบเบฒเบ™เบ›เปˆเบฝเบ™เบˆเบฒเบเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบงเป„เบ›เบซเบฒเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบฅเบปเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™, เปเบนเบ™เป€เบ›เบฑเบ™เบˆเบธเบ”
เบˆเบณเบ™เบงเบ™เบ—เบตเปˆเปƒเบเป‰เบ—เบตเปˆเบชเบธเบ” เปเบฅเบฐ เบœเบนเบเบžเบฑเบ™เบขเบนเปˆเบซเปˆเบฒเบ‡เบˆเบฒเบเบชเบนเบ™. เบ™เบตเป‰โ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เบเบฑเบš
"__builtin_lroundf" เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบกเบทเปˆเบญ -fno-math-errno เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เบฅเบญเบ, เป€เบฎเบทเบญ, เบฅเบญเบ, เบฅเบญเบ
เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบˆเบฒเบโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹เบ—เบตเปˆโ€‹เป€เบŠเบฑเบ™โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบญเบ™เบเป‰เบฒเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบฒเบเปƒเบ™ X เปเบฅเบฐ Y
เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เปƒเบ”เป†เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ double-precision floating-point.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเบชเบญเบ‡ operands เปเบซเบผเปˆเบ‡ double-precision เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบ—เปเบฒเบญเบดเบ”
operand เปƒเบ™ 64-bit register X. operand เบญเบทเปˆเบ™เป† (เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆ operand เบ‚เบญเบ‡ unary เป€เบ›เบฑเบ™.
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™) เปเบกเปˆเบ™เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เปเบšเบšเบเปเบฒเบ™เบปเบ”เป€เบญเบ‡เบ—เบตเปˆเบกเบตเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”
เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบซเบผเปˆเบ‡ src1 เปเบฅเบฐเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปƒเบ™ src2. เบ›เบฐเป€เบžเบ™เบต
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเปƒเบซเป‰เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ” 32
bits เปƒเบ™เบ—เบฐเบšเบฝเบ™เบ›เบฒเบเบ—เบฒเบ‡ เปเบฅเบฐเบญเบตเบเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™ 32-bit Y. GCC
เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ X เปเบฅเบฐ / เบซเบผเบทเบญเปˆเบฒเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ Y เป€เบกเบทเปˆเบญเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

fwrx
เบ‚เบฝเบ™ src1 เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบ™เป‰เบญเบเบ‚เบญเบ‡ X เปเบฅเบฐ src2 เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”
เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ X.

fwry
เบ‚เบฝเบ™ src1 เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Y.

frdxhi, frdxlo
เบญเปˆเบฒเบ™เป€เบเบทเบญเบšเบซเบผเบทเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ” (เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš) เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡ X เปเบฅเบฐเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡.

frdy
เบญเปˆเบฒเบ™เบกเบนเบ™เบ„เปˆเบฒ Y เปเบฅเบฐเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ Nios II custom
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเปƒเบŠเป‰ "เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ ("custom-insn=N")" เปเบฅเบฐ "เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ("no-custom-insn")"
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบซเบผเบท pragmasโ€‹.

-mcustom-fpu-cfg=เบŠเบทเปˆ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เบฅเปˆเบงเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹, เบกเบตโ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบญเบ‡ (เป€เบšเบดเปˆเบ‡โ€‹
-mcustom-insn เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡). เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบŠเบธเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”:

-mcustom-fpu-cfg=60-1 เป€เบ—เบปเปˆเบฒเบเบฑเบš: -mcustom-fmuls=252 -mcustom-fadds=253
-mcustom-fsubs=254 -fsingle-precision-constant

-mcustom-fpu-cfg=60-2 เป€เบ—เบปเปˆเบฒเบเบฑเบš: -mcustom-fmuls=252 -mcustom-fadds=253
-mcustom-fsubs=254 -mcustom-fdivs=255 -fsingle-precision-constant

-mcustom-fpu-cfg=72-3 เป€เบ—เบปเปˆเบฒเบเบฑเบš: -mcustom-floatus=243 -mcustom-fixsi=244
-mcustom-floatis=245 -mcustom-fcmmpgts=246 -mcustom-fcmples=249 -mcustom-fcmpeqs=250
-mcustom-fcmpnes=251 -mcustom-fmuls=252 -mcustom-fadds=253 -mcustom-fsubs=254
-mcustom-fdivs=255 -fsingle-precision-constant

เบเบฒเบ™โ€‹เบกเบญเบšโ€‹เปเบฒเบโ€‹เบเบฒเบ™โ€‹เบชเบฑเปˆเบ‡โ€‹เบชเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบเบณโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เปƒเบซเป‰โ€‹เป‚เบ”เบโ€‹เบšเบธเบโ€‹เบ„เบปเบ™ -mcustom-insn= เบเบปเบเป€เบฅเบตเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ—เบตเปˆเบกเบญเบšเปƒเบซเป‰เป‚เบ”เบ -mcustom-fpu-cfg=, เป‚เบ”เบเบšเปเปˆเบชเบปเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
เบšเบฑเบ™เบ—เบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ FPU เป‚เบ”เบ
เป‚เบ”เบเปƒเบŠเป‰ "เป€เบ›เบปเป‰เบฒเปเบฒเบ("custom-fpu-cfg=เบŠเบทเปˆ")" function attribute เบซเบผเบท pragma.

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบก -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ Altera Nios II ELF (เป‚เบฅเบซเบฐโ€‹เป€เบ›เบปเปˆเบฒโ€‹)โ€‹:

- mhal
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš HAL BSP. เบ™เบตเป‰เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ C runtime เบ—เบตเปˆ GCC เบชเบฐเบซเบ™เบญเบ‡
เปเบฅเบฐโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบชเบดเป‰เบ™โ€‹เบชเบธเบ”โ€‹เบฅเบปเบ‡โ€‹, เปเบฅเบฐโ€‹เป‚เบ”เบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹ -msys-crt0= เบเปเบฒเบ™เบปเบ”
เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฎเบญเบ‡เบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบ HAL BSP.

-msmallc
เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ” Cโ€‹, -lsmallc, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ Newlib.

-msys-crt0=startfile
startfile เปเบกเปˆเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒเบ‚เบญเบ‡ startfile (crt0) เป€เบžเบทเปˆเบญเปƒเบŠเป‰เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เปเบกเปˆเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹ - mhal.

-msys-lib=systemlib
systemlib เปเบกเปˆเบ™เบŠเบทเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒ
เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C, เบ•เบปเบงเบขเปˆเบฒเบ‡ "เบญเปˆเบฒเบ™" เปเบฅเบฐ "เบ‚เบฝเบ™". เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบฑเบเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ HAL BSP.

Nvidia PTX เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš Nvidia PTX:

-m32
-m64
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš 32-bit เบซเบผเบท 64-bit ABI.

-mmainkernel
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš __ kernel เบซเบผเบฑเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเบทเบ™เบขเบนเปˆเบ„เบปเบ™เบ”เบฝเบงเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ offloading
เบเบฒเบ™เบ›เบฐเบซเบฒเบ™เบŠเบตเบงเบดเบ”.

PDP-11 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš PDP-11:

-mfpu
เปƒเบŠเป‰เบฎเบฒเบ”เปเบง FPP เบˆเบธเบ”เบฅเบญเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. (เบˆเบธเบ” FIS เบฅเบญเบเบขเบนเปˆเป€เบ—เบดเบ‡
เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš PDP-11/40.)

-msoft-float
เบขเปˆเบฒเปƒเบŠเป‰เบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง.

-mac0
เบชเบปเปˆเบ‡เบ„เบทเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบˆเบธเบ”เบฅเบญเบเปƒเบ™ ac0 (fr0 เปƒเบ™ syntax เบ‚เบญเบ‡ Unix assembler).

-mno-ac0
เบชเบปเปˆเบ‡เบ„เบทเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-m40
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš PDP-11/40.

-m45
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš PDP-11/45. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-m10
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš PDP-11/10.

-mbcopy-builtin
เปƒเบŠเป‰เบฎเบนเบšเปเบšเบš inline "movmemhi" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mbcopy
เบขเปˆเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบš inline "movmemhi" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ.

- mint16
-mno-int32
เปƒเบŠเป‰ 16-bit "int". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- mint32
-mno-int16
เปƒเบŠเป‰ 32-bit "int".

-mfloat64
-mno-float32
เปƒเบŠเป‰ 64-bit "float". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mfloat32
-mno-float64
เปƒเบŠเป‰ 32-bit "float".

- mabshi
เปƒเบŠเป‰เบฎเบนเบšเปเบšเบš "abshi2". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-abshi
เบขเปˆเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบš "abshi2".

-เบชเบฒเบ‚เบฒ-เปเบžเบ‡
เบ—เบณเบ—เปˆเบฒเบงเปˆเบฒเบชเบฒเบ‚เบฒเบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ—เบปเบ”เบฅเบญเบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”
เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-เบชเบฒเบ‚เบฒ-เบฅเบฒเบ„เบฒเบ–เบทเบ
เบขเปˆเบฒเบ—เบณเบ—เปˆเบฒเบงเปˆเบฒเบชเบฒเบ‚เบฒเปเบžเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-munix-asm
เปƒเบŠเป‰ syntax เบ•เบปเบงเบ›เบฐเบเบญเบš Unix. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš pdp11-*-bsd.

-mdec-asm
เปƒเบŠเป‰ syntax เบ‚เบญเบ‡ DEC assembler. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš PDP-11 เปƒเบ”เป†เบเปเบ•เบฒเบก
เบญเบทเปˆเบ™เบเปˆเบงเบฒ pdp11-*-bsd.

picoChip เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” picoChip:

-mae=ae_type
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบŠเบธเบ”โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹, เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹, เปเบฅเบฐโ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบญเบฒโ€‹เป€เบฃโ€‹
เบ›เบฐเป€เบžเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบš ae_type. เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ ae_type เบกเบต เปƒเบ”, เบก, เปเบฅเบฐ MAC.

-mae=เบญเบฑเบ™เปƒเบ”เบเปเป„เบ”เป‰ เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ” AE เบ—เบปเปˆเบงเป„เบ›เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฅเปˆเบ™
เบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ” AE เบญเบทเปˆเบ™เป†. เบฅเบฐเบซเบฑเบ”เบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบ–เป‰เบฒเบฅเบงเบšเบฅเบงเบก
เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ” AE เบชเบฐเป€เบžเบฒเบฐ, เปเบฅเบฐเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ„เบนเบ™) เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ
เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบšเบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ AE.

-mae=MUL เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ” MUL AE. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเป€เบžเบ” AE เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”,
เปเบฅเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mae=MAC เป€เบฅเบทเบญเบ MAC AE เปเบšเบš DSP. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ—เบปเบ™เบ—เบธเบเบˆเบฒเบ
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบ”เบตเบ‚เบญเบ‡ byte (char) manipulation, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ DSP AE เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบฒเบ”เปเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ” byte / เบฎเป‰เบฒเบ™.

-msymbol-as-address
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบŠเบทเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเป‚เบ”เบเบเบปเบ‡เป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบเบฒเบ™เป‚เบซเบผเบ”/เบฎเป‰เบฒเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เป‚เบซเบฅเบ”เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบˆเบฐโ€‹เบชเป‰เบฒเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹, เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เป„เบงโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเป„เบงเป‰เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰,
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™.

-mno-inefficient-เป€เบ•เบทเบญเบ™
เบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบฅเบฐเบ”เบฑเบš byte
เบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ” MAC AE. MAC AE เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบฎเบฒเบ”เปเบงเบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบฅเบฐเบ”เบฑเบš byte
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป‚เบซเบผเบ” byte เบ—เบฑเบ‡เบซเบกเบปเบ” / เบฎเป‰เบฒเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฑเบ‡เป€เบ„เบฒเบฐเบˆเบฒเบเบเบฒเบ™เป‚เบซเบผเบ”เบ„เปเบฒ / store
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™. เบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบœเบปเบ™ เปเบฅเบฐเบกเบตเบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบŠเบตเป‰เบšเบญเบเบงเปˆเบฒเป€เบˆเบปเป‰เบฒ
เบ„เบงเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ„เบทเบ™เปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ byte, เบซเบผเบทเป€เบžเบทเปˆเบญเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ›เบฐเป€เบžเบ” AE เบ—เบตเปˆเบกเบต
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ PC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบžเบฒเบเปƒเบ•เป‰

RL78 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

- เบŠเบดเบก
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบžเบฒเบเปƒเบ™ simulator.

-mmul=เบšเปเปˆเบกเบต
-mmul=g13
-mmul=rl78
เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ„เบนเบ™เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
none, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบนเบ™เบ‚เบญเบ‡เบŠเบญเบšเปเบง. เป„เบ”เป‰ g13 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบฎเบฒเบ”เปเบง multiply/divide peripheral เบขเบนเปˆเปƒเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบ RL78/G13 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เป„เบ”เป‰ เบฅเบฒเบ„เบฒ 78 เบšเบฒเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™
เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ„เบนเบ™เบฎเบฒเบ”เปเบงเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบ„เบนเปˆเบกเบทเบŠเบญเบšเปเบง RL78.

-m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
-m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™ "เบชเบญเบ‡" เป€เบ›เบฑเบ™ 64 bits (-m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ) เบซเบผเบท 32 bits (-m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ)
เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

IBM RS / 6000 เปเบฅเบฐ เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ PC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš IBM RS/6000 เปเบฅเบฐ PowerPC:

-mpowerpc-gpopt
-mno-powerpc-gpopt
-mpowerpc-gfxopt
-mno-powerpc-gfxopt
-mpowerpc64
-mno-powerpc64
-mmfcrf
-mno-mfcrf
-mpopcntb
-mno-popcntb
-mpopcntd
-mno-popcntd
-mfprnd
-mno-fprnd
-mcmpb
-mno-cmpb
-mmfpgpr
-mno-mfpgpr
-mhard-dfp
-mno-hard-dfp
เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™
เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเบณเบ™เบปเบ”เป€เบกเบทเปˆเบญเบเบณเบ™เบปเบ”เบ„เปˆเบฒ GCC.
เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธ -mcpu=cpu_type overrides เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบžเบงเบเป€เบฎเบปเบฒ
เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰ -mcpu=cpu_type เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เบเบฒเบ™เบฅเบฐเบšเบธ -mpowerpc-gpopt เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เปƒเบŠเป‰เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบเบธเปˆเบกเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›, เบฅเบงเบกเบ—เบฑเบ‡เบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบกเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰.
เบเบฒเบ™เบฅเบฐเบšเบธ -mpowerpc-gfxopt เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เปƒเบŠเป‰เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบเบธเปˆเบกเบเบฒเบŸเบดเบ, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เป€เบฅเบทเบญเบเบˆเบธเบ”เบฅเบญเบ.

เป„เบ”เป‰ -mmfcrf เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบˆเบฒเบเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต POWER4 เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC V2.01. เป„เบ”เป‰ -mpopcntb เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ popcount
เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบ‚เบญเบ‡ FP เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™ POWER5
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ PowerPC V2.02. เป„เบ”เป‰
-mpopcntd เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ popcount เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™
เป‚เบ›เป€เบŠเบ”เป€เบŠเบต POWER7 เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ PowerPC V2.06.
เป„เบ”เป‰ -mfprnd เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฎเบญเบš FP เป„เบ›เบซเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก
เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต POWER5+ เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ PowerPC
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ V2.03. เป„เบ”เป‰ -mcmpb เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡ bytes เบ›เบฝเบšเบ—เบฝเบš
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต POWER6 เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC V2.05. เป„เบ”เป‰ -mmfpgpr เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง FP
เป„เบ›เบซเบฒ/เบˆเบฒเบเบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต POWER6X เปเบฅเบฐ
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC V2.05 เบ‚เบฐเบซเบเบฒเบ. เป„เบ”เป‰ -mhard-dfp
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เป€เบฅเบเบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบกเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™
เบšเบฒเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต POWER.

เป„เบ”เป‰ -mpowerpc64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆ
เป„เบ”เป‰เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ PowerPC64 เป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบšเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ” GPRs เป€เบ›เบฑเบ™ 64-bit, doubleword
เบ›เบฐเบฅเบดเบกเบฒเบ™. GCC เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ -mno-powerpc64.

-mcpu=cpu_type
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹, เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type. เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu_type เบกเบต 401, 403, 405, 405fp, 440,
440fp, 464, 464fp, 476, 476fp, 505, 601, 602, 603, 603, 604, 604, 620, 630, 740,
7400, 7450, 750, 801, 821, 823, 860, 970, 8540, a2, e300c2, e300c3, e500mc, e500mc64,
e5500, e6500, ec603e, G3, G4, G5, titan, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™3, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™4, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™5, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ 5+, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™6,
เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ 6x, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™7, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™8, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™, powerpc64, powerpc64le, เปเบฅเบฐ rs64.

-mcpu=powerpc, -mcpu=powerpc64, เปเบฅเบฐ -mcpu=powerpc64le เบฅเบฐเบšเบธ PowerPC 32-bit เบญเบฑเบ™เบšเปเบฅเบดเบชเบธเบ”
(เบ—เบฑเบ‡ endian), PowerPC endian เปƒเบซเบเปˆ 64-bit เปเบฅเบฐ 64-bit เบ™เป‰เบญเบ endian PowerPC
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ, เบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเปเบฒเบฅเบฑเบš
เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบฅเบฐเบšเบธเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบชเบฐเป€เบžเบฒเบฐ. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบžเบฒเบเปƒเบ•เป‰เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เปเบฅเปˆเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ™เบฑเป‰เบ™, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบšเปเปˆเปเบฅเปˆเบ™เบเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™.

เป„เบ”เป‰ -mcpu เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบ›เบตเบ”เบซเบผเบทเบ›เบดเบ”เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

-maltivec -mfprnd -mhard-float -mmfcrf - เบซเบผเบฒเบ -mpopcntb -mpopcntd -mpowerpc64
-mpowerpc-gpopt -mpowerpc-gfxopt -msingle-float -mdouble-float -msimple-fpu -mstring
- mmulhw -mdlmzb -mmfpgpr -mvsx -mcrypto -mdirect-เบเป‰เบฒเบ -mpower8-fusion
-mpower8-vector -mquad เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹ -mquad-memory-atomic

เบ•เบปเบงเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เบชเบณเบฅเบฑเบš CPU เปƒเบ”เปœเบถเปˆเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบฅเบธเป‰เบ™ compiler,
เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš CPU เบ™เบฑเป‰เบ™; เบกเบฑเบ™เบšเปเปˆ
เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ•เบปเบงเบˆเบดเบ‡เบ‚เบญเบ‡เบฎเบฒเบ”เปเบง. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ‚เบญเบ‡โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เบ—เปˆเบฒเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบกเบฑเบ™โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹ -mcpu เบ—เบฒเบ‡เป€เบฅเบทเบญเบ,
เบ„เบท -mcpu=970 -mno-altivec.

เปƒเบ™ AIX, เป„เบ”เป‰ -maltivec เปเบฅเบฐ -mpowerpc64 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบซเบผเบทโ€‹เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เป‚เบ”เบโ€‹ -mcpu
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ AIX เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐ
เบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบซเบฒเบเบ—เปˆเบฒเบ™เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡เบ—เปˆเบฒเบ™
เบชเบดเปˆเบ‡เปเบงเบ”เบฅเป‰เบญเบก.

-mtune=cpu_type
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบซเบผเบทเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เป€เบ›เบฑเบ™ -mcpu=cpu_type เบšเปเปˆ. เบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบš
cpu_type เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -mtune เป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -mcpu. เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡เบ–เบทเบเบฅเบฐเบšเบธ, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™
เปƒเบŠเป‰เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบ -mcpu, เปเบ•เปˆเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบ
-mtune.

-mcmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” PowerPC64 เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ: TOC เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เบขเบนเปˆเบ—เบตเปˆ 64k.

-mcmodel=เบ›เบฒเบ™เบเบฒเบ‡
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” PowerPC64 เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡: TOC เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆเบญเบทเปˆเบ™เป†เบญเบฒเบ”เบˆเบฐเบ‚เบถเป‰เบ™
เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ” 4G.

-mcmodel=เปƒเบซเบเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” PowerPC64 เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ: TOC เบญเบฒเบ”เบˆเบฐเบชเบนเบ‡เป€เบ–เบดเบ‡ 4G เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”. เบญเบทเปˆเบ™เป†
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปเบฅเบฐโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เปเบกเปˆเบ™โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เป‚เบ”เบโ€‹เบŠเปˆเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆ 64-bitโ€‹.

-maltivec
-mno-altivec
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ AltiVec, เปเบฅเบฐเบเบฑเบ‡เป€เบ›เบตเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบงเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ AltiVec เป‚เบ”เบเบเบปเบ‡.
เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ” -mabi=altivec เป€เบžเบทเปˆเบญเบ›เบฑเบš ABI เบ›เบฐเบˆเบธเบšเบฑเบ™เบเบฑเบš AltiVec ABI
เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบš.

เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -maltivec เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ -maltivec=le or -maltivec=be, เบ„เปเบฒเบชเบฑเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš
เบชเปเบฒเบฅเบฑเบš Altivec intrinsics เป€เบŠเบฑเปˆเบ™ "vec_splat", "vec_extract", เปเบฅเบฐ "vec_insert" เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆ
เบฅเบณเบ”เบฑเบšเบญเบปเบ‡เบ›เบฐเบเบญเบš array เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบš endianness เบ‚เบญเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบญเบปเบ‡เบ›เบฐเบเบญเบš
zero เบฅเบฐเบšเบธเบญเบปเบ‡เบ›เบฐเบเบญเบšเบŠเป‰เบฒเบเบชเบธเบ”เปƒเบ™ vector register เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ big-endian
เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก, เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบ—เบฐเบšเบฝเบ™ vector เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ a
เป€เบงเบ—เบต little-endian.

-maltivec=be
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Altivec เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš big-endian, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™
เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™เปƒเบซเบเปˆ เบซเบผเบทเปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆเบ•เบปเบงเปƒเบซเบเปˆ
เป€เบงเบ—เบต.

เบ„เปเบฒเบชเบฑเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ•เบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบ•เบปเบงเป€เบฅเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ™ Altivec intrinsics เป€เบŠเบฑเปˆเบ™:
"vec_splat", "vec_extract", เปเบฅเบฐ "vec_insert". เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบญเบฒเป€เบฃเบ—เบตเปˆเบเบปเบ‡เบเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบเบฑเบš endianness เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-maltivec=le
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Altivec เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™
เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™เปƒเบซเบเปˆ เบซเบผเบทเปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปœเป‰เบญเบเปœเบถเปˆเบ‡-
เป€เบงเบ—เบต endian. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเปƒเบ™เบ‚เบฐเบ™เบฐเบ™เบตเป‰เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆเบ„เบปเบ™เปƒเบซเบเปˆ
เป€เบงเบ—เบต.

เบ„เปเบฒเบชเบฑเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ•เบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบ•เบปเบงเป€เบฅเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบ™ Altivec intrinsics เป€เบŠเบฑเปˆเบ™:
"vec_splat", "vec_extract", เปเบฅเบฐ "vec_insert". เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบญเบฒเป€เบฃเบ—เบตเปˆเบเบปเบ‡เบเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบเบฑเบš endianness เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mvrsave
-mno-vrsave
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ VRSAVE เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” AltiVec.

-mgen-cell-microcode
เบชเป‰เบฒเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบˆเบธโ€‹เบฅเบฐโ€‹เบžเบฒเบโ€‹เป‚เบ—เบฅเบฐโ€‹เบชเบฑเบšโ€‹เบกเบทโ€‹เบ–เบทโ€‹.

-mwarn-cell-microcode
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบเบฒเบ™เบญเบญเบเบ„เบณเบชเบฑเปˆเบ‡เป„เบกเป‚เบ„เบฃเบฅเบฐเบซเบฑเบ”เป€เบŠเบฅเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ Cell microcode
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.

-msecure-plt
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ ld เปเบฅเบฐ เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปเบฅเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบเบฑเบš
เบžเบฒเบเบชเปˆเบงเบ™ ".plt" เปเบฅเบฐ ".got" เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ PowerPC 32-bit SYSV ABI.

-mbss-plt
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ BSS ".plt" เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆ เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆ, เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ ".plt"
เปเบฅเบฐเบžเบฒเบเบชเปˆเบงเบ™ ".got" เบ—เบตเปˆเบ—เบฑเบ‡เบ‚เบฝเบ™เป„เบ”เป‰ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™ PowerPC 32-bit
SYSV ABI เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-misel
-mno-isel
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เป€เบ›เบตเบ”เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ ISEL.

-misel=เปเบกเปˆเบ™ / เบšเปเปˆ
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบชเบฐเปœเบฑเบšเบชเบฐเปœเบธเบ™เปเบฅเป‰เบง. เปƒเบŠเป‰ -misel เปเบฅเบฐ -mno-isel เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

-mspe
-mno-spe
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เป€เบ›เบตเบ” เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SPE simd.

- เบ„เบนเปˆ
-mno เบ„เบนเปˆ
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบŠเบดเบกเบ„เบนเปˆ.

-mspe=เปเบกเปˆเบ™ / เบšเปเปˆ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เปƒเบŠเป‰ -mspe เปเบฅเบฐ -mno-spe เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.

-mvsx
-mno-vsx
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ vector/scalar (VSX), เปเบฅเบฐเป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เบ•เบปเบงเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ VSX เป‚เบ”เบเบเบปเบ‡เป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-mcrypto
-mno-crypto
เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™) เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบเบปเบ‡เบเบฑเบš
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบšเบ—เบตเปˆเบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป€เบงเบตเบŠเบฑเปˆเบ™ 2.07 เบ‚เบญเบ‡ PowerPC ISA.

-mdirect-เบเป‰เบฒเบ
-mno-direct-เบเป‰เบฒเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบเป‰เบฒเบเบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡
เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ› เปเบฅเบฐเบ—เบฐเบšเบฝเบ™ vector/scalar (VSX) เบ—เบตเปˆเบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™
เป€เบงเบตเบŠเบฑเปˆเบ™ 2.07 เบ‚เบญเบ‡ PowerPC ISA.

-mpower8-fusion
-mno-power8-fusion
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฎเบฑเบเบชเบฒ (เบšเปเปˆเบฎเบฑเบเบชเบฒ) เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบ•เบดเบ”เบเบฑเบ™เป€เบžเบทเปˆเบญเบงเปˆเบฒ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต power8 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-mpower8-vector
-mno-power8-vector
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) vector เปเบฅเบฐ scalar เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™
เป€เบžเบตเปˆเบกเปƒเบ™เป€เบงเบตเบŠเบฑเปˆเบ™ 2.07 เบ‚เบญเบ‡ PowerPC ISA. เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เปƒเบ™โ€‹เบ•เบปเบงโ€‹
เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ vector เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡.

-mquad เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹
-mno-quad-memory
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบ„เปเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน quad.
เป„เบ”เป‰ -mquad เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเบนเบšโ€‹เปเบšเบš 64-bitโ€‹.

-mquad-memory-atomic
-mno-quad-memory-atomic
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบ„เปเบฒ quad เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน. เป„เบ”เป‰
-mquad-memory-atomic เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเบนเบšโ€‹เปเบšเบš 64-bitโ€‹.

-mupper-regs-df
-mno-upper-regs-df
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) scalar double precision เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆ
เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบฑเบ‡เปเบปเบ” 64 เบ—เบฐเบšเบฝเบ™เปƒเบ™เบŠเบธเบ”เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ vector/scalar เบ—เบตเปˆเป€เบ›เบฑเบ™
เป€เบžเบตเปˆเบกเปƒเบ™เป€เบงเบตเบŠเบฑเปˆเบ™ 2.06 เบ‚เบญเบ‡ PowerPC ISA. -mupper-regs-df เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ
เป€เบˆเบปเป‰เบฒเปƒเบŠเป‰เบญเบฑเบ™เปƒเบ”เบญเบฑเบ™เปœเบถเปˆเบ‡ -mcpu=power7, -mcpu=power8, เบซเบผเบท -mvsx เบ•เบปเบงเป€เบฅเบทเบญเบ

-mupper-regs-sf
-mno-upper-regs-sf
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) scalar เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบงเบ—เบตเปˆ
เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบฑเบ‡เปเบปเบ” 64 เบ—เบฐเบšเบฝเบ™เปƒเบ™เบŠเบธเบ”เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ vector/scalar เบ—เบตเปˆเป€เบ›เบฑเบ™
เป€เบžเบตเปˆเบกเปƒเบ™เป€เบงเบตเบŠเบฑเปˆเบ™ 2.07 เบ‚เบญเบ‡ PowerPC ISA. -mupper-regs-sf เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ
เป€เบˆเบปเป‰เบฒเปƒเบŠเป‰เบญเบฑเบ™เปƒเบ”เบญเบฑเบ™เปœเบถเปˆเบ‡ -mcpu=power8 or -mpower8-vector เบ•เบปเบงเป€เบฅเบทเบญเบ

-mupper-regs
-mno-upper-regs
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ scalar เบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ” 64
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™ vector/scalar floating point register set, เบ‚เบถเป‰เบ™เบเบฑเบšเบ•เบปเบงเปเบšเบšเบ‚เบญเบ‡
เป€เบ„เบทเปˆเบญเบ‡.

เบ–เป‰เบฒ -mno-upper-regs เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบกเบฑเบ™เบ›เบดเบ”เบ—เบฑเบ‡เบชเบญเบ‡ -mupper-regs-sf เปเบฅเบฐ
-mupper-regs-df เบ•เบปเบงเป€เบฅเบทเบญเบ

-mfloat-gprs=เปเบกเปˆเบ™/เบ”เบฝเบง/เบ„เบนเปˆ/เบšเปเปˆ
-mfloat-gprs
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™.

เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ yes or เบ”เบฝเบง เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™.

เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ double เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเปเบšเบšเบ”เบฝเบงเปเบฅเบฐเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™.

เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ no เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ MPC854x เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-m32
-m64
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบซเบผเบท 64-bit เบ‚เบญเบ‡ Darwin เปเบฅเบฐ SVR4 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ (เบฅเบงเบกเบ—เบฑเบ‡
GNU/Linux). เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบเปเบฒเบ™เบปเบ” int, เบเบฒเบงเปเบฅเบฐ pointer เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ PowerPC variant เปƒเบ”. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 64-bit เบเปเบฒเบ™เบปเบ” int
32 bits เปเบฅเบฐเบเบฒเบงเปเบฅเบฐเบŠเบตเป‰เป„เบ›เบซเบฒ 64 bits, เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš PowerPC64, เบชเปเบฒเบฅเบฑเบš.
-mpowerpc64.

-mful-toc
-mno-fp-in-toc
-mno-sum-in-toc
-เปœเป‰เบญเบเบชเบธเบ”-toc
เบ›เบฑเบšเบ›เบธเบ‡เปเบเป‰เป„เบ‚เบเบฒเบ™เบชเป‰เบฒเบ‡ TOC (เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™), เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†
เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เป„เบ”เป‰ -mful-toc เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ„เบฑเบ”โ€‹เป€เบฅเบทเบญเบโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, GCC
เบˆเบฑเบ”เบชเบฑเบ™เบขเปˆเบฒเบ‡เปœเป‰เบญเบเปœเบถเปˆเบ‡เบฅเบฒเบเบเบฒเบ™ TOC เบชเบณเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™
เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. GCC เบเบฑเบ‡เบงเบฒเบ‡เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™ TOC. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบฝเบ‡เปเบ•เปˆ
16,384 เบฅเบฒเบเบเบฒเบ™เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ TOC.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบšเบญเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰ overflowed เบ—เบตเปˆเบกเบตเบขเบนเปˆ
เบžเบทเป‰เบ™เบ—เบตเปˆ TOC, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ TOC เบ—เบตเปˆเปƒเบŠเป‰เบเบฑเบš -mno-fp-in-toc เปเบฅเบฐ
-mno-sum-in-toc เบ•เบปเบงเป€เบฅเบทเบญเบ -mno-fp-in-toc เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ GCC เบงเบฒเบ‡เบˆเบธเบ”เบฅเบญเบ
เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™ TOC เปเบฅเบฐ -mno-sum-in-toc เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบ„เบดเบ”เป„เบฅเปˆ
เบœเบปเบ™เบฅเบงเบกเบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆ เปเบฅเบฐเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™ เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบญเบปเบฒเบœเบปเบ™เบฅเบงเบกเบ™เบฑเป‰เบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ TOC.
เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบฅเบฐเบšเบธเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบœเบฐเบฅเบดเบ”เบซเบผเบฒเบ
เบฅเบฐเบซเบฑเบ”เบŠเป‰เบฒเบเบงเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบเปเบฅเบฐเปƒเบซเบเปˆเบเบงเปˆเบฒเป‚เบ”เบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบฅเบฑเบเบžเบทเป‰เบ™เบ—เบตเปˆ TOC.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™ TOC เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเบฅเบฐเบšเบธเบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰,
เบฅเบฐเบšเบธ -เปœเป‰เบญเบเบชเบธเบ”-toc เปเบ—เบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒ TOC เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ—เบธเบเป†เป„เบŸเบฅเปŒ. เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, GCC เบˆเบฐเบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบŠเป‰เบฒเบเบงเปˆเบฒเปเบฅเบฐเปƒเบซเบเปˆเบเบงเปˆเบฒ
เปเบ•เปˆเบกเบฑเบ™เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆ TOC เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบตเบ”
เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบญเบเบฅเบปเบ‡เป€เบฅเบทเป‰เบญเบเป†.

-maix64
-maix32
เป€เบ›เบตเบ”เปƒเบŠเป‰ 64-bit AIX ABI เปเบฅเบฐเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—: 64-bit pointers, 64-bit "long" type, เปเบฅเบฐ
เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบงเบเป€เบ‚เบปเบฒ. เบเบฒเบ™เบฅเบฐเบšเบธ -maix64 implies -mpowerpc64,
เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ -maix32 เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ ABI 64-bit เปเบฅเบฐเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ -mno-powerpc64. GCC เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™
-maix32.

-mxl-compat
-mno-xl-compat
เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบซเบผเบฒเบเบเบฑเบš IBM XL compiler semantics เป€เบกเบทเปˆเบญเปƒเบŠเป‰ AIX-
ABI เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰. เบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเป„เบ›เบซเบฒเปœเป‰เบฒเบ—เบตเปˆเปเบšเบšเบ•เบปเป‰เบ™เปเบšเบšเบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบ (RSA) เปƒเบ™ stack เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ FPRs. เบขเปˆเบฒเบชเบปเบกเบกเบธเบ”
เบ•เบปเบงเป€เบฅเบเบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบชเบณเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบกเบนเบ™เบ„เปˆเบฒเบ„เบนเปˆเบเบฒเบง 128-bit เปเบกเปˆเบ™เบ–เบทเบเบกเบปเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เป€เบกเบทเปˆเบญ
เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ„เปˆเบฒเปเบฅเบฐเบเบฒเบ™เปเบ›เบ‡เป€เบ›เบฑเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ. เปƒเบŠเป‰เบŠเบทเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบ XL เบชเปเบฒเบฅเบฑเบšเบ„เบนเปˆเบเบฒเบง
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ›เบปเบเบเบฐเบ•เบด.

เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒ AIX เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบเปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™
เบเปเบฅเบฐเบ™เบต K&R C เบ—เบตเปˆเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป€เบญเบปเบฒเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบเบฑเบš
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบเบฒเบ”. IBM XL compilers เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เบšเปเปˆเป€เบซเบกเบฒเบฐเปƒเบ™ RSA เบˆเบฒเบ stack เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ subroutine เป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบชเบฐเป€เบซเบกเบตเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™ stack เปเบกเปˆเบ™
เบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบšเปเปˆเบ„เปˆเบญเบเบˆเปเบฒเป€เบ›เบฑเบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบฑเบ™
เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ—เบซเบฒ subroutines เบฅเบงเบšเบฅเบงเบกเป‚เบ”เบ IBM XL compilers เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

-mpe
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ IBM RS / 6000 SP เบ‚เบฐเบซเบ™เบฒเบ™ เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก (PE). เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบ‚เบฝเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰
เบ‚เปเป‰เบ„เบงเบฒเบกเบœเปˆเบฒเบ™เบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบžเบดเป€เบชเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เป„เบ”เป‰. เป„เบ”เป‰
เบฅเบฐเบšเบปเบšเบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ PE เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ (/usr/lpp/ppe.poe/), เบซเบผเบท
เบ‚เปเป‰เบเปเบฒเบซเบ™เบปเบ” เป„เบŸเบฅเปŒเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ overridden เบเบฑเบš -spec= เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบฐเบซเบ™เบฒเบ™เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฐเบ—เบนเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ -mpe
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบฅเบฐโ€‹ - เบเบฐเบ—เบนเป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

-malign-natural
-malign-power
เปƒเบ™ AIX, 32-bit Darwin, เปเบฅเบฐ 64-bit PowerPC GNU/Linux, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -malign-natural
overrides เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰ ABI เบ‚เบญเบ‡โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹, เป€เบŠเบฑเปˆเบ™โ€‹: เบ„เบนเปˆโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹,
เบšเบปเบ™โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹เบ‚เบฐโ€‹เปœเบฒเบ”โ€‹เบ•เบฒเบกโ€‹เบ‚เบฐโ€‹เปœเบฒเบ”โ€‹เบ—เบณโ€‹เบกเบฐโ€‹เบŠเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -malign-power เปเบ™เบฐเบ™เปเบฒ GCC เบเบฑเบš
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบ ABI. GCC เบงเบฒเบ‡เป„เบงเป‰เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ ABI.

เปƒเบ™ Darwin 64-bit, เบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบ—เปเบฒเบกเบฐเบŠเบฒเบ”เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐ -malign-power เบšเปเปˆโ€‹เปเบกเปˆเบ™
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

-msoft-float
-mhard-float
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปƒเบŠเป‰ (เปƒเบŠเป‰) เบŠเบธเบ”เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบธเบ”เบฅเบญเบ. เบŠเบญเบšเปเบง
emulation เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -msoft-float เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบฅเบฐเบœเปˆเบฒเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฑเบš GCC เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

-msingle-float
-mdouble-float
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเปเบšเบšเบ”เบฝเบง เบซเบผเบทเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.
-mdouble-float implies -msingle-float.

-msimple-fpu
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "sqrt" เปเบฅเบฐ "div" เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบ‚เบญเบ‡เบฎเบฒเบ”เปเบง.

-mfpu=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบซเบปเบงเปœเปˆเบงเบเบˆเบธเบ”เบฅเบญเบ. เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบš เบŠเบทเปˆ เบกเบต sp_lite (เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš
-msingle-float -msimple-fpu), dp_lite (เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -mdouble-float -msimple-fpu),
sp_full (เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -msingle-float), เปเบฅเบฐ dp_full (เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -mdouble-float).

-mxilinx-fpu
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™ Xilinx PPC 405/440.

- เบซเบผเบฒเบ
-mno-เบซเบผเบฒเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบเบฒเบ™เป‚เบซเบผเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เปเบฅเบฐ
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฒเบเบ„เปเบฒ. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™
เบฅเบฐเบšเบปเบšเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™, เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC. เบขเปˆเบฒเปƒเบŠเป‰ - เบซเบผเบฒเบ เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบžเบฝเบ‡โ€‹เป€เบฅเบฑเบโ€‹เบ™เป‰เบญเบ -
endian PowerPC เบฅเบฐเบšเบปเบš, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบขเบนเปˆเปƒเบ™
เป‚เบซเบกเบ”เบ™เป‰เบญเบ-endian. เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปเบกเปˆเบ™ PPC740 เปเบฅเบฐ PPC750 เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบฎเบนเบšเปเบšเบš little-endian.

-mstring
-mno-string
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเบฎเป‰เบฒเบ™
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ„เปเบฒโ€‹เบชเบฑเบšโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบซเบผเบฒเบโ€‹เปเบฅเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เบเป‰เบฒเบ block เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบ•เบฒเบกโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบš POWERโ€‹, เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™ PowerPCโ€‹
เบฅเบฐเบšเบปเบš. เบขเปˆเบฒเปƒเบŠเป‰ -mstring เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบšเบปเบš PowerPC เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ™เบฑเป‰เบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป€เบกเบทเปˆเบญเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™
เปเบกเปˆเบ™ PPC740 เปเบฅเบฐ PPC750 เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian.

- เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹
-mno-เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบเบฒเบ™เป‚เบซเบผเบ”เบซเบผเบทเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆ. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -mno-เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹, เบกเบตเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบฅเบฐเบซเบงเปˆเบฒเบ‡
เป€เบงเบฅเบฒเบ—เบตเปˆเบ•เบปเบงเบŠเบตเป‰ stack เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบเบญเบšเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบกเปˆเบ™
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเปˆเบฒเบ‡เป€เบŸเบฃเบก stack เบ‚เป‰เบฒเบก interrupts เบซเบผเบทเบชเบฑเบ™เบเบฒเบ™เบญเบฒเบ”เบˆเบฐ
เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบชเบเบซเบฒเบ.

-mavoid-indexed-addresses
-mno-avoid-indexed-addresses
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเบซเบผเบตเบเบฅเป‰เบฝเบ‡ (เบšเปเปˆเบซเบผเบตเบเป€เบงเบฑเป‰เบ™) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป‚เบซเบผเบ”เบซเบผเบทเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เบชเบฐเบ™เบต
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบปเบ‡เป‚เบ—เบ”เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Power6
เปƒเบ™เบšเบฒเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™, เป€เบŠเบฑเปˆเบ™เป€เบกเบทเปˆเบญเบเป‰เบฒเบงเบœเปˆเบฒเบ™เบญเบฒเป€เบฃเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบ‚เป‰เบฒเบก 16M
เป€เบ‚เบ”เปเบ”เบ™. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ Power6 เปเบฅเบฐเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™.

-mfused-madd
-mno-fused-madd
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ„เบนเบ™ เปเบฅเบฐเบชเบฐเบชเบปเบก
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบฎเบฒเบ”โ€‹เปเบงโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ -mfused-madd เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบกเบตโ€‹เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹.
เบญเบดเบชเบฐเบฅเบฐ -ffp-contract=เป„เบง เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบฅเบฐ -mno-fused-madd เปเบœเบ™เบ—เบตเปˆเปเบกเปˆเบ™
-ffp-contract=เบ›เบดเบ”.

- mmulhw
-mno-mulhw
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ„เปเบฒเบ„เบนเบ™เปเบฅเบฐเบ„เบนเบ™เบชเบฐเบชเบปเบก
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต IBM 405, 440, 464 เปเบฅเบฐ 476. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mdlmzb
-mno-dlmzb
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) string-search dlmzb เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบš IBM
405, 440, 464 เปเบฅเบฐ 476 เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ
เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mno-bit-align
-mbit-align
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบšเปเปˆ (เป€เบฎเบฑเบ”) เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบšเบฑเบ‡เบ„เบฑเบšเปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™
เบ—เบตเปˆเบกเบต bit-fields เบ—เบตเปˆเบˆเบฐเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ›เบฐเป€เบžเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ bit-field.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เปเบ•เปˆ 8 "unsigned" bit-fields เบ‚เบญเบ‡
เบ„เบงเบฒเบกเบเบฒเบง 1 เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 4-byte เปเบฅเบฐเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ 4 bytes. เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
-mno-bit-align, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 1-byte เปเบฅเบฐเป€เบ›เบฑเบ™ 1 byte เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”.

-mno-strict-align
-mstrict-align
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบšเปเปˆ (เป€เบฎเบฑเบ”) เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบฅเบฐเบšเบปเบš.

- เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰
-mno-relocateable
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ (เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰) เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบเป‰เบฒเบเป„เบ› a
เบ—เบตเปˆเบขเบนเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบ•เบปเบงเป‚เบซเบผเบ”เบฅเบฐเบšเบปเบš PowerPC เปเบšเบšเบเบฑเบ‡เปเบšเบšเบ‡เปˆเบฒเบเป†เบ„เบงเบ™
เบเป‰เบฒเบเป€เบ™เบทเป‰เบญเบซเบฒเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡ ".got2" เปเบฅเบฐ 4-byte เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบฅเบฒเบเบเบฒเบ™ ".fixup"
เบžเบฒเบ, เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆ 32 เบšเบดเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เบฑเบ‡เบซเบกเบปเบ”
เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ - เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰ or -mrelocatable-lib.
- เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰ เบฅเบฐเบซเบฑเบ”เบˆเบฑเบ”เบงเบฒเบ‡ stack เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 8-byte.

-mrelocatable-lib
-mno-relocateable-lib
เบ„เบท - เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰, -mrelocatable-lib เบชเป‰เบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™ ".fixup" เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ static
executables เบ—เบตเปˆเบˆเบฐเบเป‰เบฒเบเบญเบญเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เปเบ•เปˆ -mrelocatable-lib เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰
เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡ stack เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ‚เบญเบ‡ - เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰. เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -mrelocatable-lib เบญเบฒเบ”เบˆเบฐ
เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบชเบปเบกโ€‹เบ›เบฐโ€‹เบชเบฒเบ™โ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹ - เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰ เบ•เบปเบงเป€เบฅเบทเบญเบ

-mno-toc
-mtoc
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบšเปเปˆ (เป€เบฎเบฑเบ”) เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 2 เบกเบต
เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบปเปˆเบงเป‚เบฅเบเบŠเบตเป‰เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป‚เบ›เบฃเปเบเบฃเบก.

- เปœเป‰เบญเบ
-mlittle-endian
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบˆเบฐเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ.
เป‚เปเบ” endian. เป„เบ”เป‰ -mlittle-endian เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš - เปœเป‰เบญเบ.

- เปƒเบซเบเปˆ
-mbig-endian
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบเบฑเบ‡เบ•เบปเบงเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.
เป‚เปเบ” endian. เป„เบ”เป‰ -mbig-endian เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš - เปƒเบซเบเปˆ.

-mdynamic-no-pic
เปƒเบ™เบฅเบฐเบšเบปเบš Darwin เปเบฅเบฐ Mac OS X, เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰, เปเบ•เปˆเบงเปˆเบฒ
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบžเบฒเบเบ™เบญเบเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰. เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบš
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™.

-msingle-pic-base
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ PIC เป€เบ›เบฑเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เบกเบฑเบ™เบขเบนเปˆเปƒเบ™
prologue เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ. เบฅเบฐเบšเบปเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ”เป‰เบงเบเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

-mprioritize-restricted-insns=เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบšเบนโ€‹เบฅเบดโ€‹เบกเบฐโ€‹เบชเบดเบ”โ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบกเบญเบšโ€‹เบซเบกเบฒเบโ€‹เปƒเบซเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ” dispatch-slotโ€‹
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเบชเบญเบ‡. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ เบšเบนเบฅเบดเบกเบฐเบชเบดเบ” เป€เบญเบปเบฒเบกเบนเบ™เบ„เปˆเบฒ
0, 1, เบซเบผเบท 2 เบกเบญเบšเปเบฒเบเบšเปเปˆ, เบชเบนเบ‡เบชเบธเบ”, เบซเบผเบทเบชเบนเบ‡เบชเบธเบ”เบ—เบตเบชเบญเบ‡ (เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš) เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ” dispatch-slot.

-msched-costly-dep=dependence_type
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบชโ€‹เปเบกเปˆเบ™โ€‹เบ–เบทโ€‹เบงเปˆเบฒโ€‹เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เป‚เบ”เบโ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™
เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ dependence_type เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบ™เบถเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบ„เบธเบ™เบ„เปˆเบฒ:

no เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ”เป†.

เบ—เบฑเบ‡เบซเบกเบปเบ” เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบฑเบ‡เปเบปเบ”เปเบกเปˆเบ™เบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบฒเบ.

true_store_to_load
เบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบˆเบฒเบเบฎเป‰เบฒเบ™เป€เบžเบทเปˆเบญเบเบฒเบ™เป‚เบซเบผเบ”เปเบกเปˆเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ.

store_to_load
เบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เปƒเบ”เป†เบˆเบฒเบเบฎเป‰เบฒเบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เปเบกเปˆเบ™เบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบฒเบ.

เบˆเปเบฒเบ™เบงเบ™
เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบญเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเป€เบงเบฅเบฒ latency เบซเบผเบฒเบเบเบงเปˆเบฒ เบซเบผเบทเป€เบ—เบปเปˆเบฒเบเบฑเบš เบˆเปเบฒเบ™เบงเบ™ เปเบกเปˆเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ.

-minsert-sched-nops=เป‚เบ„เบ‡เบเบฒเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบฅเบฐเบšเบปเบšเบเบฒเบ™เปเบŠเบ NOP เปƒเบ”เบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เป€เบงเบฅเบฒเบ—เบตเบชเบญเบ‡
เบœเปˆเบฒเบ™. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ เป‚เบ„เบ‡เบเบฒเบ™ เป€เบญเบปเบฒเปœเบถเปˆเบ‡เปƒเบ™เบ„เปˆเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

no เบขเปˆเบฒเปƒเบชเปˆ NOPs.

pad Pad เบเบฑเบš NOPs เบเบธเปˆเบกเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เปƒเบ”เป†เบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡, เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™
เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบธเปˆเบกโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹.

regroup_exact
เปƒเบชเปˆ NOPs เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบš insns เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบธเปˆเบกเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เปƒเบชเปˆเปเบ—เป‰
NOPs เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบš insn เป„เบ›เบซเบฒเบเบธเปˆเบกเปƒเบซเบกเปˆ, เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™
เบเบฒเบ™เบˆเบฑเบ”เบเบธเปˆเบกเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”.

เบˆเปเบฒเบ™เบงเบ™
เปƒเบชเปˆ NOPs เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบš insns เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบธเปˆเบกเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เปเบŠเบ เบˆเปเบฒเบ™เบงเบ™
NOPs เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบš insn เป„เบ›เบซเบฒเบเบธเปˆเบกเปƒเบซเบกเปˆ.

-mcall-sysv
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบ—เบตเปˆ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบฎเปˆเบฒเบ‡เบชเบฐเบšเบฑเบšเป€เบ”เบทเบญเบ™เบกเบตเบ™เบฒ 1995 เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš V Application Binary Interface, PowerPC
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบชเบตเบก. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบ—เปˆเบฒเบ™เบˆเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC เป‚เบ”เบเปƒเบŠเป‰
powerpc-*-eabiaix.

-mcall-sysv-eabi
-mcall-eabi
เบฅเบฐเบšเบธเบ—เบฑเบ‡เบชเบญเบ‡ -mcall-sysv เปเบฅเบฐ -meabi เบ•เบปเบงเป€เบฅเบทเบญเบ

-mcall-sysv-noeabi
เบฅเบฐเบšเบธเบ—เบฑเบ‡เบชเบญเบ‡ -mcall-sysv เปเบฅเบฐ -mno-eabi เบ•เบปเบงเป€เบฅเบทเบญเบ

-mcall-aixdesc
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ AIX.

-mcall-linux
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš GNU เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Linux
เบฅเบฐเบšเบปเบš.

-mcall-freebsd
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™ FreeBSD
เบฅเบฐเบšเบปเบš.

-mcall-netbsd
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบˆเบฐเบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™ NetBSD
เบฅเบฐเบšเบปเบš.

-mcall-openbsd
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™ OpenBSD
เบฅเบฐเบšเบปเบš.

-maix-struct-return
เบชเบปเปˆเบ‡เบ„เบทเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ (เบ•เบฒเบกเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบ AIX ABI).

-msvr4-struct-return
เบเบฑเบšเบ„เบทเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ™เป‰เบญเบเบเบงเปˆเบฒ 8 bytes เปƒเบ™เบ—เบฐเบšเบฝเบ™ (เบ•เบฒเบกเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบ SVR4 ABI).

-mabi=เบ›เบฐเป€เบžเบ” Abi
เบ‚เบฐเบซเบเบฒเบ ABI เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบชเบฐเป€เบžเบฒเบฐ, เบซเบผเบทเป€เบญเบปเบฒเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบญเบ. เบ–เบทเบเบ•เป‰เบญเบ‡
เบ„เบธเบ™เบ„เปˆเบฒเปเบกเปˆเบ™ Altivec, no-altivec, sp, no-spe, ibmlongdouble, ieeelong double, elfv1,
elfv2.

-mabi=spe
เบ‚เบฐเบซเบเบฒเบ ABI เบ›เบฐเบˆเบธเบšเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SPE ABI. เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™ ABI เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™,
เปเบ—เบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SPE ABI เปƒเบซเป‰เบเบฑเบš ABI เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

-mabi=no-spe
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ Book-E SPE ABI เบชเปเบฒเบฅเบฑเบš ABI เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

-mabi=ibmlongdouble
เบ›เปˆเบฝเบ™ ABI เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰ IBM Extended-precision long double. เบ™เบตเป‰เปเบกเปˆเบ™ PowerPC
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ SYSV ABI 32-bit.

-mabi=ieeelongdouble
เบ›เปˆเบฝเบ™ ABI เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰ IEEE Extended-precision long double. เบ™เบตเป‰เปเบกเปˆเบ™ PowerPC
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ Linux ABI 32-bit.

-mabi=elfv1
เบ›เปˆเบฝเบ™ ABI เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰ ELFv1 ABI. เบ™เบตเป‰เปเบกเปˆเบ™ ABI เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš big-endian
PowerPC 64-เบšเบดเบ” Linux. เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ ABI เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฐเบšเบปเบšเบžเบดเป€เบชเบ”เปเบฅเบฐ
เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบ—เบฑเบšเปƒเบˆ.

-mabi=elfv2
เบ›เปˆเบฝเบ™ ABI เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบŠเป‰ ELFv2 ABI. เบ™เบตเป‰เปเบกเปˆเบ™ ABI เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ -
endian PowerPC 64-bit Linux. เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ ABI เบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบฐเบšเบปเบšเบžเบดเป€เบชเบ”
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบฅเบฐเบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบ—เบฑเบšเปƒเบˆ.

-mprototype
-mno-prototype
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบเบฑเบ‡เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เบธเบเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเปเบ›
เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปเบกเปˆเบ™ prototyped เบขเปˆเบฒเบ‡โ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, compiler เบ•เป‰เบญเบ‡เปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบเปˆเบญเบ™เบ—เบธเบเป†เบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเปเบšเบšเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบซเบผเบทเบฅเบถเบš bit 6 เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
("CR") เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบงเปˆเบฒเบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบˆเบธเบ”เบฅเบญเบ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเปเบ›. เบเบฑเบš -mprototype, เบžเบฝเบ‡เปเบ•เปˆเป‚เบ—เบซเบฒ
เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบ•เบปเบงเปเบ›เปเบšเบšเบ•เบปเป‰เบ™เปเบšเบšเบ•เบฑเป‰เบ‡ เบซเบผเบทเบฅเบถเบšเบฅเป‰เบฒเบ‡เบšเบดเบ”.

- เบŠเบดเบก
เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป‚เบกเบ”เบนเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบญเบตเป‰เบ™ sim-crt0.o เปเบฅเบฐ
เบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ libsim.a เปเบฅเบฐ libc.a. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
powerpc-*-eabisim เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

-mmvme
เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป‚เบกเบ”เบนเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบญเบตเป‰เบ™ crt0.o เปเบฅเบฐ
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ libmvme.a เปเบฅเบฐ libc.a.

- เบšเป‰เบฒ
เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป‚เบกเบ”เบนเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบญเบตเป‰เบ™ crt0.o เปเบฅเบฐ
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ libads.a เปเบฅเบฐ libc.a.

- myellowknife
เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป‚เบกเบ”เบนเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบญเบตเป‰เบ™ crt0.o เปเบฅเบฐ
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ libyk.a เปเบฅเบฐ libc.a.

-mvxworks
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบเบฑเบ‡, เบฅเบฐเบšเบธเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš a
เบฅเบฐเบšเบปเบš VxWorks.

- memb
เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบšเบดเบ” "PPC_EMB" เปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบ—เบธเบ‡ ELF เป€เบžเบทเปˆเบญเบŠเบตเป‰เบšเบญเบ.
เบ—เบตเปˆ เบญเบตเบšเบต เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเบญเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-meabi
-mno-eabi
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เป€เบฎเบฑเบ” (เบšเปเปˆ) เบเบถเบ”เบ•เบดเบ”เบเบฑเบš Embedded
Applications Binary Interface (EABI), เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡เบฅเบฐเบšเบปเบš
V.4 เบชเบฐเป€เบžเบฒเบฐ. เบเบฒเบ™เป€เบฅเบทเบญเบ -meabi เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ stack เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš 8-byte
เป€เบ‚เบ”เปเบ”เบ™, เบŸเบฑเบ‡เบŠเบฑเบ™ "__eabi" เบ–เบทเบเป€เบญเบตเป‰เบ™เบˆเบฒเบ "เบ•เบปเป‰เบ™เบ•เป" เป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก EABI,
เปเบฅเบฐ -msdata เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบ—เบฑเบ‡ "r2" เปเบฅเบฐ "r13" เป€เบžเบทเปˆเบญเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบชเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เป€เบ‚เบ”. เบเบฒเบ™เป€เบฅเบทเบญเบ -mno-eabi เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ stack เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 16-byte, เบšเปเปˆ
เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ EABI เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "เบ•เบปเป‰เบ™เบ•เป", เปเบฅเบฐ -msdata เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบžเบฝเบ‡เปเบ•เปˆเบ™เปเบฒเปƒเบŠเป‰
"r13" เป€เบžเบทเปˆเบญเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ”เบฝเบง. เป„เบ”เป‰ -meabi เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เป€เบ›เบตเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC เป‚เบ”เบเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™ powerpc*-*-eabi* เบ•เบปเบงเป€เบฅเบทเบญเบ

-msdata=eabi
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบเบฑเบ‡, เปƒเบชเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ "const" เบ—เบปเปˆเบงเป‚เบฅเบเปเบฅเบฐ
เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™ ".sdata2", เป€เบŠเบดเปˆเบ‡เบŠเบตเป‰เป„เบ›เป‚เบ”เบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "r2". เปƒเบชเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ "const" เบ—เบปเปˆเบงเป‚เบฅเบเปเบฅเบฐเบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™ ".sdata", เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™
เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "r13". เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ™เบณเปƒเบŠเป‰เป€เบ‚เบปเป‰เบฒเปƒเบ™
เบชเปˆเบงเบ™ ".sbss", เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเบ•เบดเบ”เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™ ".sdata". เป„เบ”เป‰ -msdata=eabi เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ” เบ™เบณ เปƒเบŠเป‰เบเบฑเบš - เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ— -msdata=eabi เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบ”เป‰โ€‹
- memb เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-msdata=sysv
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ‚เบญเบ‡เป‚เบฅเบเบขเบนเปˆเปƒเบ™
เบžเบฒเบเบชเปˆเบงเบ™ ".sdata", เป€เบŠเบดเปˆเบ‡เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เป‚เบ”เบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "r13". เป€เบญเบปเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ uninitialized
เบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐเบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™ ".sbss", เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเบ•เบดเบ”เบเบฑเบš ".sdata"
เบžเบฒเบเบชเปˆเบงเบ™. เป„เบ”เป‰ -msdata=sysv เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบเบฑเบšโ€‹ - เบชเบฒเบกเบฒเบ”เบเป‰เบฒเบเป„เบ”เป‰ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-msdata=เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
-msdata
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบ–เป‰เบฒ -meabi เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™
as -msdata=eabi, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš -msdata=sysv.

-msdata=เบ‚เปเป‰เบกเบนเบ™
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบงเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเป„เบงเป‰เปƒเบ™ ".sdata"
เบžเบฒเบ. เบงเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ™เบณเปƒเบŠเป‰เปƒเบ™เบชเปˆเบงเบ™ ".sbss". เบขเปˆเบฒเปƒเบŠเป‰
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "r13" เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ
เบญเบทเปˆเบ™เป† -msdata เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-msdata=เบšเปเปˆเบกเบต
-mno-sdata
เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เปƒเบซเป‰เปƒเบชเปˆเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบงเป‰เบขเบนเปˆเปƒเบ™ ".data"
เบžเบฒเบโ€‹เบชเปˆเบงเบ™, เปเบฅเบฐโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบฅเบดโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปƒเบ™โ€‹เบžเบฒเบ ".bssโ€‹"โ€‹.

-mblock-move-inline-limit=num
เปƒเบ™เปเบ–เบงเบเบฒเบ™เบเป‰เบฒเบเบšเบฅเบฑเบญเบเบ—เบฑเบ‡เปเบปเบ” (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป‚เบ—เบซเบฒ "memcpy" เบซเบผเบทเบชเบณเป€เบ™เบปเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡) เปœเป‰เบญเบเบเบงเปˆเบฒ เบซเบผเบท
เป€เบ—เบปเปˆเบฒโ€‹เบ—เบฝเบกโ€‹เบเบฑเบ™โ€‹เบเบฑเบš num เป„เบšเบ•เปŒ. เบ„เปˆเบฒเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบš num เปเบกเปˆเบ™ 32 bytes เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ 32-bit เปเบฅเบฐ 64
bytes เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ 64-bit. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบชเบฐเป€เบžเบฒเบฐเป€เบ›เบปเป‰เบฒเปเบฒเบ.

-G num
เปƒเบ™เบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เบงเบฒเบ‡เบฅเบฒเบเบเบฒเบ™เบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐ static เปœเป‰เบญเบเบเบงเปˆเบฒ เบซเบผเบทเป€เบ—เบปเปˆเบฒเบเบฑเบš num
bytes เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบท BSS เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบžเบฒเบเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบเบฐเบ•เบดเบซเบผเบท BSS.
เป‚เบ”เบเบ•เบปเบงเบขเปˆเบฒเบ‡, num เปเบกเปˆเบ™ 8. The -G num เบชเบฐเบซเบผเบฑเบšเบเบฑเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เป‚เบกเบ”เบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™ -G num เบกเบนเบ™เบ„เปˆเบฒ.

-mregnames
-mno-regnames
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰เป€เบฎเบฑเบ” (เบšเปเปˆ) เบ›เปˆเบญเบเบŠเบทเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบขเบนเปˆเปƒเบ™
เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบžเบฒเบชเบฒเบ›เบฐเบเบญเบšเป‚เบ”เบเปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบ.

-mlongcall
-mno-longcall
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบขเบนเปˆเป„เบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบ”เบปเบ™เบเบงเปˆเบฒเปเบฅเบฐเบฅเบฒเบ„เบฒเปเบžเบ‡เบเบงเปˆเบฒ
เบฅเปเบฒเบ”เบฑเบšเบเบฒเบ™เป‚เบ—เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™. เบญเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เป„เบเบเบงเปˆเบฒ 32 megabytes
(33,554,432 bytes) เบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™. เป‚เบ—เบชเบฑเป‰เบ™เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
compiler เบฎเบนเป‰เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบšเปเปˆเบชเบฒเบกเบฒเบ”เบขเบนเปˆเป„เบเป„เบ”เป‰. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡เป‚เบ”เบ
เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ "shortcall", เบซเบผเบทเป‚เบ”เบ "#pragma เป‚เบ—เบเบฒเบง(0) ".

เบšเบฒเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เบเบงเบ”เบžเบปเบšเบเบฒเบ™เป‚เบ—เบญเบญเบเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบงเปƒเบชเปˆ
เปเบกเบ‡เบงเบฑเบ™. เปƒเบ™เบฅเบฐเบšเบปเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบเบฒเบ™เป‚เบ—เบเบฒเบงเปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบŠเป‰เบฒเบฅเบปเบ‡. เป€เบ›เบฑเบ™
เบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ™เบตเป‰, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ AIX เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU เบชเปเบฒเบฅเบฑเบš PowerPC/64. เบกเบฑเบ™
เบกเบตเบเบฒเบ™เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เปƒเบชเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš PowerPC 32-bit เป€เบŠเบฑเปˆเบ™เบเบฑเบ™.

เปƒเบ™เบฅเบฐเบšเบปเบš Darwin/PPC, "#pragma longcall" เบชเป‰เบฒเบ‡ "jbsr callee, L42", เบšเบงเบเบเบฑเบš เบชเบฒเบ‚เบฒ
เป€เบเบฒเบฐ (เบฅเบฐเบซเบฑเบ”เบเบฒเบง). เบชเบญเบ‡เบ—เบตเปˆเบขเบนเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ callee เปเบฅเบฐเบชเบฒเบ‚เบฒ
เป€เบเบฒเบฐ. เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Darwin/PPC เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบขเบนเปˆเบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบชเป‰เบฒเบ‡ "bl callee"
เบ–เป‰เบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ PPC "bl" เป„เบ›เบซเบฒเบœเบนเป‰เป‚เบ—เป‚เบ”เบเบเบปเบ‡; เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบชเป‰เบฒเบ‡ "bl L42" เป€เบžเบทเปˆเบญเป‚เบ—เบซเบฒเป€เบเบฒเบฐเบชเบฒเบ‚เบฒ. เป€เบเบฒเบฐเบชเบฒเบ‚เบฒเบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบเบเบฑเบš
เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป‚เบ—เบซเบฒ; เบกเบฑเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบขเบนเปˆ 32-bit เป€เบ•เบฑเบกเบ‚เบญเบ‡ callee เปเบฅเบฐ
เป‚เบ”เบ”เป„เบ›เบซเบฒเบกเบฑเบ™.

เปƒเบ™เบฅเบฐเบšเบปเบš Mach-O (Darwin), เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบŠเบตเป‰เบšเบญเบ compiler emit เบเบฑเบšเบเบฒเบงเบชเปเบฒเบฅเบฑเบš.
เบ—เบธเบเป†เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡, เปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Darwin เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰เบซเบผเบทเบเบปเบเป€เบฅเบตเบเบกเบฑเบ™.

เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, GCC เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆเบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ longcall เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ
เบชเป‰เบฒเบ‡เบเบฒเบง.

-mtls-เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ
-mno-tls-เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ
เปเบฒเบ (เบšเปเปˆเปเบฒเบ) เป‚เบ—เบซเบฒ "__tls_get_addr" เบ”เป‰เบงเบเบเบฒเบ™เบเป‰เบฒเบเบ—เบตเปˆเบฅเบฐเบšเบธเบŸเบฑเบ‡เบŠเบฑเบ™.
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡. เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบขเปˆเบฒเบ‡เบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš TLS, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบ”เบตเบ‚เบถเป‰เบ™
เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบฅเปเบฒเบ”เบฑเบš.

- เบเบฐเบ—เบนเป‰
เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš multithreading เบเบฑเบš pthreads เบซเปเบชเบฐเปเบธเบ”. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡เบชเปเบฒเบฅเบฑเบš
เบ—เบฑเบ‡ preprocessor เปเบฅเบฐ linker.

-mrecip
-mno-recip
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™ เปเบฅเบฐเบเบฑเบ™ เปเบฅเบฐ เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ—เบตเปˆเบ•เปˆเบฒเบ‡เบเปˆเบฒเบเบ•เปˆเบฒเบ‡เป„เบ”เป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบ‚เบฑเป‰เบ™เบ•เบญเบ™ Newton-Raphson เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
เป€เบฎเบฑเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบซเบผเบทเบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบกเปเบฅเบฐเปเบšเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบˆเบธเบ”เบฅเบญเบ. เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰
เป„เบ”เป‰ -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -mrecip (เบซเบผเบทเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ -funsafe-math-optimizations,
-finite-math-only, -freciprocal-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” เปเบฅเบฐ -fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”). เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
throughput เบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบšเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบชเบนเบ‡เบเปˆเบงเบฒ throughput เบ‚เบญเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™, เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบšเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เป€เบ–เบดเบ‡ 2 ulp
(เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบ„เปˆเบฒเบ›เบตเป‰เบ™เบเบฑเบšเบ‚เบญเบ‡ 1.0 เป€เบ—เบปเปˆเบฒเบเบฑเบš 0.99999994) เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบเบ—เบตเปˆเบชเบญเบ‡เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

-mrecip=เป€เบฅเบทเบญเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เป€เบฅเบทเบญเบ เป€เบ›เบฑเบ™
เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เบณเปœเป‰เบฒเบ”เป‰เบงเบ "!" เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹:

เบ—เบฑเบ‡เบซเบกเบปเบ” เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ—เบฑเบ‡เปเบปเบ”.

Default
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™, เป€เบ—เบปเปˆเบฒเบเบฑเบš -mrecip.

none
เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -mno-recip.

div เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡เบ”เบฝเบงเปเบฅเบฐเบ„เบนเปˆ
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ.

divf
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™ เปเบฅเบฐเบเบฑเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบญเบฑเบ™เบ”เบฝเบง.

divd
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

rsqrt
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบ‚เบญเบ‡เบฎเบฒเบเบชเบญเบ‡เบ‚เป‰เบฒเบ‡เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡เบญเบฑเบ™เบ”เบฝเบง เปเบฅเบฐ
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

rsqrtf
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบ‚เบญเบ‡เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบญเบฑเบ™เบ”เบฝเบง.

rsqrtd
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบ‚เบญเบ‡เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบชเบญเบ‡เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™.

เบชเบฐเบ™เบฑเป‰เบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, -mrecip=เบ—เบฑเบ‡เปเบปเบ”,!rsqrtd เป€เบ›เบตเบ”เปƒเบŠเป‰เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบเบปเบเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "FRSQRTE", "XSRSQRTEDP", เปเบฅเบฐ "XVRSQRTEDP"
เป€เบŠเบดเปˆเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ„เบณเบ™เบงเบ™เบ‚เบญเบ‡เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

-mrecip-precision
-mno-recip-precision
เบชเบปเบกเบกเบธเบ” (เบšเปเปˆเบชเบปเบกเบกเบธเบ”) เบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เปƒเบซเป‰เบชเบนเบ‡เบเบงเปˆเบฒ,
เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเปเบกเปˆเบ™เบšเบฑเบ‡เบ„เบฑเบšเป‚เบ”เบ PowerPC ABI. เบเบฒเบ™เป€เบฅเบทเบญเบ -mcpu=power6,
-mcpu=power7 or -mcpu=power8 เป€เบฅเบทเบญเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” -mrecip-precision. เบชเบญเบ‡โ€‹เป€เบ—เบปเปˆเบฒ -
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฒเบโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เบชเบญเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ•โ€‹เปˆโ€‹เปโ€‹เบฒ
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ—เบตเปˆ converges เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฒเบก
เบ‚เบฑเป‰เบ™เบ•เบญเบ™.

-mveclibabi=เบ›เบฐเป€เบžเบ”
เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ” ABI เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบชเบณเบฅเบฑเบš vectorizing intrinsics เป‚เบ”เบเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบžเบฒเบเบ™เบญเบ.
เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™ เบ•เบฑเป‰เบ‡เบกเบฐเบซเบฒเบŠเบปเบ™, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ‚เบญเบ‡ IBM
เบซเปเบชเบฐเปเบธเบ”เบฅเบฐเบšเบปเบšเบเปˆเบญเบเป€เบฅเบฑเปˆเบ‡ (MASS) เบชเปเบฒเบฅเบฑเบš vectorizing intrinsics เป‚เบ”เบเปƒเบŠเป‰เบžเบฒเบเบ™เบญเบ
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ GCC เบ›เปˆเบญเบเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒ "acosd2", "acosf4", "acoshd2", "acosf4",
"asind2", "asinf4", "asinhd2", "asinhf4", "atan2d2", "atan2f4", "atand2", "atanf4",
"atanhd2", "atanhf4", "cbrtd2", "cbrtf4", "cosd2", "cosf4", "coshd2", "coshf4",
"erfcd2", "erfcf4", "erfd2", "erff4", "exp2d2", "exp2f4", "expd2", "expf4", "expm1d2",
"expm1f4", "hypotd2", "hypotf4", "lgammad2", "lgammaf4", "log10d2", "log10f4",
"log1pd2", "log1pf4", "log2d2", "log2f4", "logd2", "logf4", "powd2", "powf4", "sind2",
"sinf4", "sinhd2", "sinhf4", "sqrtd2", "sqrtf4", "tand2", "tanf4", "tanhd2", เปเบฅเบฐ
"tanhf4" เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš power7. เบ—เบฑเบ‡เบชเบญเบ‡ -ftree-vectorize เปเบฅเบฐ
-funsafe-math-optimizations เบ•เป‰เบญเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ™เบณ. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” MASS เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เบฅเบฐเบšเบธเปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

-mfriz
-mno-friz
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "friz" เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -funsafe-math-optimizations
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบ›เบฑเบšโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบกเบปเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ„เปˆเบฒโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™ 64-bit เปเบฅเบฐโ€‹
เบเบฑเบšเป„เบ›เบซเบฒเบˆเบธเบ”เบฅเบญเบ. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "friz" เบšเปเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบ•เบปเบงเป€เบฅเบเบˆเบธเบ”เบฅเบญเบเปƒเบซเบเปˆเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเบžเปเบ”เบตเบเบฑเบšเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก.

-mpointers-to-nested-functions
-mno-pointers-to-nested-functions
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เบ‚เบถเป‰เบ™เบ—เบฐเบšเบฝเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ„เบปเบ‡เบ—เบตเปˆ ("r11") เป€เบกเบทเปˆเบญ
เบเบฒเบ™เป‚เบ—เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบšเบปเบš AIX เปเบฅเบฐ 64-bit Linux เบšเปˆเบญเบ™เบ—เบตเปˆเบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™
เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบ 3 เบ„เปเบฒเบ—เบตเปˆเปƒเบซเป‰เบ—เบตเปˆเบขเบนเปˆเบŸเบฑเบ‡เบŠเบฑเบ™, เบ„เปˆเบฒ TOC เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "r2", เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เปƒเบ™เบ—เบฐเบšเบฝเบ™ "r11". เป„เบ”เป‰
-mpointers-to-nested-functions เป€เบ›เบตเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒ
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™เบซเบผเบทเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเปƒเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™เบ—เบตเปˆเปƒเบŠเป‰
เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ static เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -mno-pointers-to-nested-functions.

-msave-toc-เบ—เบฒเบ‡เบญเป‰เบญเบก
-mno-save-toc-indirect
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบ„เปˆเบฒ TOC เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ stack เบชเบฐเบซเบ‡เบงเบ™
เปƒเบ™ prologue เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ—เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เปƒเบ™ AIX เปเบฅเบฐ 64-bit
เบฅเบฐเบšเบปเบš Linux. เบ–เป‰เบฒเบ„เปˆเบฒ TOC เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™ prologue, เบกเบฑเบ™เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบเปˆเบญเบ™
เป‚เบ—เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰. เป„เบ”เป‰ -mno-save-toc-indirect เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mcompat-align-parm
-mno-compat-align-parm
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบœเปˆเบฒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบชเบนเบ‡เบชเบธเบ”
เบ‚เบญเบ‡ 64 เบšเบดเบ”, เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš GCC เบฎเบธเปˆเบ™เป€เบเบปเปˆเบฒ.

GCC เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒ (เบเปˆเบญเบ™เปœเป‰เบฒ 4.9.0) เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ เบšเปเปˆเป„เบ”เป‰เบˆเบฑเบ”เบงเบฒเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡.
เปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 128-bit เป€เบกเบทเปˆเบญเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ™เบฑเป‰เบ™เบกเบตเบชเบฐเบกเบฒเบŠเบดเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ 128-bit
เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ GCC เบฎเบธเปˆเบ™เบซเบผเป‰เบฒเบชเบธเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰
เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบเบฑเบšเบฎเบธเปˆเบ™เป€เบเบปเปˆเบฒเบเบงเปˆเบฒ
GCC.

เป„เบ”เป‰ -mno-compat-align-parm เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

RX เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ RX:

-m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
-m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™ "เบชเบญเบ‡" เป€เบ›เบฑเบ™ 64 bits (-m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ) เบซเบผเบท 32 bits (-m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ)
เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ. เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹ เบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบ RX เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒ 32-bit, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

-fpu
-nofpu
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ (-fpu) เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ (-nofpu) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบ RX. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ” RX600 เปเบฅเบฐเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบธเบ” RX200.

เบ„เบณเปเบ™เบฐเบ™เบณเบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเบณเบฅเบฑเบšเบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบ 32-เบšเบดเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™,
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฎเบฒเบ”เปเบง FPU เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹ เบ–เป‰เบฒ -fpu เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹ -funsafe-math-optimizations เบเบฑเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰
เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ RX FPU เบ•เบปเบงเป€เบญเบ‡เบšเปเปˆเบ›เบญเบ”เป„เบž.

-mcpu=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ RX CPU เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเบฒเบกเบ›เบฐเป€เบžเบ”เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, the
generic RX600 เปเบฅเบฐ RX200 เบŠเบธเบ”เบฎเบฒเบ”เปเบงเปเบฅเบฐเบชเบฐเป€เบžเบฒเบฐ RX610 CPU. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
RX600.

เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ RX600 เปเบฅเบฐ RX610 เปเบกเปˆเบ™เบงเปˆเบฒ RX610 เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "MVTIPL".

เป„เบ”เป‰ RX200 เบŠเบธเบ”เบšเปเปˆเบกเบตเบซเบปเบงเบซเบ™เปˆเบงเบเบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเปเบฅเบฐเบญเบทเปˆเบ™เป† -nofpu เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบ›เบฐเป€เบžเบ”เบ™เบตเป‰เบ–เบทเบเป€เบฅเบทเบญเบ.

-mbig-endian-data
-mlittle-endian-data
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™ (เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ”) เปƒเบ™เบฎเบนเบšเปเบšเบš big-endian. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-mlittle-endian-data, ie เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบš little-endian.

-msmall-data-limit=N
เบฅเบฐเบšเบธเบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ”เป€เบ›เบฑเบ™เป„เบšเบ•เปŒเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐเบชเบฐเบ–เบดเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบงเบฒเบ‡เป„เบงเป‰เป„เบ”เป‰
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบฅเบฐเป„เบงเบเบงเปˆเบฒ
code, เปเบ•เปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเปเบกเปˆเบ™เบˆเปเบฒเบเบฑเบ”เปเบฅเบฐเบกเบฑเบ™เบ‚เบถเป‰เบ™เบเบฑเบš programmer เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ
เบžเบทเป‰เบ™เบ—เบตเปˆเบšเปเปˆเบฅเบปเป‰เบ™. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™ RX เบ‚เบญเบ‡
เบ—เบฐเบšเบฝเบ™ (เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง "r13") เปเบกเปˆเบ™เบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบŠเบตเป‰เป„เบ›เบซเบฒเบžเบทเป‰เบ™เบ—เบตเปˆเบ™เบตเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™
เบกเบตเปƒเบซเป‰เปƒเบŠเป‰เป„เบ”เป‰เบ”เบปเบ™เบเบงเปˆเบฒเป‚เบ”เบ compiler. เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบŠเป‰เบฒเบฅเบปเบ‡ เปเบฅเบฐ/เบซเบผเบทเปƒเบซเบเปˆเบเบงเปˆเบฒ
เบฅเบฐเบซเบฑเบ”เบ–เป‰เบฒเบ•เบปเบงเปเบ›เบ–เบทเบเบเบปเบ”เปƒเบชเปˆ stack เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบˆเบฑเบ”เบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบ™เบตเป‰.

เบซเบกเบฒเบเป€เบซเบ”, เบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป„เบ› (เบ•เบปเบงเปเบ›เบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™) เปเบฅเบฐเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ
เบšเปเปˆเป„เบ”เป‰เปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเป‰เบญเบ™เบงเปˆเบฒเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เบžเบฒเบเบชเปˆเบงเบ™เบญเบทเปˆเบ™เป†เปƒเบ™
เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบชเบนเบ™, เป€เบŠเบดเปˆเบ‡เบ›เบดเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰. เบซเบกเบฒเบเป€เบซเบ”, เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™ (-O2 เปเบฅเบฐเบญเบทเปˆเบ™เป†) เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบˆเบญเบ‡เบ—เบฐเบšเบฝเบ™. เบกเบฑเบ™เบ‚เบถเป‰เบ™เบเบฑเบš programmer
เป€เบžเบทเปˆเบญเบ—เบปเบ”เบฅเบญเบ‡ เปเบฅเบฐเบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบกเบตเบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบซเบผเบทเบšเปเปˆ. เป€เบšเบดเปˆเบ‡
เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เบ‚เบญเบ‡โ€‹ - mpid เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบปเบงเบˆเบดเบ‡
เบ–เบทเบ•เบปเบงเบŠเบตเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ–เบทเบเป€เบฅเบทเบญเบ.

- เบŠเบดเบก
-mno-sim
เปƒเบŠเป‰ runtime simulator. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เปƒเบŠเป‰ runtime เบชเบฐเป€เบžเบฒเบฐเบเบฐเบ”เบฒเบ™ libgloss.

-mas100- syntax
-mno-as100-syntax
เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเปƒเบซเป‰เปƒเบŠเป‰ syntax เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš AS100 เบ‚เบญเบ‡ Renesas.
เป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบš. syntax เบ™เบตเป‰เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบ GAS assembler, เปเบ•เปˆเบกเบฑเบ™เบกเบตเบšเบฒเบ‡เบญเบฑเบ™
เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mmax-constant-size=N
เบฅเบฐเบšเบธเบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ”, เป€เบ›เบฑเบ™เป„เบšเบ•เปŒ, เบ‚เบญเบ‡เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบ•เบปเบงเบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ RX. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ RX เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบชเบนเบ‡เป€เบ–เบดเบ‡ 4
bytes เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบ„เปˆเบฒเบ—เบตเปˆเบเบฒเบงเบเบงเปˆเบฒเป€เบ—เบปเปˆเบฒเบเบฑเบšเบ„เปˆเบฒเบ—เบตเปˆเบเบฒเบงเบเบงเปˆเบฒ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบšเบฒเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐเบˆเปเบฒเบเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡
เบ„เบปเบ‡เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เบปเบ‡เบ—เบตเปˆเปƒเบซเบเปˆเป€เบเบตเบ™เป„เบ›เปเบกเปˆเบ™เปเบ—เบ™
เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบชเบฐเบ™เบธเบเป€เบเบตเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบญเป‰เบฒเบ‡เบญเบตเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบ—เบฒเบ‡เบญเป‰เบญเบกเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

เบ„เบธเบ™เบ„เปˆเบฒ N เบชเบฒเบกเบฒเบ”เบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ 0 เปเบฅเบฐ 4. เบ„เปˆเบฒเบ‚เบญเบ‡ 0 (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™) เบซเบผเบท 4 เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบ”เป†.

-mrelax
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. Linker relaxation เปเบกเปˆเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆ linker เบžเบฐเบเบฒเบเบฒเบก
เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเป‚เบ”เบเบเบฒเบ™เบŠเบญเบเบซเบฒเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เปˆเบฒเบ‡เป†.
เบžเบดเบเบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mint-register=N
เบฅเบฐเบšเบธเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบžเบทเปˆเบญเบชเบฐเบซเบ‡เบงเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป„เบง. เป„เบ”เป‰
เบกเบนเบ™เบ„เปˆเบฒ N เบชเบฒเบกเบฒเบ”เบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ 0 เปเบฅเบฐ 4. เบ„เปˆเบฒเบ‚เบญเบ‡ 1 เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "r13" เปเบกเปˆเบ™เบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป„เบง. เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ 2 เบชเบฐเบซเบ‡เบงเบ™ "r13" เปเบฅเบฐ
"r12". เบ„เปˆเบฒเบ‚เบญเบ‡ 3 เบชเบฐเบซเบ‡เบงเบ™ "r13", "r12" เปเบฅเบฐ "r11", เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒ 4 เบชเบฐเบซเบ‡เบงเบ™ "r13"
เบœเปˆเบฒเบ™ "r10". เบ„เปˆเบฒเบ‚เบญเบ‡ 0, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ‡เบงเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ”เป†.

-msave-acc-in-interrupts
เบฅเบฐเบšเบธเบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ„เบงเบ™เบฎเบฑเบเบชเบฒเบ—เบฐเบšเบฝเบ™เบชเบฐเบชเบปเบกเป„เบงเป‰.
เบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบ›เบปเบเบเบฐเบ•เบดเบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฐเบชเบปเบก, เบ•เบปเบงเบขเปˆเบฒเบ‡
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบนเบ™ 64-bit. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบšเปเปˆเบชเบปเบ™เปƒเบˆเป€เบ„เบทเปˆเบญเบ‡เบชเบฐเบชเบปเบก
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป„เบงเบ‚เบถเป‰เบ™.

- mpid
-mno-pid
เป€เบ›เบตเบ”เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ•เบณเปเปœเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”. เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปƒเบ”เป†
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เปเบกเปˆเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบŠเบปเบ”โ€‹เป€เบŠเบตเบโ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เบ–เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹. เบ™เบตเป‰
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเปเบฒเบ™เบปเบ”เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบเบปเบเบเป‰เบฒเบ, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบเบฑเบ‡เบขเบนเปˆเปƒเบ™เปเบซเบ™เป‰เบ™
เบ‚เปเป‰ เบˆเบณ เบเบฑเบ”เบ”เป‰เบฒเบ™เบ„เบงเบฒเบก เบˆเบณ. เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เป‚เบ”เบโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹.

เบซเบกเบฒเบเป€เบซเบ”, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบชเบฐเบซเบ‡เบงเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง "r13", เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆ
เบ—เบตเปˆเบขเบนเปˆเบ–เบฒเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบŠเป‰เบฒเบฅเบปเบ‡เปเบฅเบฐ / เบซเบผเบทเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™
เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒ.

เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบปเบงเบˆเบดเบ‡เบ—เบตเปˆเป€เบฅเบทเบญเบเปƒเบซเป‰เบ–เบทเบ—เบตเปˆเบขเบนเปˆเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบงเปˆเบฒ
เป„เบ”เป‰ -msmall-data-limit เปเบฅเบฐ / เบซเบผเบท -mint-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "r13" เปเบฅเบฐเบชเบทเบšเบ•เปเปˆเบฅเบปเบ‡เบฅเบธเปˆเบก, เบ—เบฐเบšเบฝเบ™เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบเปˆเบญเบ™
เป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡ -mint-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ - mpid เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ
-msmall-data-limit. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป€เบ›เบฑเบ™ "r8"
เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡ -mint-register=4 เปเบฅเบฐ - mpid เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเป‚เบ”เบเบœเปˆเบฒเบ™ -mno-pid
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

-mno-warn-multiple-fast-interrupts
-mwarn-multiple-fast-interrupts
เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ GCC เบญเบญเบเบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™ เบ–เป‰เบฒเบกเบฑเบ™เบžเบปเบšเบเบฒเบ™เบฅเบปเบšเบเบงเบ™เป„เบงเบซเบผเบฒเบเบเบงเปˆเบฒเปœเบถเปˆเบ‡เบญเบฑเบ™
handler เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบฅเบงเบšเบฅเบงเบกเป„เบŸเบฅเปŒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบžเบดเป€เบชเบ”
เบžเบปเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบฅเบปเบšเบเบงเบ™เป„เบง, เป€เบžเบฒเบฐเบงเปˆเบฒ RX เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ GCC เบ—เบปเปˆเบงเป„เบ› - เบ„เบปเบ‡โ€‹เบ—เบตเปˆ -reg เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบžเบดเป€เบชเบ”เบ•เปเปˆ RX
เบžเบญเบ”เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™ "เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡". เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ™เบตเป‰โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™ a
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป„เบง. GCC เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบกเบฑเบ™เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
"r10", "r11", "r12" เปเบฅเบฐ / เบซเบผเบท "r13" เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡.
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เป‚เบ”เบเบœเปˆเบฒเบ™ - เบ„เบปเบ‡โ€‹เบ—เบตเปˆ -reg or -mint-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

S / 390 เปเบฅเบฐ zSeries เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ -m เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เบชเบณเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ S/390 เปเบฅเบฐ zSeries.

-mhard-float
-msoft-float
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบ‚เบญเบ‡เบฎเบฒเบ”เปเบง เปเบฅเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเปˆเบญเบ™-
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบˆเบธเบ”โ€‹. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -msoft-float เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™ libgcc.a เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mhard-float เบ–เบทเบเบเปเบฒเบ™เบปเบ”, compiler
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™ IEEE. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mhard-dfp
-mno-hard-dfp
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง - เป€เบฅเบเบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบก - floating-point เบชเปเบฒเบฅเบฑเบš decimal-
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mno-hard-dfp เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™ libgcc.a เบกเบต
เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบฐเบ™เบดเบเบปเบก-floating-point. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mhard-dfp เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เป„เบ”เป‰
compiler เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง decimal-floating-point. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -march=z9-ec เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

-mlong-double-64
-mlong-double-128
เบชเบฐเบซเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "เบ„เบนเปˆเบเบฒเบง". เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ 64 เบšเบดเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰
เบ›เบฐเป€เบžเบ” "เบ„เบนเปˆเบเบฒเบง" เป€เบ—เบปเปˆเบฒเบเบฑเบšเบ›เบฐเป€เบžเบ” "เบ„เบนเปˆ". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mbackchain
-mno-backchain
เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ (เบšเปเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ) เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบเบญเบšเบ‚เบญเบ‡เบœเบนเป‰เป‚เบ—เป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰ backchain เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™
เบเบญเบš stack เบ‚เบญเบ‡ callee. เบญเบฒเบ”เบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบต backchain เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ debugging เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆ
เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‚เปเป‰เบกเบนเบ™เบเบญเบšเบเบฒเบ™เป‚เบ— DWARF 2. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mno-packed-stack เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบœเบปเบ™เบเบฐเบ—เบปเบš, เบ•เบปเบงเบŠเบตเป‰ backchain เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบขเบนเปˆเบ”เป‰เบฒเบ™เบฅเบธเปˆเบกเบ‚เบญเบ‡เบเบญเบš stack; เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
-mpacked-stack เปเบกเปˆเบ™เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰, backchain เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเบšเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡
96/160 byte เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ›เบฐเบซเบเบฑเบ”.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -mbackchain เปเบกเปˆเบ™เบเบฒเบ™เป‚เบ—เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ
-mmo-backchain; เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ backchain เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡ debugging เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบต
เบงเปˆเบฒเบ—เบฑเบ‡เบชเบญเบ‡เบ„เบนเปˆเปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ -mbackchain. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡
-mbackchain, -mpacked-stack เปเบฅเบฐ -mhard-float เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ linux kernel -msoft-float.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบšเปเปˆเบฎเบฑเบเบชเบฒ backchain.

-mpacked-stack
-mno-packed-stack
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡ stacked. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mno-packed-stack เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เป„เบ”เป‰
compiler เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 96/160 byte เบžเบทเป‰เบ™เบ—เบตเปˆเบ›เบฐเบซเบเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ
เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™; เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบเบฑเบ‡เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆ stack. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mpacked-stack is
เบฅเบฐเบšเบธเป„เบงเป‰, เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบ—เบถเบเบชเบฐเบฅเบฑเบญเบ”เบ•เบดเบ‡เบ–เบทเบเบซเบธเป‰เบกเบขเปˆเบฒเบ‡เบซเบ™เบฒเปเบซเบ™เป‰เบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบšเบฑเบ™เบ—เบถเบ
เบžเบทเป‰เบ™เบ—เบตเปˆ; เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบญเบทเปˆเบ™เป†, เบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบžเบทเป‰เบ™เบ—เบตเปˆ stack เบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบกเบทเปˆเบญ -mbackchain เบเบฑเบ‡เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰, เบชเบนเบ‡เบชเบธเบ”
เบ„เปเบฒเบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ›เบฐเบซเบเบฑเบ”เปเบกเปˆเบ™เปƒเบŠเป‰เบชเบฐเป€เบซเบกเบตเป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ backchain, เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบเบฑเบšเบ„เบทเบ™
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบชเบฐเป€เบซเบกเบตเบชเบญเบ‡เบ„เปเบฒเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰ backchain.

เบ•เบฒเบšเปƒเบ”เบ—เบตเปˆ backchain เบเบญเบš stack เบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ -mpacked-stack
เปเบกเปˆเบ™เบเบฒเบ™เป‚เบ—เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ -mno-packed-stack. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบšเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ FSF
เบเบฒเบ™เบ›เปˆเบญเบ GCC 2.95 เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡ S/390 เบซเบผเบท zSeries เบ—เบตเปˆเปƒเบŠเป‰ stack frame
backchain เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡ debugging. เบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป‚เบ— -
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบเบฑเบš -mpacked-stack. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡
-mbackchain, -mpacked-stack เปเบฅเบฐ -mhard-float เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ linux kernel -msoft-float.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡ stacked.

-msmall-exec
-mno-small-exec
เบชเป‰เบฒเบ‡ (เบซเบผเบทเบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "bras" เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบเบดเบ”เบˆเบฐ เบเบณ เบเปˆเบญเบ
เป‚เบ—. เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบšเปเปˆเป€เบเบตเบ™ 64k.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "basr" เปเบ—เบ™, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบกเบตเบ™เบตเป‰
เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”.

-m64
-m31
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -m31 เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš GNU/Linux เบชเปเบฒเบฅเบฑเบš S/390 ABI. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
-m64 เบ–เบทเบเบฅเบฐเบšเบธ, เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš GNU/Linux เบชเปเบฒเบฅเบฑเบš zSeries ABI. เบ™เบตเป‰
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit. เบชเปเบฒโ€‹เบฅเบฑเบš s390 เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ, เป„เบ”เป‰
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™ -m31, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ s390x เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เปƒเบ™โ€‹เบ•เบญเบ™โ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹ -m64.

-mzarch
-เป€เบกเบŠเบฒ
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mzarch เบ–เบทเบเบฅเบฐเบšเบธ, เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™
z/เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -เป€เบกเบŠเบฒ เบ–เบทเบเบฅเบฐเบšเบธ, เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบกเบตเบขเบนเปˆเปƒเบ™ ESA/390. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ -เป€เบกเบŠเบฒ เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบเบฑเบš -m64. เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก GNU/Linux เบชเปเบฒเบฅเบฑเบš S/390 ABI, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -เป€เบกเบŠเบฒ. เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก GNU/Linux เบชเปเบฒเบฅเบฑเบš zSeries ABI, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mzarch.

-mmvcle
-mno-mvcle
เบชเป‰เบฒเบ‡ (เบซเบผเบทเบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "mvcle" เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเบฅเบฑเบญเบ
เบเป‰เบฒเบ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mno-mvcle เบ–เบทเบเบฅเบฐเบšเบธ, เปƒเบซเป‰เปƒเบŠเป‰ "mvc" loop เปเบ—เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”.

-mdebug
-mno-debug
เบžเบดเบก (เบซเบผเบทเบšเปเปˆเบžเบดเบก) เบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
เป€เบžเบทเปˆเบญเบšเปเปˆเบžเบดเบกเบ‚เปเป‰เบกเบนเบ™เบ”เบตเบšเบฑเบ.

- เบกเบตเบ™เบฒ=cpu-type
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ cpu-type, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™ a
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”. เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš cpu-type เบกเบต g5, g6, z900, z990, z9-109,
z9-ec, z10, z196, zEC12, เปเบฅเบฐ z13. เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบกเบตเบขเบนเปˆเปƒเบ™ z/Architecture, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ - เบกเบตเบ™เบฒ=z900. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-march=g5.

-mtune=cpu-type
เบ›เบšเบฑ cpu-type เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบเบปเบเป€เบงเบฑเป‰เบ™ ABI
เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ cpu-type เบ„เปˆเบฒเปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบชเปเบฒเบฅเบฑเบš
- เบกเบตเบ™เบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ„เปˆเบฒเบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš - เบกเบตเบ™เบฒ.

-mtpf-trace
-mno-tpf-trace
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบžเบตเปˆเบก (เบšเปเปˆเป€เบžเบตเปˆเบก) เปƒเบ™เบชเบฒเบ‚เบฒเบชเบฐเป€เบžเบฒเบฐ TPF OS เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ›เบฐเบˆเบณ
เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบˆเบฐโ€‹เบ›เบดเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™, เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™
TPF OS.

-mfused-madd
-mno-fused-madd
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ„เบนเบ™ เปเบฅเบฐเบชเบฐเบชเบปเบก
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบฎเบฒเบ”โ€‹เปเบงโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mwarn-framesize=เบ‚เบญเบšเบ‚เบฐเปœเบฒเบ”
เบชเบปเปˆเบ‡เบ„เบณเป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบเบตเบ™เบ‚เบฐเปœเบฒเบ”เบเบญเบšเบ—เบตเปˆเบเบณเบ™เบปเบ”. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเปˆเบ™. เบกเบฑเบ™
เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ” stack overflow. เบกเบฑเบ™โ€‹เปเบกเปˆเบ™
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ” stack เบˆเปเบฒเบเบฑเบ”เป€เบŠเบฑเปˆเบ™ linux kernel.

-mwar-dynamicstack
เบชเบปเปˆเบ‡เบชเบฝเบ‡เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ "alloca" เบซเบผเบทเปƒเบŠเป‰ arrays เบ‚เบฐเบซเบ™เบฒเบ”เป„เบ”เบ™เบฒเบกเบดเบ. เบ™เบตเป‰
เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบšเปเปˆเบ”เบตเบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ” stack เบˆเปเบฒเบเบฑเบ”.

-mstack-guard=stack-guard
-mstack-size=เบ‚เบฐเปœเบฒเบ” stack
เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰ S/390 back end เบ›เปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™ prologue เบ—เบตเปˆเบเบฐเบ•เบธเป‰เบ™เบ”เบฑเบเบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ” stack เปเบกเปˆเบ™ stack-guard bytes เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡
เบ‚เบฐเปœเบฒเบ” stack (เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒ stack เปƒเบ™ S/390 เป€เบ•เบตเบšเป‚เบ•เบฅเบปเบ‡). เบ–เป‰เบฒ stack-guard
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡ 2 เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบเบญเบšโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เป„เบ”เป‰โ€‹
เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเป€เบฅเบทเบญเบ. เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบŠเปˆเบงเบ debugging stack
เบšเบฑเบ™เบซเบฒ overflow. เบฅเบฐเบซเบฑเบ” emitted เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบฝเบ‡เปเบ•เปˆ overhead เบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปเบฅเบฐ
เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบŠเบก. เบ„เปˆเบฒเบ—เบตเปˆเปƒเบซเป‰เบกเบฒเบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบญเบณเบ™เบฒเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ 2 เปเบฅเบฐ เบ‚เบฐเปœเบฒเบ” stack เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เปƒเบซเบเปˆโ€‹เบเบงเปˆเบฒ stack-guard เบšเปเปˆเป€เบเบตเบ™ 64k. เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบžเบดเป€เบชเบ”
เบฅเบฐเบซเบฑเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบงเปˆเบฒ stack เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ„เปˆเบฒ
เบกเบญเบšโ€‹เปƒเบซเป‰โ€‹เป‚เบ”เบ เบ‚เบฐเปœเบฒเบ” stack. เป„เบ”เป‰ stack-guard เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹
เบ‚เบฐเปœเบฒเบ” stack.

-mhotpatch=เบเปˆเบญเบ™เป€เบ„เบดเปˆเบ‡เบ„เบณเบชเบฑเบš,เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เป€เบ„เบดเปˆเบ‡โ€‹เบซเบ™เบถเปˆเบ‡โ€‹
เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบ hotpatch เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, prologue เบŸเบฑเบ‡เบŠเบฑเบ™ "hot-patching" เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ›เป‰เบฒเบ funtion เปเบกเปˆเบ™ prepended เบเบฑเบšเปƒเบซเป‰
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ NOP เบชเบญเบ‡เป„เบšเป„เบš (เบเปˆเบญเบ™เป€เบ„เบดเปˆเบ‡เบ„เบณเบชเบฑเบš, เบชเบนเบ‡เบชเบธเบ” 1000000). เบซเบผเบฑเบ‡เบˆเบฒเบ
เบ›เป‰เบฒเบเบŠเบทเปˆ, 2 * เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เป€เบ„เบดเปˆเบ‡โ€‹เบซเบ™เบถเปˆเบ‡โ€‹ bytes เบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบ, เป‚เบ”เบเปƒเบŠเป‰ NOP เบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เป€เบŠเบฑเปˆเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ (เบชเบนเบ‡เบชเบธเบ” 1000000).

เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡ argument เป€เบ›เบฑเบ™เบชเบนเบ™, hotpatching เบˆเบฐเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ”เป‰เบงเบเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "hotpatch".

เบœเบฐเบฅเบดเบ”เปเบ™เบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบฐเปเบ™เบ™:

-เป€เบกเบš
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบš big-endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mel
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบš little-endian.

-mnhwloop
เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "bcnz".

-muls
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™ เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ.

-mmac
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ„เบนเบ™เบชเบฐเบชเบปเบก. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบ„เบฐโ€‹เปเบ™เบ™ 5
เบฅเบฐเบšเบธ SCORE5 เป€เบ›เบฑเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

- เบ„เบฐเปเบ™เบ™ 5u
เบฅเบฐเบšเบธ SCORE5U เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

- เบ„เบฐโ€‹เปเบ™เบ™ 7
เบฅเบฐเบšเบธ SCORE7 เป€เบ›เบฑเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเป€เบ›เบปเป‰เบฒเปเบฒเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mscore7d
เบฅเบฐเบšเบธ SCORE7D เป€เบ›เบฑเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเป€เบ›เบปเป‰เบฒเปเบฒเบ.

SH เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” SHโ€‹:

-m1 เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH1.

-m2 เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH2.

-m2e
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH2e.

-m2a-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH2a เป‚เบ”เบเบšเปเปˆเบกเบต FPU, เบซเบผเบทเบชเปเบฒเบฅเบฑเบš SH2a-FPU เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.
เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-m2a-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH2a-FPU, เปƒเบ™เปเบšเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

-m2a-เบ”เบฝเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH2a-FPU เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง
เบฎเบนเบšเปเบšเบšเป‚เบ”เบเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™.

-m2a
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH2a-FPU เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบฎเบนเบšเปเบšเบšเป‚เบ”เบเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™.

-m3 เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH3.

-m3e
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH3e.

-m4-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4 เป‚เบ”เบเบšเปเปˆเบกเบตเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบ.

-m4-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4 เบ”เป‰เบงเบเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆเบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
เป€เบฅเบเป€เบฅเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™.

-m4-เบ”เบฝเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4 เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

-m4 เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4.

-m4-100
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-100.

-m4-100-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-100 เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-m4-100-เบ”เบฝเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-100 เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

-m4-100-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-100 เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™ double-precision floating-point
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

-m4-200
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-200.

-m4-200-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-200 เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

-m4-200-เบ”เบฝเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-200 เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™

-m4-200-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-200 เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™ double-precision floating-point
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

-m4-300
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-300.

-m4-300-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-300 เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

-m4-300-เบ”เบฝเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-300 เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™ double-precision floating-point
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

-m4-300-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-300 เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™ double-precision floating-point
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

-m4-340
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-340 (เบšเปเปˆเบกเบต MMU, เบšเปเปˆเบกเบต FPU).

-m4-500
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4-500 (เบšเปเปˆเบกเบต FPU). เบœเปˆเบฒเบ™ -isa=sh4-nofpu เบเบฑเบšเบœเบนเป‰เบ›เบฐเบเบญเบš.

-m4a-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4al-dsp, เบซเบผเบทเบชเปเบฒเบฅเบฑเบš SH4a เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบˆเบธเบ”เบฅเบญเบ.
เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-m4a-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4a, เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™ double-precision floating-point
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

-m4a-เบ”เบฝเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4a เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง
เบฎเบนเบšเปเบšเบšเป‚เบ”เบเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™.

-m4a
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4a.

-m4al
เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -m4a-nofpu, เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เบœเปˆเบฒเบ™ implicitly -dsp เบเบฑเบšเบœเบนเป‰เบ›เบฐเบเบญเบš. GCC
เบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ DSP เปƒเบ”เป†เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰.

-m5-32media
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” 32-bit เบชเปเบฒเบฅเบฑเบš SHmedia.

-m5-32media-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” 32-bit เบชเปเบฒเบฅเบฑเบš SHmedia เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

-m5-64media
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” 64-bit เบชเปเบฒเบฅเบฑเบš SHmedia.

-m5-64media-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” 64-bit เบชเปเบฒเบฅเบฑเบš SHmedia เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

-m5-เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SHcompact.

-m5-compact-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SHcompact เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mb เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เบฎเบนเบšเปเบšเบšเปƒเบซเบเปˆ.

-ml เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เป‚เบซเบกเบ” little-endian.

-mdalign
เบˆเบฑเบ”เบฎเบฝเบ‡เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบขเบนเปˆเบ—เบตเปˆเบ‚เบญเบšเป€เบ‚เบ” 64-เบšเบดเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™,
เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ„เบทเบ™เปƒเบซเบกเปˆ
เบกเบฑเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบเบฑเบš -mdalign.

-mrelax
เบซเบเปเป‰เบšเบฒเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป€เบกเบทเปˆเบญเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰; เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
- เบœเปˆเบญเบ™เบ„เบฒเบ.

-migtable
เปƒเบŠเป‰เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบ 32-bit เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ "เบชเบฐเบซเบผเบฑเบš". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ 16-bit offsets.

- เบšเบดเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบšเบดเบ”เปƒเบ™ SH2A.

-mfmovd
เป€เบ›เบตเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "fmovd". เบเบงเบ”เบชเบญเบš -mdalign เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡.

-mrenesas
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ Renesas.

-mno-renesas
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš GCC เบเปˆเบญเบ™เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒ Renesas
เบกเบตเบขเบนเปˆ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท SH.

-mnomacsave
เบซเบกเบฒเบ "MAC" เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ›เบฑเบ™ call-clobbered, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ -mrenesas เปเบกเปˆเบ™เปƒเบซเป‰.

-เบกเบตเปˆ
-mno-ieee
เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก IEEE เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบฅเบญเบ, เป€เบŠเบดเปˆเบ‡เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™
เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบšเปเปˆเบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -เบกเบตเปˆ is
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ—เบฒเบ‡เบญเป‰เบญเบก. เบ–เป‰เบฒ -ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ -mno-ieee เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป‚เบ”เบโ€‹เบ—เบฒเบ‡โ€‹เบเบฒเบ™โ€‹,
เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเป„เบงเบเบงเปˆเบฒ เปเบฅเบฐเบชเบฐเป€เปเบตเบžเบฒเบšเปœเป‰เบญเบเบเบงเปˆเบฒ. เป„เบ”เป‰
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ implcit เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธ -เบกเบตเปˆ or -mno-ieee.

-minline-ic_invalidate
เบฅเบฐเบซเบฑเบ”เปƒเบ™เปเบ–เบงเป€เบžเบทเปˆเบญเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™ cache เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™
trampolines. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ–เป‰เบฒ -musermode เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เปเบฅเบฐเป€เบฅเบทเบญเบ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” (เบ•เบปเบงเบขเปˆเบฒเบ‡: -m4) เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "icbi".
เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฅเบทเบญเบเบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰ "icbi"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบฅเบฐ -musermode เบšเปเปˆเบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰, เบฅเบฐเบซเบฑเบ” inlined manipulates เป„เบ”เป‰
instruction cache address array เป‚เบ”เบเบเบปเบ‡เบเบฑเบš associative write. เบ™เบตเป‰เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ
เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบซเบกเบ”เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™, เปเบ•เปˆเบกเบฑเบ™เบเบฑเบ‡เบฅเบปเป‰เบกเป€เบซเบฅเบงเบ–เป‰เบฒเบชเบฒเบ cache
เปเบœเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™ TLB เปเบฅเบฐเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเปเบœเบ™เบ—เบตเปˆ.

- misize
เบ–เบดเป‰เบกเบ‚เบฐเบซเบ™เบฒเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบš.

- เบ‚เบปเบง
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบกเบฑเบ™ pads เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบซเบผเบฒเบเบซเบผเบฒเบเบ‚เบญเบ‡ 4 bytes, เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™
เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš SH ABI.

-matomic-model=เบฎเบนเบšเปเบšเบš
เบเบณเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน เปเบฅเบฐเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เบ—เบตเปˆเปเบเบเบญเบญเบ
เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ. เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเป€เบšเบดเปˆเบ‡ __เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เป„เบ”เป‰
เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ•เบปเบงโ€‹เปเบšเบšโ€‹เปเบฅเบฐโ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

none
เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡ compiler เบ—เบตเปˆเบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปเบฅเบฐ emit เบซเปเบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเป€เบ›เบปเป‰เบฒเปเบฒเบเบšเปเปˆเปเบกเปˆเบ™ "sh*-*-linux*".

soft-gusa
เบชเป‰เบฒเบ‡ GNU/Linux เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบŠเบญเบšเปเบง gUSA เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.
เปƒเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹. เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบˆเบฒเบ
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡ / เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เปเบฅเบฐโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบš SH3 * เปเบฅเบฐโ€‹
SH4* เบฅเบฐเบšเบปเบšเบซเบผเบฑเบเบ”เบฝเบง. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™
"sh*-*-linux*" เปเบฅเบฐ SH3* เบซเบผเบท SH4*. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™ SH4A, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบ‡
เบšเบฒเบ‡เบชเปˆเบงเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน "movli.l" เปเบฅเบฐ "movco.l" เป€เบžเบทเปˆเบญ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ เบขเปˆเบฒเบ‡เป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ” เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

soft-tcb
เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบญเบฐเบ•เบญเบกเบ‚เบญเบ‡เบŠเบญเบšเปเบงเบ—เบตเปˆเปƒเบŠเป‰เบ•เบปเบงเปเบ›เปƒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฐเบ—เบนเป‰
เบ•เบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบš gUSA เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ SH1*
เปเบฅเบฐเป€เบ›เบปเป‰เบฒเปเบฒเบ SH2*. เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบˆเบฒเบ
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡ / เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เปเบฅเบฐโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบฅเบฐเบšเบปเบšเบซเบผเบฑเบเบ”เบฝเบง. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ™เบตเป‰, เป„เบ”เป‰ gbr-offset= เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เบฅเบฐเบšเบธเป„เบงเป‰เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™.

soft-imask
เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบŠเบญเบšเปเบงเบ—เบตเปˆเบ›เบดเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบŠเบปเปˆเบงเบ„เบฒเบงเป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ
"SR.IMASK = 1111". เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเป‚เบ„เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ”เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”
เปเบฅเบฐเปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบซเบผเบฑเบเบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เบˆเบฒเบโ€‹
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡ / เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ "sh*-*-linux*" เปเบฅเบฐ SH1* เบซเบผเบท SH2*.

hard-llcs
เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "movli.l" เปเบฅเบฐ "movco.l"
เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™ SH4A เปเบฅเบฐเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบซเบผเบฒเบเปเบเบ™.
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆ 32 bit atomic variables เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ 8
เบซเบผเบทเบ•เบปเบงเปเบ› 16 เบšเบดเบ”เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ 32 เบšเบดเบ”. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบเบฑเบšโ€‹เบ•เบปเบงโ€‹เปเบšเบšโ€‹เบ›เบฐโ€‹เบฅเปเบฒโ€‹เบกเบฐโ€‹เบ™เบนโ€‹เบŠเบญเบšโ€‹เปเบงโ€‹เบญเบทเปˆเบ™เป† interrupt / เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹
เบฅเบฐเบšเบปเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ–เป‰เบฒเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฐเบšเบปเบš SH4A. เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เบˆเบฒเบโ€‹
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡ / เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ™เบตเป‰โ€‹.

gbr-offset=
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเปƒเบ™เป„เบšเบ•เปŒเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เปƒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฐเบ—เบนเป‰
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ•เบฑเบ™เบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
soft-tcb เบฎเบนเบšเปเบšเบšเป„เบ”เป‰เบ–เบทเบเป€เบฅเบทเบญเบ. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบšเบญเบทเปˆเบ™, เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.
เบ„เปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบˆเบณเบ™เบงเบ™เบ„เบนเบ™เบ„เบนเบ™เบ‚เบญเบ‡เบชเบตเปˆ เปเบฅเบฐเบขเบนเปˆเปƒเบ™เป„เบฅเบเบฐ 0-1020.

เบขเปˆเบฒเบ‡เป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบšเบšเบ›เบฐเบชเบปเบกเบ‚เบญเบ‡เบญเบฐเบ•เบญเบกเบซเบผเบฒเบเปเบšเบš, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰, เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ‚เบญเบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰
เบ•เบปเบงเปเบšเบšเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mtas
เบชเป‰เบฒเบ‡ "tas.b" opcode เบชเปเบฒเบฅเบฑเบš "__atomic_test_and_set". เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบ‚เบถเป‰เบ™เบเบฑเบš
เบเบฒเบ™เบเบณเบ™เบปเบ”เบ„เปˆเบฒเบฎเบฒเบ”เปเบง เปเบฅเบฐเบŠเบญเบšเปเบงเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบฅเบงเบก
เบญเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบ operand cache line flushes เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เป‚เบ”เบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "tas.b". เบชเบธเบ”
เป‚เบ›เป€เบŠเบ”เป€เบŠเบต SH4A multi-core เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "tas.b" เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบกเบฑเบ™
เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เป€เบชเบเบซเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ cache เบšเบฒเบ‡.

- เบกเบฑเบ
เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡, เบ›เปˆเบญเบเบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เป‚เบ—เป‚เบ”เบเปƒเบŠเป‰ Global Offset
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™.

-musermode
-mno-usermode
เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ (เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰) เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบซเบกเบ”เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”. เบเบฒเบ™เบฅเบฐเบšเบธ
-musermode เบเบฑเบ‡เปเบฒเบเป€เบ–เบดเบ‡ -mno-inline-ic_invalidate เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ” inline เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ
เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹. -musermode เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ "sh*-*-linux*". เบ–เป‰เบฒ
เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ SH1* เบซเบผเบท SH2* -musermode เบšเปเปˆเบกเบตเบœเบปเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบšเปเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบœเบนเป‰เปƒเบŠเป‰.

-multcost=เบˆเปเบฒเบ™เบงเบ™
เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบžเบทเปˆเบญเบชเบปเบกเบกเบธเบ”เบชเปเบฒเบฅเบฑเบš insn เบ„เบนเบ™.

-mdiv=เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”
เบเปเบฒเบ™เบปเบ”เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เปเบšเปˆเบ‡เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก. เบชเปเบฒเบฅเบฑเบš SHmedia
เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ” เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™:

fp เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบขเบนเปˆเปƒเบ™เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เบ™เบตเป‰เบกเบต latency เบชเบนเบ‡เบซเบผเบฒเบ, เปเบ•เปˆเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™
เบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบตเบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบกเบตเบžเบฝเบ‡เบžเป
easy-exploitable ILP เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ compiler เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ‚เบญเบ‡เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบžเป‰เบญเบกเบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบญเบทเปˆเบ™เป†. เบเบฒเบ™เปเบšเปˆเบ‡เบชเบนเบ™เบชเบฒเป€เบซเบ” เบ
เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบธเบ”เบฅเบญเบ.

เป€เบŠเบตเบ™ เปƒเบŠเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเป€เบžเบทเปˆเบญเบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เบ›เบตเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเบซเบฒเบ™, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
เบ„เบนเบ™เป€เบ‡เบดเบ™เบ›เบฑเบ™เบœเบปเบ™เบ”เป‰เบงเบเบเบฒเบ™เบ›เบตเป‰เบ™. เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ CSE เปเบฅเบฐ hoisting
เบ‚เบญเบ‡เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™. เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบชเบนเบ™โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹,
เปเบ•เปˆเบšเปเปˆเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ.

inv:minlat
variant เบ‚เบญเบ‡ เป€เบŠเบตเบ™ เบšเปˆเบญเบ™เบ—เบตเปˆ, เบ–เป‰เบฒเบšเปเปˆเบกเบต CSE เบซเบผเบทเป‚เบญเบเบฒเบ” hoisting เป„เบ”เป‰เบ–เบทเบเบžเบปเบšเป€เบซเบฑเบ™, เบซเบผเบทเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™ hoisted เบเบฑเบšโ€‹เบชเบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹, เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบชเบธเบ”โ€‹เบ—เป‰เบฒเบโ€‹เบ‚เบญเบ‡โ€‹
เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปเบšเบšเบ›เบตเป‰เบ™เบเบฑเบšเปเบกเปˆเบ™ intertwined เบเบฑเบšเบ•เบปเบงเบ„เบนเบ™เบชเบธเบ”เบ—เป‰เบฒเบเป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบฅเบงเบก
latency, เปƒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบ, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบชเบฐเป€เบซเบ™เบตเบซเบ™เป‰เบญเบ
เบเปเบฒเบ™เบปเบ”เป‚เบญเบเบฒเบ”เบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบญเบทเปˆเบ™เป†.

เป‚เบ—
เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ inv:minlat เบเบธเบ”โ€‹เบ—เบฐโ€‹เบชเบฒเบ”. เบ™เบตเป‰
เปƒเบซเป‰เบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก "m5-*media-nofpu".

เป‚เบ— 2
เปƒเบŠเป‰เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ”เบฝเบงเบเบฑเบ™, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ a
เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบญเบเบซเบฒเป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เป„เบงเป‰เปเบฅเป‰เบง, เป€เบŠเบดเปˆเบ‡เป€เบ›เบตเบ”เป€เบœเบตเบเบเบฒเบ™เป‚เบซเบผเบ”เบ•เบปเบงเบŠเบตเป‰
เบเบฑเบš CSE เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบฑเบ” hoisting.

inv: เป‚เบ—
inv:เป‚เบ—2
inv:fp
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เป€เบŠเบตเบ™ algorithm เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เปเบ•เปˆเบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ
unoptimized, เบเบฑเบšเป„เบ› เป‚เบ—, เป‚เบ— 2, เบซเบผเบท fp เบเบธเบ”เบ—เบฐเบชเบฒเบ”, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ
เบœเบปเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ„เบฝเบ‡โ€‹เบ—เบตเปˆโ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบ•เบดเบ”โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เป‚เบ”เบโ€‹เบชเบนเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เปเบเบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบซเบฒเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™ hoisted เบญเบญเบ,
เปเบ•เปˆเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบขเบนเปˆ. เบเบฒเบ™เบ›เบฐเบชเบปเบกเบเบฑเบš
เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ™เบตเป‰, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบซเบผเบทเบเบฒเบ™เป‚เบ—เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰.

inv20u
inv20l
เบ•เบปเบงเปเบ›เบ‚เบญเบ‡ inv:minlat เบเบธเบ”โ€‹เบ—เบฐโ€‹เบชเบฒเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปเบšเบšเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเปเบกเปˆเบ™
เบšเปเปˆเป„เบ”เป‰เปเบเบเบญเบญเบเบˆเบฒเบเบ—เบฐเบงเบตเบ„เบนเบ™, เบžเบงเบเป€เบ‚เบปเบฒเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบ‡เบดเบ™เบ›เบฑเบ™เบœเบปเบ™เบžเปเบ”เบต
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ 20 bits (เบšเบงเบเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰) เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบžเบทเปˆเบญเบ‚เป‰เบฒเบกเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰; เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเป‰เบฒเบฅเบปเบ‡เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เป€เบ‡เบดเบ™เบ›เบฑเบ™เบœเบปเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.
inv20u เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เป€เบ‡เบดเบ™เบ›เบฑเบ™เบœเบปเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰, เปเบฅเบฐ inv20l
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบญเบทเปˆเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ SHmedia เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ” เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™:

เป‚เบ—-div1
เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ„เบณเบชเบฑเปˆเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ”เบฝเบง "div1" เบซเบฒ
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™. เบเบฒเบ™เปเบšเปˆเบ‡เป‚เบ”เบเบชเบนเบ™เบ„เบดเบ”เป„เบฅเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบฅเบฐเบšเบธเปเบฅเบฐเป€เบฎเบฑเบ”
เบšเปเปˆเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบปเบเป€เบงเบฑเป‰เบ™ SH4, SH2A เปเบฅเบฐ SHcompact.

เป‚เบ—-fp
เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปœเป‰เบฒเบ—เบตเปˆเปƒเบ™เบเบฒเบ™เป€เบฅเบทเปˆเบญเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบˆเบธเบ”. เบเบฒเบ™เปเบšเปˆเบ‡เป€เบ›เบฑเบ™เบชเบนเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบธเบ”เบฅเบญเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเปเบฒเบฅเบฑเบš SHcompact เบเบฑเบš FPU. เบเบฒเบ™เบฅเบฐเบšเบธเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ FPU เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ "call-div1".

เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡โ€‹เป‚เบ—โ€‹
เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบญเบเบซเบฒเบชเบณเบฅเบฑเบšเบ•เบปเบงเบซเบฒเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ เปเบฅเบฐ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "div1" เบ—เบตเปˆเบกเบตเบเบฒเบ™เบˆเปเบฒเปเบ™เบเบเปเบฅเบฐเบ™เบตเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเปˆเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เปเบšเปˆเบ‡เป‚เบ”เบเบชเบนเบ™
เบ„เบดเบ”เป„เบฅเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เปเบฅเบฐเบšเปเปˆเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ SH4.
เบเบฒเบ™เบฅเบฐเบšเบธเบญเบฑเบ™เบ™เบตเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ
เบเบฑเบš "call-div1".

เป€เบกเบทเปˆเบญเบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธ, เบเบธเบ”เบ—เบฐเบชเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบฅเบทเบญเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ
เปƒเบ™โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹. เบชเปเบฒเบฅเบฑเบš SH2A เบเบธเบ”เบ—เบฐเบชเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ "divs" เปเบฅเบฐ "divu"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”.

-maccumulate-outgoing-args
เบˆเบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบญเบญเบเบกเบฒเปƒเบ™ prologue เบŸเบฑเบ‡เบŠเบฑเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบกเบฒเบ™
เป‚เบ—เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบตเบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”. เบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ unwinding
เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ›เปˆเบฝเบ™ stack frame เบ›เบฐเบกเบฒเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚.

-mdivsi3_libfunc=เบŠเบทเปˆ
เบเปเบฒเบ™เบปเบ”เบŠเบทเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡ 32-bit เป€เบŠเบฑเบ™เบเบฑเบš เบŠเบทเปˆ. เบ™เบตเป‰
เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบŠเบทเปˆเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ เป‚เบ— เปเบฅเบฐ inv: เป‚เบ— เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™, เปเบฅเบฐ
compiler เบเบฑเบ‡เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบŠเบธเบ”เบ”เบฝเบงเบเบฑเบ™เบ‚เบญเบ‡ input/output/clobbered registers เบ„เบทเบเบฑเบšเบงเปˆเบฒเบ™เบตเป‰
เบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบซเป‰เบกเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ
เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบ—เบฐเบšเบฝเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก kernel
เบฅเบฐเบซเบฑเบ”. เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบชเบญเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบเบเบญเบญเบเป‚เบ”เบ dash. เบซเบผเบฒเบ
เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเบšเบธเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

-mindexed-addressing
เป€เบ›เบตเบ”เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เบชเบฐเบ™เบตเบชเปเบฒเบฅเบฑเบš SHmedia32/SHcompact. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆ
เบ›เบญเบ”เป„เบžเบ–เป‰เบฒเบฎเบฒเบ”เปเบง เปเบฅเบฐ/เบซเบผเบท OS เบ›เบฐเบ•เบดเบšเบฑเบ” 32-bit wrap-around semantics เบชเปเบฒเบฅเบฑเบšเบ”เบฑเบ”เบชเบฐเบ™เบต.
เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆ. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบต 64-bit
MMU, เป€เบŠเบดเปˆเบ‡ OS เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ—เบตเปˆเบขเบนเปˆ 32-bit, เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบšเปเปˆเบกเบตเบฎเบฒเบ”เปเบงเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบงเบดเบ—เบตเบ™เบตเป‰เบซเบผเบทเบงเบดเบ—เบตเบญเบทเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เบชเบฐเบ™เบตเบ›เบญเบ”เป„เบž
เป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™ 32-bit ABI, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-indexed-addressing.

-mgettrcost=เบˆเปเบฒเบ™เบงเบ™
เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบชเบปเบกเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "gettr" เบเบฑเบš เบˆเปเบฒเบ™เบงเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2 เบ–เป‰เบฒ
-mpt-เปเบเป‰เป„เบ‚ เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰, 100 เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™.

-mpt-เปเบเป‰เป„เบ‚
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "pt*" เบˆเบฐเบšเปเปˆเบ•เบดเบ”. เบ™เบตเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ,
เปเบ•เปˆเบšเปเปˆเบ›เบญเบ”เป„เบžเปƒเบ™เบฎเบฒเบ”เปเบงเบ›เบฐเบˆเบธเบšเบฑเบ™. เบ™เบดเบเบฒเบกเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบงเบปเป‰เบฒเบงเปˆเบฒ
"ptabs" เปเบฅเบฐ "ptrel" เปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ anded เบเบฑเบš 3 เปเบกเปˆเบ™ 3. เบ™เบตเป‰เบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเบšเปเปˆเบ•เบฑเป‰เบ‡เปƒเบˆเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบšเปเปˆเบ›เบญเบ”เป„เบžเปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเปˆเบญเบ™ a
เบชเบฒเบ‚เบฒ, เบซเบผเบทเบเบปเบเบžเบงเบเบกเบฑเบ™เบญเบญเบเบˆเบฒเบเบงเบปเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, "__do_global_ctors", เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡
libgcc เบ—เบตเปˆเป€เบญเบตเป‰เบ™เปƒเบŠเป‰ constructors เปƒเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ„เบ‡เบเบฒเบ™, เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเป€เบ›เบฑเบ™
เบ‚เบตเบ”เบˆเบณเบเบฑเบ”เบ”เป‰เบงเบ -1. เบเบฑเบš -mpt-เปเบเป‰เป„เบ‚ เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, "ptabs" เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบเปˆเบญเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš
เบ•เป‰เบฒเบ™ -1. เบ™เบฑเป‰เบ™ เปเบฒเบ เบ„เบงเบฒเบกเบงเปˆเบฒเบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบฑเบ‡ เปเบปเบ” เปเบฅเปˆเบ™เป„เบงเบซเบผเบฒเบ, เปเบ•เปˆเป€เบกเบทเปˆเบญ
loop เบกเบฒเบฎเบญเบ”เบ—เป‰เบฒเบเบฅเบฒเบเบเบฒเบ™, เป‚เบ›เบฃเปเบเบฃเบกเบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เป€เบžเบฒเบฐเบงเปˆเบฒ "ptabs" เป‚เบซเบฅเบ” -1 เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ a
เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ›เบญเบ”เป„เบžเบชเปเบฒเบฅเบฑเบšเบฎเบฒเบ”เปเบงเปƒเบ”เป†เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ›เบฐเบˆเบธเบšเบฑเบ™
เบชเบฐเป€เบžเบฒเบฐ, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-pt-เปเบเป‰เป„เบ‚. เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบเบฑเบš
-mgettrcost, -mno-pt-เปเบเป‰เป„เบ‚ เบเบฑเบ‡เปเบฒเบเป€เบ–เบดเบ‡ -mgettrcost=100; เบ™เบตเป‰เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เปเบฒเบกเบฐเบ”เบฒ.

-minvalid-เบชเบฑเบ™เบเบฒเบฅเบฑเบ
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบชเบฑเบ™เบเบฒเบฅเบฑเบเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบณเบกเบฐเบ”เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ„เบญเบกเบžเบตเบงเป€เบŠเบต
เบ–เบทเบเบ•เป‰เบญเบ‡เบชเบฐเป€เปเบตเปƒเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ”เป‰เบงเบ "movi"/"shori"/"ptabs" เบซเบผเบท "movi"/"shori"/"ptrel", เปเบ•เปˆ.
เบ”เป‰เบงเบ tricks assembler เปเบฅเบฐ / เบซเบผเบท linker เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”
"ptabs" เบซเบผเบท "ptrel" เป€เบžเบทเปˆเบญเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -mno-pt-เปเบเป‰เป„เบ‚ เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบœเบปเบ™เบเบฐเบ—เบปเบš. เบกเบฑเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ CSE เบ‚เป‰เบฒเบกเบžเบทเป‰เบ™เบ–เบฒเบ™, hoisting เปเบฅเบฐเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ
เป‚เบซเบผเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-invalid-เบชเบฑเบ™เบเบฒเบฅเบฑเบ.

-mbranch-cost=num
เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™ num เป€เบžเบทเปˆเบญเป€เบ›เบฑเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เบชเบญเบ™เบชเบฒเบ‚เบฒ. เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler
เบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบฒเบ‚เบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ–เป‰เบฒเบšเปเปˆเบฅเบฐเบšเบธเบ„เปˆเบฒเปเบกเปˆเบ™
เป€เบฅเบทเบญเบเป‚เบ”เบเบญเบตเบ‡เบ•เบฒเบกเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš.

-mzdcbranch
-mno-zdcbranch
เบชเบปเบกเบกเบธเบ” (เบšเปเปˆเบชเบปเบกเบกเบธเบ”) เบงเปˆเบฒเบชเบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ "bt" เปเบฅเบฐ
"bf" เปเบกเปˆเบ™เป„เบง. เบ–เป‰เบฒ -mzdcbranch เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, compiler เบกเบฑเบเบชเบนเบ™ displacement
เบฅเบณเบ”เบฑเบšเบฅเบฐเบซเบฑเบ”เบชเบฒเบ‚เบฒ. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4 เปเบฅเบฐ
SH4A. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธ -mno-zdcbranch.

-mcbranch-force-delay-slot
เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบŠเปˆเบญเบ‡เบŠเบฑเบเบŠเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเปˆเบญเบ‡เบŠเบฑเบเบŠเป‰เบฒ
เบ”เป‰เบงเบ "nop" เบ–เป‰เบฒเบšเปเปˆเบžเบปเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบ„เบปเบ™เบžเบดเบเบฒเบ™. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบกเบฒเบ™เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบ•เบฒเบกเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
SH7055.

-mfused-madd
-mno-fused-madd
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ„เบนเบ™ เปเบฅเบฐเบชเบฐเบชเบปเบก
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบฎเบฒเบ”โ€‹เปเบงโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ -mfused-madd เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบกเบตโ€‹เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹.
เบญเบดเบชเบฐเบฅเบฐ -ffp-contract=เป„เบง เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เปเบฅเบฐ -mno-fused-madd เปเบœเบ™เบ—เบตเปˆเปเบกเปˆเบ™
-ffp-contract=เบ›เบดเบ”.

-mfsca
-mno-fsca
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰ compiler เบ›เปˆเบญเบโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ "fscaโ€‹" เบชเปเบฒโ€‹เบฅเบฑเบš sine เปเบฅเบฐ cosine
เบ›เบฐเบกเบฒเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -mfsca เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹
-funsafe-math-optimizations. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4A.
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mno-fsca เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™ sine เปเบฅเบฐ cosine เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
-funsafe-math-optimizations เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบš.

-mfsrra
-mno-fsrra
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰ compiler เบ›เปˆเบญเบโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ "fsrraโ€‹" เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบตเปˆโ€‹เบซเบผเปˆเบฝเบกโ€‹เบกเบปเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฑเบ™
เบ›เบฐเบกเบฒเบ™เบฎเบฒเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -mfsrra เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹
-funsafe-math-optimizations เปเบฅเบฐ -ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ
เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4A. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mno-fsrra เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ—เบตเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบ›เบฐเบกเบฒเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ -funsafe-math-optimizations เปเบฅเบฐ -ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบœเบปเบ™เบเบฐเบ—เบปเบš.

-mpretend-cmove
เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบเป‰เบฒเบเบชเบนเบ™เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบเป‰เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบฎเบนเบšเปเบšเบš. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต SH4.

เปเบชเบ‡เบญเบฒเบ—เบดเบ” 2 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เปƒเบ™ Solaris 2โ€‹:

-mclear-hwcap
-mclear-hwcap เบšเบญเบ compiler เป€เบญเบปเบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบ
เป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบš Solaris. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ ISA เบšเปเปˆเปเบกเปˆเบ™
เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เป‚เบ”เบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹, เปเบ•เปˆโ€‹เปƒเบซเป‰โ€‹เบเบงเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบฅเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹.

- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ”
- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ”, เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ™เบญเบโ€‹เป€เบซเบ™เบทเบญโ€‹เป„เบ›โ€‹เบˆเบฒเบโ€‹ - เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹, เบšเบญเบ compiler เบšเปเปˆเบœเปˆเบฒเบ™ -z เบ‚เปเป‰เบ„เบงเบฒเบก to
linker เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เปเบฒเปเบซเบ™เปˆเบ‡ -
เบฅเบฐเบซเบฑเบ”เบ‚เบถเป‰เบ™เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™.

- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ” เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™ "เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ—เบตเปˆเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เปเบ•เปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰
sections" linker เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”. เปเบ™เบงโ€‹เปƒเบ”โ€‹เบเปโ€‹เบ•เบฒเบก, เบเบฒเบ™โ€‹เบเบปเบโ€‹เบเป‰เบฒเบโ€‹เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบเบฐโ€‹เบ•เบธเป‰เบ™โ€‹เปƒเบซเป‰โ€‹เป€เบเบตเบ” copy-on-
เบ‚เบฝเบ™, เปเบฅเบฐเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบšเปเปˆเป„เบ”เป‰เปเบšเปˆเบ‡เบ›เบฑเบ™เบ•เบปเบงเบˆเบดเบ‡เปƒเบ™เบ—เบปเปˆเบงเบ‚เบฐเบšเบงเบ™เบเบฒเบ™. เปเบ—เบ™โ€‹เบ—เบตเปˆ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ - เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ”, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบ -fpic or -fPIC.

เบชเบฐเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปƒเบ™ Solaris 2:

- เบเบฐเบ—เบนเป‰
เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš multithreading เป‚เบ”เบเปƒเบŠเป‰ POSIX threads library. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”
เบ—เบธเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡ preprocessor เปเบฅเบฐ linker. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฐเบ—เบนเป‰
เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบ compiler เบซเบผเบทเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบเบฑเบšเบกเบฑเบ™.

- เบเบฐเบ—เบนเป‰
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบท - เบเบฐเบ—เบนเป‰.

SPARC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™ SPARCโ€‹:

-mno-app-regs
-mapp-regs
เบฅเบฐเบšเบธเบงเปˆเบฒ -mapp-regs เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เป‚เบ”เบเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป‚เบฅเบ 2 เบซเบฒ 4, เป€เบŠเบดเปˆเบ‡
เบชเบฐเบซเบ‡เบงเบ™ SPARC SVR4 ABI เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป‚เบฅเบ 1, เปเบ•เปˆเบฅเบฐเบ—เบปเปˆเบงเป‚เบฅเบ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 2 เบซเบฒ 4 เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบ—เบฐเบšเบฝเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ—เบตเปˆ clobbered เป‚เบ”เบ
เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ—. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš SVR4 ABI เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเปƒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เปƒเบซเป‰เบฅเบฐเบšเบธ
-mno-app-regs. เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบงเบšเบฅเบงเบกเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเบŠเบญเบšเปเบงเบฅเบฐเบšเบปเบšเบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

-mflat
-mno-เปเบ›
เบเบฑเบš -mflat, compiler เบšเปเปˆเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเบฑเบ™เบ—เบถเบ / เบŸเบทเป‰เบ™เบŸเบนเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰ a
"เปเบ›" เบซเบผเบทเบฎเบนเบšเปเบšเบšเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ”เบฝเบง. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเปเบšเบšเบ›เบปเบเบเบฐเบ•เบด
เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ›เปˆเบญเบ‡โ€‹เบขเป‰เบฝเบกโ€‹. เบ—เบฐเบšเบฝเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ เปเบฅเบฐเบ—เบฐเบšเบฝเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™ (0--5) เปเบกเปˆเบ™เบเบฑเบ‡เบขเบนเปˆ
เบฎเบฑเบšเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเป€เบ›เบฑเบ™ "เบเบฒเบ™เป‚เบ—เบšเบฑเบ™เบ—เบถเบ" เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบฅเบฐเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™ stack เบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™.

เบเบฑเบš -mno-เปเบ› (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™), compiler เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเบฑเบ™เบ—เบถเบ / เบŸเบทเป‰เบ™เบŸเบน (เบเบปเบเป€เบงเบฑเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš). เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบปเบเบเบฐเบ•เบด.

-mfpu
-mhard-float
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-fpu
-msoft-float
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ SPARC เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบชเบดเปˆเบ‡เบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบ‚เบญเบ‡
C compiler เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เปƒเบ™ cross-
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป€เบฎเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เป€เบžเบทเปˆเบญโ€‹เปƒเบซเป‰โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹
เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เป‰เบฒเบก. เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เบเบฑเบ‡โ€‹ sparc-*-out เปเบฅเบฐ เบฎเบญเบเปเบ›เป‰เบง-*-*
เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบŠเบญเบšโ€‹เปเบงโ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰โ€‹.

-msoft-float เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เปƒเบ™เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”; เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบก เบ—เบฑเบ‡เบซเบกเบปเบ” เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เบฅเบงเบšเบฅเบงเบก libgcc.a, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบš GCC, เบเบฑเบš -msoft-float เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰
เป€เบฎเบฑเบ”โ€‹เบงเบฝเบ.

-mhard-quad-float
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบตเปˆเบ„เปเบฒ (เบเบฒเบงเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ) เปเบšเบšเป€เบฅเบทเปˆเบญเบ™.

-msoft-quad-float
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒ quad-word (เบเบฒเบง double) floating-point
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ SPARC ABI. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
Default

เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ™เบ™เบตเป‰, เบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” SPARC เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบฒเบ”เปเบงเบชเปเบฒเบฅเบฑเบš
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ quad-word floating-point. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ” invoke handler เบเบฑเบšเบ”เบฑเบเบชเปเบฒเบฅเบฑเบšเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹, เปเบฅเบฐโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบœเบนเป‰โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบเบฑเบšโ€‹เบ”เบฑเบโ€‹เป€เบฎเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹.
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ•เบปเบงเบˆเบฑเบšเบˆเบฑเปˆเบ™เบˆเบฑเบšเบขเบนเปˆเป€เบ—เบดเบ‡เบซเบปเบง, เบ™เบตเป‰เปเบกเปˆเบ™เบŠเป‰เบฒเบเบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” ABI
เบ›เบปเบเบเบฐเบ•เบด. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡ -msoft-quad-float เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-unaligned-doubles
-munaligned-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ doubles เบกเบตเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ 8-byte. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบเบฑเบš -munaligned-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ, GCC เบ–เบทเบงเปˆเบฒ doubles เบกเบตเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ 8-byte เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒ
เบšเบฑเบ™เบˆเบธเบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ”เบญเบทเปˆเบ™, เบซเบผเบทเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบ—เบตเปˆเบขเบนเปˆเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบš 4-byte. เบเบฒเบ™เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบšเบฒเบ‡เบญเบฑเบ™เบ—เบตเปˆเบซเบฒเบเบฒเบ
เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ compilers เบญเบทเปˆเบ™เป†. เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰.

-muser-mode
-mno-user-mode
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เป„เบ”เป‰เปƒเบ™เป‚เปเบ”เบœเบนเป‰เบ„เบธเบกเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "casa" เบ›เปˆเบญเบเบญเบญเบเบกเบฒเบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต LEON3. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-เป„เบง-เป‚เบ„เบ‡เบชเป‰เบฒเบ‡
-mfaster-structs
เบเบฑเบš -mfaster-structs, compiler เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ„เบงเบ™เบˆเบฐเบกเบต 8-byte
เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบนเปˆเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "ldd" เปเบฅเบฐ "std" เบชเปเบฒเบฅเบฑเบšเบชเปเบฒเป€เบ™เบปเบฒ
เปƒเบ™เบเบฒเบ™เบกเบญเบšเปเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เปเบ—เบ™เบ„เบนเปˆ "ld" เปเบฅเบฐ "st" เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป„เบ”เป‰
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบงเบฒเบ‡โ€‹เบ™เบตเป‰โ€‹เบฅเบฐโ€‹เป€เบกเบตเบ” SPARC ABI เป‚เบ”เบโ€‹เบเบปเบ‡โ€‹. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡
เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™
เบšเปเปˆเบเบปเบ‡เบเบฑเบšเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡ ABI.

-mcpu=cpu_type
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบŠเบธเบ”โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹, เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹, เปเบฅเบฐโ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type. เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu_type เบกเบต v7, เบŠเบตเบ”, v8, supersparc,
hypersparc, leon, leon3, leon3v7, เบเบฐเบˆเปˆเบฒเบ‡เปƒเบช, f930, f934, sparclite86x, เบฎเบญเบเปเบ›เป‰เบง,
tsc701, v9, ultrasparc, ultrasparc3, niagara, เบ™เบตเบเบฒเบฃเบฒ2, เบ™เบตเบเบฒเบฃเบฒ3 เปเบฅเบฐ เบ™เบตเบเบฒเบฃเบฒ4.

Native Solaris เปเบฅเบฐ GNU/Linux toolchains เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบนเบ™เบ„เปˆเบฒ native, เบ—เบตเปˆเป€เบฅเบทเบญเบ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบˆเบปเป‰เบฒเบžเบฒเบš. -mcpu=เป€เบ”เบตเบก เบšเปเปˆโ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹
GCC เบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเป‚เบ›เป€เบŠเบ”เป€เบŠเบต.

เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ an
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบžเบงเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™ v7, v8, เบเบฐเบˆเปˆเบฒเบ‡เปƒเบช, เบฎเบญเบเปเบ›เป‰เบง, v9.

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

v7 cypress, leon3v7

v8 superspark, hypersparc, leon, leon3

เบเบฐเบˆเปˆเบฒเบ‡เปƒเบช
f930, f934, sparclite86x

เบฎเบญเบเปเบ›เป‰เบง
tsc701

v9 ultrasparc, ultrasparc3, โ€‹โ€‹เป„เบ™เบเบฒเบฃเบฒ, เป„เบ™เบเบฒเบฃเบฒ 2, เป„เบ™เบเบฒเบฃเบฒ 3, เป„เบ™เบเบฒเบฃเบฒ4

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™), GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ› V7 เบ‚เบญเบ‡
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ SPARC. เบเบฑเบš -mcpu=cypress, compiler เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™ optimizes เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบš
เบŠเบดเบš Cypress CY7C602, เบ•เบฒเบกเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบŠเบธเบ” SPARCStation/SPARCServer 3xx. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบเบฑเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบš SPARCStation เป€เบเบปเปˆเบฒเปเบเปˆ 1, 2, IPX เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบเบฑเบš -mcpu=v8, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ› V8 เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ SPARC. เป„เบ”เป‰
เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบˆเบฒเบเบฅเบฐเบซเบฑเบ” V7 เปเบกเปˆเบ™เบงเปˆเบฒ compiler เบ›เปˆเบญเบเบ•เบปเบงเบ„เบนเบ™เบ„เบนเบ™เปเบฅเบฐ
เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เปเบšเปˆเบ‡เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™ SPARC-V8 เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ SPARC-V7. เบเบฑเบš
-mcpu=supersparc, compiler เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™ optimizes เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš SuperSPARC, เป€เบ›เบฑเบ™
เปƒเบŠเป‰เปƒเบ™ SPARCStation 10, 1000 เปเบฅเบฐ 2000 เบŠเบธเบ”.

เบเบฑเบš -mcpu=sparclite, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ› SPARClite เบ‚เบญเบ‡ SPARC
เบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ. เบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ„เบนเบ™, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก เปเบฅเบฐเบชเบฐเปเบเบ™ ("ffs")
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™ SPARClite เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ SPARC-V7. เบเบฑเบš -mcpu=f930, เบเบฒเบ™
compiler เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™ optimize เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš Fujitsu MB86930, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
SPAClite, เบšเปเปˆเบกเบต FPU. เบเบฑเบš -mcpu=f934, compiler เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™ optimizes เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบš
เบŠเบดเบš Fujitsu MB86934, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™ SPAClite เบซเบผเป‰เบฒเบชเบธเบ”เบ—เบตเปˆเบกเบต FPU.

เบเบฑเบš -mcpu=sparclet, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SPARClet variant เบ‚เบญเบ‡ SPARC
เบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ. เบญเบฑเบ™เบ™เบตเป‰เป€เบžเบตเปˆเบกเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ„เบนเบ™, เบ„เบนเบ™/เบชเบฐเบชเบปเบก, เบเบฒเบ™เบซเบฒเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก
เบ‚เบฑเป‰เบ™เบ•เบญเบ™ เปเบฅเบฐเบชเบฐเปเบเบ™ ("ffs") เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™ SPARClet เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ SPARC-V7. เบเบฑเบš
-mcpu=tsc701, compiler เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš TEMIC SPARClet.

เบเบฑเบš -mcpu=v9, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ› V9 เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ SPARC. เบ™เบตเป‰
เป€เบžเบตเปˆเบกเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก 64-เบšเบดเบ” เปเบฅเบฐเบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เป€เบฅเบทเปˆเบญเบ™เบˆเบธเบ”, 3 เบˆเบธเบ”เบฅเบญเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบเบฑเบš -mcpu=ultrasparc,
compiler เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš Sun UltraSPARC I/II/IIi. เบเบฑเบš
-mcpu=ultrasparc3, compiler เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™ optimizes เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบš Sun UltraSPARC
เบŠเบดเบš III/III+/IIIi/IIIi+/IV/IV+. เบเบฑเบš -mcpu=เป„เบ™เบญเบฒเบเบฒเบฃเบฒ, compiler เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™
เบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เปƒเบซเป‰เป€เปเบฒเบฐเบชเบปเบกเบเบฑเบšเบŠเบดเบš Sun UltraSPARC T1. เบเบฑเบš -mcpu=niagara2, compiler เป„เบ”เป‰
เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš Sun UltraSPARC T2. เบเบฑเบš -mcpu=niagara3, เบเบฒเบ™
compiler เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบ‡ optimize เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš Sun UltraSPARC T3. เบเบฑเบš -mcpu=niagara4,
compiler เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ›เบฑเบšเบ›เบธเบ‡เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš Sun UltraSPARC T4.

-mtune=cpu_type
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบทเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™ -mcpu=cpu_type เบšเปเปˆ

เบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบš -mcpu=cpu_type เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš -mtune=cpu_type, เปเบ•เปˆเบงเปˆเบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ„เบธเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปเบกเปˆเบ™เบœเบนเป‰เบ—เบตเปˆเป€เบฅเบทเบญเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” CPU เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ. เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™
เบŠเบตเบ”, supersparc, hypersparc, leon, leon3, leon3v7, f930, f934, sparclite86x,
tsc701, ultrasparc, ultrasparc3, niagara, เบ™เบตเบเบฒเบฃเบฒ2, เบ™เบตเบเบฒเบฃเบฒ3 เปเบฅเบฐ เบ™เบตเบเบฒเบฃเบฒ4เบ—เบตเปˆเบขเบนเปˆ เบกเบต
Solaris เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡ เปเบฅเบฐ GNU/Linux toolchains, native เบเบฑเบ‡เบชเบฒเบกเบฒเบ” เบ™เบณ เปƒเบŠเป‰เป„เบ”เป‰.

-mv8plus
-mno-v8plus
เบเบฑเบš -mv8plus, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SPARC-V8+ ABI. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบ V8
ABI เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป‚เบฅเบเปเบฅเบฐเบญเบญเบเปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเบเบงเป‰เบฒเบ‡ 64 bits. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ Solaris เปƒเบ™เป‚เบซเบกเบ” 32-bit เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต SPARC-V9 เบ—เบฑเบ‡เบซเบกเบปเบ”.

-mvis
-mno-vis
เบเบฑเบš -mvis, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบ UltraSPARC Visual
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-vis.

-mvis2
-mno-vis2
เบเบฑเบš -mvis2, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเป€เบงเบตเบŠเบฑเบ™ 2.0 เบ‚เบญเบ‡ UltraSPARC
Visual Instruction Set extensions. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mvis2 เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ CPU เบ™เบฑเป‰เบ™
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบŠเบฑเปˆเบ™ UltraSPARC-III เปเบฅเบฐเบ•เปเปˆเบกเบฒ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ -mvis2 เบเบฑเบ‡
เบŠเบธเบ” -mvis.

-mvis3
-mno-vis3
เบเบฑเบš -mvis3, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเป€เบงเบตเบŠเบฑเบ™ 3.0 เบ‚เบญเบ‡ UltraSPARC
Visual Instruction Set extensions. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mvis3 เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ CPU เบ™เบฑเป‰เบ™
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบŠเบฑเปˆเบ™: niagara-3 เปเบฅเบฐเบ•เปเปˆเบกเบฒ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ -mvis3 เบเบฑเบ‡เบเปเบฒเบ™เบปเบ”
-mvis2 เปเบฅเบฐ -mvis.

-mcbcond
-mno-cbcond
เบเบฑเบš -mcbcond, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเปเบฅเบฐเบชเบฒเบ‚เบฒ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Sparc 2011. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mcbcond เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ CPU เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบŠเบฑเปˆเบ™: niagara-4 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-mpopc
-mno-popc
เบเบฑเบš -mpopc, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบ›เบฐเบŠเบฒเบเบญเบ™ UltraSPARC
เบ™เบฑเบšโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mpopc เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ CPU เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เป€เบŠเบฑเปˆเบ™ Niagara-2 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-mfmaf
-mno-fmaf
เบเบฑเบš -mfmaf, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบ UltraSPARC Fused Multiply-
เป€เบžเบตเปˆเบกเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบˆเบธเบ”เบฅเบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mfmaf เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ CPU เบ™เบฑเป‰เบ™
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบŠเบฑเปˆเบ™ Niagara-3 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-mfix-at697f
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เปเบเป‰เป„เบ‚เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ”เบฝเบงเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Atmel AT697F
(เป€เบŠเบดเปˆเบ‡เบเบปเบ‡เบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” #13 เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต AT697E).

-mfix-ut699
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบชเบฒเบ™เบชเปเบฒเบฅเบฑเบš errata เบˆเบธเบ”เบฅเบญเบ เปเบฅเบฐเปเบ„เบ”เบ‚เปเป‰เบกเบนเบ™
nullify errata เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต UT699.

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ•เปˆเบฒเบ‡เป†โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ™เบญเบโ€‹เป€เบซเบ™เบทเบญโ€‹เป„เบ›โ€‹เบˆเบฒเบโ€‹เบ‚เป‰เบฒเบ‡โ€‹เป€เบ—เบดเบ‡โ€‹เบ™เบตเป‰โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™ SPARCโ€‹-V9 processors เปƒเบ™ 64-bitโ€‹
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก:

-m32
-m64
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบซเบผเบท 64-bit. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบเปเบฒเบ™เบปเบ” int,
เบเบฒเบง เปเบฅเบฐเบŠเบตเป‰เป„เบ›เบซเบฒ 32 bits. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 64-bit เบเปเบฒเบ™เบปเบ” int เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐเบเบฒเบงเปเบฅเบฐ
เบŠเบตเป‰เป„เบ›เบซเบฒ 64 bits.

-mcmodel=เบ—เบตเปˆ
เบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡

เบˆเบทเบ”เป†
เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เบ›เบฒเบ™เบเบฒเบ‡/เบ•เปˆเปเบฒ: เบ—เบตเปˆเบขเบนเปˆ 64-bit, เป‚เบ›เบฃเปเบเบฃเบกเบˆเบฐเบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบขเบนเปˆเปƒเบ™ 32 เบ•เปˆเปเบฒ.
เบšเบดเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ เบซเบผเบทเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง.

medmid
เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡ / เบเบฒเบ‡: เบ—เบตเปˆเบขเบนเปˆ 64-bit, เป‚เบ›เบฅเปเบเบฅเบกเบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบขเบนเปˆเปƒเบ™เบ•เปˆเปเบฒ
44 bits เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบซเบ™เป‰เบญเบเบเปˆเบงเบฒ 2GB เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐ
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบขเบนเปˆเบžเบฒเบเปƒเบ™ 2GB เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.

medany
เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ” Medium/Anywhere: เบ—เบตเปˆเบขเบนเปˆ 64-bit, เป‚เบ›เบฃเปเบเบฃเบกเบญเบฒเบ”เบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบเปเป„เบ”เป‰
เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบกเบตเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 2GB เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™
เบžเบฒเบเบชเปˆเบงเบ™เบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบขเบนเปˆเบžเบฒเบเปƒเบ™ 2GB เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.

เบเบฑเบ‡
เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ” Medium/Anywhere เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบเบฑเบ‡เบ•เบปเบง: เบ—เบตเปˆเบขเบนเปˆ 64-bit, เบ‚เปเป‰เบ„เบงเบฒเบก
เปเบฅเบฐเบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบกเบตเบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ 2GB, เบ—เบฑเบ‡เบชเบญเบ‡เป€เบฅเบตเปˆเบกเบˆเบฒเบเบšเปˆเบญเบ™เปƒเบ”เบเปเป„เบ”เป‰เปƒเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ
(เบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ). เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป‚เบฅเบ %g4 เบŠเบตเป‰เป„เบ›เบ—เบตเปˆเบ–เบฒเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™
เบžเบฒเบเบชเปˆเบงเบ™. เป‚เบ›เบฃเปเบเบฃเบกเบ•เปˆเบฒเบ‡เป†เบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ เปเบฅเบฐ PIC เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš.

-mmemory-model=เบ•เบปเบงเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡
เบเปเบฒเบ™เบปเบ”เบฎเบนเบšเปเบšเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเบฑเบ‡เบ„เบฑเบšเบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡

Default
เบฎเบนเบšเปเบšเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบฅเบฐเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™.

rmo เบฅเบณเบ”เบฑเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเบณเบ—เบตเปˆเบœเปˆเบญเบ™เบ„เบฒเบ

pso เบ„เปเบฒเบชเบฑเปˆเบ‡เบฎเป‰เบฒเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™

เบ›เปˆเบญเบ เบเบฒเบ™เบชเบฑเปˆเบ‡เบŠเบทเป‰เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบฎเป‰เบฒเบ™

sc เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš

เบฎเบนเบšเปเบšเบšเบ„เบงเบฒเบกเบˆเบณเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเบณเบ™เบปเบ”เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบŠเป‰เบญเบ™เบ—เป‰เบฒเบ D เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ Sparc V9
เบ„เบนเปˆเบกเบท, เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก "PSTATE.MM" เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต.

-mstack-เบญเบฐเบ„เบฐเบ•เบด
-mno-stack-bias
เบเบฑเบš -mstack-เบญเบฐเบ„เบฐเบ•เบด, GCC เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ•เบปเบงเบŠเบตเป‰ stack, เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบ–เป‰เบฒเบกเบต,
เบ–เบทเบเบŠเบปเบ”เป€เบŠเบตเบเป‚เบ”เบ -2047 เป€เบŠเบดเปˆเบ‡เบ•เป‰เบญเบ‡เบ–เบทเบเป€เบžเบตเปˆเบกเบ„เบทเบ™เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบเบญเบš stack. เบ™เบตเป‰
เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป‚เบซเบกเบ” 64-bit. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

SPU เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™ SPUโ€‹:

-mwar-reloc
-merror-reloc
เป€เบ„เบทเปˆเบญเบ‡เป‚เบซเบฅเบ”เบชเปเบฒเบฅเบฑเบš SPU เบšเปเปˆเป„เบ”เป‰เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เปƒเบซเป‰ an
เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบเบปเบเบเป‰เบฒเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. -mno-error-reloc
เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, -mwar-reloc เบชเป‰เบฒเบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เปเบ—เบ™.

-msafe-dma
-munsafe-dma
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบฅเบดเป€เบฅเบตเปˆเบกเบซเบผเบทเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡ DMA เบˆเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเบ–เบทเบเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเปƒเบซเบกเปˆเบ”เป‰เบงเบ
เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เบเบฑเบš -munsafe-dma
เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "volatile" เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบ•เปˆเบงเปˆเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆ
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบฎเบนเป‰เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบซเบกเบฒเบ
เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เบปเบงเบ›เปˆเบฝเบ™เปเบ›เบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ -msafe-dma เป€เบžเบทเปˆเบญเบšเบญเบเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ” DMA
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”.

-branch - เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒเป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบงเบฒเบ‡เบ—เปเปˆเบชเปเบฒเบฅเบฑเบš
เบชเบฒเบ‚เบฒเบ—เบตเปˆเป€เบญเบปเบฒเบกเบฒเบ•เบฐเบซเบผเบญเบ” เบซเบผเบทเบญเบฒเบ”เบˆเบฐเป€เบญเบปเบฒเบกเบฒเบ•เบฐเบซเบผเบญเบ”. เบ„เบณเปƒเบšเป‰เบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบเป‰เบเบงเปˆเบฒ 8
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเปˆเบฒเบ‡เบˆเบฒเบเบชเบฒเบ‚เบฒเบ‚เบญเบ‡เบกเบฑเบ™. เบกเบตเป€เบซเบ”เบœเบปเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเบˆเบฐเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบžเบงเบเบกเบฑเบ™, เบเบปเบเป€เบงเบฑเป‰เบ™
เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹, เบซเบผเบทโ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เป€เบฅเบฑเบโ€‹เบ™เป‰เบญเบโ€‹.

-msmall-mem
-mlarge-mem
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เบตเปˆเบขเบนเปˆเบšเปเปˆเป€เบ„เบตเบเปƒเบซเบเปˆเบเบงเปˆเบฒ 18 เบšเบดเบ”.
เบเบฑเบš -mlarge-mem เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆ 32-bit เป€เบ•เบฑเบก.

-mstdmain
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เปเปเบšเบš SPU
เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš (เป€เบŠเบดเปˆเบ‡เบกเบตเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบšเปเปˆเบ—เปเบฒเบกเบฐเบ”เบฒ). เบเบฑเบš -mstdmain, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GCC
เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ•เปเปˆเบเบฑเบšเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบชเบปเบกเบกเบธเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปเบšเบš C99 เป€เบ›เบฑเบ™ "เบ•เบปเป‰เบ™เบ•เป",
เบฅเบงเบกเบ—เบฑเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡ "argv" strings.

-mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบซเป‰เบกเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ
เปเบกเปˆเบ™เบญเบฑเบ™เปœเบถเปˆเบ‡เบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบ—เบฐเบšเบฝเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก kernel
เบฅเบฐเบซเบฑเบ”. เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบชเบญเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบเบเบญเบญเบเป‚เบ”เบ dash. เบซเบผเบฒเบ
เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเบšเบธเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

-mea32
-mea64
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ PPU เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™ "__ea"
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆเปเบกเปˆเบ™เบเบงเป‰เบฒเบ‡ 32 เบซเบผเบท 64 เบšเบดเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 32 bits.
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ ABI, เบฅเบฐเบซเบฑเบ”เบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™.

-maddress-space-เปเบ›เบ‡
-mno-address-space-เบเบฒเบ™เปเบ›เบ‡
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰ / เบšเปเปˆโ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ›เบดเปˆเบ™โ€‹เบ›เบปเบงโ€‹เบŠเปˆเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆ "__eaโ€‹" เป€เบ›เบฑเบ™ superset เบ‚เบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹
เบŠเปˆเบญเบ‡. เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ "__ea" เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เบ—เบปเปˆเบงเป„เบ›เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™
เบเบฒเบ™เบ›เปˆเบฝเบ™เป‚เบ”เบเบซเบเปเป‰เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบ—เบปเปˆเบงเป„เบ›เป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰ "__ea". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเบงเบŠเบตเป‰เบŠเปˆเบญเบ‡เบ—เบตเปˆเบขเบนเปˆ.

-mcache-size=เบ‚เบฐเบซเบ™เบฒเบ” cache
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡ libgcc เบ—เบตเปˆ compiler เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบ›เบซเบฒ executable
เปเบฅเบฐเป€เบฅเบทเบญเบ cache เบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบŠเบญเบšเปเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ•เบปเบงเปเบ›เปƒเบ™เบ—เบตเปˆเบขเบนเปˆ "__ea".
เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปเบ„เบ”เบชเบฐเป€เบžเบฒเบฐ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš เบ‚เบฐเบซเบ™เบฒเบ” cache เบกเบต 8, 16, 32, 64
เปเบฅเบฐ 128. เบ‚เบฐเปœเบฒเบ”เปเบ„เบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 64KB.

- เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡ matomicโ€‹
-mno-atomic-เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡ libgcc เบ—เบตเปˆ compiler เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบ›เบซเบฒ executable
เปเบฅเบฐเป€เบฅเบทเบญเบเบงเปˆเบฒเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ•เปเปˆเบเบฑเบš cache เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบŠเบญเบšเปเบงเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ‚เป‰เบฒเบ‡ PPU
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ› PPU เบˆเบฒเบเบฅเบฐเบซเบฑเบ” SPU เป‚เบ”เบเปƒเบŠเป‰
"__ea" เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบงเปˆเบฒ "__ea" เบšเปเปˆเปเบŠเบเปเบŠเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฑเบš PPU เบญเบทเปˆเบ™เป†
เบ•เบปเบงเปเบ›เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบชเบฒเบ cache เบ”เบฝเบงเบเบฑเบ™เบˆเบฒเบเบฅเบฐเบซเบฑเบ” PPU. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเปƒเบŠเป‰เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน
เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡, เบเบฒเบ™เปเบŠเบเปเบŠเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™; เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เบ‚เบฝเบ™ back cache line เปเบกเปˆเบ™เบซเบผเบฒเบเบเบงเปˆเบฒ
เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน.

-mdual-nops
-mdual-nops=n
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เปเบŠเบ nops เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบšเบฑเบ™เบซเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒเป€เบกเบทเปˆเบญเบกเบฑเบ™เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™. n เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ„เปˆเบฒเบˆเบฒเบ 0 เบซเบฒ 10. A เบ™เป‰เบญเบเบเบงเปˆเบฒ n เปƒเบชเปˆ nops เปœเป‰เบญเบเบฅเบปเบ‡. 10 เปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, 0 เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš -mno-dual-nops. เบ„เบปเบ™เบžเบดเบเบฒเบ™เบเบฑเบš -เบญเบช.

-mhint-max-nops=n
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ nops เบ—เบตเปˆเบˆเบฐเปƒเบชเปˆเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒ. เบ„เบณเปƒเบšเป‰เบชเบฒเบ‚เบฒเบ•เป‰เบญเบ‡เบกเบตเบขเปˆเบฒเบ‡เปœเป‰เบญเบ 8
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบขเบนเปˆเบซเปˆเบฒเบ‡เบˆเบฒเบเบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบฑเบ™เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš. GCC เปเบŠเบเป€เบ–เบดเบ‡ n nops เบเบฑเบš
เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบญเบฑเบ™เบ™เบตเป‰, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบ‚เบฒ.

-mhint-max-distance=n
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™ hint เบžเบฒเบเปƒเบ™ 256
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบฑเบ™เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™
125โ€‹.

-msafe-เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹
เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰ SPU เบขเบธเบ”เบขเปˆเบฒเบ‡เบšเปเปˆเบกเบตเบเบณเบ™เบปเบ”. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC
เปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "hbrp" เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบฎเป‰เบฒเบ™เบ™เบตเป‰เบˆเบฐเบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ เบฅเบฐเบšเบปเบš V

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™ System V Release 4 เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบญเบทเปˆเบ™เป†
compilers เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹:

-G เบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เปเบฒเบงเปˆเบฒ - เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹ or - เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹ เปƒเบŠเป‰เปเบ—เบ™.

- เบ–เบฒเบก เบฅเบฐเบšเบธเบฅเบธเป‰เบ™เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ compiler, เปƒเบ™เบ•เบปเบงเบ›เบฐเบเบญเบš ".ident".
เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”.

-Qn เบซเบผเบตเบเบฅเปˆเบฝเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบณเบชเบฑเปˆเบ‡ ".ident" เปƒเบชเปˆเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ” (เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

-YP,เบ—เบตเปˆเบขเบนเปˆ
เบ„เบปเป‰เบ™เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต เบ—เบตเปˆเบขเบนเปˆ, เปเบฅเบฐเบšเปเปˆเบกเบตเบšเปˆเบญเบ™เบญเบทเปˆเบ™, เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเบฑเบš -l.

-Ym,dir
เป€เบšเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต dir เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒ M4 preprocessor. เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

TILE-Gx เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเบนเปˆเปƒเบ™ TILE-Gx:

-mcmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เป„เบฅเบเบฐเบซเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เปเบกเปˆเบ™เบˆเปเบฒเบเบฑเบ”เบขเบนเปˆเบ—เบตเปˆ 500M
เปƒเบ™เบ—เบดเบ”เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก. เบ—เบตเปˆเบขเบนเปˆ PC-relative เปเบกเปˆเบ™ 32 bits. เบ—เบตเปˆเบขเบนเปˆเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบขเบนเปˆเป€เบ•เบฑเบก.

-mcmodel=เปƒเบซเบเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบšเปเปˆโ€‹เบกเบตโ€‹เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐโ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹, PC-
เบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เบซเบผเบทเบ—เบตเปˆเบขเบนเปˆเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡.

-mcpu=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ CPU เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹ tilegx.

-m32
-m64
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบซเบผเบท 64-bit. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบเปเบฒเบ™เบปเบ” int,
เบเบฒเบง, เปเบฅเบฐเบŠเบตเป‰เป„เบ›เบซเบฒ 32 bits. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 64-bit เบเปเบฒเบ™เบปเบ” int เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐเบเบฒเบงเปเบฅเบฐ
เบŠเบตเป‰เป„เบ›เบซเบฒ 64 bits.

-mbig-endian
-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบš endian เปƒเบซเบเปˆ/เบ™เป‰เบญเบ, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

TILEPro เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบขเบนเปˆโ€‹เปƒเบ™ TILEProโ€‹:

-mcpu=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ CPU เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹ tilepro.

-m32
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ” int, long, เปเบฅเบฐ pointer เป€เบ›เบฑเบ™ 32 bits.
เบ™เบตเป‰เปเบกเปˆเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบธเบ‡เบˆเบถเปˆเบ‡เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

V850 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” V850โ€‹:

-mlong-เป‚เบ—
-mno-long-calls
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบธเบเบเบฒเบ™เป‚เบ—เป€เบ›เบฑเบ™เบขเบนเปˆเป„เบ (เปƒเบเป‰). เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เปเบกเปˆเบ™โ€‹เบ„เบฒเบ”โ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เบขเบนเปˆโ€‹เบซเปˆเบฒเบ‡โ€‹เป„เบโ€‹, เป„เบ”เป‰โ€‹
compiler เบชเบฐเป€เบซเบกเบตเป‚เบซเบผเบ”เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™, เปเบฅเบฐเป‚เบ—เบซเบฒเบ—เบฒเบ‡เบญเป‰เบญเบก
เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰.

-mno-ep
-mep
เบขเปˆเบฒเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš (เป€เบฎเบฑเบ” optimize) เบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เบ•เบปเบงเบŠเบตเป‰เบ”เบฑเบ”เบชเบฐเบ™เบตเบ”เบฝเบงเบเบฑเบ™ 4 เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™
เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบ„เบฑเบ”เบฅเบญเบเบ•เบปเบงเบŠเบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "ep", เปเบฅเบฐเปƒเบŠเป‰ "sld" เปเบฅเบฐ "sst" เบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒ.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เป„เบ”เป‰ -mep เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เปเบ•เปˆเบ‡โ€‹.

-mno-prolog-function
-mprolog-function
เบขเปˆเบฒเปƒเบŠเป‰ (เป€เบฎเบฑเบ”) เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบฒเบเบ™เบญเบเป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบขเบนเปˆเบ—เบตเปˆ prologue
เปเบฅเบฐเบšเบปเบ”เบชเบฐเบซเบผเบธเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบฒเบเบ™เบญเบเบŠเป‰เบฒเบเบงเปˆเบฒ, เปเบ•เปˆเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบซเบ™เป‰เบญเบเบฅเบปเบ‡
space เบ–เป‰เบฒเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบ”เบฝเบงเบเบฑเบ™เบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™. เป„เบ”เป‰
-mprolog-function เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป€เบ›เบตเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เปเบ•เปˆเบ‡โ€‹.

-mspace
เบžเบฐเบเบฒเบเบฒเบกเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ™เป‰เบญเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆ turns เบชเบธเบ” -mep
เปเบฅเบฐ -mprolog-function เบ•เบปเบงเป€เบฅเบทเบญเบ

-mtda=n
เปƒเบชเปˆเบ•เบปเบงเปเบ›เบชเบฐเบ–เบดเบ” เบซเบผเบท เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบกเบตเบ‚เบฐเปœเบฒเบ” n bytes เบซเบผเบทเบซเบ™เป‰เบญเบเบฅเบปเบ‡เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "ep" เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™. เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเป„เบ”เป‰เป€เบ–เบดเบ‡ 256 bytes เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
(128 bytes เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡ byte).

-msda=n
เปƒเบชเปˆเบ•เบปเบงเปเบ›เบชเบฐเบ–เบดเบ” เบซเบผเบท เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบกเบตเบ‚เบฐเปœเบฒเบ” n bytes เบซเบผเบทเบซเบ™เป‰เบญเบเบฅเบปเบ‡เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "gp" เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™. เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเป„เบ”เป‰เป€เบ–เบดเบ‡ 64 เบเบดเป‚เบฅเปเบกเบฑเบ”.

-mzda=n
เปƒเบชเปˆเบ•เบปเบงเปเบ›เบชเบฐเบ–เบดเบ” เบซเบผเบท เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบกเบตเบ‚เบฐเปœเบฒเบ” n bytes เบซเบผเบทเบซเบ™เป‰เบญเบเบฅเบปเบ‡เปƒเบ™ 32 เบ—เปเบฒเบญเบดเบ”
เบเบดเป‚เบฅเป„เบšเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ.

-mv850
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850.

-mv850e3v5
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850E3V5. preprocessor เบ„เบปเบ‡เบ—เบตเปˆ
"__v850e3v5__" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mv850e2v4
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850E3V5. เบ™เบตเป‰เปเบกเปˆเบ™เบ™เบฒเบกเปเบเบ‡เบชเปเบฒเบฅเบฑเบš
-mv850e3v5 เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-mv850e2v3
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850E2V3. preprocessor เบ„เบปเบ‡เบ—เบตเปˆ
"__v850e2v3__" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mv850e2
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850E2. preprocessor เบ„เบปเบ‡เบ—เบตเปˆ
"__v850e2__" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mv850e1
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850E1. preprocessor เบ„เบปเบ‡เบ—เบตเปˆ
"__v850e1__" เปเบฅเบฐ "__v850e__" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mv850es
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850ES. เบ™เบตเป‰เปเบกเปˆเบ™เบ™เบฒเบกเปเบเบ‡เบชเปเบฒเบฅเบฑเบš -mv850e1
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-mv850e
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ V850E. preprocessor เบ„เบปเบ‡เบ—เบตเปˆ "__v850e__"
เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เบ–เป‰เบฒเบšเปเปˆ -mv850 neither -mv850e neither -mv850e1 neither -mv850e2 neither -mv850e2v3 neither -mv850e3v5
เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบฅเบทเบญเบเปเบฅเบฐเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡ __v850*__
preprocessor เบ„เบปเบ‡เบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”.

เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™ "__v850" เปเบฅเบฐ "__v851__" เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเบฐเป€เปเบต, เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡.
เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ”เปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mdisable-callt
-mno-disable-callt
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เบชเป‰เบฒเบ‡ "CALLT" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบš v850e, v850e1,
v850e2, v850e2v3 เปเบฅเบฐ v850e3v5 เบฅเบปเบ”เบŠเบฒเบ”เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ v850.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ RH850 ABI เบ–เบทเบเปƒเบŠเป‰ (เป€เบšเบดเปˆเบ‡ -mrh850-abi), เปเบฅเบฐ
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ GCC ABI เบ™เบณเปƒเบŠเป‰เบขเบนเปˆ. เบ–เป‰เบฒ "CALLT" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เป€เบ›เบฑเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ C preprocessor "__V850_CALLT__" เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

-mrelax
-mno-เบœเปˆเบญเบ™เบ„เบฒเบ
เบœเปˆเบฒเบ™ (เบซเบผเบทเบšเปเปˆเบœเปˆเบฒเบ™) เป„เบ”เป‰ -mrelax เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เบ›เบฐเบเบญเบš.

-mlong-เป‚เบ”เบ”
-mno-เบเบฒเบง-เป‚เบ”เบ”
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ (เบซเบผเบทเป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบทเบ™เปƒเบซเบกเปˆ) เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบš PC-relative jump.

-msoft-float
-mhard-float
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ (เบซเบผเบทเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบซเบกเปˆ) เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™เบ‚เบญเบ‡เบฎเบฒเบ”เปเบง. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™ V850E2V3 เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ. เบ–เป‰เบฒ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ C preprocessor
เบชเบฑเบ™เบเบฒเบฅเบฑเบ "__FPU_OK__" เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ "__NO_FPU__" เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

- เบกเบปเบง
เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเบชเบฑเปˆเบ‡ e3v5 LOOP. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆ
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ e3v5 เบ–เบทเบเป€เบฅเบทเบญเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™เบเบฑเบ‡เบขเบนเปˆ
เบ—เบปเบ”เบฅเบญเบ‡.

-mrh850-abi
-mghs
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบชเบณเบฅเบฑเบšเบฅเบธเป‰เบ™ RH850 เบ‚เบญเบ‡ V850 ABI. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบเบฑเบš
ABI เบชเบฐเบšเบฑเบšเบ™เบตเป‰เปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

* เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบฐเปœเบฒเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก เปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™เปเบกเปˆเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเปเบ—เบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

* เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™ (เบซเบผเบฒเบเบเบงเปˆเบฒ 8 bytes เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”) เปเบกเปˆเบ™เบœเปˆเบฒเบ™เบกเบนเบ™เบ„เปˆเบฒ.

* เบŸเบฑเบ‡เบŠเบฑเบ™เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” 16-bit.

* The -m8byte-align เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

* The -mdisable-callt เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป„เบ”เป‰
-mno-disable-callt เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เบณเบชเบฑเปˆเบ‡.

เป€เบกเบทเปˆเบญ ABI เบฅเบธเป‰เบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบชเบฑเบ™เบเบฒเบฅเบฑเบ C preprocessor "__V850_RH850_ABI__"
เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

-mgcc-abi
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš GCC เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒเบ‚เบญเบ‡ V850 ABI. เบ”เป‰เบงเบ ABI เบฅเบธเป‰เบ™เบ™เบตเป‰
เบเบปเบ”โ€‹เบฅเบฐโ€‹เบšเบฝเบšโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹:

* เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบฐเปœเบฒเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก เปเบฅเบฐ เบชเบฐเบซเบฐเบžเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบ™เบ—เบฐเบšเบฝเบ™ "r10".

* เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™ (เบซเบผเบฒเบเบเบงเปˆเบฒ 8 bytes เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”) เปเบกเปˆเบ™เบœเปˆเบฒเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡.

* เบŸเบฑเบ‡เบŠเบฑเบ™เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบ•เบฒเบกเบ‚เบญเบšเป€เบ‚เบ” 32-bit, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”.

* The -m8byte-align เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เบณเบชเบฑเปˆเบ‡.

* The -mdisable-callt เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เป€เบกเบทเปˆเบญ ABI เบฅเบธเป‰เบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบชเบฑเบ™เบเบฒเบฅเบฑเบ C preprocessor "__V850_GCC_ABI__"
เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

-m8byte-align
-mno-8byte-align
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบ›เบฐเป€เบžเบ” "เบ„เบนเปˆ" เปเบฅเบฐ "เบเบฒเบงเบเบฒเบง" เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบฅเบฝเบ‡เบ•เบฒเบกเบ‚เบญเบšเป€เบ‚เบ” 8-byte.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เบซเบกเบปเบ”เบขเบนเปˆเบ—เบตเปˆเบชเบนเบ‡เบชเบธเบ” 4-bytes. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
-m8byte-align เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบชเบฑเบ™เบเบฒเบฅเบฑเบ C preprocessor "__V850_8BYTE_ALIGN__" เปเบกเปˆเบ™
เบเปเบฒเบ™เบปเบ”.

-mbig-เบชเบฐเบซเบผเบฑเบš
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
assembler/linker เบˆเบปเปˆเบกเบเปˆเบฝเบงเบเบฑเบšเบชเบฒเบ‚เบฒเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบžเบฒเบเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบฑเบš.

-mapp-regs
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ r2 เปเบฅเบฐ r5 เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ compiler. เบ™เบตเป‰
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-app-regs
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ r2 เปเบฅเบฐ r5 เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ.

Vax เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš VAX:

- munix
เบขเปˆเบฒเบญเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ”เบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™ ("aobleq" เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบš Unix
เบชเปเบฒเบฅเบฑเบš VAX เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเป„เบฅเบเบฐเป„เบเป„เบ”เป‰.

-mgnu
เป€เบฎเบฑเบ”เบญเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบเบฐเป‚เบ”เบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เบ•เบฒเบกเบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบเบญเบš GNU เบเปเบฒเบฅเบฑเบ‡เป€เบ›เบฑเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

- เบกเบ เบฅเบฐเบซเบฑเบ”เบญเบญเบเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบเบˆเบธเบ”เบฅเบญเบเบฎเบนเบšเปเบšเบš G เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบš D.

เบงเบดเป„เบชเบ—เบฑเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-mdebug
เป‚เบ›เบฃเปเบเบกเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบŸเบฅเปŒ I/O เปเบฅเบฐเบ–เบทเบเบเบณเบ™เบปเบ”เปƒเบซเป‰เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบ MCM เบ„เบงเบ™เป€เบ›เบฑเบ™
เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” libc.a เปเบฅเบฐ libdebug.a เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡.
เป‚เบ›เบฅเปเบเบฅเบกเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ‚เบญเบ‡ GDB เบเบฒเบ™เบ”เบตเบšเบฑเบเบ—เบฒเบ‡เป„เบ
เบ•เบปเป‰เบ™เบซเบปเบง.

- เบŠเบดเบก
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” I/O เป„เบŸเบฅโ€‹เปŒโ€‹เปเบฅเบฐโ€‹เบˆเบธเบ”โ€‹เบซเบกเบฒเบโ€‹เบ›เบฒเบโ€‹เบ—เบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เปƒเบ™ simulator เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹
เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” libc.a เปเบฅเบฐ libsim.a เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡.

-mfpu
-mhard-float
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-fpu
-msoft-float
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™.

-msoft-float เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เปƒเบ™เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”; เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบก เบ—เบฑเบ‡เบซเบกเบปเบ” เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เบฅเบงเบšเบฅเบงเบก libgcc.a, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบš GCC, เบเบฑเบš -msoft-float เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰
เป€เบฎเบฑเบ”โ€‹เบงเบฝเบ.

-mcpu=cpu_type
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบŠเบธเบ”โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹, เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹, เปเบฅเบฐโ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type. เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu_type เบกเบต mcm, gr5 เปเบฅเบฐ gr6.

mcm เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบท gr5 เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบซเบผเบฑเบ‡.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™), GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ› GR5 เบ‚เบญเบ‡
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Visium.

เบเบฑเบš -mcpu=gr6, GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ› GR6 เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Visium.
เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบžเบฝเบ‡เปเบ•เปˆเบˆเบฒเบเบฅเบฐเบซเบฑเบ” GR5 เปเบกเปˆเบ™เบงเปˆเบฒ compiler เบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบšเบฅเบฑเบญเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-mtune=cpu_type
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบทเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบฑเป‰เบ™ -mcpu=cpu_type เบˆเบฐ.

-msv-mode
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡, เบšเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-muser-mode
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบœเบนเป‰เปƒเบŠเป‰, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบปเปˆเบงเป„เบ›เบšเบฒเบ‡เบขเปˆเบฒเบ‡
เบซเป‰เบฒเบก: เปƒเบ™ GR5, เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ r24 เบซเบฒ r31 เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰; เบชเบธเบ”
GR6, เบžเบฝเบ‡เปเบ•เปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ r29 เบซเบฒ r31 เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบš.

เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ VMS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” VMS:

-mvms-return-codes
เบเบฑเบšเบ„เบทเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ VMS เบˆเบฒเบ "เบ•เบปเป‰เบ™เบ•เป". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เบทเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปเบšเบš POSIX
(เป€เบŠเบฑเปˆเบ™: เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”) เบฅเบฐเบซเบฑเบ”.

-mdebug-main=เบ„เบณ เบ™เบณ เปœเป‰เบฒ
เปเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ›เบฐเบˆเบณเบ—เบณเบญเบดเบ”เบ—เบตเปˆเบŠเบทเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ เบ„เบณ เบ™เบณ เปœเป‰เบฒ เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
เบ”เบตเบšเบฑเบ.

- mmalloc64
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบเบดเบ”เบˆเบฐเบงเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ 64-เบšเบดเบ”.

-mpointer-size=เบ‚เบฐเบซเบ™เบฒเบ”
เบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš เบ‚เบฐเบซเบ™เบฒเบ” เบกเบต 32 or เบชเบฑเป‰เบ™ เบชเปเบฒเบฅเบฑเบš 32 เบšเบดเบ”
เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹, 64 or เบเบฒเบง เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰ 64 เบšเบดเบ”, เปเบฅเบฐ no เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆ 32 เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹.
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเบกเบฒเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ "pragma pointer_size".

VxWorks เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบžเบฒเบเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ VxWorks เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเบฐเป€เบžเบฒเบฐเบเบฑเบš
เบฎเบฒเบ”เปเบงเป€เบ›เบปเป‰เบฒเปเบฒเบเบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เบžเป‰เบญเบกเบเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบเบ™เบฑเป‰เบ™.

-mrtp
GCC เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡เปเบเปˆเบ™ VxWorks เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบงเบฅเบฒเบˆเบดเบ‡ (RTPs). เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ›เปˆเบฝเบ™เบˆเบฒเบเบญเบฐเบ”เบตเบ”เป„เบ›เบซเบฒเบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบ. เบกเบฑเบ™เบเบฑเบ‡เบเปเบฒเบ™เบปเบ” macro preprocessor
"__RTP__".

- เบšเปเปˆเบชเบฐเบ–เบดเบ”
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ RTP เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบปเบ‡เบ—เบตเปˆ. เป„เบ”เป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -static เปเบฅเบฐ - เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹ เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš RTPs; -static เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Bstatic
-Bdynamic
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบžเบงเบเบกเบฑเบ™เบ–เบทเบ เบเบณ เบ™เบปเบ”เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš
Diab.

-Xbind-lazy
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -Wl,-z, เบ”เบฝเบงเบ™เบตเป‰ เปเบฅเบฐเปเบกเปˆเบ™
เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš Diab.

-Xbind-เบ”เบฝเบงเบ™เบตเป‰
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš Diab.

x86 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบ„เบญเบšเบ„เบปเบง x86 เบ‚เบญเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบต.

- เบกเบตเบ™เบฒ=cpu-type
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu-type. เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบš -mtune=cpu-type,
เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเบ›เบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป„เบงเป‰ cpu-type, - เบกเบตเบ™เบฒ=cpu-type
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบทเปˆเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบซเบ™เบถเปˆเบ‡
เบŠเบตเป‰เบšเบญเบ. เบเบฒเบ™เบฅเบฐเบšเบธ - เบกเบตเบ™เบฒ=cpu-type implies -mtune=cpu-type.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu-type เปเบกเปˆเบ™:

native
เบ™เบตเป‰เป€เบฅเบทเบญเบ CPU เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเป‚เบ”เบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”
เบ›เบฐเป€เบžเบ”เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบฅเบงเบšเบฅเบงเบก. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -march=native เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”
เบŠเบธเบ”เบเปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™). เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mtune=native เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™
เป€เบ„เบทเปˆเบญเบ‡เบžเบฒเบเปƒเบ•เป‰เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ.

i386
CPU Intel i386 เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

i486
CPU Intel i486. (เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ chip เบ™เบตเป‰โ€‹.

i586
เป€เบžเบ™
CPU Intel Pentium เบ—เบตเปˆเบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš MMX.

pentium-mmx
Intel Pentium MMX CPU, เบญเบตเบ‡เปƒเบชเปˆ Pentium core เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX.

pentiumpro
CPU Intel Pentium Pro.

i686
เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบš - เบกเบตเบ™เบฒ, เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Pentium Pro เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เปเบฅเปˆเบ™
เปƒเบ™เบŠเบดเบšเบ„เบญเบšเบ„เบปเบง i686 เบ—เบฑเบ‡เปเบปเบ”. เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบเบฑเบš -mtune, เบกเบฑเบ™โ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹
generic.

pentium 2
CPU Intel Pentium II, เบญเบตเบ‡เปƒเบชเปˆ Pentium Pro core เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX.

pentium 3
pentium 3 เบก
CPU Intel Pentium III, เบญเบตเบ‡เปƒเบชเปˆ Pentium Pro core เบเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX เปเบฅเบฐ SSE
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

pentium-เบก
Intel Pentium M; เบฅเบธเป‰เบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ•เปเปˆเบฒเบ‚เบญเบ‡ CPU Intel Pentium III เบ—เบตเปˆเบกเบต MMX, SSE เปเบฅเบฐ SSE2
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เปƒเบŠเป‰เป‚เบ”เบเบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบ Centrino.

pentium 4
pentium 4 เบก
CPU Intel Pentium 4 เบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX, SSE เปเบฅเบฐ SSE2.

Prescott
เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡ CPU Intel Pentium 4 เบ”เป‰เบงเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX, SSE, SSE2 เปเบฅเบฐ SSE3
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

เป‚เบ™เป‚เบ„เบ™เบฒ
เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡ CPU Intel Pentium 4 เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2 เปเบฅเบฐ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE3.

เบซเบผเบฑเบ 2
CPU Intel Core 2 เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3 เปเบฅเบฐ SSSE3
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เป€เบ™เบฎเบฒเป€เบฅเบฑเบก
CPU Intel Nehalem เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2 เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ POPCNT เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

เป€เบงเบ”เบกเบปเบ™
CPU Intel Westmere เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES เปเบฅเบฐ PCLMUL เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เบ‚เบปเบงเบŠเบฒเบ
CPU Intel Sandy Bridge เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AES เปเบฅเบฐ PCLMUL เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เบ‚เบปเบงเป„เบญเบงเบต
CPU Intel Ivy Bridge เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND เปเบฅเบฐ F16C
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

เบชเบฐเบšเบฒเบ
CPU Intel Haswell เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2
เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ F16C เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

เบเบงเป‰เบฒเบ‡
Intel Broadwell CPU เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX เปเบฅเบฐ PREFETCHW เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

bonnell
Intel Bonnell CPU เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MOVBE, MMX, SSE, SSE2, SSE3 เปเบฅเบฐ SSSE3
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เป€เบ‡เบดเบ™เบกเบญเบ™
CPU Intel Silvermont เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AES, PCLMUL เปเบฅเบฐ RDRND เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

knl Intel Knight's Landing CPU เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2,POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER เปเบฅเบฐ AVX512CD
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

k6 AMD K6 CPU เบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เบณเบชเบฑเปˆเบ‡ MMX.

k6-2
k6-3
เบฅเบธเป‰เบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡ CPU AMD K6 เบ”เป‰เบงเบ MMX เปเบฅเบฐ 3DNow! เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เบ™เบฑเบเบเบดเบฅเบฒ
athlon-tbird
AMD Athlon CPU เบเบฑเบš MMX, 3dNOW!, เบ›เบฑเบšเบ›เบธเบ‡ 3DNow! เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE prefetch
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

เบเบดเบฅเบฒ-4
athlon-xp
เบเบดเบฅเบฒ-mp
เบ›เบฑเบšเบ›เบธเบ‡ CPU AMD Athlon เบ”เป‰เบงเบ MMX, 3DNow!, เบ›เบฑเบšเบ›เบธเบ‡ 3DNow! เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE เป€เบ•เบฑเบก
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

k8
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบเบดเบฅเบฒ 64
เบเบดเบฅเบฒ-fx
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ AMD K8 core เบ—เบตเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบฅเบงเบกเบ—เบฑเบ‡
เป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD Opteron, Athlon 64, เปเบฅเบฐ Athlon 64 FX. (เบ™เบตเป‰ supersets MMX,
SSE, SSE2, 3DNow!, เบ›เบฑเบšเบ›เบธเบ‡ 3DNow! เปเบฅเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit.)

k8-sse3
opteron-sse3
athlon64-sse3
เบฎเบธเปˆเบ™เบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡ AMD K8 cores เบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE3.

amdfam10
เบšเบฒเป€เบŠเป‚เบฅเบ™เบฒ
CPUs เบญเบตเบ‡เปƒเบชเปˆ AMD Family 10h cores เบ—เบตเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. (เบ™เบตเป‰
supersets MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, เบ›เบฑเบšเบ›เบธเบ‡ 3DNow!, ABM เปเบฅเบฐ 64-bit
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.)

bdver1
CPUs เบญเบตเบ‡เปƒเบชเปˆ AMD Family 15h cores เบ—เบตเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. (เบ™เบตเป‰
supersets FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A,
SSSE3, SSE4.1, SSE4.2, ABM เปเบฅเบฐเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit.)

bdver2
AMD Family 15h cores CPUs เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64. (เบ™เบตเป‰
supersets BMI, TBM, F16C, FMA, FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ.)

bdver3
AMD Family 15h cores CPUs เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64. (เบ™เบตเป‰
supersets BMI, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, XOP, LWP, AES, PCL_MUL, CX16,
MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit
extensions

bdver4
AMD Family 15h cores CPUs เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64. (เบ™เบตเป‰
supersets BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM เปเบฅเบฐ
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit.

btver1
CPUs เบญเบตเบ‡เปƒเบชเปˆ AMD Family 14h cores เบ—เบตเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. (เบ™เบตเป‰
supersets MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, CX16, ABM เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ.)

btver2
CPUs เบญเบตเบ‡เปƒเบชเปˆ AMD Family 16h cores เบ—เบตเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เบ™เบตเป‰
เบฅเบงเบกเบกเบต MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A,
SSSE3, SSE3, SSE2, SSE, MMX เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-เบšเบดเบ”.

winchip-c6
IDT WinChip C6 CPU, เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš i486 เบ”เป‰เบงเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

winchip2
IDT WinChip 2 CPU, เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบงเบดเบ—เบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš i486 เบ”เป‰เบงเบ MMX เปเบฅเบฐ 3DNow เป€เบžเบตเปˆเบกเป€เบ•เบตเบก!
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

c3 VIA C3 CPU เบเบฑเบš MMX เปเบฅเบฐ 3DNow! เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. (เบšเปเปˆเบกเบตเบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš chip เบ™เบตเป‰.)

c3-2
VIA C3-2 (Nehemiah/C5XL) CPU เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เบณเบชเบฑเปˆเบ‡ MMX เปเบฅเบฐ SSE. (เบšเปเปˆ
เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบŠเบดเบšเบ™เบตเป‰.)

geode
AMD Geode เบเบฑเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบต MMX เปเบฅเบฐ 3DNow! เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-mtune=cpu-type
เบ›เบšเบฑ cpu-type เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบเบปเบเป€เบงเบฑเป‰เบ™ ABI
เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐ cpu-type เบ•เบฒเบ•เบฐเบฅเบฒเบ‡
เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบŠเบดเบšเบชเบฐเป€เบžเบฒเบฐเบ™เบฑเป‰เบ™, compiler เบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ”เป†
เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ a - เบกเบตเบ™เบฒ=cpu-type เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒ GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš i686-pc-linux-gnu เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ -mtune=pentium4 เบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ›เบฑเบšเบชเปเบฒเบฅเบฑเบš Pentium 4 เปเบ•เปˆเบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ i686.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu-type เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบชเปเบฒเบฅเบฑเบš - เบกเบตเบ™เบฒเบ—เบตเปˆเบขเบนเปˆ เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบก, -mtune เบชเบฐ เปœเบฑเบš เบชเบฐ เปœเบนเบ™ 2
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบžเบดโ€‹เป€เบชเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu-type:

generic
เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เปƒเบซเป‰เป€เปเบฒเบฐเบชเบปเบกเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต IA32/AMD64/EM64T เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”. เบ–เป‰เบฒโ€‹เป€เบˆเบปเป‰เบฒ
เบฎเบนเป‰ CPU เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™
-mtune or - เบกเบตเบ™เบฒ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹ -mtune=เบ—เบปเปˆเบงเป„เบ›. เปเบ•เปˆ, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบฎเบนเป‰
เปเบ™เปˆเบ™เบญเบ™เบงเปˆเบฒเบœเบนเป‰เปƒเบŠเป‰ CPU เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบˆเบฐเบกเบตเบซเบเบฑเบ‡เปเบ”เปˆ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบกเบฑเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบซเบกเปˆเบ–เบทเบเบ™เปเบฒเป„เบ›เปƒเบŠเป‰เปƒเบ™เบ•เบฐเบซเบผเบฒเบ”, เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบญเบฑเบšเป€เบเบฃเบ”เป€เบ›เบฑเบ™เบฅเบธเป‰เบ™เปƒเปเปˆเบ‚เบญเบ‡ GCC, เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”
เบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบžเบทเปˆเบญเบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”
เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ GCC เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ.

เบšเปเปˆโ€‹เบกเบต -march=เบ—เบปเปˆเบงเป„เบ› เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบžเบฒเบฐโ€‹เบงเปˆเบฒโ€‹ - เบกเบตเบ™เบฒ เบŠเบตเป‰เบšเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰
compiler เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰, เปเบฅเบฐเบšเปเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ—เบธเบเบ„เบปเบ™
เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™โ€‹เบ—เบฒเบ‡โ€‹เบเบปเบ‡โ€‹เบเบฑเบ™โ€‹เบ‚เป‰เบฒเบก, -mtune เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” (เบซเบผเบท, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰,
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป‚เบ›เป€เบŠเบ”เป€เบŠเบต) เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบ”เบตเบ—เบตเปˆเบชเบธเบ”.

intel
เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Intel เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ—เบตเปˆเบชเบธเบ”, เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™ Haswell
เปเบฅเบฐ Silvermont เบชเปเบฒเบฅเบฑเบš GCC เบฎเบธเปˆเบ™เบ™เบตเป‰. เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบฎเบนเป‰ CPU เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ
เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ -mtune or - เบกเบตเบ™เบฒ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹
-mtune=intel. เปเบ•เปˆ, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบตเบ‚เบถเป‰เบ™เปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡ Haswell
เปเบฅเบฐ Silvermont, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

เบเป‰เบญเบ™เบงเปˆเบฒเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Intel เปƒเบซเบกเปˆเบ–เบทเบเบ™เปเบฒเป„เบ›เปƒเบŠเป‰เปƒเบ™เบ•เบฐเบซเบผเบฒเบ”, เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบญเบฑเบšเป€เบเบฃเบ”เป€เบ›เบฑเบ™ GCC เบฅเบธเป‰เบ™เปƒเปเปˆ, เบฅเบฐเบซเบฑเบ”
เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบžเบทเปˆเบญเบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡ Intel เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ GCC เบฅเบธเป‰เบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ.

เบšเปเปˆโ€‹เบกเบต -march=intel เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบžเบฒเบฐโ€‹เบงเปˆเบฒโ€‹ - เบกเบตเบ™เบฒ เบŠเบตเป‰เบšเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰
compiler เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰, เปเบฅเบฐเบšเปเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ—เบธเบเบ„เบปเบ™
เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™โ€‹เบ—เบฒเบ‡โ€‹เบเบปเบ‡โ€‹เบเบฑเบ™โ€‹เบ‚เป‰เบฒเบก, -mtune เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” (เบซเบผเบท, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰,
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป‚เบ›เป€เบŠเบ”เป€เบŠเบต) เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบ”เบตเบ—เบตเปˆเบชเบธเบ”.

-mcpu=cpu-type
เบ„เบณเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เบชเบณเบฅเบฑเบš -mtune.

-mfpmath=เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™
เบชเป‰เบฒเบ‡เป€เบฅเบเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบˆเบธเบ”เบฅเบญเบเบชเบณเบฅเบฑเบšเปœเปˆเบงเบเบ—เบตเปˆเป€เบฅเบทเบญเบ เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™ เปเบกเปˆเบ™:

387 เปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบˆเบธเบ”เบฅเบญเบเปเบšเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ 387 เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบŠเบดเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆ
เปเบฅเบฐ emulated เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฅเปˆเบ™เป€เบเบทเบญเบšเบ—เบธเบเบšเปˆเบญเบ™.
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบŠเบปเปˆเบงเบ„เบฒเบงเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเปƒเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ 80-bit เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ
เบฅเบฐเบšเบธเป‚เบ”เบเบ›เบฐเป€เบžเบ”, เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡
เบŠเบดเบšเบญเบทเปˆเบ™เป†. เป€เบšเบดเปˆเบ‡ - เบฎเป‰เบฒเบ™เบ‚เบฒเบเป€เบ„เบทเปˆเบญเบ‡เบเปˆเบญเบ เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš x86-32 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

sse เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™ scalar เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE. เบ™เบตเป‰
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ Pentium III เปเบฅเบฐเบŠเบดเบšเปƒเบซเบกเปˆเบเบงเปˆเบฒ, เปเบฅเบฐเปƒเบ™เบชเบฒเบ AMD
เป‚เบ”เบ Athlon-4, Athlon XP เปเบฅเบฐ Athlon MP chips. เบฎเบธเปˆเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡ SSE
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบง, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เบนเปˆเปเบฅเบฐ
เป€เบฅเบเป€เบฅเบเบ„เบฐเบ™เบดเบ”เปเบšเบšเบเบทเบ”เบเบฒเบงเปเบกเปˆเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ 387. เบชเบฐเบšเบฑเบšเบ•เปเปˆเบกเบฒ, เบ›เบฐเบˆเบธเบšเบฑเบ™
เบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบŠเบดเบš Pentium 4 เปเบฅเบฐ AMD x86-64, เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป€เบฅเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

เบชเปเบฒเบฅเบฑเบš x86-32 compiler, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ - เบกเบตเบ™เบฒ=cpu-type, -msse or -msse2 เบชเบฐเบซเบผเบฑเบšเบเบฑเบš
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SSE เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบชเปเบฒเบฅเบฑเบš x86-64 compiler,
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบ™เบˆเบฐเป„เบงเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐ
เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบ•เบปเบงเป€เบฅเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” 387, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเบ—เปเบฒเบฅเบฒเบเบšเบฒเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ„เบฒเบ”เบงเปˆเบฒเบŠเบปเปˆเบงเบ„เบฒเบงเบˆเบฐเป€เบ›เบฑเบ™ 80 bits.

เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš x86-64 compiler.

เบช., 387
sse+387
เบ—เบฑเบ‡เบชเบญเบ‡
เบžเบฐเบเบฒเบเบฒเบกเปƒเบŠเป‰เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบฑเบ‡เบชเบญเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™. เบ™เบตเป‰เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹, เปเบฅเบฐโ€‹เปƒเบ™โ€‹เบŠเบดเบšโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบซเบปเบงโ€‹เบซเบ™เปˆเบงเบโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปเบเบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบซเบฒเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบš 387โ€‹
เปเบฅเบฐ SSE เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™. เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ”เป‰เบงเบเบ„เบงเบฒเบกเบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบเบฑเบ‡เบขเบนเปˆ
เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ GCC เบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบต, เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡.

-masm=เบžเบฒเบชเบฒ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบเบญเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เป‚เบ”เบเปƒเบŠเป‰เบ—เบตเปˆเป€เบฅเบทเบญเบ เบžเบฒเบชเบฒ. เบเบฑเบ‡เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบžเบฒเบชเบฒเปƒเบ”
เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš "asm" เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเบฐเบ‚เบฐเบซเบเบฒเบ "asm". เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ (เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบžเบฒเบชเบฒ) เปเบกเปˆเบ™ att
or intel. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ att. Darwin เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ intel.

-mieee-fp
-mno-ieee-fp
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบŠเป‰เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡ IEEE เบซเบผเบทเบšเปเปˆ. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบˆเบฑเบ”เบเบฒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ–เบทเบเบˆเบฑเบ”เบฎเบฝเบ‡เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

-msoft-float
เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ GCC. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบชเบดเปˆเบ‡เบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบ‚เบญเบ‡
C compiler เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เปƒเบ™ cross-
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป€เบฎเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เป€เบžเบทเปˆเบญโ€‹เปƒเบซเป‰โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹
เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เป‰เบฒเบก.

เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™ 80387
stack, เบšเบฒเบ‡ opcodes เบˆเบธเบ”เบฅเบญเบเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ -msoft-float เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mno-fp-ret-in-387
เบขเปˆเบฒเปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ FPU เบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™.

เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบ›เบปเบเบเบฐเบ•เบดเบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "float" เปเบฅเบฐ "double"
เปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ FPU, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบต FPU. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบกเปˆเบ™เบงเปˆเบฒเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™
เบ„เบงเบ™เป€เบฎเบฑเบ”เบ•เบฒเบก FPU.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -mno-fp-ret-in-387 เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปˆเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบ™ CPU เบ—เปเบฒเบกเบฐเบ”เบฒ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบ—เบ™.

-mno-fancy-math-387
เบšเบฒเบ‡ 387 emulators เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "sin", "cos" เปเบฅเบฐ "sqrt" เบชเปเบฒเบฅเบฑเบš.
387. เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ OpenBSD เปเบฅเบฐ NetBSD. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™ overridden เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹ - เบกเบตเบ™เบฒ เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ
CPU เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฐเป€เบซเบกเบตเบกเบต FPU เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบต emulation.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡เปƒเบŠเป‰
-funsafe-math-optimizations เบชเบฐเบซเบผเบฑเบš.

-malign-double
-mno-align-double
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒ GCC เบงเบฒเบ‡เบ•เบปเบงเปเบ› "เบ„เบนเปˆ", "เบ„เบนเปˆเบเบฒเบง", เปเบฅเบฐ "เบเบฒเบงเบเบฒเบง" เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› a
เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เบชเบญเบ‡โ€‹เบ„เปเบฒโ€‹เบซเบผเบทโ€‹เป€เบ‚เบ”โ€‹เปเบ”เบ™โ€‹เบ„เปเบฒโ€‹เบ”เบฝเบงโ€‹. เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบ•เบปเบงเปเบ› "เบ„เบนเปˆ" เปƒเบ™เบชเบญเบ‡เบ„เปเบฒ
เบ‚เบญเบšเป€เบ‚เบ”เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปเบฅเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™เปƒเบ™ Pentium เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบฒเบ
เบ„เบงเบฒเบกเบŠเบปเบ‡ เบˆเบณ.

เบชเบธเบ” x86-64, -malign-double เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -malign-double เบชเบฐเบซเบผเบฑเบš, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡
เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เบฎเบฝเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบœเบตเบเปเบœเปˆเบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบ„เบนเปˆเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™
เบชเปเบฒโ€‹เบฅเบฑเบš x86-32 เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบ„เบนเปˆโ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบเบฑเบšโ€‹เป‚เบ„เบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™
เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™.

-m96bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
-m128bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบชเบฐเบซเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "เบ„เบนเปˆเบเบฒเบง". เป„เบšเบ™เบฒเบฃเบตเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ x86-32
เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ 96 bits, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ -m96bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™
เป‚เปเบ” 32-เบšเบดเบ”.

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก (Pentium เปเบฅเบฐเปƒเบซเบกเปˆเบเบงเปˆเบฒ) เบ•เป‰เบญเบ‡เบเบฒเบ™ "เบ„เบนเปˆเบเบฒเบง" เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš 8-
เบซเบผเบทเบ‚เบญเบšเป€เบ‚เบ” 16-byte. เปƒเบ™ array เบซเบผเบทเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš ABI, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบฅเบฐเบšเบธ -m128bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ เบˆเบฑเบ”เบฎเบฝเบ‡ "เบ„เบนเปˆเบเบฒเบง" เป€เบ›เบฑเบ™ 16-byte
เป€เบ‚เบ”เปเบ”เบ™เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆ "เบ„เบนเปˆเบเบฒเบง" เบเบฑเบšเบชเบนเบ™ 32-bit เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เปƒเบ™ x86-64 compiler, -m128bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ ABI เบ‚เบญเบ‡เบกเบฑเบ™
เบฅเบฐเบšเบธเบงเปˆเบฒ "เบ„เบนเปˆเบเบฒเบง" เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 16-byte.

เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบ—เบฑเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบžเบดเป€เบชเบ”เป€เบเบตเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ x87
เบ‚เบญเบ‡ 80 bits เบชเปเบฒเบฅเบฑเบš "เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบเบฒเบง".

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ–เป‰เบฒเบ—เปˆเบฒเบ™ override เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš ABI เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ™เบตเป‰เบˆเบฐเบ›เปˆเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”
เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐ arrays เบ—เบตเปˆเบกเบตเบ•เบปเบงเปเบ› "เบ„เบนเปˆเบเบฒเบง", เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰
เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ "เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบเบฒเบง". เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเปเบกเปˆเบ™
binary-เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™.

-mlong-double-64
-mlong-double-80
-mlong-double-128
เบชเบฐเบซเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "เบ„เบนเปˆเบเบฒเบง". เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ 64 เบšเบดเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰
เบ›เบฐเป€เบžเบ” "เบ„เบนเปˆเบเบฒเบง" เป€เบ—เบปเปˆเบฒเบเบฑเบšเบ›เบฐเป€เบžเบ” "เบ„เบนเปˆ". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ 32-bit
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” Bionic C. เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ 128 bits เป€เบฎเบฑเบ”เปƒเบซเป‰เบ›เบฐเป€เบžเบ” "เบ„เบนเปˆเบเบฒเบง" เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš
เบ›เบฐเป€เบžเบ” "__float128". เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” Bionic C 64-เบšเบดเบ”.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ–เป‰เบฒเบ—เปˆเบฒเบ™ override เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš ABI เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ™เบตเป‰เบˆเบฐเบ›เปˆเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”
เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบฅเบฐ arrays เบ—เบตเปˆเบกเบตเบ•เบปเบงเปเบ› "เบ„เบนเปˆเบเบฒเบง", เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰
เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ "เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบเบฒเบง". เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเปเบกเปˆเบ™
binary-เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™.

-malign-data=เบ›เบฐเป€เบžเบ”
เบ„เบงเบšเบ„เบธเบกเบงเบดเบ—เบต GCC เบˆเบฑเบ”เบฎเบฝเบ‡เบ•เบปเบงเปเบ›. เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบ›เบฐเป€เบžเบ” เบกเบต compat เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบตเปˆเบกโ€‹เบ‚เบถเป‰เบ™โ€‹
alignment value เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบŠเป‰ GCC 4.8 เปเบฅเบฐเบเปˆเบญเบ™เปœเป‰เบฒเบ™เบฑเป‰เบ™, เบŠเปˆเบงเบเป€เบซเบฅเบทเบญ เปƒเบŠเป‰เบ„เปˆเบฒเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เป€เบ›เบฑเบ™
เบเปเบฒเบ™เบปเบ”เป‚เบ”เบ psABI, เปเบฅเบฐ cacheline เปƒเบŠเป‰เบกเบนเบ™เบ„เปˆเบฒเบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบปเบ‡เบเบฑเบš
เบ‚เบฐเบซเบ™เบฒเบ”เป€เบชเบฑเป‰เบ™ cache. compat เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mlarge-data-threshold=threshold
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mcmodel=เบ›เบฒเบ™เบเบฒเบ‡ เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰, เบงเบฑเบ”เบ–เบธเบ‚เปเป‰เบกเบนเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒ threshold เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบ„เปˆเบฒเบ™เบตเป‰เบˆเบฐเบ•เป‰เบญเบ‡เบ„เบทเบเบฑเบ™เบ—เบปเปˆเบงเบ—เบธเบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ‚เบปเป‰เบฒ
เป„เบšเบ™เบฒเบฃเบต, เปเบฅเบฐเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ 65535.

-mrtd
เปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เปเบเป‰เป„เบ‚
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบšเบ„เบทเบ™เบ”เป‰เบงเบ "ret เบ•เบปเบงเป€เบฅเบ เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เป€เบŠเบดเปˆเบ‡ pops เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฑเบšเบ„เบทเบ™. เบ™เบตเป‰เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบœเบนเป‰เป‚เบ—เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เบ›เบฐเบเบปเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™.

เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เปเบกเปˆเบ™โ€‹เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒโ€‹เบกเบตโ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบญเบตเป‰เบ™โ€‹เบ™เบตเป‰โ€‹เบเบฑเบšโ€‹
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ "stdcall". เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ” override เป„เบ”เป‰ -mrtd เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
function attribute "cdecl".

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเปƒเบŠเป‰เบขเบนเปˆเปƒเบ™ Unix,
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบกเบฑเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ Unix compiler.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰ prototypes เบŸเบฑเบ‡เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปƒเบŠเป‰เบ•เบปเบงเปเบ›
เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ (เบฅเบงเบกเบ—เบฑเบ‡ "printf"); เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบฅเบฐเบซเบฑเบ”เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเปˆเบฒเบ‡เบฎเบธเบ™เปเบฎเบ‡เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡. (เบ›เบปเบเบเบฐเบ•เบด, เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบžเบดเป€เบชเบ”เปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเบขเปˆเบฒเบ‡เบšเปเปˆเบกเบตเบญเบฑเบ™เบ•เบฐเบฅเบฒเบ.)

-mregparm=num
เบ„เบงเบšเบ„เบธเบกเบˆเบณเบ™เบงเบ™เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบœเปˆเบฒเบ™เบญเบฒเบเบดเบงเป€เบกเบฑเบ™เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบšเปเปˆ
เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เปเบฅเบฐเปƒเบ™ 3 เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”. เป€เบˆเบปเป‰เบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”
เบ„เบงเบšเบ„เบธเบกเบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเป€เบžเบฒเบฐเป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™
"regparm".

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบชเบฐเบซเบผเบฑเบšเบ™เบตเป‰, เปเบฅเบฐ num เบšเปเปˆเปเบกเปˆเบ™เบชเบนเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เป‚เบกเบ”เบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เบกเบตเบกเบนเบ™เบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ”เป†. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบšเปเบฅเบฐ
เป‚เบกเบ”เบนเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-msseregparm
เปƒเบŠเป‰ SSE register passing conventions for float and double arguments and return values โ€‹โ€‹.
เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เบ™เบตเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹
"sseregparm".

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเบฐโ€‹เบซเบผเบฑเบšโ€‹เบ™เบตเป‰โ€‹, เบ—เปˆเบฒเบ™โ€‹เบˆเบฐโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เป‚เบกโ€‹เบ”เบนเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เปˆเบฒโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹,
เบฅเบงเบกเบ—เบฑเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ”เป†. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบšเปเบฅเบฐเป‚เบกเบ”เบนเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mvect8-ret-in-mem
เบเบฑเบšเบ„เบทเบ™ vectors 8-byte เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ MMX. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบ›เบตเบ”เบขเบนเปˆ
Solaris@tie{}8 เปเบฅเบฐ 9 เปเบฅเบฐ VxWorks เป€เบžเบทเปˆเบญเบˆเบฑเบšเบ„เบนเปˆ ABI เบ‚เบญเบ‡ Sun Studio compilers เบˆเบปเบ™เบเปˆเบงเบฒ
เบฅเบธเป‰เบ™ 12. เบฅเบธเป‰เบ™ compiler เบ•เปเปˆเบกเบฒ (เป€เบฅเบตเปˆเบกเบ”เป‰เบงเบ Studio 12 Update@tie{}1) เบ•เบดเบ”เบ•เบฒเบก.
ABI เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเป€เบ›เบปเป‰เบฒเปเบฒเบ x86 เบญเบทเปˆเบ™เป†, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ Solaris@tie{}10 โ€‹โ€‹เปเบฅเบฐเบ•เปเปˆเบกเบฒ.
เบžเบฝเบ‡เปเบ•เปˆ เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฑเบ‡เบ„เบปเบ‡เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบ
เบฅเบธเป‰เบ™ compiler เบเปˆเบญเบ™เปœเป‰เบฒ เบซเบผเบทเบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒเบ‚เบญเบ‡ GCC.

-mpc32
-mpc64
-mpc80
เบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™ 80387 เป€เบ›เบฑเบ™ 32, 64 เบซเบผเบท 80 เบšเบดเบ”. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mpc32 เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹,
เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบกเบปเบ™เป€เบ›เบฑเบ™ 24 bits
(เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบง); -mpc64 เบฎเบญเบšเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ 53 bits (เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ) เปเบฅเบฐ -mpc80 เบฎเบญเบšเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบˆเบธเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เป„เบ”เป‰ 64 bits (เบ„เบงเบฒเบกโ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เบชเบญเบ‡โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹)โ€‹, เบŠเบถเปˆเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เปƒเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบชเบนเบ‡เบเบงเปˆเบฒเปเบกเปˆเบ™
เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡เบ„เปเบฒเบ„เบงเบšเบ„เบธเบก FPU เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฎเบญเบšเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบˆเบธเบ”เบฅเบญเบเปƒเบซเป‰เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ 80 bits เบชเบฒเบกเบฒเบ”
เป€เบฅเบฑเปˆเบ‡เบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบ 2% เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบšเบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ
Extend-precision (80-bit) เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™; เบ›เบปเบเบเบฐเบ•เบด
เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡, เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบœเปˆเบฒเบ™เบ—เบฒเบ‡.
เป€เบญเบตเป‰เบ™เบงเปˆเบฒ "เบเบฒเบ™เบเบปเบเป€เบฅเบตเบเป„เบžเบžเบดเบšเบฑเบ”", เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡
เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบฐเบซเบเบฒเบ.

-mstackrealign
เบˆเบฑเบ”เบงเบฒเบ‡ stack เบขเบนเปˆเบ—เบฒเบ‡เป€เบ‚เบปเป‰เบฒเบ„เบทเบ™เปƒเปเปˆ. เปƒเบ™ x86, เป„เบ”เป‰ -mstackrealign เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเป‰เบฒเบ‡
prologue เปเบฅเบฐ epilogue เบชเบฐเบฅเบฑเบšเบเบฑเบ™เบ—เบตเปˆ realigns stack-time run เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™. เบ™เบตเป‰
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบฅเบฐเบซเบฑเบ”เบกเปเบฅเบฐเบ”เบปเบเบ—เบตเปˆเบฎเบฑเบเบชเบฒเบเบฒเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบš stack 4-byte เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก
เบฎเบฑเบเบชเบฒเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ stack 16-byte เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡ SSE. เป€เบšเบดเปˆเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบณ
"force_align_arg_pointer", เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ.

-mpreferred-stack-boundary=num
เบžเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒเบ‚เบญเบšเป€เบ‚เบ” stack เบชเบญเบ”เบ„เปˆเบญเบ‡เป€เบ›เบฑเบ™ 2 เบเบปเบเบ‚เบถเป‰เบ™เบกเบฒ num เบ‚เบญเบšเป€เบ‚เบ” byte. เบ–เป‰เบฒ
-mpreferred-stack-เป€เบ‚เบ”เปเบ”เบ™ เบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 4 (16 bytes เบซเบผเบท 128 bits).

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ x86-64 เบ”เป‰เบงเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SSE
เบžเบดเบเบฒเบ™, -mpreferred-stack-boundary=3 เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเบ‚เบญเบšเป€เบ‚เบ” stack เบชเบญเบ”เบ„เปˆเบญเบ‡
เป€เบ–เบดเบ‡ 8 byte เบ‚เบญเบšเป€เบ‚เบ”. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ x86-64 ABI เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ stack 16 byte, เบ™เบตเป‰เปเบกเปˆเบ™ ABI
เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰ เปเบฅเบฐเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเบžเบทเป‰เบ™เบ—เบตเปˆ stack
เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบฅเบฐเบซเบฑเบ”เบœเบดเบ”เป€เบกเบทเปˆเบญเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ 16
byte stack alignment (เป€เบŠเบฑเปˆเบ™: เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™) เบ–เบทเบเป€เบญเบตเป‰เบ™เบ”เป‰เบงเบ
stack เบœเบดเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE เบญเบฒเบ”เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เบเบฑเบšเบ”เบฑเบ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเปเบ›เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบš 16 byte aligned
เบงเบฑเบ”เบ–เบธ (เบฅเบงเบกเบ—เบฑเบ‡ x87 long double เปเบฅเบฐ __int128), เบ™เปเบฒเป„เบ›เบชเบนเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡
เบชเป‰เบฒเบ‡เป‚เบกเบ”เบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบ -mpreferred-stack-boundary=3, เบฅเบงเบกเบ—เบฑเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ”เป†. เบ™เบตเป‰
เบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบšเปเบฅเบฐเป‚เบกเบ”เบนเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mincoming-stack-boundary=num
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ stack เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™เบเบฑเบš 2 เบเบปเบเบ‚เบถเป‰เบ™เบกเบฒ num เบ‚เบญเบšเป€เบ‚เบ” byte. เบ–เป‰เบฒ
-mincoming-stack-เป€เบ‚เบ”เปเบ”เบ™ เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹, เบซเบ™เบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹
-mpreferred-stack-เป€เบ‚เบ”เปเบ”เบ™ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เปƒเบ™ Pentium เปเบฅเบฐ Pentium Pro, เบ„เปˆเบฒ "double" เปเบฅเบฐ "double long" เบ„เบงเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเบเบฑเบšเบ„เปˆเบฒ.
เบ‚เบญเบšเป€เบ‚เบ” 8-byte (เป€เบšเบดเปˆเบ‡ -malign-double) เบซเบผเบทเบ—เบปเบ™เบ—เบธเบเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™
เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”. เปƒเบ™ Pentium III, เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™ Streaming SIMD Extension (SSE) "__m128" เบญเบฒเบ”เบˆเบฐ
เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡ 16-byte.

เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบ„เปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™ stack, เบ‚เบญเบšเป€เบ‚เบ” stack เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เบˆเบฑเบ”เบฎเบฝเบ‡เบ•เบฒเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเปƒเบ”เป†เบเปเบ•เบฒเบกเบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ stack. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบธเบเป†เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบฎเบฑเบเบชเบฒ stack เบชเบญเบ”เบ„เปˆเบญเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ
เบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ‚เบญเบšเป€เบ‚เบ” stack เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบนเบ‡เบเบงเปˆเบฒเบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ•เปˆเปเบฒ
เบ‚เบญเบšเป€เบ‚เบ” stack เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ stack เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เปเบฒเบงเปˆเบฒ
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบชเบฐเป€เบซเบกเบตเปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบžเบดเป€เบชเบ”เบ™เบตเป‰เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆ stack เบžเบดเป€เบชเบ”, เปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบˆเบฐเป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”
เบ‚เบฐเปœเบฒเบ”. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบญเปˆเบญเบ™เป„เบซเบงเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆ stack, เป€เบŠเบฑเปˆเบ™: เบฅเบฐเบšเบปเบšเบเบฑเบ‡เปเบฅเบฐ
kernels เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹, เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบซเบผเบธเบ”โ€‹เบœเปˆเบญเบ™โ€‹เบเบฒเบ™โ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เบเบฑเบšโ€‹
-mpreferred-stack-boundary=2.

-mmmx
-msse
-msse2
-msse3
-mssse3
-msse4
-msse4a
-msse4.1
-msse4.2
-mavx
-mavx2
-mavx512f
-mavx512pf
-mavx512er
-mavx512cd
-msha
- เปเบกเปˆ
-mpclmul
-mclfushopt
-mfsgsbase
-mrdrnd
-mf16c
-mfma
-mfma4
-mno-fma4
-mprefetchwt1
-mxop
-mlwp
-m3dnow
-mpopcnt
- mabm
-mbmi
-mbmi2
-mlzcnt
-mfxsr
-mxsave
-mxsaveopt
-mxsavec
-mxsaves
-mrtm
-mtbm
-mmpx
-mmwaitx
เบชเบฐเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™ MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, AVX, AVX2, AVX512F, AVX512PF, AVX512ER, AVX512CD, SHA, AES, PCLMUL, FSGSBASE,
RDRND, F16C, FMA, SSE4A, FMA4, XOP, LWP, ABM, BMI, BMI2, FXSR, XSAVE, XSaveOPT, LZCNT,
RTM, MPX, MWAITX เบซเบผเบท 3DNow! เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบ. เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบตเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ -mno-
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เบกเบตเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™: เป€เบšเบดเปˆเบ‡ x86 Built-in เบซเบ™เป‰เบฒเบ—เบตเปˆ,
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เปเบฅเบฐโ€‹เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบผเบฑเบšโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹.

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE/SSE2 เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบˆเบธเบ”เบฅเบญเบ (เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก
เป€เบ–เบดเบ‡ 387 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ), เป€เบšเบดเปˆเบ‡ -mfpmath=sse.

GCC depresses SSEx เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -mavx เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบกเบฑเบ™เบชเป‰เบฒเบ‡ AVX เปƒเปเปˆ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบทเบเบฒเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ AVX เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSEx เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -mfpmath=sse. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบเบฒเบ™เบเบงเบ”เบซเบฒ CPU เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบก
เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบธเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เปƒเบ™
เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบเบงเบ”เบซเบฒ CPU เบ„เบงเบ™เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

-mdump-tune-เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ GCC เบ–เบดเป‰เบกเบŠเบทเปˆเบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” x86 เปเบฅเบฐ
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบŠเบทเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ -mtune-ctrl=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”.

-mtune-ctrl=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบกเบฑเบ”เบžเบทเบ”เบ—เบตเปˆเบ”เบตเบ‚เบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” x86.
เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ” เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เบŠเบทเปˆ. เป€เบšเบดเปˆเบ‡เบ™เบณ
-mdump-tune-เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”, เป„เบ”เป‰ เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เป€เบ›เบตเบ”เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบ–เบทเบเบ™เบณเปœเป‰เบฒ
เบเบฑเบš ^, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบ–เบทเบเบ›เบดเบ”. -mtune-ctrl=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰
เป‚เบ”เบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ GCC. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเบงเบกเป€เบญเบปเบฒเป‚เบ”เบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰
เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰ compiler ICEs เบซเบผเบท runtime เบœเบดเบ”เบžเบฒเบ”.

-mno-default
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ GCC เบ›เบดเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเป„เบ”เป‰เบ—เบฑเบ‡เปเบปเบ”. เป€เบšเบดเปˆเบ‡เบ™เบณ
-mtune-ctrl=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เปเบฅเบฐ -mdump-tune-เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”.

-mcld
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ GCC เบ›เปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "cld" เปƒเบ™ prologue เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ string. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบธเบ‡ DF เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบ
เบฅเบฐเบซเบงเปˆเบฒเบ‡ autoincrement เบซเบผเบท autodecrement mode. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ ABI เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡ DF เบเบฑเบš
เบˆเบฐเบ–เบทเบเบฅเบถเบšเบฅเป‰เบฒเบ‡เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™, เบšเบฒเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ‚เปเป‰เบเปเบฒเบซเบ™เบปเบ”เบ™เบตเป‰เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰
เบฅเป‰เบฒเบ‡เบ—เบธเบ‡ DF เปƒเบ™เบœเบนเป‰เบชเบปเปˆเบ‡เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
invoked เบเบฑเบšเบŠเบธเบ”เบ—เบธเบ‡ DF, เป€เบŠเบดเปˆเบ‡เบ™เปเบฒเป„เบ›เบชเบนเปˆเป‚เบซเบกเบ”เบ—เบดเบ”เบ—เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ string
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ 32-bit x86 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป‚เบ”เบ
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC เบเบฑเบš --enable-cld เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบเบฒเบ™เบœเบฐเบฅเบดเบ” "cld"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบ”เป‰เบงเบ -mno-cld เบ—เบฒเบ‡เป€เบฅเบทเบญเบ compiler เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰.

-mvzeroupper
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ GCC เบ›เปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "vzeroupper" เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบญเบ™
เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผเบญเบญเบเบˆเบฒเบเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เบเบฒเบ™เบ›เปˆเบฝเบ™ AVX เบเบฑเบš SSE เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เป€เบŠเบฑเปˆเบ™เบเบฑเบ™
เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เบเปเบฒเบˆเบฑเบ” "zeroupper" เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบžเบฒเบเปƒเบ™.

-mprefer-avx128
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 128-bit AVX เปเบ—เบ™ AVX 256-bit
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™ auto-vectorizer.

-mcx16
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CMPXCHG16B". "CMPXCHG16B" เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ‚เบญเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบเปˆเบฝเบงเบเบฑเบš 128-bit double quadword (เบซเบผเบท oword) เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ™เบฑเบšเบ„เบงเบฒเบกเบฅเบฐเบญเบฝเบ”เบชเบนเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เป‚เบ”เบเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบซเบผเบฒเบ (เบซเบผเบท
เบซเบผเบฑเบ). เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน: เป€เบšเบดเปˆเบ‡
__เบŠเบดเป‰เบ‡ เป€เบเบตเบ”เบ‚เบถเป‰เบ™ or __เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน เป€เบเบตเบ”เบ‚เบถเป‰เบ™ เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

-msahf
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "SAHF" เปƒเบ™เบฅเบฐเบซเบฑเบ” 64-bit. Intel เบ•เบปเป‰เบ™
Pentium 4 CPUs เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Intel 64, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเปเบ™เบฐเบ™เปเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™ Pentium 4 G1.
เปƒเบ™เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒ 2005, เบ‚เบฒเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "LAHF" เปเบฅเบฐ "SAHF" เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบฒเบ.
AMD64. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบชเปเบฒเบฅเบฑเบšเบ—เบธเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.
เปƒเบ™เป‚เบซเบกเบ” 64-bit, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "SAHF" เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš "fmod", "drem", เปเบฅเบฐ.
"เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญ" เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™; เป€เบšเบดเปˆเบ‡ เบญเบทเปˆเบ™ เป† เป€เบเบตเบ”เบ‚เบถเป‰เบ™ เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

- mmovbe
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "movbe" เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” "__builtin_bswap32"
เปเบฅเบฐ "__builtin_bswap64".

-mcrc32
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปƒเบ™เบ•เบปเบง "__builtin_ia32_crc32qi",
"__builtin_ia32_crc32hi", "__builtin_ia32_crc32si" เปเบฅเบฐ "__builtin_ia32_crc32di" เป€เบžเบทเปˆเบญ
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ "crc32".

-mrecip
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "RCPSS" เปเบฅเบฐ "RSQRTSS" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ (เปเบฅเบฐ vectorized เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
variants "RCPPS" เปเบฅเบฐ "RSQRTPS") เบ”เป‰เบงเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™ Newton-Raphson เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบก
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเปเบ—เบ™ "DIVSS" เปเบฅเบฐ "SQRTSS" (เปเบฅเบฐเบ•เบปเบงเปเบ› vectorized เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ) เบชเปเบฒเบฅเบฑเบš single-
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบˆเบธเบ”เบฅเบญเบ. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ
-funsafe-math-optimizations เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš -finite-math-only เปเบฅเบฐ
-fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ throughput เบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบšเปเบกเปˆเบ™เบชเบนเบ‡เบเบงเปˆเบฒ
throughput เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ reciprocal, เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบšเบชเบฒเบกเบฒเบ”
เบซเบผเบธเบ”เบฅเบปเบ‡เป€เบ–เบดเบ‡ 2 ulp (เป€เบŠเบฑเปˆเบ™ inverse เบ‚เบญเบ‡ 1.0 เป€เบ—เบปเปˆเบฒเบเบฑเบš 0.99999994).

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ GCC เบ›เบฐเบ•เบดเบšเบฑเบ” "1.0f/sqrtf(x)" เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡ "RSQRTSS" (เบซเบผเบท "RSQRTPS") เปเบฅเป‰เบง
เบเบฑเบš -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹ (เบซเบผเบทเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡), เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡ -mrecip.

เบเบฑเบ‡เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ GCC เบ›เปˆเบญเบเบฅเปเบฒเบ”เบฑเบšเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ”เป‰เบงเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™ Newton-Raphson เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™เปเบšเปˆเบ‡ vectorized single-float เปเบฅเบฐ vectorized "sqrtf(x)" เปเบฅเป‰เบงเบเบฑเบš -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹
(เบซเบผเบทเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡), เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡ -mrecip.

-mrecip=เป€เบฅเบทเบญเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เป€เบฅเบทเบญเบ เป€เบ›เบฑเบ™
เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเบ™เบณเปœเป‰เบฒเบ”เป‰เบงเบ a ! เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹:

เบ—เบฑเบ‡เบซเบกเบปเบ” เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ—เบฑเบ‡เปเบปเบ”.

Default
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™, เป€เบ—เบปเปˆเบฒเบเบฑเบš -mrecip.

none
เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -mno-recip.

div เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบชเบฐเป€เบเบฑเบ”เป€เบ‡เบดเบ™.

vec-div
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡ vectorized.

sqrt
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบชเปเบฒเบฅเบฑเบš scalar เบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบก.

vec-sqrt
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบก vectorized.

เบชเบฐเบ™เบฑเป‰เบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, -mrecip=เบ—เบฑเบ‡เปเบปเบ”,!sqrt เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบกเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹,
เบเบปเบเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบก.

-mveclibabi=เบ›เบฐเป€เบžเบ”
เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ” ABI เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบชเบณเบฅเบฑเบš vectorizing intrinsics เป‚เบ”เบเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบžเบฒเบเบ™เบญเบ.
เบ„เบธเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบ›เบฐเป€เบžเบ” เบกเบต svml เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบชเบฑเป‰เบ™ vector เบ‚เบญเบ‡ Intel เปเบฅเบฐ acml
เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบฑเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ” AMD. เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบ—เบฑเบ‡เบชเบญเบ‡ -ftree-vectorize เปเบฅเบฐ
-funsafe-math-optimizations เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เปเบฅเบฐ SVML เบซเบผเบท ACML ABI-เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ•เป‰เบญเบ‡เบ–เบทเบเบฅเบฐเบšเบธเปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ GCC เบ›เปˆเบญเบเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒ "vmldExp2", "vmldLn2", "vmldLog102", "vmldLog102",
"vmldPow2", "vmldTanh2", "vmldTan2", "vmldAtan2", "vmldAtanh2", "vmldCbrt2",
"vmldSinh2", "vmldSin2", "vmldAsinh2", "vmldAsin2", "vmldCosh2", "vmldCos2",
"vmldAcosh2", "vmldAcos2", "vmlsExp4", "vmlsLn4", "vmlsLog104", "vmlsLog104",
"vmlsPow4", "vmlsTanh4", "vmlsTan4", "vmlsAtan4", "vmlsAtanh4", "vmlsCbrt4",
"vmlsSinh4", "vmlsSin4", "vmlsAsinh4", "vmlsAsin4", "vmlsCosh4", "vmlsCos4",
"vmlsAcosh4" เปเบฅเบฐ "vmlsAcos4" เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เป€เบกเบทเปˆเบญ -mveclibabi=svml is
เปƒเบŠเป‰, เปเบฅเบฐ "__vrd2_sin", "__vrd2_cos", "__vrd2_exp", "__vrd2_log", "__vrd2_log2",
"__vrd2_log10", "__vrs4_sinf", "__vrs4_cosf", "__vrs4_expf", "__vrs4_logf",
"__vrs4_log2f", "__vrs4_log10f" เปเบฅเบฐ "__vrs4_powf" เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -mveclibabi=acml เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-mabi=เบŠเบทเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™ sysv เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
ABI เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ GNU/Linux เปเบฅเบฐเบฅเบฐเบšเบปเบšเบญเบทเปˆเบ™เป†, เปเบฅเบฐ ms เบชเปเบฒเบฅเบฑเบš Microsoft ABI. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ Microsoft ABI เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ Microsoft Windows เปเบฅเบฐ SysV ABI
เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบญเบทเปˆเบ™เป†โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเป€เบžเบฒเบฐเป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ "ms_abi" เปเบฅเบฐ "sysv_abi".

-mtls-เบžเบฒเบชเบฒ =เบ›เบฐเป€เบžเบ”
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ thread-local เป‚เบ”เบเปƒเบŠเป‰ gnu or gnu2 เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒ. gnu
เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบšเบšเบญเบฐเบ™เบธเบฅเบฑเบ; gnu2 เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™, เปเบ•เปˆเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเปเบฅเปˆเบ™-
เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบžเปเปƒเบˆเปƒเบ™เบ—เบธเบเบฅเบฐเบšเบปเบš.

-mpush-args
-mno-push-args
เปƒเบŠเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ PUSH เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบชเบปเปˆเบ‡เบญเบญเบ. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฑเป‰เบ™เบเบงเปˆเบฒเปเบฅเบฐเบ›เบปเบเบเบฐเบ•เบด
เป„เบงเป€เบ—เบปเปˆเบฒเบเบฑเบ™เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ SUB/MOV เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปƒเบ™เบšเบฒเบ‡
เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเปเบฅเบฐเบซเบผเบธเบ”เบฅเบปเบ‡
เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช.

-maccumulate-outgoing-args
เบ–เป‰เบฒเป€เบ›เบตเบ”เปƒเบŠเป‰, เบˆเปเบฒเบ™เบงเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบ—เบตเปˆเบญเบญเบเบกเบฒเบˆเบฐเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเปƒเบ™
prologue เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™เบขเบนเปˆเปƒเบ™ CPU เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบชเปˆเบงเบ™เปƒเบซเบเปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡
เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเปเบฅเบฐเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เปƒเบŠเป‰ stack เป€เบกเบทเปˆเบญ stack เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
เบ‚เบญเบšเป€เบ‚เบ”เบšเปเปˆเป€เบ—เบปเปˆเบฒเบเบฑเบš 2. เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบฑเบ‡เป€เบเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบ™เบตเป‰
เบชเบฐเบซเบผเบฑเบšเปเบฒเบเป€เบ–เบดเบ‡ -mno-push-args.

-mthreads
เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบžเปƒเบ™เบซเบปเบงเบ‚เปเป‰ MinGW. เป‚เบ›เบฃเปเบเบฃเบกเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ thread-safe
เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบเบฑเบš the -mthreads เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹, -mthreads เบเปเบฒเบ™เบปเบ” -D_MT; เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบกเบฑเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบ•เบปเบงเบŠเปˆเบงเบเบเบฐเบ—เบนเป‰เบžเบดเป€เบชเบ”
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” -lmingwthrd เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ•เปเปˆเบเบฐเบ—เบนเป‰.

-mno-align-stringops
เบขเปˆเบฒเบˆเบฑเบ”เบงเบฒเบ‡เบˆเบธเบ”เปเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบ•เบฃเบดเบ‡เปƒเบ™เปเบ–เบง. เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบซเบผเบธเบ”เบฅเบฐเบซเบฑเบ”
เบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เบ–เบทเบเบชเบญเบ”เบ„เปˆเบญเบ‡เปเบฅเป‰เบง, เปเบ•เปˆ GCC
เบšเปเปˆเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™.

-minline-all-stringops
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ GCC เบˆเบฐ inlines เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบ•เบฃเบดเบ‡เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ
เบˆเบฑเบ”เบฎเบฝเบ‡เป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เปœเป‰เบญเบ 4-byte boundary. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ inlining เบซเบผเบฒเบเปเบฅเบฐเป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”
เบ‚เบฐเบซเบ™เบฒเบ”, เปเบ•เปˆเบญเบฒเบ”เบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป„เบง "memcpy", "strlen", เปเบฅเบฐ
"memset" เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบเบฒเบงเบชเบฑเป‰เบ™.

-minline-stringops-เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบ•เบฃเบดเบ‡เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบ, เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ” inline เบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบ—เปˆเบญเบ™เป„เบกเป‰เปเบฅเบฐเบซเปเบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบชเปเบฒเบฅเบฑเบšเบ•เบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.

-mstringop-strategy=เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ”
override heuristic เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบžเบฒเบเปƒเบ™เบชเปเบฒเบฅเบฑเบš algorithm เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš
inlining เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™ stringโ€‹. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบš เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ” เปเบกเปˆเบ™:

rep_byte
rep_4byte
rep_8byte
เบ‚เบฐเบซเบเบฒเบเป‚เบ”เบเปƒเบŠเป‰ i386 "rep" เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰.

byte_loop
loop
unrolled_loop
เบ‚เบฐเบซเบเบฒเบเป€เบ›เบฑเบ™เบงเบปเบ‡เปƒเบ™เปเบ–เบง.

libcall
เปƒเบŠเป‰เป‚เบ—เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบชเบฐเป€เปเบต.

-mmemcpy-strategy=เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”
override heuristic เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบžเบฒเบเปƒเบ™เป€เบžเบทเปˆเบญเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒ "__builtin_memcpy" เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
inlined เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆ inline algorithm เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเปเบฒเป€เบ™เบปเบฒ
เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ. เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ” เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบ‚เบฑเป‰เบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ” เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ”:เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ”:dest_align triplets. เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ”
เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เปƒเบ™ -mstringop-เบเบธเบ”โ€‹เบ—เบฐโ€‹เบชเบฒเบ”โ€‹, เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ” เบฅเบฐเบšเบธเบ‚เบฐเปœเบฒเบ” max byte เบ—เบตเปˆ
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปƒเบ™เปเบ–เบง เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ” เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”. เบชเปเบฒเบฅเบฑเบš triplet เบชเบธเบ”เบ—เป‰เบฒเบ, เป„เบ”เป‰ เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ” เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™ "-1". เป„เบ”เป‰
เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ” เบ‚เบญเบ‡ triplets เปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบฐเบšเบธเปƒเบ™เบฅเปเบฒเบ”เบฑเบšเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เป„เบ”เป‰
เบ‚เบฐเบซเบ™เบฒเบ” byte เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ” เปเบกเปˆเบ™ 0 เบชเปเบฒเบฅเบฑเบš triplet เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐ "เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ” + 1" เบ‚เบญเบ‡
เบŠเปˆเบงเบ‡เบเปˆเบญเบ™เปœเป‰เบฒ.

-mmemset-strategy=เปเบœเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš -mmemcpy-strategy= เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบง "__builtin_memset".

-momit-leaf-frame-pointer
เบขเปˆเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ™เบตเป‰เบซเบผเบตเบเบฅเป‰เบฝเบ‡เบเบฒเบ™
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹, เปเบฅเบฐโ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบเบญเบšโ€‹เปเบฅเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹
เบกเบตเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fomit-leaf-frame-pointer เป€เบญเบปเบฒเบเบญเบš
เบ•เบปเบงเบŠเบตเป‰เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบเบฒเบเบ‚เบถเป‰เบ™.

-mtls-direct-seg-refs
-mno-tls-direct-seg-refs
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบ•เบปเบงเปเบ› TLS เบญเบฒเบ”เบˆเบฐเบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™ TLS
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ (%gs เบชเปเบฒเบฅเบฑเบš 32-bit, %fs เบชเปเบฒเบฅเบฑเบš 64-bit), เบซเบผเบทเบงเปˆเบฒเบ•เบปเบงเบŠเบตเป‰เบ–เบฒเบ™ thread เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™.
เป€เบžเบตเปˆเบก. เบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบทเบšเปเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™, เปเบฅเบฐเบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™
เปเบœเบ™เบ—เบตเปˆเบžเบฒเบเบชเปˆเบงเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบงเบกเป€เบญเบปเบฒเบžเบทเป‰เบ™เบ—เบตเปˆ TLS เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเปƒเบŠเป‰ GNU C Library, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบ›เบตเบ”เบขเบนเปˆ.

-msse2avx
-mno-sse2avx
เบฅเบฐเบšเบธเบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเบ„เบงเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE เบ”เป‰เบงเบเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ VEX. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
-mavx เป€เบ›เบตเบ”เบญเบฑเบ™เบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mfentry
-mno-fentry
เบ–เป‰เบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰ (- เปœเป‰เบฒ), เป€เบญเบปเบฒเบเบฒเบ™เป‚เบ—เบซเบฒ counter profile เบเปˆเบญเบ™ prologue เป„เบ”เป‰.
เปเบฒเบเป€เบซเบ”: เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ x86 เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "ms_hook_prologue" เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเบ—เบตเปˆ
เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ -mfentry เปเบฅเบฐ - เปœเป‰เบฒ.

-mrecord-mcount
-mno-record-mcount
เบ–เป‰เบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰ (- เปœเป‰เบฒ), เบชเป‰เบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™ __mcount_loc เบ—เบตเปˆเบกเบตเบ•เบปเบงเบŠเบตเป‰
เปเบ•เปˆเบฅเบฐเบเบฒเบ™เป‚เบ— profileing. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ patching เปเบฅเบฐเบญเบญเบเบเบฒเบ™เป‚เบ—เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

-mnop-mcount
-mno-nop-mcount
เบ–เป‰เบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰ (- เปœเป‰เบฒ), เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ profileing เป€เบ›เบฑเบ™ nops.
เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ„เบงเบ™เบˆเบฐเบ–เบทเบ patched เปƒเบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ•เปเปˆเบกเบฒ. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ
เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹ -mrecord-mcount.

-mskip-rax-setup
-mno-skip-rax-setup
เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ x86-64 เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SSE เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™,
-skip-rax-setup เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ‚เป‰เบฒเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ RAX เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบกเบทเปˆเบญเบšเปเปˆเบกเบตเบ•เบปเบงเปเบ›
arguments เบœเปˆเบฒเบ™เปƒเบ™ vector registers.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ RAX เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ›เบฐเบซเบเบฑเบ” vector registers เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™
stack เป€เบกเบทเปˆเบญเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเปเบ›, เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™ callees เบญเบฒเบ”เบˆเบฐ
เป€เบชเบเบžเบทเป‰เบ™เบ—เบตเปˆ stack เบšเบฒเบ‡เบญเบฑเบ™, เบ›เบฐเบžเบถเบ”เบœเบดเบ” เบซเบผเบทเป‚เบ”เบ”เป„เบ›เบซเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปเบšเบšเบชเบธเปˆเบก. GCC 4.4 เบซเบผเบทเปƒเปเปˆเบเบงเปˆเบฒ
เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ RAX.

-m8bit-idiv
-mno-8bit-idiv
เปƒเบ™เบšเบฒเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต, เป€เบŠเบฑเปˆเบ™ Intel Atom, 8-bit unsigned integer divide เปเบกเปˆเบ™เป„เบงเบเบงเปˆเบฒ
เบเบฒเบ™เปเบšเปˆเบ‡เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก 32-เบšเบดเบ”/64-เบšเบดเบ”. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡
เป€เบ‡เบดเบ™เบ›เบฑเบ™เบœเบปเบ™ เปเบฅเบฐเบ•เบปเบงเบซเบฒเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ 0 เบซเบฒ 255, 8-bit unsigned integer divide เปเบกเปˆเบ™
เปƒเบŠเป‰เปเบ—เบ™เบเบฒเบ™เปเบšเปˆเบ‡เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก 32-เบšเบดเบ”/64-เบšเบดเบ”.

-mavx256-split-unaligned-load
-mavx256-split-unaligned-store
เปเบเบ 32-byte AVX unaligned load เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ.

-mstack-protector-guard=เบเบญเบ‡
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ›เป‰เบญเบ‡เบเบฑเบ™ stack เป‚เบ”เบเปƒเบŠเป‰ canary at เบเบญเบ‡. เบชเบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เปเบกเปˆเบ™โ€‹ เบ—เบปเปˆเบงเป‚เบฅเบ
เบชเปเบฒเบฅเบฑเบš canary เบ—เบปเปˆเบงเป‚เบฅเบเบซเบผเบท tls เบชเปเบฒเบฅเบฑเบšเบ•เปเปˆเบเบฐเบ—เบนเป‰ canary เปƒเบ™เบ•เบฑเบ™ TLS (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™). เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -stack-protector or -fstack-protector-เบ—เบฑเบ‡เปเบปเบ” เบ–เบทเบเบเปเบฒเบ™เบปเบ”.

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบชเบฐเบงเบดเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบเปˆเบฝเบงเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต x86-64 เปƒเบ™ 64-bit
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก.

-m32
-m64
-mx32
-m16
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 16-bit, 32-bit เบซเบผเบท 64-bit. เป„เบ”เป‰ -m32 เบ•เบปเบงเป€เบฅเบทเบญเบเบเปเบฒเบ™เบปเบ” "int",
"เบเบฒเบง", เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒ 32 เบšเบดเบ”, เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš i386 เปƒเบ”.

เป„เบ”เป‰ -m64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปเบฒเบ™เบปเบ” "int" เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐ "เบเบฒเบง" เปเบฅเบฐเบ›เบฐเป€เบžเบ” pointer เป€เบ›เบฑเบ™ 64 bits, เปเบฅเบฐ.
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ x86-64. เบชเปเบฒเบฅเบฑเบš Darwin เบžเบฝเบ‡เปเบ•เปˆ -m64 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹
เบ›เบดเบ” -fno-pic เปเบฅเบฐ -mdynamic-no-pic เบ•เบปเบงเป€เบฅเบทเบญเบ

เป„เบ”เป‰ -mx32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปเบฒเบ™เบปเบ” "int", "เบเบฒเบง", เปเบฅเบฐเบ›เบฐเป€เบžเบ” pointer เป€เบ›เบฑเบ™ 32 bits, เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”
เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ x86-64.

เป„เบ”เป‰ -m16 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš -m32, เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบฑเบ™โ€‹เบญเบญเบ ".code16gccโ€‹"
assembly directive เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเป€เบžเบทเปˆเบญเปƒเบซเป‰ binary เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
เปƒเบ™เป‚เบซเบกเบ” 16-bit.

-mno-red-zone
เบขเปˆเบฒเปƒเบŠเป‰เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "เป€เบ‚เบ”เบชเบตเปเบ”เบ‡" เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” x86-64. เป€เบ‚เบ”โ€‹เบชเบตโ€‹เปเบ”เบ‡โ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป‚เบ”เบโ€‹
x86-64 ABI; เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ 128-byte เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰ stack เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฑเบ™เบเบฒเบ™เบซเบผเบทเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบŠเบปเปˆเบงเบ„เบฒเบง
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบŠเบตเป‰ stack. เบ—เบธเบ‡ -mno-red-zone เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป€เบ‚เบ”เบชเบตเปเบ”เบ‡เบ™เบตเป‰.

-mcmodel=เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบšเบšเบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ: เป‚เบ›เบผเปเบเบผเบกเปเบฅเบฐเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ‚เบญเบ‡เบกเบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบ•เปˆเปเบฒเบเบงเปˆเบฒ 2 GB เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ. เบ•เบปเบงเบŠเบตเป‰เปเบกเปˆเบ™ 64 เบšเบดเบ”. เป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ เบซเบผเบทเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mcmodel=kernel
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ” kernel. kernel เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบฅเบปเบš 2 GB เบ‚เบญเบ‡
เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบ•เป‰เบญเบ‡เบ–เบทเบเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” Linux kernel.

-mcmodel=เบ›เบฒเบ™เบเบฒเบ‡
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ”เบเบฒเบ‡: เป‚เบ„เบ‡เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบขเบนเปˆเปƒเบ™เบ•เปˆเปเบฒ 2 GB เบ‚เบญเบ‡
เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ. เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเปเปˆเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบกเบตเบ‚เบฐ เปœเบฒเบ” เปƒเบซเบเปˆเบเบงเปˆเบฒ
-mlarge-data-threshold เบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบท BSS เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆ
เบชเบนเบ‡เบเบงเปˆเบฒ 2GB. เบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ เบซเบผเบทเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง.

-mcmodel=เปƒเบซเบเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบšเปเปˆเบกเบตเบเบฒเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ—เบตเปˆเบขเบนเปˆ
เปเบฅเบฐโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹.

-maddress-mode=เบเบฒเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเบเบฒเบง. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบญเบ‡เบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆ 64-bit เปเบฅเบฐ x32
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก. เบกเบฑเบ™เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 64-bit.

-maddress-mode=เบชเบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเบชเบฑเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบญเบ‡เบฎเบฑเบšเบžเบฝเบ‡เปเบ•เปˆ 32-bit เปเบฅเบฐ x32
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก. เบกเบฑเบ™เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบขเบนเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เปเบฅเบฐ x32.

x86 Windows เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡ Microsoft Windows:

-mconsole
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบ console เปเบกเปˆเบ™โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹, เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ‚เบญเบ‡ PE header เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ console.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบ›เบปเป‰เบฒเปเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mdll
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ DLL---a
เบซเปเบชเบฐเบซเบกเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ --- เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบฅเบทเบญเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
runtime startup object เปเบฅเบฐเบˆเบธเบ”เป€เบ‚เบปเป‰เบฒ.

-mnop-fun-dllimport
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "dllimport" เบ„เบงเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

-mthread
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ MinGW. เบกเบฑเบ™เบฅเบฐเบšเบธเบงเปˆเบฒเบเบฐเบ—เบนเป‰เบชเบฐเป€เบžเบฒเบฐ MinGW
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-municode
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ MinGW-w64. เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ” "UNICODE" preprocessor
เบกเบฐเบซเบฒเบžเบฒเบเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒ, เปเบฅเบฐเป€เบฅเบทเบญเบเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” Unicode.

-mwin32
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบ›เบปเบเบเบฐเบ•เบด
เป€เบกเป‚เบ„ Microsoft Windows เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒเปเบกเปˆเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™
เบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เบ•เปเปˆเบเบฒเบ™เป€เบฅเบทเบญเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime / เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ GUI
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบซเบปเบงเบ‚เปเป‰ PE
เบ›เบฐเป€เบžเบ”เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบขเปˆเบฒเบ‡เป€เปเบฒเบฐเบชเบปเบก.

-fno-set-stack-executable
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบ—เบธเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš
เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡ stack เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™ binaries
เปƒเบ™เบฎเบนเบšเปเบšเบš kernel เบ‚เบญเบ‡ Microsoft Windows, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบต User32 API, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”
เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰, เบšเปเปˆเบกเบตเปƒเบซเป‰.

-fwritable-relocated-rdata
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ MinGW เปเบฅเบฐ Cygwin. เบกเบฑเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เบเป‰เบฒเบ -
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปƒเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบญเปˆเบฒเบ™โ€‹เป€เบ—เบปเปˆเบฒโ€‹เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™โ€‹เป€เบญเบปเบฒโ€‹เปƒเบชเปˆโ€‹เปƒเบ™โ€‹เบžเบฒเบ .dataโ€‹. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบชเบนเบ‡เบญเบฒเบเบธ
runtimes เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™ .rdata เบชเปเบฒเบฅเบฑเบš pseudo-relocation.

-mpe-aligned-commons
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ GNU
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป„เบ›เบซเบฒเบฎเบนเบšเปเบšเบšเป„เบŸเบฅเปŒ PE เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบˆเบฑเบ”เบฎเบฝเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบ•เบปเบงเปเบ› COMMON
เบ„เบงเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”. เบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ GCC เบเบงเบ”เบžเบปเบšเบงเปˆเบฒ
เบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”.

เป€เบšเบดเปˆเบ‡เบžเบฒเบเปƒเบ•เป‰ x86 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

Xstormy16 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš Xstormy16:

- เบŠเบดเบก
เป€เบฅเบทเบญเบเป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบš simulator.

Xtensa เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ Xtensa:

-mconst16
-mno-const16
เป€เบ›เบตเบ”เปƒเบŠเป‰เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CONST16" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ. เป„เบ”เป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CONST16" เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบˆเบฒเบ Tensilica. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เป€เบ›เบตเบ”เปƒเบŠเป‰, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CONST16" เบ–เบทเบเปƒเบŠเป‰เปเบ—เบ™ "L32R" เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฐเป€เบซเบกเบต.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "CONST16" เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒ "L32R" เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบšเปเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-mfused-madd
-mno-fused-madd
เป€เบ›เบตเบ” เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ fused multiply/add and multiply/subtract เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™
เบ•เบปเบงเป€เบฅเบทเบญเบเบˆเบธเบ”เบฅเบญเบ. เบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบซเบเบฑเบ‡เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เบšเปเปˆเป„เบ”เป‰เบ„เบทเบเบฑเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ fused multiply/add and multiply/subtract instruction force the
compiler เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบ„เบนเบ™เปเบฅเบฐเบฅเบปเบš.
เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš IEEE 754 เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”
เบ•เป‰เบญเบ‡เบเบฒเบ™: เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบšเบงเบ/เบฅเบปเบšเบ—เบตเปˆเบšเบงเบเบšเบงเบเบšเปเปˆเป€เบ›เบฑเบ™เบฎเบญเบšเบ•เบปเบงเบเบฒเบ‡
เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹, เบชเบฐโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบœเบปเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹ เป€เบžเบตเปˆเบกเป€เบ•เบตเบก bits เบ‚เบญเบ‡เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบเบงเปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบ
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ IEEE. เบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ fused multiply add/subtract เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฑเบ‡เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ
เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เบญเปˆเบญเบ™โ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ‚เบญเบ‡ compiler เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบชเบปเบกโ€‹เบ—เบปเบšโ€‹เบเบฒเบ™โ€‹เบ„เบนเบ™โ€‹เปเบฅเบฐโ€‹
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบก / เบฅเบปเบšโ€‹.

-mserialize-volatile
-mno-serialize-volatile
เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, GCC เบˆเบฐเปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "MEMW" เบเปˆเบญเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ "volatile".
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mserialize-volatile.
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mno-serialize-volatile เป€เบžเบทเปˆเบญเบเบปเบเป€เบฅเบตเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "MEMW".

-mforce-no-pic
เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เป€เบŠเบฑเปˆเบ™ GNU/Linux, เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เบธเบเบฎเบนเบšเปเบšเบšเบœเบนเป‰เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ” Xtensa เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบ•เปเบฒเปเบซเบ™เปˆเบ‡-
เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ” (PIC), เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ PIC เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ” kernel.

-mtext-section-literals
-mno-text-section-literals
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบ‚เบญเบ‡เบชเบฐเบ™เบธเบเป€เบเบตเบ—เบตเปˆเบฎเบนเป‰เบซเบ™เบฑเบ‡เบชเบท. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-mno-text-section-literals, เป€เบŠเบดเปˆเบ‡เบงเบฒเบ‡เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบขเบนเปˆเปƒเบ™เบžเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”
เป„เบŸเบฅเปŒ. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบฐเบ™เบธเบเป€เบเบตเบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™ RAM / ROM เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบกเบฑเบ™เบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบชเบปเบกเบ—เบปเบšเบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบˆเบฒเบเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™
เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบเบฑเบš -mtext-section-literals, เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเปเบกเปˆเบ™
interspersed เปƒเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เปƒเบซเป‰โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เปƒเบเป‰โ€‹เบŠเบดเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เบ‚เบญเบ‡โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹
เบญเป‰เบฒเบ‡เบญเบตเบ‡. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ›เบฐเบเบญเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.

-mtarget-align
-mno-target-align
เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, GCC เบˆเบฐเบชเบฑเปˆเบ‡เปƒเบซเป‰เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เบชเบฒเบ‚เบฒเป‚เบ”เบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เป„เบ”เป‰
assembler เบžเบฐเบเบฒเบเบฒเบกเบ‚เบฐเบซเบเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบงเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฒเบ‚เบฒเปเบฅเบฐ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ—. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบžเบฝเบ‡เบžเปเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ›เบญเบ”เป„เบž
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบงเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบญเบญเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-mtarget-align. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเปเบšเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบŠเบฑเปˆเบ™ "LOOP", เป€เบŠเบดเปˆเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเบชเบฐเป€เบซเบกเบตเบชเบญเบ”เบ„เปˆเบญเบ‡, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบซเบผเบทเป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ NOP.

-mlongcalls
-mno-longcalls
เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, GCC เบˆเบฐเบชเบฑเปˆเบ‡เปƒเบซเป‰เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เปเบ›เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เบซเบฒ
เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบกเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เป„เบฅเบเบฐเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ—. เบเบฒเบ™เปเบ›เบ™เบตเป‰เบกเบฑเบเบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒ
เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบญเบทเปˆเบ™เป†. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเป‚เบ”เบเบเบปเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CALL" เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ "L32R" เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CALLX". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-mno-longcalls. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบเบฒเบ™เป‚เบ—เบชเบฒเบกเบฒเบ”
เบญเบฒเบ”เบˆเบฐเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ›เบฐเบเบญเบš, เบšเปเปˆเปเบกเปˆเบ™
compiler, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ GCC เบเบฑเบ‡เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ --- เป€เบšเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบงเบฑเบ”โ€‹เบ–เบธ disassembled เป€เบžเบทเปˆเบญโ€‹เป€เบšเบดเปˆเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ•เบปเบงโ€‹เบˆเบดเบ‡โ€‹.
เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบœเบนเป‰เบ›เบฐเบเบญเบšเปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบเบฒเบ™เป‚เบ—เบ‚เป‰เบฒเบกเป„เบŸเบฅเปŒ, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ
เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบเปเปˆเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”.

zSeries เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบžเบฒเบเปƒเบ•เป‰

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ เบฅเบฐเบซเบฑเบ” เบเบฒเบ™เบœเบฐเบฅเบดเบ” เบญเบฐเบ™เบธเบชเบฑเบ™เบเบฒ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”
เบเบฒเบ™เบœเบฐเบฅเบดเบ”.

เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบกเบตเบ—เบฑเบ‡เบฎเบนเบšเปเบšเบšเบ—เบฒเบ‡เบšเบงเบเปเบฅเบฐเบ—เบฒเบ‡เบฅเบปเบš; เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบฒเบ‡โ€‹เบฅเบปเบšโ€‹เบ‚เบญเบ‡โ€‹ -ffoo is
-fno-foo. เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰, เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปƒเบ™เปเบšเบšเบŸเบญเบกเบ—เบตเปˆเบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰ --- เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบดเบ”เบญเบญเบเบฎเบนเบšเปเบšเบšเบญเบทเปˆเบ™เป‚เบ”เบเบเบฒเบ™เบ–เบญเบ™เบญเบญเบ เบšเปเปˆ- เบซเบผเบทเป€เบžเบตเปˆเบกเบกเบฑเบ™.

-fbounds-เบเบงเบ”โ€‹เบชเบญเบšโ€‹
เบชเปเบฒเบฅเบฑเบšเบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™, เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบ—เบตเปˆเป€เบ„เบตเบเปƒเบŠเป‰
array เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบขเบนเปˆเบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบ›เบฐเบเบฒเบ”. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹
Java เปเบฅเบฐ Fortran เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒ, เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบฅเบฐเบœเบดเบ”
เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

-fstack-reuse=เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบžเบทเป‰เบ™โ€‹เบ—เบตเปˆ stack เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบ•เบปเบงโ€‹เปเบ›โ€‹เปƒเบ™โ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™ / เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เปเบฅเบฐโ€‹
compiler เบชเป‰เบฒเบ‡เบŠเบปเปˆเบงเบ„เบฒเบง. reuse_level เบชเบฒเบกเบฒเบ” เบ—เบฑเบ‡เบซเบกเบปเบ”, เบŠเบทเปˆ_vars, เบซเบผเบท none. เบ—เบฑเบ‡เบซเบกเบปเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰ stack reuse เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ•เบปเบงเปเบ›เปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบŠเบปเปˆเบงเบ„เบฒเบง, เบŠเบทเปˆ_vars เป€เบฎเบฑเบ”เปƒเบซเป‰เป„เบ”เป‰
เปƒเบŠเป‰เบ„เบทเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆ, เปเบฅเบฐ none เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ stack เบ„เบทเบ™เปƒเปเปˆ
เบชเบปเบกเบšเบนเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ
เบ•เบฐเบซเบผเบญเบ”เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ” เบซเบผเบท compiler เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบŠเบปเปˆเบงเบ„เบฒเบงเบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบ
เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบžเบฒเบชเบฒ. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡, เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบŠเบตเบงเบดเบ”เบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ, เบ„เบญเบกเบžเบตเบฅเป€เบ”เบต optimizing เบกเบตเบญเบดเบ”เบชเบฐเบฅเบฐเปƒเบ™เบเบฒเบ™เปƒเบŠเป‰ stack เบ‚เบญเบ‡เบกเบฑเบ™เบ„เบทเบ™
เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบเบฑเบšเบ•เบปเบงเปเบ›เบŠเบปเปˆเบงเบ„เบฒเบงเบญเบทเปˆเบ™เป† เบซเบผเบทเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเป„เบฅเบเบฐเบชเบปเบ”เบšเปเปˆเบกเบต
เบ—เบฑเบšเบŠเป‰เบญเบ™เบเบฑเบ™เบเบฑเบšเบกเบฑเบ™. เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบกเปโ€‹เบฅเบฐโ€‹เบ”เบปเบโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบŠเบตโ€‹เบงเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™โ€‹เบกเบตโ€‹เปเบ™เบงโ€‹เป‚เบ™เป‰เบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ—เปเบฒโ€‹เบฅเบฒเบโ€‹เบเบฑเบšโ€‹
stack เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™เปƒเบซเบกเปˆ.

เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,

int *p;
{
int local1;

p = &local1;
local1 = 10;
....
}
{
int local2;
local2 = 20;
...
}

เบ–เป‰เบฒ (*p == 10) // เบญเบญเบเบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ local1
{

}

เบ•เบปเบงเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™:

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ A
{
A(int k): i(k), j(k) { }
int i;
int j ;
};

A *ap;

void foo(const A&ar)
{
ap = & ar;
}

void bar()
{
เบŸเบน(A(10)); // เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ temp เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เป€เบกเบทเปˆเบญ foo เบเบฑเบšเบ„เบทเบ™เบกเบฒ

{
A a(20)
....
}
ap->i+= 10; // ap เบญเป‰เบฒเบ‡เบญเบตเบ‡เบญเบญเบเบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ” temp เบ—เบตเปˆเบกเบตเบžเบทเป‰เบ™เบ—เบตเปˆ
// เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™เบ”เป‰เบงเบ a. เบ„เปˆเบฒเบ‚เบญเบ‡ ap->i เปเบกเปˆเบ™เบซเบเบฑเบ‡?
}

เบ•เบฐเบซเบผเบญเบ”เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡ compiler เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบŠเบปเปˆเบงเบ„เบฒเบงเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ”เบตเป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C++.
เป€เบกเบทเปˆเบญเบŠเบตเบงเบดเบ”เบŠเบปเปˆเบงเบ„เบฒเบงเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡, เปเบฅเบฐเบ–เป‰เบฒเบŠเบตเบงเบดเบ”เบŠเบปเปˆเบงเบ„เบฒเบงเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ, เป„เบ”เป‰
optimizing compiler เบกเบตเบญเบดเบ”เบชเบฐเบฅเบฐเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆ stack เบ‚เบญเบ‡เบ•เบปเบ™เบเบฑเบšเบŠเบปเปˆเบงเบ„เบฒเบงเบญเบทเปˆเบ™เป†เบซเบผเบท
เบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบชเบปเบ”เบšเปเปˆเบ—เบฑเบšเบŠเป‰เบญเบ™เบเบฑเบšเบกเบฑเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบกเปโ€‹เบฅเบฐโ€‹เบ”เบปเบโ€‹เปเบกเปˆเบ™โ€‹เบญเบตเบ‡โ€‹เปƒเบชเปˆโ€‹เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบ—เบตเปˆโ€‹เบญเบฒโ€‹เบเบธโ€‹เปƒเบ™โ€‹เบเบฒเบ™ stack เบ‚เบญเบ‡โ€‹เบŠเบปเปˆเบงโ€‹เบ„เบฒเบงโ€‹
เบžเบทเป‰เบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™, เบเบฒเบ™เปƒเบŠเป‰ stack เบฎเบธเบเบฎเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” runtime. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เปƒเบŠเป‰เปƒเบซเบกเปˆ stack เบŠเบปเปˆเบงเบ„เบฒเบง.

-ftrapv
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เบเบฑเบšโ€‹เบ”เบฑเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบก overflow เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบšเบงเบโ€‹, เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹,
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ„เบนเบ™.

-fwrapv
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เปƒเบซเป‰โ€‹เบœเบนเป‰โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ” overflow เบ‚เบญเบ‡โ€‹
เบเบฒเบ™เบšเบงเบ, เบเบฒเบ™เบซเบฑเบเบฅเบปเบš เปเบฅเบฐ เบเบฒเบ™เบ„เบนเบ™เบซเปเปˆเบญเป‰เบญเบกเบฎเบญเบšเป‚เบ”เบเปƒเบŠเป‰ twos-complement
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™. เบ—เบธเบ‡เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡ เปเบฅเบฐเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบญเบฑเบ™เบญเบทเปˆเบ™. เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ Java front end, เบ•เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบ”เบโ€‹เบžเบฒโ€‹เบชเบฒ Java
เบ‚เปเป‰ เบเบณ เบ™เบปเบ”.

- เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™. เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเป€เบœเบตเบเปเบœเปˆเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™. เบชเปเบฒเบฅเบฑเบš
เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ GCC เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™ unwind frame เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”,
เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบœเบฐเบฅเบดเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰, GCC เบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบกเบฑเบ™เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒ
เป€เบŠเบฑเปˆเบ™ C ++ เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, เปเบฅเบฐเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเป€เบŠเบฑเปˆเบ™
C เบ—เบตเปˆเบšเปเปˆเบ›เบปเบเบเบฐเบ•เบดเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เป€เบ›เบตเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ” C เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ interoperate เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบ‚เบฝเบ™
เปƒเบ™ C++. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบฅเบงเบšเบฅเบงเบก C ++ เป€เบเบปเปˆเบฒ
เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™.

-fnon-call-exceptions
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰
เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบชเบฐเป€เบžเบฒเบฐเป€เบงเบ—เบตเบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™,
เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ เบเบฑเบšเบ”เบฑเบ เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเบฐเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, ie เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบซเบผเบท
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบ. เบกเบฑเบ™เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบˆเบฐเบ–เบดเป‰เบกเบˆเบฒเบ arbitrary
เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฑเบ™เบเบฒเบ™เป€เบŠเบฑเปˆเบ™ "SIGALRM".

-fdelete-dead-exceptions
เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ optimized เบ—เบฑเบ™เบ—เบต. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡ Ada, เบ•เบฒเบกเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบžเบฒเบชเบฒ Ada. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
passes เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบ•เบฒเบเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

-funwind-เบ•เบฒเบ•เบฐเบฅเบฒเบ‡
เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฑเบš - เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹, เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เปเบ•เปˆ
เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ—เบฒเบ‡เบญเบทเปˆเบ™. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰; เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบžเบฒเบชเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบกเบฑเบ™
เปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

-fasynchronous-unwind-เบ•เบฒเบ•เบฐเบฅเบฒเบ‡
เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ unwind เปƒเบ™เบฎเบนเบšเปเบšเบš DWARF 2, เบ–เป‰เบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบกเปˆเบ™
เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบขเบนเปˆเปเบ•เปˆเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ stack unwinding เบˆเบฒเบ
เป€เบซเบ”เบเบฒเบ™เบšเปเปˆเบเบปเบ‡เบเบฑเบ™ (เป€เบŠเบฑเปˆเบ™: debugger เบซเบผเบทเบ•เบปเบงเป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ).

-fno-gnu-เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ
เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบต GNU assembler เปเบฅเบฐ C library, C++ compiler เปƒเบŠเป‰
"STB_GNU_UNIQUE" เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบชเบฐเบกเบฒเบŠเบดเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ‚เบญเบ‡เปเบกเปˆเปเบšเบš
เปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ static เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ inline เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบ—เบตเปˆเบ›เบฐเบ—เบฑเบšเบ‚เบญเบ‡
"RTLD_LOCAL"; เบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบชเบญเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
"RTLD_LOCAL" plugins เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เปเบฒเบ™เบดเบเบฒเบกเปƒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
เบšเปเปˆเป€เบซเบฑเบ™เบ”เบตเบเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ. เปเบ•เปˆเบชเบฒเป€เบซเบ”เบ™เบตเป‰
"dlclose" เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบš DSOs เบ—เบตเปˆเบ–เบทเบเบเบฐเบ—เบปเบš; เบ–เป‰เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบญเบตเบ‡เปƒเบชเปˆ reinitialization
เบ‚เบญเบ‡ DSO เบœเปˆเบฒเบ™ "dlclose" เปเบฅเบฐ "dlopen", เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ -fno-gnu-เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ.

-fpcc-struct-return
เบชเบปเปˆเบ‡เบ„เปˆเบฒ "short" "struct" เปเบฅเบฐ "union" เปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ„เบทเบเบฑเบšเบ„เปˆเบฒเบ—เบตเปˆเบเบฒเบงเบเบงเปˆเบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบขเบนเปˆเปƒเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบ™เบตเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบ, เปเบ•เปˆเบกเบฑเบ™เบกเบตเบ›เบฐเป‚เบซเบเบ”เปƒเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
intercallability เบฅเบฐเบซเบงเปˆเบฒเบ‡เป„เบŸเบฅเปŒ GCC-compiled เปเบฅเบฐเป„เบŸเบฅเปŒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบเบฑเบš compilers เบญเบทเปˆเบ™เป†,
เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ Portable C Compiler (pcc).

เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
macro เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹.

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบชเบฑเป‰เบ™เปเบฅเบฐเบชเบฐเบซเบฐเบžเบฑเบ™เปเบกเปˆเบ™เบœเบนเป‰เบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบเบปเบ‡เบเบฑเบšเบšเบฒเบ‡เบชเปˆเบงเบ™
เบ›เบฐเป€เบžเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -fpcc-struct-return เบชเบฐเบซเบผเบฑเบšเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -freg-struct-return เบชเบฐเบซเบผเบฑเบš. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™.
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ binary interface เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-freg-struct-return
เบชเบปเปˆเบ‡เบ„เปˆเบฒ "เป‚เบ„เบ‡เบชเป‰เบฒเบ‡" เปเบฅเบฐ "เบชเบฐเบซเบฐเบžเบฑเบ™" เปƒเบ™เบ—เบฐเบšเบฝเบ™เป€เบกเบทเปˆเบญเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ
เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ -fpcc-struct-return.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบฅเบฐเบšเบธ -fpcc-struct-return neither -freg-struct-return, GCC เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™
เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบญเบฑเบ™เปƒเบ”เป€เบ›เบฑเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™,
GCC เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ -fpcc-struct-returnเบเบปเบเป€เบงเบฑเป‰เบ™เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆ GCC เป€เบ›เบฑเบ™เบซเบผเบฑเบ
เบชเบฑเบ‡เบฅเบงเบก. เปƒเบ™เบเปเบฅเบฐเบ™เบตเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบเบฑเบšเบ„เบทเบ™.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -freg-struct-return เบชเบฐเบซเบผเบฑเบšเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -fpcc-struct-return เบชเบฐเบซเบผเบฑเบš. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™.
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ binary interface เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fshort-enums
เบˆเบฑเบ”เบชเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ” "enum" เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฒเบ bytes เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ‚เบญเบšเป€เบ‚เบ”เบ›เบฐเบเบฒเบ”เบ‚เบญเบ‡
เบ„เบธเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ›เบฐเป€เบžเบ” "enum" เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”
เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบžเบฝเบ‡เบžเป.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -fshort-enums switch เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ binary
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™.
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ binary interface เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fshort-double
เปƒเบŠเป‰เบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบš "double" เป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš "float".

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -fshort-double switch เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ binary
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™.
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ binary interface เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fshort-wchar
เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ›เบฐเป€เบžเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบš "wchar_t" เป€เบ›เบฑเบ™ "short unsigned int" เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฒเบเปƒเบ•เป‰
เป€เบซเบผเบปเป‰เบฒเปเบงเบ‡.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -fshort-wchar switch เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ binary
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™.
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ binary interface เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fno-เบ—เบปเปˆเบงเป„เบ›
เปƒเบ™เบฅเบฐเบซเบฑเบ” C, เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰. Unix C compilers
เป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เบ•เบฒเบกเบ›เบฐเป€เบžเบ™เบตเบซเบผเบฒเบเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เป‚เบ”เบเบเบฒเบ™เบงเบฒเบ‡เบ•เบปเบงเปเบ›เปƒเบ™เบšเบฅเบฑเบญเบเบ—เบปเปˆเบงเป„เบ›. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบถเบ”เบ•เบดเบเปเบฒ
เบฅเบฐเบšเบธเป‚เบ”เบ -fcommon, เปเบฅเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ GCC เปƒเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆ. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก,
เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบ ISO C, เปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบญเบฒเบ”เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเป„เบงเบซเบผเบทเบฅเบฐเบซเบฑเบ”
เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เบ‚เบฐเปœเบฒเบ”เปƒเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ•เบปเบงเปเบ›. เป„เบ”เป‰ -fno-เบ—เบปเปˆเบงเป„เบ› เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹
compiler เบ„เบงเบ™เบงเบฒเบ‡เบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ
เป„เบŸเบฅเปŒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบšเบฅเบฑเบญเบเบ—เบปเปˆเบงเป„เบ›. เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบงเปˆเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบ•เบปเบงเปเบ›เบ”เบฝเบงเบเบฑเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ” (เป‚เบ”เบเบšเปเปˆเบกเบต "extern") เปƒเบ™เบชเบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš a
เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบฒเบเบ„เปเบฒเบ™เบดเบเบฒเบกเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเบงเบเบกเบฑเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบกเบเบฑเบš
-fcommon เปเบ—เบ™. เบชเบฑเบ‡เบฅเบงเบกเบเบฑเบš -fno-เบ—เบปเปˆเบงเป„เบ› เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบกเบฑเบ™
เปƒเบซเป‰เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เบซเบผเบทเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบšเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ
เบฅเบฐเบšเบปเบšเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเป€เบซเบกเบตเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป€เบญเบ‡เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰.

-fno-ident
เบšเปเปˆเบชเบปเบ™เปƒเบˆเบ„เบณเบชเบฑเปˆเบ‡ "#ident".

-finhibit-size-directive
เบซเป‰เบฒเบกเบญเบญเบเบ„เบณเบชเบฑเปˆเบ‡ ".size" assembler, เบซเบผเบทเบญเบฑเบ™เบญเบทเปˆเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒ
เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเปƒเบ™เบเบฒเบ‡, เปเบฅเบฐเบชเบญเบ‡เป€เบ„เบดเปˆเบ‡เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเป„เบ
เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบก crtstuff.c; เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™
เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบชเบดเปˆเบ‡เบญเบทเปˆเบ™.

-fverbose-asm
เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ„เปเบฒเบ„เบดเบ”เบ„เปเบฒเป€เบซเบฑเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบญเปˆเบฒเบ™เป„เบ”เป‰. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เบเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบš (เบšเบฒเบ‡เบ—เบตเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ debugging compiler เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡).

-fno-verbose-asm, เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™เปเบฅเบฐเป€เบ›เบฑเบ™
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบชเบญเบ‡เป„เบŸเบฅเปŒเบ›เบฐเบเบญเบš.

-frecord-gcc-เบชเบฐเบซเบผเบฑเบš
เบชเบฐเบงเบดเบ”เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบญเบตเป‰เบ™ compiler เบ—เบตเปˆเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™. เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบšเบฒเบ‡
เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบฅเบฐเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบฅเบฐเบฎเบนเบšเปเบšเบšเป€เบญเบเบฐเบชเบฒเบ™เบ–เบฒเบ™เบชเบญเบ‡
เบ‚เบถเป‰เบ™เบเบฑเบš, เปเบ•เปˆเบกเบฑเบ™เบกเบฑเบเบˆเบฐเปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบ„เบงเบฒเบก ASCII. เบ™เบตเป‰
switch เปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš -fverbose-asm switch, เปเบ•เปˆเบงเปˆเบฒเบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบšเบฑเบ™เบ—เบถเบ
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปƒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ” assembler เป€เบ›เบฑเบ™โ€‹เบ„เปเบฒโ€‹เบ„เบดเบ”โ€‹เป€เบซเบฑเบ™โ€‹, เบชเบฐโ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เป€เบ„เบตเบโ€‹เป„เบ›โ€‹เป€เบ–เบดเบ‡โ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹
เป„เบŸเบฅเปŒ. เป€เบšเบดเปˆเบ‡เบ™เบณ -grecord-gcc-เบชเบฐเบซเบผเบฑเบš เบชเปเบฒเบฅเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ compiler เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ.

-fpic
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡ (PIC) เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เบ–เป‰เบฒ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบตเปˆเบขเบนเปˆเบ„เบปเบ‡เบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเบœเปˆเบฒเบ™ a
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบปเบ”เป€เบŠเบตเบเบ—เบปเปˆเบงเป‚เบฅเบ (GOT). เบ•เบปเบงเป‚เบซเบผเบ”เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเปเบเป‰เป„เบ‚เบฅเบฒเบเบเบฒเบ™ GOT เป€เบกเบทเปˆเบญ
เป‚เบ›เบฃเปเบเบกเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เบ•เบปเบงเป‚เบซเบผเบ”เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡ GCC; เบกเบฑเบ™เปเบกเปˆเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ
เบฅเบฐเบšเบปเบš). เบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ” GOT เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป€เบเบตเบ™เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบชเบฐเป€เบžเบฒเบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ
เบ‚เบฐเบซเบ™เบฒเบ”, เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบˆเบฒเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ -fpic เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ; เปƒเบ™
เบเปเบฅเบฐเบ™เบต, recompile เบเบฑเบš -fPIC เปเบ—เบ™. (เบชเบนเบ‡เบชเบธเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ 8k เปƒเบ™ SPARC เปเบฅเบฐ 32k
เปƒเบ™ m68k เปเบฅเบฐ RS/6000. x86 เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.)

เบฅเบฐเบซเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบญเบเบฐเบฅเบฒเบ”เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบดเป€เบชเบ”, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™
เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เบชเปเบฒเบฅเบฑเบš x86, GCC เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ PIC เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš V เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš Sun
386i. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš IBM RS/6000 เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ•เบณเปเปœเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบชเบฐเป€เปเบต.

เป€เบกเบทเปˆเบญเบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡, เบกเบฒเป‚เบ„เบฃ "__pic__" เปเบฅเบฐ "__PIC__" เบ–เบทเบเบเบณเบ™เบปเบ”เป€เบ›เบฑเบ™ 1.

-fPIC
เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹, เบ›เปˆเบญเบโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ•เปเบฒโ€‹เปเบซเบ™เปˆเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เป€เบญโ€‹เบเบฐโ€‹เบฅเบฒเบ”โ€‹, เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบฅเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เปƒเบ”เป†เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบŠเบปเบ”เป€เบŠเบตเบเบ—เบปเปˆเบงเป‚เบฅเบ. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™ m68k, PowerPC เปเบฅเบฐ SPARC.

เบฅเบฐเบซเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบญเบเบฐเบฅเบฒเบ”เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบดเป€เบชเบ”, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™
เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™.

เป€เบกเบทเปˆเบญเบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡, เบกเบฒเป‚เบ„เบฃ "__pic__" เปเบฅเบฐ "__PIC__" เบ–เบทเบเบเบณเบ™เบปเบ”เป€เบ›เบฑเบ™ 2.

-fpie
-fPIE
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš -fpic เปเบฅเบฐ -fPIC, เปเบ•เปˆเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡
เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเบฝเบ‡เปเบ•เปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ executables. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -pie GCC
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

-fpie เปเบฅเบฐ -fPIE เบ—เบฑเบ‡เบชเบญเบ‡เบเปเบฒเบ™เบปเบ” macro "__pie__" เปเบฅเบฐ "__PIE__". เบกเบฐเบซเบฒเบžเบฒเบเบกเบต
เบ„เปˆเบฒ 1 เบชเปเบฒเบฅเบฑเบš -fpie เปเบฅเบฐ 2 เบชเปเบฒเบฅเบฑเบš -fPIE.

-fno-jump-tables
เบขเปˆเบฒเปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฐเป‚เบ”เบ”เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบฑเบšเบ„เบณเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบเปˆเบงเบฒเบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบญเบทเปˆเบ™เป†. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš
-fpic or -fPIC เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบฅเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰
เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป‚เบ”เบ”. เปƒเบ™เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ a
GOT เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

- เบ„เบปเบ‡โ€‹เบ—เบตเปˆ -reg
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆ reg เป€เบ›เบฑเบ™เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ; เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเบ„เบงเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡
เบกเบฑเบ™ (เบเบปเบเป€เบงเบฑเป‰เบ™เบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰ stack, เบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบซเบผเบทเปƒเบ™เบšเบฒเบ‡เบšเบปเบ”เบšเบฒเบ”เบ„เบปเบ‡เบ—เบตเปˆเบญเบทเปˆเบ™เป†).

reg เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™. เบŠเบทเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเปเบกเปˆเบ™เบชเบฐเป€เบžเบฒเบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ
เปเบฅเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ "REGISTER_NAMES" macro เปƒเบ™เป„เบŸเบฅเปŒ macro เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป€เบ„เบทเปˆเบญเบ‡.

เบ—เบธเบ‡เบ™เบตเป‰เบšเปเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบ—เบฒเบ‡เบฅเบปเบš, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบ—เบฒเบ‡.

-fcall-เปƒเบŠเป‰-reg
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆ reg เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เบ—เบตเปˆ clobbered เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹
เป‚เบ—. เบกเบฑเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบŠเบปเปˆเบงโ€‹เบ„เบฒเบงโ€‹เบซเบผเบทโ€‹เบ•เบปเบงโ€‹เปเบ›โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบญเบฒโ€‹เป„เบชโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ—เบปเปˆเบง a
เป‚เบ—. เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ reg.

เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ—เบธเบ‡เบ™เบตเป‰เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบเบญเบš เบซเบผเบทเบ•เบปเบงเบŠเบตเป‰ stack. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰
เบ—เบธเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฐเบšเบฝเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เปเบœเปˆเบ‚เบฐเบซเบเบฒเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ
เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบœเบฐเบฅเบดเบ”เบœเบปเบ™เป€เบชเบเบซเบฒเบ.

เบ—เบธเบ‡เบ™เบตเป‰เบšเปเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบ—เบฒเบ‡เบฅเบปเบš, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบ—เบฒเบ‡.

-fcall-เบšเบฑเบ™เบ—เบถเบ-reg
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆ reg เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹. เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบŠเบปเปˆเบงเบ„เบฒเบงเบซเบผเบทเบ•เบปเบงเปเบ›เบ—เบตเปˆเบกเบตเบŠเบตเบงเบดเบ”เบขเบนเปˆเปƒเบ™เบ—เบปเปˆเบงเบเบฒเบ™เป‚เบ—. เบŸเบฑเบ‡เบŠเบฑเบ™
เบฅเบงเบšเบฅเบงเบกเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ reg เบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเปƒเบŠเป‰เบกเบฑเบ™.

เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ—เบธเบ‡เบ™เบตเป‰เบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เบเบญเบš เบซเบผเบทเบ•เบปเบงเบŠเบตเป‰ stack. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰
เบ—เบธเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฐเบšเบฝเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เปเบœเปˆเบ‚เบฐเบซเบเบฒเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ
เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบœเบฐเบฅเบดเบ”เบœเบปเบ™เป€เบชเบเบซเบฒเบ.

เป„เบžเบžเบดเบšเบฑเบ”เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบกเปˆเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบธเบ‡เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบ™เบฑเป‰เบ™
เบ„เปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™.

เบ—เบธเบ‡เบ™เบตเป‰เบšเปเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบ—เบฒเบ‡เบฅเบปเบš, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฒเบกเบ—เบฒเบ‡.

-fpack-struct[=n]
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒ, เบซเปเปˆเบชเบฐเบกเบฒเบŠเบดเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบฎเบน. เป€เบกเบทเปˆเบญ เบ
เบ„เปˆเบฒเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ” (เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เบชเบญเบ‡), เบชเบฐเบกเบฒเบŠเบดเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบŠเบญเบ‡
เบญเบตเบ‡เบ•เบฒเบกเบ„เปˆเบฒเบ™เบตเป‰, เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบชเบนเบ‡เบชเบธเบ” (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบต
เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐ unaligned เบขเบนเปˆ
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ•เปเปˆเป„เบ›.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -fpack-struct switch เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ binary
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”
เป€เปเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบ„เบนเปˆเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- finstrument - เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹
เบชเป‰เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปเบฅเบฐโ€‹เบญเบญเบโ€‹เป„เบ›โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹. เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹
เป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบญเบญเบเบซเบ™เป‰เบฒเบ—เบตเปˆ, เบซเบ™เป‰เบฒเบ—เบตเปˆ profileing เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฑเบš
เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเป‚เบ—เบซเบฒเบ‚เบญเบ‡เบกเบฑเบ™. (เปƒเบ™เบšเบฒเบ‡เป€เบงเบ—เบต,
"__builtin_return_address" เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบญเบเป€เบซเบ™เบทเบญเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเป‚เบ—เบซเบฒ
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เปƒเบซเป‰โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡ profile เป€เบ›เบฑเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบญเบทเปˆเบ™โ€‹.)

void __cyg_profile_func_enter (void *this_fn,
void *call_site);
void __cyg_profile_func_exit (void *this_fn,
void *call_site);

เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เบฐเบˆเบธเบšเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ.

เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ™เบตเป‰เบเบฑเบ‡เป€เบฎเบฑเบ”เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเบขเบนเปˆเปƒเบ™เปเบ–เบงเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบทเปˆเบ™เป†.
เบเบฒเบ™เป‚เบ— profileing เบŠเบตเป‰เบšเบญเบเบšเปˆเบญเบ™เบ—เบตเปˆ, เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”, เบŸเบฑเบ‡เบŠเบฑเบ™ inline เบ–เบทเบเปƒเบชเปˆเปเบฅเบฐ
เบญเบญเบเปเบฅเป‰เบง. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบ•เป‰เบญเบ‡เบกเบต. เบ–เป‰เบฒ
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹เปƒเบ™โ€‹เป€เบชเบฑเป‰เบ™โ€‹, เบ™เบตเป‰โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบซเบกเบฒเบโ€‹เป€เบ–เบดเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ "extern inline" เปƒเบ™เบฅเบฐเบซเบฑเบ” C เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡
เบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰. (เบ™เบตเป‰เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเปƒเบ”เบเปเปˆเบ•เบฒเบก, เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš
เป‚เบŠเบเบ”เบตเปเบฅเบฐ optimizer เบชเบฐเป€เบซเบกเบตเบ‚เบฐเบซเบเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆ inline, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบš
เป„เบ›เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบชเบณเป€เบ™เบปเบฒเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ.)

เบŸเบฑเบ‡เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "no_instrument_function", เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเปเบฒเบฅเบฑเบš profileing เป„เบ”เป‰
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบด, เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ•เปˆเบฒเบ‡เป†เบˆเบฒเบเบ™เบฑเป‰เบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบž (เบšเบฒเบ‡เบ—เบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฑเบ™เบเบฒเบ™, เบ–เป‰เบฒ
profileing routines เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบซเบผเบทเบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ).

-finstrument-functions-exclude-file-list=เป€เบญเบเบฐเบชเบฒเบ™,เป€เบญเบเบฐเบชเบฒเบ™...
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบˆเบฒเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบท (เป€เบšเบดเปˆเบ‡โ€‹เบ„เปเบฒโ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹
of - finstrument - เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹). เบ–เป‰เบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ„เปเบฒเบ™เบดเบเบฒเบกเบŸเบฑเบ‡เบŠเบฑเบ™เบเบปเบ‡เบเบฑเบ™
เบเบฑเบšเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ เป€เบญเบเบฐเบชเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเบธเบ”
substrings: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹ เป€เบญเบเบฐเบชเบฒเบ™ เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ substring เบ‚เบญเบ‡เบŠเบทเปˆเป„เบŸเบฅเปŒ, เบกเบฑเบ™เปเบกเปˆเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ
เป€เบ›เบฑเบ™เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™.

เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

-finstrument-functions-exclude-file-list=/bits/stl,include/sys

เบšเปเปˆเบฅเบงเบกเป€เบญเบปเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เปเบ–เบงเปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ /bits/stl or
เบฅเบงเบกเป€เบญเบปเบฒ/sys.

เบ–เป‰เบฒ, เบ”เป‰เบงเบเป€เบซเบ”เบœเบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบชเปˆเบˆเบปเบ”เบซเบกเบฒเบ , เปƒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ เบŠเบดเบก, เบ‚เบฝเบ™ ,เบ—เบตเปˆเบขเบนเปˆ เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,
-finstrument-functions-exclude-file-list=',,tmp' (เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹เบ„เปเบฒโ€‹เป€เบงเบปเป‰เบฒโ€‹เบ”เบฝเบงโ€‹เบ—เบตเปˆโ€‹เบขเบนเปˆโ€‹เบญเป‰เบญเบกโ€‹เบ‚เป‰เบฒเบ‡โ€‹
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ).

-finstrument-functions-exclude-function-list=เบŠเบดเบก,เบŠเบดเบก...
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš -finstrument-functions-exclude-file-list, เปเบ•เปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”
เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบกเบท. เบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™
matched เปเบกเปˆเบ™เบŠเบทเปˆเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เป€เบŠเบฑเปˆเบ™ "vector blah(const vector &)", เบšเปเปˆเปเบกเปˆเบ™
เบŠเบทเปˆ mangled เบžเบฒเบเปƒเบ™ (เป€เบŠเบฑเปˆเบ™, "_Z4blahRSt6vectorIiSaIiEE"). เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเบธเบ”
substrings: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹ เบŠเบดเบก เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™เบชเบฒเบเบเปˆเบญเบเบ‚เบญเบ‡เบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™, เบกเบฑเบ™เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ
เป€เบžเบทเปˆเบญเป€เบ›เบฑเบ™เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธเบ‚เบฐเบซเบเบฒเบ C99 เปเบฅเบฐ C++, เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™
เปƒเบ™ UTF-8, เบšเปเปˆเปƒเบŠเป‰เบŠเบทเปˆเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบปเปˆเบงเป„เบ›.

-fstack-เบเบงเบ”โ€‹เบชเบญเบšโ€‹
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ stack. เป€เบˆเบปเป‰เบฒ
เบ„เบงเบ™เบฅเบฐเบšเบธเบ—เบธเบ‡เบ™เบตเป‰ เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเบณเบฅเบฑเบ‡เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบซเบปเบงเบ‚เปเป‰,
เปเบ•เปˆเบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบšเปเปˆเบ„เปˆเบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบฅเบฐเบšเบธเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฐเบ—เบนเป‰เบ”เบฝเบงเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ stack
overflow เบˆเบฐเบ–เบทเบเบเบงเบ”เบžเบปเบšเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เป€เบเบทเบญเบšเบ—เบธเบเบฅเบฐเบšเบปเบšเบ–เป‰เบฒเบกเบตเบžเบฝเบ‡เปเบ•เปˆ stack เบ”เบฝเบง.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบชเบฐเบซเบงเบดเบ”เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง; เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™
เบฅเบฐเบšเบปเบšเบซเบผเบท runtime เบžเบฒเบชเบฒเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™. เบชเบฐเบซเบผเบฑเบšเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบซเบฑเบ™ stack เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฐเบ•เบฃเบดเบ‡เป„เบ”เป‰: no เบซเบกเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹, generic เบงเบดเบ—เบตเบเบฒเบ™
เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบšเบšเป€เบเบปเปˆเบฒ, เบชเบฐเป€เบžเบฒเบฐ เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐ
เป€เบ—เบปเปˆเบฒเบเบฑเบšเป€เบ›เบปเปˆเบฒ -fstack-เบเบงเบ”โ€‹เบชเบญเบšโ€‹.

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบšเบšเป€เบเบปเปˆเบฒเปเบกเปˆเบ™เบเบปเบ™เป„เบเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™
compiler เปเบ•เปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

1. เบ›เบฑเบšเบ›เบธเบ‡เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ: เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบชเบฐเป€เบซเบกเบต
dynamically เบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบเปเบฒเบ™เบปเบ”.

2. เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบเบญเบš static เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ: เป€เบกเบทเปˆเบญเบกเบฑเบ™เบ–เบทเบ topped เป‚เบ”เบ a
เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เป‚เบ”เบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹, เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบš stack เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เป€เบŠเบทเปˆเบญโ€‹เบ–เบทโ€‹เปเบฅเบฐโ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เปเบกเปˆเบ™โ€‹เบญเบญเบโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹
เบ™เบฑเบเบ‚เบฝเบ™.

3. เบ„เบงเบฒเบกเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš: เป€เบ›เบฑเบ™เบเป‰เบญเบ™เบ—เบฑเบ‡เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เปเบเป‰ เปเบฅเบฐ เบ—เบปเปˆเบงเป„เบ›
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบš stack เปเบšเบšเป€เบเบปเปˆเบฒเปเบกเปˆเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™ fallback เบชเปเบฒเบฅเบฑเบš เบชเบฐเป€เบžเบฒเบฐ เบ–เป‰เบฒเบšเปเปˆเบกเบต
เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ compiler.

-fstack-limit-register=reg
-fstack-limit-symbol=เบŠเบดเบก
-fno-stack-เบˆเบณเบเบฑเบ”
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ stack เบšเปเปˆเป€เบ•เบตเบšเป‚เบ•เป€เบเบตเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เบšเปเปˆเบงเปˆเบฒเบˆเบฐ
เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™ เบซเบผเบทเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ. เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ stack เปƒเบซเบเปˆเบเบงเปˆเบฒ, a
เบชเบฑเบ™เบเบฒเบ™เบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบชเบฑเบ™เบเบฒเบ™เบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ stack
overruns เป€เบ‚เบ”เปเบ”เบ™, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบˆเบฑเบšเบชเบฑเบ™เบเบฒเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเบดเบ™เบžเบดเป€เบชเบ”
เบเบฒเบ™โ€‹เบ›เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹เบฅเปˆเบงเบ‡โ€‹เบซเบ™เป‰เบฒ.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒ stack เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡ 0x80000000 เปเบฅเบฐโ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹เบฅเบปเบ‡โ€‹,
เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบธเบ‡ -fstack-limit-symbol=__stack_limit เปเบฅเบฐ
-Wl,--defsym,__stack_limit=0x7ffe0000 เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบˆเปเบฒเบเบฑเบ” stack เบ‚เบญเบ‡ 128KB. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ
เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-fsplit-stack
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเปเบเบ stack เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบฅเบปเป‰เบ™. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš
เป‚เบ›เบฃเปเบเบกเบกเบต stack discontiguous เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ” overflow เป„เบ”เป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบˆเบฐ
เบˆเบฑเบ”เบชเบฑเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเบณเป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบฅเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™ threaded, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™
เปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ„เบดเบ”เป„เบฅเปˆเบ‚เบฐเบซเบ™เบฒเบ” stack เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ thread. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ x86 เบ—เบตเปˆเปƒเบŠเป‰ GNU/Linux.

เป€เบกเบทเปˆเบญเบฅเบฐเบซเบฑเบ”เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -fsplit-stack เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป‚เบ—เบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -fsplit-stack, เบกเบต
เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบžเบทเป‰เบ™เบ—เบตเปˆ stack เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™. เบ–เป‰เบฒเบฅเบงเบšเบฅเบงเบกเบ—เบฑเบ‡เบซเบกเบปเบ”
เบฅเบฐเบซเบฑเบ”, เบฅเบงเบกเบ—เบฑเบ‡เบฅเบฐเบซเบฑเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เบเบฑเบš -fsplit-stack เบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”
เปเบเป‰เป„เบ‚เบเบฒเบ™เป‚เบ—เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -fsplit-stack เบชเบฐเป€เบซเบกเบตเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ
stack. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เปเบฒเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ GNU binutils
เบ›เบต 2.21 เปเบฅเบฐเบ•เปเปˆเบกเบฒ.

-fleading-underscore
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹เบ„เบนเปˆโ€‹เบฎเปˆเบงเบกโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹, -fno-leading-underscore, เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบ›เปˆเบฝเบ™เบงเบดเบ—เบต C
เบชเบฑเบ™เบเบฒเบฅเบฑเบเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบกเปเบฅเบฐเบ”เบปเบ
เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบš.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -fleading-underscore switch เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
binary เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš a
เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ„เบนเปˆเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบšเปเปˆเปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบ™เบตเป‰.

-ftls-model=เบฎเบนเบšเปเบšเบš
เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ thread-local เป€เบžเบทเปˆเบญเปƒเบŠเป‰. เป„เบ”เป‰ เบฎเบนเบšเปเบšเบš เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™
global-dynamic, local-dynamic, initial-exec or local-exec. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™
เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš: compiler เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบขเบนเปˆเบ™เบญเบเบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒ, เบซเบผเบทเบ–เป‰เบฒ -fpic เบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -fpic is initial-exec; เบเบฑเบš -fpic เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ global-dynamic.

-fvisibility=[Default|เบžเบฒเบเปƒเบ™|เป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰|เบ›เป‰เบญเบ‡เบเบฑเบ™]
เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเบฎเบนเบšเบžเบฒเบš ELF เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ --- เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™
เปเบฒเบเบ”เป‰เบงเบเบญเบฑเบ™เบ™เบตเป‰ เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐ overridden เบžเบฒเบเปƒเบ™เบฅเบฐเบซเบฑเบ”. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบซเบผเบฒเบ
เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบฅเบฐเป€เบงเบฅเบฒเป‚เบซเบผเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เบœเบฐเบฅเบดเบ”เบซเบผเบฒเบ
เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹, เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เบญเบญเบ API เบ—เบตเปˆโ€‹เปƒเบเป‰โ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹เปเบšเบšโ€‹เปเบฅเบฐโ€‹เบ›เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ—เบฐโ€‹เบเบฑเบ™โ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹. เบกเบฑเบ™โ€‹เปเบกเปˆเบ™
เบขเปˆเบฒเบ‡เปเบ‚เบ‡เปเบฎเบ‡ เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบญเบฑเบ™เบ™เบตเป‰เปƒเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เปเบˆเบเบขเบฒเบ.

เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ™เบฒเบกเบชเบฐเบเบธเบ™, Default เบชเบฐเป€เบซเบกเบตเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ; ie, เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบ•เปเปˆเบ•เป‰เบฒเบ™เบˆเบฒเบเบžเบฒเบเบ™เบญเบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™. เบ›เป‰เบญเบ‡เบเบฑเบ™ เปเบฅเบฐ เบžเบฒเบเปƒเบ™ เปเบกเปˆเบ™ pretty useless เปƒเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป‚เบฅเบเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ”เบฝเบงเบ—เบตเปˆเปƒเบŠเป‰เบ—เบปเปˆเบงเป„เบ›เบญเบทเปˆเบ™เป†เปเบกเปˆเบ™ เป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ
- เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เปเบกเปˆเบ™โ€‹ Defaultie, เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบธเบเบชเบฑเบ™เบเบฒเบฅเบฑเบเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ.

เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ—เบตเปˆเบ”เบตเบเปˆเบฝเบงเบเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเป‚เบ”เบเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ ELF เบ–เบทเบเบ•เป‰เบญเบ‡
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปเบกเปˆเบ™เปƒเบซเป‰เป‚เบ”เบ "เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™" เป‚เบ”เบ Ulrich Drepper (เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™.
เบžเบปเบšเบขเบนเปˆhttp://www.akkadia.org/drepper/>)--- เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบกเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”
เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบซเบกเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰ เปเบฅเบฐเปเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบกเบต DLLs เปƒเบ™ Windows เปเบฅเบฐ
เบเบฑเบš -fvisibility=hidden เปเบฅเบฐ "__attribute__ ((เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™("เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™")))" เปเบ—เบ™
"__declspec(dllexport)" เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš semantics เป€เบเบทเบญเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš syntax เบ„เบทเบเบฑเบ™.
เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡เบ•เปเปˆเบœเบนเป‰เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เป‰เบฒเบกเป€เบงเบ—เบต.

เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบŠเบญเบเบซเบฒ "#pragma GCC
visibility" เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡
visibility for with (เบ•เบปเบงเบขเปˆเบฒเบ‡) "#pragma GCC visibility push(hidden)" เปเบฅเบฐ "#pragma
เบ›เบฐเบเบปเบ”เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ GCC as เบชเปˆเบงเบ™ of
เป„เบ”เป‰ API เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš เบชเบฑเบ™เบเบฒ เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ„เบงเบ™เบˆเบฐเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ
เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™; ie, เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™ DSO เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ„เบงเบ™
เบชเบฐเป€เบซเบกเบตเป„เบ› เบˆเบฐเบ–เบทเบเปเบฒเบเป„เบงเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบงเปˆเบฒเบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบ—เบฒเบ‡เบญเป‰เบญเบก PLT
overheads--- เบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบญเบฑเบ™เบ™เบตเป‰เบขเปˆเบฒเบ‡เบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เบเบฑเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡.
เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ ISO C++, "operator เปƒเบซเบกเปˆ" เปเบฅเบฐ
"เบเบฒเบ™เบฅเบถเบšเบœเบนเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™" เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบชเบฐเป€เปเบต.

เบˆเบปเปˆเบ‡เบฎเบนเป‰เบงเปˆเบฒ headers เบˆเบฒเบเบžเบฒเบเบ™เบญเบเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ headers เบฅเบฐเบšเบปเบšเปเบฅเบฐ
headers เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰, เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบเบฑเบš
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เป€เบงเบปเป‰เบฒเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡ "#pragma GCC
visibility push(default)" เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบกเป€เบญเบปเบฒเบซเบปเบงเบ‚เปเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบเบฒเบ™เบ›เบฐเบเบฒเบ” "เบžเบฒเบเบ™เบญเบ" เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบ - เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบซเบผเบฒเบเบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบฅเบงเบšเบฅเบงเบกเบเบฑเบš -fvisibility=hidden เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ
เบเบฒเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ "extern" เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เปƒเบŠเป‰ PLT, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบกเบตเบซเบผเบฒเบ
เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบเบฒเบ™เปƒเบŠเป‰ "__attribute ((visibility))" เปเบฅเบฐ/เบซเบผเบท "#pragma GCC visibility" เป€เบžเบทเปˆเบญเบšเบญเบ.
compiler เบ—เบตเปˆ "extern" เบ›เบฐเบเบฒเบ”เบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ - เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบš C ++ เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ, เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบซเป‰เบญเบ‡เบฎเบฝเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบ–เบทเบเบ–เบดเป‰เบกเบฅเบฐเบซเบงเปˆเบฒเบ‡ DSOs เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบซเบกเบฒเบเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™
เบ”เป‰เบงเบเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เป€เบžเบทเปˆเบญเบงเปˆเบฒ type_info nodes เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡ DSOs.

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡เป€เบ•เบฑเบเบ™เบดเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™เบขเบนเปˆเบ—เบตเปˆ
<http://gcc.gnu.org/wiki/Visibility>.

-fstrict-volatile-bitfields
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเปƒเบŠเป‰เบ–เป‰เบฒเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบŠเปˆเบญเบ‡เบšเบดเบ”เบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰ (เบซเบผเบทเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบญเบทเปˆเบ™เป†
เบ—เบปเปˆเบ‡เบ™เบฒ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบกเบฑเบเบˆเบฐเปƒเบซเป‰เบเบฝเบ”เบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก) เบ„เบงเบ™เปƒเบŠเป‰เบญเบฑเบ™เบ”เบฝเบง
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก, เบชเบญเบ”เบ„เปˆเบญเบ‡เบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.
เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ•เปเปˆเบžเปˆเบงเบ‡เบ—เบตเปˆเบกเบตเปเบœเบ™เบ—เบตเปˆเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฑเบ‡เปเบปเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบงเป‰เบฒเบ‡ 16 เบšเบดเบ”; เบ”เป‰เบงเบเบ—เบธเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบเบฒเบ”เบ—เบธเบ bit-fields peripheral
เป€เบ›เบฑเบ™ "unsigned short" (เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเบฑเป‰เบ™เปเบกเปˆเบ™ 16 bits เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰) เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰ GCC เปƒเบŠเป‰.
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ 16-bit เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบšเบฒเบ‡เบ—เบต, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ 32-bit เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ.

เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบˆเบฐเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบธเบ”. เปƒเบ™
เบ•เบปเบงเบขเปˆเบฒเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ” 32-bit, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ™เบฑเป‰เบ™
bytes เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเปˆเบงเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ‚เบญเบ‡ bit-field, เบซเบผเบท memory-mapped registers
เบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡.

เปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เป€เบŠเบฑเปˆเบ™เป€เบกเบทเปˆเบญเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "packed" เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เบกเบฑเบ™
เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ”เป‰เบงเบเบเบฒเบ™เบญเปˆเบฒเบ™เบซเบผเบทเบ‚เบฝเบ™เบญเบฑเบ™เบ”เบฝเบงเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เบชเบญเบ”เบ„เปˆเบญเบ‡เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰ GCC เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบเบฒเบ™เบชเป‰เบฒเบ‡เบซเบผเบฒเบ
เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบฒเบเบเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเบฐเบœเบดเบ”เบžเบฒเบ”เบซเบผเบทเบ•เบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™.

เปเบฒเบเป€เบซเบ”: เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เปเป‰เบˆเบณเบเบฑเบ”เบ‚เบญเบ‡เป‚เบกเป€เบ”เบงเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ C/C++11, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”
เป€เบžเบทเปˆเบญเปเบ•เบฐเบชเบฐเบกเบฒเบŠเบดเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ bit-field. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบเปเบฒเบ™เบปเบ” bits เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเป€เบ›เบฑเบ™ bit-field เบชเบฐเบกเบฒเบŠเบดเบ.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ„เบนเปˆเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบš
เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-fsync-libcalls
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบญเบเบชเบฒเบเบ‚เบญเบ‡เบ„เบญเบšเบ„เบปเบง "__sync" เบ‚เบญเบ‡
เบŸเบฑเบ‡เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เปœเป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบ„เบญเบšเบ„เบปเบง C++11 "__atomic".

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบžเบฝเบ‡เปเบ•เปˆเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
is -fno-sync-libcalls. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹ libatomic
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime.

ENVIRONMENT


เบžเบฒเบเบชเปˆเบงเบ™เบ™เบตเป‰เบญเบฐเบ—เบดเบšเบฒเบเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบซเบผเบฒเบเบญเบฑเบ™เบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ GCC. เบšเบฒเบ‡
เบžเบงเบเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบซเบผเบทเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†
เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹. เบšเบฒเบ‡เบญเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบฅเบฑเบเบชเบฐเบ™เบฐเบญเบทเปˆเบ™เป†เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ„เบปเป‰เบ™เบซเบฒเป‚เบ”เบเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบŠเบฑเปˆเบ™: -B, -I เปเบฅเบฐ -L.
เบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™
เบกเบตเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡ GCC.

เบžเบฒเบชเบฒ
LC_CTYPE
LC_MESSAGES
LC_ALL
เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบงเบดเบ—เบตเบ—เบตเปˆ GCC เปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™
เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบšเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเปเบซเปˆเบ‡เบŠเบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. GCC เบเบงเบ”เบเบฒเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ
เบ›เบฐเป€เบžเบ” LC_CTYPE เปเบฅเบฐ LC_MESSAGES เบ–เป‰เบฒเบกเบฑเบ™เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™. เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เปเบงเบ”เปเบนเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเปƒเบ”เปœเบถเปˆเบ‡เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเป‚เบ”เบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบ„เปˆเบฒเบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™
en_GBUTF-8 เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เปƒเบ™เบชเบฐเบซเบฐเบฅเบฒเบŠเบฐเบญเบฒเบ™เบฒเบˆเบฑเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™ UTF-8.

เป„เบ”เป‰ LC_CTYPE เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบˆเบฑเบ”เบ›เบฐเป€เบžเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™. GCC เปƒเบŠเป‰เบกเบฑเบ™
เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เปƒเบ™เบชเบฐเบ•เบฃเบดเบ‡; เบ™เบตเป‰เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡ multibyte
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เปเบฒเป€เบงเบปเป‰เบฒ เปเบฅเบฐเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบซเบฅเบปเบšเบซเบ™เบตเบ—เบตเปˆเบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเปเบฒเบเปƒเบ™เบ—เบฒเบ‡เบญเบทเปˆเบ™เป€เบ›เบฑเบ™
string end เบซเบผเบท escape.

เป„เบ”เป‰ LC_MESSAGES เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเปเบฒเบ™เบปเบ”เบžเบฒเบชเบฒเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช
เบ‚เปเป‰เบ„เบงเบฒเบก.

เบ–เป‰เบฒ LC_ALL เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบกเบฑเบ™ overrides เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ LC_CTYPE เปเบฅเบฐ
LC_MESSAGES; เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, LC_CTYPE เปเบฅเบฐ LC_MESSAGES เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ เบžเบฒเบชเบฒ
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ›เปˆเบฝเบ™เปเบ›เบ‡. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ•เบปเบงเปเบ›เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡, GCC เบˆเบฐเป€เบฅเบตเปˆเบกเป€เบ›เบฑเบ™เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
C เบžเบถเบ”เบ•เบดเบเปเบฒเบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”.

TMPDIR
If TMPDIR เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบง. GCC เปƒเบŠเป‰
เป„เบŸเบฅโ€‹เปŒโ€‹เบŠเบปเปˆเบงโ€‹เบ„เบฒเบงโ€‹เป€เบžเบทเปˆเบญโ€‹เบ–เบทโ€‹เป€เบญเบปเบฒโ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบฎเบงเบšโ€‹เบฎเบงเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ›เบฑเบ™โ€‹
input เบเบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›: เบ•เบปเบงเบขเปˆเบฒเบ‡, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ preprocessor, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™
เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

GCC_COMPARE_DEBUG
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC_COMPARE_DEBUG เปเบกเปˆเบ™เป€เบเบทเบญเบšเป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบฒเบ™เบœเปˆเบฒเบ™ -fcompare-debug เบเบฒเบ™
เป„เบ”เป€เบงเบต compiler. เป€เบšเบดเปˆเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

GCC_EXEC_PREFIX
If GCC_EXEC_PREFIX เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบŠเบทเปˆเบ‚เบญเบ‡
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบเปˆเบญเบโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป‚เบ”เบ compiler เป„เบ”เป‰โ€‹. เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบเบฒเบ™เบ—เบฑเบšเบŠเป‰เบญเบ™เป€เบกเบทเปˆเบญเบ„เบณเบ™เบณเปœเป‰เบฒเบ™เบตเป‰เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™
เบ”เป‰เบงเบเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบกเบเปˆเบญเบ, เปเบ•เปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบ„เบณเบ™เบณเปœเป‰เบฒเบ—เบตเปˆเบฅเบปเบ‡เบ—เป‰เบฒเบเบ”เป‰เบงเบ slash if
เป€เบˆเบปเป‰เบฒโ€‹เบ›เบฒเบ”โ€‹เบ–เบฐโ€‹เบซโ€‹เบ™เบฒ.

If GCC_EXEC_PREFIX เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡, GCC เบžเบฐเบเบฒเบเบฒเบกเบŠเบญเบเบซเบฒเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰
เบญเบตเบ‡เบ•เบฒเบกเบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเป€เบญเบตเป‰เบ™เบ”เป‰เบงเบ.

เบ–เป‰เบฒ GCC เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบเป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰, เบกเบฑเบ™เบžเบฐเบเบฒเบเบฒเบกเบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™
เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบ.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ GCC_EXEC_PREFIX is เบ„เบณเบ™เบณเปœเป‰เบฒ/lib/gcc/ เบšเปˆเบญเบ™เบ—เบตเปˆ เบ„เบณ เบ™เบณ เปœเป‰เบฒ เปเบกเปˆเบ™เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ
compiler เบ•เบดเบ”เบ•เบฑเป‰เบ‡. เปƒเบ™เบซเบผเบฒเบเป†เบเปเบฅเบฐเบ™เบต เบ„เบณ เบ™เบณ เปœเป‰เบฒ เปเบกเปˆเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ "prefix" เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เปเบฅเปˆเบ™
configure script

เบ„เบณเบ™เบณเปœเป‰เบฒเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบฅเบฐเบšเบธเบ”เป‰เบงเบ -B เบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒเบ„เบณเบ™เบณเปœเป‰เบฒเบ™เบตเป‰.

เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเป€เบŠเบฑเปˆเบ™: crt0.o เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเปเบกเปˆเบ™เปƒเบŠเป‰เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเปƒเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบžเบทเปˆเบญเบ„เบปเป‰เบ™เบซเบฒ
เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ header. เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบŠเบทเปˆเบ›เบปเบเบเบฐเบ•เบดเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบเบฑเบš /usr/local/lib/gcc (เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบเบงเปˆเบฒ, เบ”เป‰เบงเบเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ GCC_INCLUDE_DIR), GCC เบžเบฐเบเบฒเบเบฒเบก
เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป€เบžเบทเปˆเบญเบœเบฐเบฅเบดเบ”เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบŠเบทเปˆ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฑเบš -Bfoo/, GCC เบ„เบปเป‰เบ™เบซเบฒ foo/bar เบเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบ„เบปเป‰เบ™เบซเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เบฅเบฐเบšเบปเบš /usr/local/lib/bar. เบ–เป‰เบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ
เบ„เบณ เบ™เบณ เปœเป‰เบฒ เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ เบ„เบณ เบ™เบณ เปœเป‰เบฒ เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ GCC_EXEC_PREFIX เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒ header
เป„เบŸเบฅเปŒ.

COMPILER_PATH
เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ COMPILER_PATH เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเปเบเบเบญเบญเบเบˆเบฒเบเบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”เบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบ„เบทเบเบฑเบ™เบเบฑเบš PATH.
GCC เบžเบฐเบเบฒเบเบฒเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป€เบงเบฅเบฒเบ„เบปเป‰เบ™เบซเบฒเป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบ, เบ–เป‰เบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เบšเปเปˆเป„เบ”เป‰
เบŠเบญเบเบซเบฒเป‚เบ„เบ‡เบเบฒเบ™เบเปˆเบญเบเป‚เบ”เบเปƒเบŠเป‰ GCC_EXEC_PREFIX.

LIBRARY_PATH
เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ LIBRARY_PATH เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเปเบเบเบญเบญเบเบˆเบฒเบเบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”เบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบ„เบทเบเบฑเบ™เบเบฑเบš PATH.
เป€เบกเบทเปˆเบญเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบฑเบ™ compiler เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡, GCC เบžเบฐเบเบฒเบเบฒเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ
เบ„เบปเป‰เบ™เบซเบฒเป„เบŸเบฅเปŒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเบดเป€เบชเบ”, เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบžเบงเบเบกเบฑเบ™เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ GCC_EXEC_PREFIX.
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เป‚เบ”เบเปƒเบŠเป‰ GCC เบเบฑเบ‡เปƒเบŠเป‰เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เปเบฒเบกเบฐเบ”เบฒ
เบชเปเบฒโ€‹เบฅเบฑเบš -l เบ—เบฒเบ‡เป€เบฅเบทเบญเบ (เปเบ•เปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบฅเบฐเบšเบธเบ”เป‰เบงเบ -L เบกเบฒเบเปˆเบญเบ™).

เบžเบฒเบชเบฒ
เบ•เบปเบงเปเบ›เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป„เบ›เบซเบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™. เบงเบดเบ—เบตเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆ
เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐ
เบ•เบปเบงเปœเบฑเบ‡เบชเบท, เบ•เบปเบงเปœเบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡ เปเบฅเบฐเบ„เบณเบ„เบดเบ”เป€เบซเบฑเบ™เบ–เบทเบเบงเบดเป€เบ„เบฒเบฐเปƒเบ™ C เปเบฅเบฐ C++. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ compiler เปเบกเปˆเบ™
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ multibyte, เบ„เปˆเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš เบžเบฒเบชเบฒ เบกเบต
เบฎเบฑเบšเบฎเบนเป‰:

C-JIS
เบฎเบฑเบšเบฎเบนเป‰เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ JIS.

C-SJIS
เบฎเบฑเบšเบฎเบนเป‰เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ SJIS.

C-EUCJP
เบฎเบฑเบšเบฎเบนเป‰เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ EUCJP.

If เบžเบฒเบชเบฒ เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบซเบผเบทเบงเปˆเบฒเบกเบฑเบ™เบกเบตเบกเบนเบ™เบ„เปˆเบฒเบญเบทเปˆเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบŠเป‰ "mblen"
เปเบฅเบฐ "mbtowc" เบ•เบฒเบกเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบžเบทเปˆเบญเบฎเบฑเบšเบฎเบนเป‰เปเบฅเบฐเปเบ› multibyte
เบฅเบฑเบเบชเบฐเบ™เบฐ.

เบšเบฒเบ‡เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
เบ„เปˆเบฒเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบ•เบปเบงเปเบ›เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเปเบเบเบญเบญเบเป‚เบ”เบเบฅเบฑเบเบชเบฐเบ™เบฐเบžเบดเป€เบชเบ”, เบซเบผเบฒเบ
เบ„เบท PATH, เปƒเบ™เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒ header. เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบžเบดโ€‹เป€เบชเบ”โ€‹,
"PATH_SEPARATOR", เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ เปเบฅเบฐเบเบณเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡ GCC. เบชเปเบฒเบฅเบฑเบš Microsoft
เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Windows เบกเบฑเบ™เป€เบ›เบฑเบ™ semicolon, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเป€เบเบทเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบญเบทเปˆเบ™เป†เบกเบฑเบ™เปเบกเปˆเบ™ a
เบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”.

CPATH เบฅเบฐเบšเบธเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบซเบฒเบ„เบทเบเบฑเบšเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ -I, เปเบ•เปˆ
เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบซเป‰โ€‹เบเบฑเบšโ€‹ -I เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ™เบตเป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰
เบ–เบทเบเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบงเปˆเบฒเบžเบฒเบชเบฒเปƒเบ”เบˆเบฐเบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™.

เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ preprocessing เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ
เบžเบฒโ€‹เบชเบฒโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹. เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบเปเบฒเบ™เบปเบ”เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบซเบฒเป€เบ›เบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบฅเบฐเบšเบธเป„เบงเป‰เบเบฑเบš - เบฅเบฐเบšเบปเบš, เปเบ•เปˆ เบซเบผเบฑเบ‡ เบˆเบฒเบ เป€เบชเบฑเป‰เบ™ เบ—เบฒเบ‡ เบ—เบตเปˆ เป„เบ”เป‰ เบฎเบฑเบš เบเบฑเบš - เบฅเบฐเบšเบปเบš เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹
เบšเบฑเบ™เบ—เบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡.

เปƒเบ™เบ•เบปเบงเปเบ›เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบˆเบฐเบชเบฑเปˆเบ‡เปƒเบซเป‰ compiler เบ„เบปเป‰เบ™เบซเบฒเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบฎเบฑเบ”เบงเบฝเบ. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบชเบฒเบกเบฒเบ”เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™ เบซเบผเบทเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ CPATH เปเบกเปˆเบ™ ":/special/include", เบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš
- เบ™. -I / เบžเบดเป€เบชเบ” / เบฅเบงเบก.

DEPENDENCIES_OUTPUT
เบ–เป‰เบฒเบ•เบปเบงเปเบ›เบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡, เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบญเบญเบเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบชเปเบฒเบฅเบฑเบš Make based
เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ header เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป‚เบ”เบ compiler. เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปเบกเปˆเบ™
เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช.

เบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ DEPENDENCIES_OUTPUT เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบŠเบทเปˆเป„เบŸเบฅเปŒ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบš Make
เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒเบ™เบฑเป‰เบ™, เบ„เบฒเบ”เป€เบ”เบปเบฒเบŠเบทเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบˆเบฒเบเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เบซเบผเบท
เบ„เปˆเบฒเบชเบฒเบกเบฒเบ”เบกเบตเปเบšเบšเบŸเบญเบก เป€เบญเบเบฐเบชเบฒเบ™ เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบเบปเบ”เบฅเบฐเบšเบฝเบšเปเบกเปˆเบ™เบ‚เบฝเบ™เป€เบžเบทเปˆเบญเบเบทเปˆเบ™ เป€เบญเบเบฐเบชเบฒเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ เป€เบ›เบฑเบ™โ€‹เบŠเบทเปˆโ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹.

เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบฒเบ™เบชเบปเบกเบ—เบปเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ เป€เบญเบฑเบก
เปเบฅเบฐ -MF, เบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -MT เบชเบฐเบซเบผเบฑเบšเบ„เบทเบเบฑเบ™.

SUNPRO_DEPENDENCIES
เบ•เบปเบงเปเบ›เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบš DEPENDENCIES_OUTPUT (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡), เบเบปเบเป€เบงเบฑเป‰เบ™เบฅเบฐเบšเบปเบšเบ™เบฑเป‰เบ™
เป„เบŸเบฅเปŒ header เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ -M เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐ เป€เบญเบฑเบกเบ—เบตเปˆเบขเบนเปˆ เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เป„เบ”เป‰
เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™.

เปƒเบŠเป‰ mips-linux-gnu-gnatgcc เบญเบญเบ™เบฅเบฒเบเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ onworks.net


เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบŸเบฃเบต

เบ”เบฒเบงเป‚เบซเบผเบ”เปเบญเบฑเบš Windows เปเบฅเบฐ Linux

Linux เบ„เบณ เบชเบฑเปˆเบ‡

Ad