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

Ad


OnWorks favicon

g++-4.7 - เบญเบญเบ™เบฅเบฒเบเปƒเบ™เบ„เบฅเบฒเบง

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

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ g++-4.7 เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™ 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เป€เบ•เบทเบญเบ™... ] [- pedantic]
[-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 เบˆเบฐ -fno-foo. เป€เบญเบเบฐเบชเบฒเบ™เบ„เบนเปˆเบกเบทเบ™เบตเป‰เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปƒเบ™
เบชเบญเบ‡เบฎเบนเบšเปเบšเบšเบ™เบตเป‰, เบญเบฑเบ™เปƒเบ”เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

OPTIONS


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

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

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

C ++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fabi-version=n -fno-access-control -fcheck-เปƒเปเปˆ -fconserve-space
-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 -fstats -ftemplate-depth=n
-fno-threadsafe-statics -fuse-cxa-atexit -fno-เบญเปˆเบญเบ™เปเบญ -nostdinc++ -fno-default-inline
-fvisibility-inlines-hidden -fvisibility-ms-compat - เบงเบฒเบšเบต -Wconversion-null
-Wctor-dtor-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ•เบปเบง -Wdelete-เบšเปเปˆเปเบกเปˆเบ™ virtual-dtor - เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡โ€‹ - เบเบปเบเป€เบงเบฑเป‰เบ™
-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 -freplace-objc-classes -fzero-link
-gen-decls -Wassign-intercept -Wno-protocol - เบœเบนเป‰โ€‹เป€เบฅเบทเบญเบโ€‹ -Wstrict-select-match
-Wunddeclared-เป€เบฅเบทเบญเบ

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

เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบž เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-fsyntax เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ -fmax-errors=n - pedantic -pedantic เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹ -w -Wextra - เบเบฒ
-waddress -Waggregate-เบเบฑเบšเบ„เบทเบ™ - Warray-bounds - เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ Wnoโ€‹
-Wno-builtin-macro-redefined -Wc++-compat -Wc++11-compat -Wcast-align -Wcast-qual
-Wchar-subscripts - Wclobbered - เบ„เปเบฒเป€เบซเบฑเบ™ - เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹ -Wcoverage-mismatch -Wno-cpp
-Wno-deprecated -Wno-deprecated-เบ›เบฐเบเบฒเบ” -Wdisabled-optimization -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 - Wimplicit -Wimplicit-function-เบ›เบฐเบเบฒเบ” -Wimplicit-int
- เบงเบดเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹ - Winline -Wmaybe-unitialized -Wno-int-to-pointer-cast
-Wno-invalid-offsetof -Winvalid-pch -Wlarger-than=len -Wunsafe-loop-optimizations
-Wlogical-op - เบเบฒเบง - เบเบฒเบง - เบœเบนเป‰เบเบดเบ‡ -Wmaybe-unitialized -Wmissing-braces
-Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs
-Wno-mudflap -Wno-multichar -Wnonnull -Wno-เบฅเบปเป‰เบ™ -Woverlength-strings - เบซเปเปˆ
-Wpacked-bitfield-compat - เปเบœเปˆเบ™เปเบž -Wparentheses -Wpedantic-ms-format
-Wno-pedantic-ms-format -Wpointer-arith -Wno-pointer-to-int-cast -Wredundant-decls
- เบ›เบฐโ€‹เป€เบžเบ” Wreturnโ€‹ - เบฅเปเบฒเบ”เบฑเบšเบˆเบธเบ” - เป€เบ‡เบปเบฒ -Wsign-เบ›เบฝเบšเบ—เบฝเบš -Wsign เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
-Wstack-protector -Wstack-usage=len - เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเป‰เบฒเบชเบธเบ” -Wstrict-aliasing=n
-Wstrict-เบฅเบปเป‰เบ™ -Wstrict-overflow=n -Wsuggest-attribute=[เบšเปเบฅเบดเบชเบธเบ”|const|noreturn]
- เบชเบฐเบซเบงเบดเบ” -Wswitch-default -Wwwitch-enum -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
-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 -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-vcg -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-mudflap[-n]
-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-vrp[-n] -ftree-vectorizer-verbose=n -fdump-tree-storeccp[-n]
-fdump-final-insns=เป€เบญเบเบฐเบชเบฒเบ™ -fcompare-debug[=เป€เบฅเบทเบญเบ] -fcompare-debug-เบงเบดเบ™เบฒเบ—เบต
-feliminate-dwarf2-dups -feliminate-unused-debug-types
-feliminate-unused-debug-เบชเบฑเบ™เบเบฒเบฅเบฑเบ -femit-class-debug-เบชเบฐเป€เปเบต -fenable-เบ›เบฐเป€เบžเบ”-เบœเปˆเบฒเบ™
-fenable-เบ›เบฐเป€เบžเบ”-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ -fdebug-types-section -fmem เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ -fpre-ipa-mem-เบฅเบฒเบเบ‡เบฒเบ™
-fpost-ipa-mem-report -fprofile-arcs -frandom-seed=string -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+ -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 เป€เบงเบฅเบฒ[=เป€เบญเบเบฐเบชเบฒเบ™]

เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ” เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
-falign-functions[=n] -falign-jumps[=n] -falign-labels[=n] -falign-loops[=n]
-fassociative-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” -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 -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
-fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹ -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ 2โ€‹ -findirect-inlining -finline-functions
-finline-functions-called-one เบ”เบฝเบง -finline-limit=n -finline-small-functions -fipa-cp
-fipa-cp-clone -fipa-matrix-reorg -fipa-pta -fipa-profile -fipa-pure-const
-fipa เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹ -fira-algorithm=เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบงเบดเบ—เบต -fira-region=เบžเบนเบกเบดเบžเบฒเบ -fira-loop-pressure
-fno-ira-share-save-slots -fno-ira-share-spill-slots -fira-verbose=n -fivopts
-fkeep-inline-เบŸเบฑเบ‡เบŠเบฑเบ™ -fkeep-static-consts -floop-block -floop-flatten
-floop-interchange -floop-strip-mine -floop-parallelize-เบ—เบฑเบ‡เปเบปเบ” -flto
-flto-compression-level -flto-partition=เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ” flto-เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ -fmerge-เบ—เบฑเบ‡เปเบปเบ”-เบ„เบปเบ‡เบ—เบตเปˆ
-fmerge-เบ„เบปเบ‡เบ—เบตเปˆ -fmodulo-sched -fmodulo-sched-allow-regmoves -fmove-loop-invariants
fmudflap -fmudflapir -fmudflapth -fno-branch-count-reg -fno-default-inline
-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-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™-เบเป‰เบฒเบ
-foptimize-sibling-calls -fpartial-inlining -fpeel-loops -fpredictive-commoning
-fprefetch-loop-arrays -fprofile-เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹ -fprofile-dir=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ -fprofile-generate
-fprofile-generate=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ -fprofile-เปƒเบŠเป‰ -fprofile-use=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ -fprofile-เบ„เปˆเบฒ
-freciprocal-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” เบŸเบฃเบต -fregmove -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-insns
-fschedule-insns2 -fsection-anchors -fselective-เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹ -fselective-เบเบณเบ™เบปเบ”โ€‹เป€เบงเบฅเบฒ2
-fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fshrink-wrap
-fsignaling-nans -fsingle-precision-constant -fsplit-ivs-in-unroller
-fsplit-wide-types -stack-protector -fstack-protector-เบ—เบฑเบ‡เปเบปเบ” -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-parallelize-loops=n
-ftre-pre -ftree-partial-pre -ftree-pta -ftree-reassoc - เบญเปˆเบฒเบ‡เบฅเป‰เบฒเบ‡เบกเบท -ftree-sra
-ftre-switch-เปเบ›เบ‡ -ftree-tail-merge - เบซเป‰เบฒโ€‹เบ›เบตโ€‹ -ftree-vect-loop-version
-ftree-vectorize -ftree-vrp -funit-at-a-time -funroll-all-loops -funroll-loops
-funsafe-loop-optimizations -funsafe-math-optimizations -funswitch-loops
-fvariable-expansion-in-unroller -fvect-cost-model -fvpt -fweb - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ -fwpa
-fuse-ld=linker -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 เบ—เบฒเบ‡เป€เบฅเบทเบญเบ

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

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

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

เป€เบ„เบทเปˆเบญเบ‡ เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™
AAArch64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -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=เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก - เบกเบตเบ™เบฒ=เบŠเบทเปˆ
-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

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
-mwords-little-endian -mfloat-abi=เบŠเบทเปˆ -mfpe -mfp16-format=เบŠเบทเปˆ -mthumb-interwork
-mno-thumb-interwork -mcpu=เบŠเบทเปˆ - เบกเบตเบ™เบฒ=เบŠเบทเปˆ -mfpu=เบŠเบทเปˆ -mstructure-size-boundary=n
-mabort-on-norturn -mlong-เป‚เบ— -mno-long-calls -msingle-pic-base
-mno-single-pic-base -mpic เบกเบฑเบเบชเบฐเบกเบฒเบŠเบดเบ =reg -mnop-fun-dllimport -mcirrus-fix-invalid-insns
-mno-cirrus-fix-invalid-insns -mpoke-function-name - เป‚เบ›เป‰เบกเบท - เบกเบฒเบก -mtpcs-frame
-mtpcs-เปƒเบš-เบเบญเบš -mcaller-super-interworking -mcallee-super-interworking -mtp=เบŠเบทเปˆ
-mtls-เบžเบฒเบชเบฒ =เบžเบฒเบชเบฒ -mword เบเบฒเบ™โ€‹เบเบปเบโ€‹เบเป‰เบฒเบโ€‹ -mfix-cortex-m3-ldrd -munaligned-เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹
-mneon-for-64bits

APR เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mmcu=mcu -maccumulate-args -mbranch-cost=เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ -mcall-prologues - mint8
-mno-interrupts -mrelax -mshort-เป‚เบ— -mstrict-X -mtiny-stack

เบ”เบณ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -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 -malpha-as - เบกเบ -เบกเบตเปˆ
-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=เบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ

DEC Alpha/VMS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mvms-return-codes -mdebug-main=เบ„เบณ เบ™เบณ เปœเป‰เบฒ - mmalloc64

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 -เบ™เบฒเบ‡โ€‹เบชเบฒเบง - เบ™ - mint32 -malign-300

HPPA เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบกเบตเบ™เบฒ=เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ -mbig-เบชเบฐเบซเบผเบฑเบš -mdisable-fpregs
-mdisable-indexing -mfast-indirect-calls - เบกเบ -mgnu-ld -mhp-ld
-mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -mjump-in-delay -mlinker-opt -mlong-เป‚เบ—
-mlong-load-store -mno-big-switch -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 - เบเบฐเบ—เบนเป‰

i386 เปเบฅเบฐ x86-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mtune=cpu-type - เบกเบตเบ™เบฒ=cpu-type -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 - เปเบกเปˆ -mpclmul
-mfsgsbase -mrdrnd -mf16c -mfma -msse4a -m3dnow -mpopcnt - mabm -mbmi -mtbm -mfma4
-mxop -mlzcnt -mbmi2 -mlwp -mthreads -mno-align-stringops -minline-all-stringops
-minline-stringops-เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ -mstringop-strategy=เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ” -mpush-args
-maccumulate-outgoing-args -m128bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ -m96bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ -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 -mlarge-data-threshold=num -msse2avx
-mfentry -m8bit-idiv -mavx256-split-unaligned-load -mavx256-split-unaligned-store

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

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

IA-64/VMS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mvms-return-codes -mdebug-main=เบ„เบณ เบ™เบณ เปœเป‰เบฒ - mmalloc64

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
-mxl-mode-app-model

MIPS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - THE -EB - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡ -mtune=เป‚เบ„เป‰เบ‡ -mips1 -mips2 -mips3 -mips4
-mips32 -mips32r2 -mips64 -mips64r2 -mips16 -mno-mips16 -mflip-mips16
-minterlink-mips16 -mno-interlink-mips16 -mabi=เบŠเปˆเบงเบเป€เบซเบฅเบทเบญ - mabicalls -mno-abicalls
-mshared -mno-เปเบšเปˆเบ‡เบ›เบฑเบ™ -mplt -mno-plt -mxgot -mno-xgot -mgp32 -mgp64 -mfp32
-mfp64 -mhard-float -msoft-float -msingle-float -mdouble-float -mdsp -mno-dsp
-MDSPR2 -mno-dspr2 -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
-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-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

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

RS / 6000 เปเบฅเบฐ เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ PC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -mcpu=cpu-type -mtune=cpu-type -mcmodel=code-model - เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹
-mno เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹ - เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™ 2โ€‹ -mno-power2 -mpowerpc -mpowerpc64 -mno-powerpc -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
-mnew-mnemonics - mold-mnemonic -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

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 -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-เบเบญเบ‡

เบœเบฐเบฅเบดเบ”เปเบ™เบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -เป€เบกเบš -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=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -madjust-unroll
-mindexed-addressing -mgettrcost=เบˆเปเบฒเบ™เบงเบ™ -mpt-เปเบเป‰เป„เบ‚ -maccumulate-outgoing-args
-minvalid-เบชเบฑเบ™เบเบฒเบฅเบฑเบ -msoft-atomic -mbranch-cost=num - mcbranchdi -mcmpeqdi -mfused-madd
-mpretend-cmove

เปเบชเบ‡เบญเบฒเบ—เบดเบ” 2 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ - เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ” -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 -mv8plus -mno-v8plus -mvis -mno-vis -mvis2 -mno-vis2
-mvis3 -mno-vis3 -mfmaf -mno-fmaf -mpopc -mno-popc -mfix-at697f

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

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 -mbig-เบชเบฐเบซเบผเบฑเบš

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

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

x86-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เป€เบšเบดเปˆเบ‡ i386 เปเบฅเบฐ x86-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

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
-funwind-เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ -fasynchronous-unwind-เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ -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=เบฎเบนเบšเปเบšเบš -ftrapv
-fwrapv -fbounds-เบเบงเบ”โ€‹เบชเบญเบšโ€‹ - เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ -fstrict-volatile-bitfields

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก เป„เบ”เป‰ เบ›เบฐเป€เบžเบ” 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 frontends เบเบฑเบšเบ„เบทเบ™เบกเบฒ 4, เบ–เป‰เบฒเบžเบฒเบเปƒเบ™
เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” compiler.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบšเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ -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 เป€เบญเบเบฐเบชเบฒเบ™
เบงเบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปƒเบ™เป„เบŸเบฅเปŒ เป€เบญเบเบฐเบชเบฒเบ™. เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ›เบฐเป€เบžเบ”เปƒเบ”เบเปเปˆเบ•เบฒเบก
เบˆเบฐเบ–เบทเบเบœเบฐเบฅเบดเบ”, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰, เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ, เป„เบŸเบฅเปŒเบ›เบฐเบเบญเบšเบซเบผเบท
เบฅเบฐเบซเบฑเบ” 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 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰ (เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹ - เบŠเปˆเบงเบ
option), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบงเบเบกเบฑเบ™
เบเบฑเบ‡เบˆเบฐเบ–เบทเบเบชเบฐเปเบ”เบ‡.

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

--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
เบˆเบฐโ€‹เป€เบ›เบฑเบ™ 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 เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™.

-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, .h เปเบฅเบฐ .i เป„เบŸเบฅเปŒเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡ C++ เปเบ—เบ™เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡ C เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -x is
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C ++. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹
เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ 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 เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เป‚เบ”เบเบšเปเปˆเป€เบชเบเบ„เปˆเบฒ. เบชเปเบฒเบฅเบฑเบš
เบงเปˆเบฒ, - pedantic เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ -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 เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบงเบฒเบกเปเบฒเบเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ เปเบฅเบฐเบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡
เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบ - pedantic เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบญเบฑเบ™เปƒเบ”
เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เปเบกเปˆเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GNU เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฐเบšเบฑเบšเบ™เบฑเป‰เบ™. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡ -std=gnu90
- pedantic เบˆเบฐเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš C++ style // เบ„เปเบฒเป€เบซเบฑเบ™, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ -std=gnu99 - pedantic เบˆเบฐ
เบšเปเปˆ.

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

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

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

c99
c9x
iso9899:1999
iso9899:199x
ISO C99. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ™เบตเป‰เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™; เป€เบšเบดเปˆเบ‡
<http://gcc.gnu.org/gcc-4.7/c99status.html> เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบŠเบทเปˆ c9x
เปเบฅเบฐ iso9899:199x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

c11
c1x
iso9899:2011
ISO C11, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ 2011 เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบšเปเปˆเบ„เบปเบšเบ–เป‰เบงเบ™เปเบฅเบฐ
เบ—เบปเบ”เบฅเบญเบ‡. เบŠเบทเปˆ c1x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

gnu90
gnu89
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ ISO C90 (เบฅเบงเบกเบ—เบฑเบ‡เบšเบฒเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐ C99). เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ C
เบฅเบฐเบซเบฑเบ”.

gnu99
gnu9x
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ ISO C99. เป€เบกเบทเปˆเบญ ISO C99 เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เปƒเบ™ GCC, เบ™เบตเป‰เบˆเบฐ
เบเบฒเบเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบŠเบทเปˆ gnu9x เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

gnu11
gnu1x
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ ISO C11. เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบšเปเปˆเบ„เบปเบšเบ–เป‰เบงเบ™เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡. เบŠเบทเปˆ gnu1x
เบ–เบทเบเบ„เบฑเบ”เบ„เป‰เบฒเบ™.

c++98
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C++ เบ›เบต 1998 เบšเบงเบเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚. เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -ansi เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” C++.

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

c++11
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ ISO C++ เบ›เบต 2011 เบšเบงเบเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚. เบฎเบญเบ‡เบฎเบฑเบš C ++11 เบเบฑเบ‡เบขเบนเปˆ
เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

gnu++11
เบžเบฒเบชเบฒ GNU เบ‚เบญเบ‡ -std=c++11. เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš C++11 เปเบกเปˆเบ™เบเบฑเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบขเบนเปˆ, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

-fgnu89-inline
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fgnu89-inline เบšเบญเบ GCC เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเบชเบฑเบš GNU เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบชเปเบฒเบฅเบฑเบš "inline"
เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” C99.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบเบญเบกเบฎเบฑเบš เปเบฅเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบเป‚เบ”เบ GCC เป€เบงเบตเบŠเบฑเบ™ 4.1.3 เป€เบ–เบดเบ‡เปเบ•เปˆเบšเปเปˆเบฅเบงเบกเป€เบญเบปเบฒ
4.3. เปƒเบ™ GCC เบฎเบธเปˆเบ™ 4.3 เปเบฅเบฐเบ•เปเปˆเบกเบฒเบกเบฑเบ™เบ›เปˆเบฝเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡ GCC เปƒเบ™เป‚เบซเบกเบ” C99. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ "gnu_inline" เปƒเบซเป‰เบเบฑเบšเบ—เบธเบเบ„เบปเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™ inline.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fno-gnu89-inline เบšเบญเบ GCC เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เปƒเบซเป‰เปƒเบŠเป‰ C99 semantics เบชเปเบฒเบฅเบฑเบš
"inline" เป€เบกเบทเปˆเบญเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” C99 เบซเบผเบท gnu99 (ie, เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบžเบถเบ”เบ•เบดเบเปเบฒเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™). เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เปเบฒเบญเบดเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™ GCC 4.3. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบšเปƒเบ™ -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.
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เปเบฅเบฐเปƒเบ™
เป€เบŠเบดเปˆเบ‡ "เบ•เบปเป‰เบ™เบ•เป" เบกเบตเบ›เบฐเป€เบžเบ”เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เบ‚เบญเบ‡ "int". เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป€เบเบทเบญเบšเบ—เบธเบเบขเปˆเบฒเบ‡เบเบปเบเป€เบงเบฑเป‰เบ™ a
เปเบเปˆเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบš -fno-freestanding.

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

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

-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;
};

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

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

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

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

-no-integrated-cpp
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบชเบญเบ‡เบœเปˆเบฒเบ™: preprocessing เปเบฅเบฐเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบœเบนเป‰เปƒเบŠเป‰เบชเบฐเบซเบ™เบญเบ‡ "cc1", "cc1plus", เบซเบผเบท "cc1obj" เบœเปˆเบฒเบ™ -B เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เปƒเบซเป‰โ€‹
เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบปเบเบเบฐเบ•เบด
preprocessing เปเบ•เปˆเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบšเบฅเบงเบก. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ cpp เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™
(cpp เบžเบฒเบโ€‹เปƒเบ™โ€‹)

เบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เบ–เป‰เบฒ "cc1", "cc1plus", เปเบฅเบฐ "cc1obj" เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™.

- เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก
-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. เป€เบงเบตเบŠเบฑเปˆเบ™ 2 เปเบกเปˆเบ™เบฅเบธเป‰เบ™เบ‚เบญเบ‡ C++ ABI เบ—เบณเบญเบดเบ”
เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™ G++ 3.4. เป€เบงเบตเบŠเบฑเปˆเบ™ 1 เปเบกเปˆเบ™เบฅเบธเป‰เบ™เบ‚เบญเบ‡ C++ ABI เบ—เบตเปˆเบ›เบฒเบเบปเบ”เปƒเบ™เบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”
G++ 3.2. เป€เบงเบตเบŠเบฑเบ™ 0 เบˆเบฐเป€เบ›เบฑเบ™เป€เบงเบตเบŠเบฑเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš C++ เบ—เบตเปˆเบชเบธเบ”เบชเบฐเป€เปเบต
เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเป€เบžเบฒเบฐเบ‚เบญเบ‡ ABI. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, ABI เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเบฐเบšเบฑเบš 0 เบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ ABI
เปเบกเบ‡เป„เบกเป‰เบ–เบทเบเปเบเป‰เป„เบ‚.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบฅเบธเป‰เบ™ 2.

เป€เบงเบตเบŠเบฑเบ™ 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โ€‹, เบ„เปเบฒโ€‹เบ™เปเบฒโ€‹เบซเบ™เป‰เบฒ ++
เปเบฅเบฐ --, เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบšเป€เบ‚เบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบญเบฒเบเบดเบงเป€เบกเบฑเบ™เปเบกเปˆเปเบšเบš.

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

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

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

-fconserve-space
เป€เบญเบปเบฒเบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบซเบผเบท เปเบฅเปˆเบ™-time-initialized เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเปˆเบงเบ™เบ—เบปเปˆเบงเป„เบ›, เป€เบŠเบฑเปˆเบ™:
C เป€เบฎเบฑเบ”. เบ™เบตเป‰เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบšเปเปˆเบงเบดเบ™เบดเบ”เป„เบชเบŠเป‰เปเบฒเบเบฑเบ™
เบ„เปเบฒเบ™เบดเบเบฒเบก. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบเบฑเบšโ€‹เบ—เบธเบ‡โ€‹เบŠเบฒเบ”โ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™ crashed mysteriouslyโ€‹
เบซเบผเบฑเบ‡เบˆเบฒเบ "main()" เบชเปเบฒเป€เบฅเบฑเบ”, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ–เบทเบเบ—เปเบฒเบฅเบฒเบเบชเบญเบ‡เบ„เบฑเป‰เบ‡
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบชเบญเบ‡เบ„เปเบฒเบ™เบดเบเบฒเบกเป„เบ”เป‰เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™.

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

-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-เบชเบฑเบเบขเบฒ
เบชเบฑเบเบขเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เปเบนเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบŠเปˆเบญเบ‡เบŠเบทเปˆเบ—เบตเปˆเบ›เบดเบ”เบฅเป‰เบญเบก, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบžเบงเบเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบžเบฒเบเบ™เบญเบ
เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบžเบทเปˆเบญเบ™เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰
เป€เบฎเบฑเบ”เบงเบฝเบเปเบšเบšเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบ„เบนเปˆเบกเบทเบญเป‰เบฒเบ‡เบญเบตเบ‡ C++ เปเบšเบšเป€เบเบปเปˆเบฒ, เปเบฅเบฐเป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡ G++ เบเปˆเบญเบ™
4.1 เป€เบฎเบฑเบ”เบงเบฝเบเปเบšเบšเบ™เบฑเป‰เบ™เบชเบฐเป€เปเบต. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™ ISO C ++ เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบžเบทเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™
เบ›เบฐเบเบฒเบ”เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบ›เบดเบ”เบšเบฑเบ‡เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบŠเบญเบเบซเบฒเบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™เบ–เบทเบเบชเบฑเบเบขเบฒเบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰.

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

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

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

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

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

-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-เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ
เบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบž pedantic เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ MFC, เป€เบŠเบฑเปˆเบ™ implicit int เปเบฅเบฐ
เป„เบ”เป‰เบฎเบฑเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบกเบฒเบŠเบดเบเป‚เบ”เบเบœเปˆเบฒเบ™ syntax เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

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

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

-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++ run-time (dynamic_cast เปเบฅเบฐ เบ›เบฐเป€เบžเบ”). เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบšเปเปˆ
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบฑเป‰เบ™โ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹เบšเบฒเบ‡โ€‹เบžเบทเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบธเบ‡โ€‹เบ™เบตเป‰โ€‹. เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹
เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ™เบฑเป‰เบ™เปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™, เปเบ•เปˆเบกเบฑเบ™เบˆเบฐเบชเป‰เบฒเบ‡เบกเบฑเบ™เบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™.
เป„เบ”เป‰ dynamic_cast เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™
เบžเบดเบกเบ‚เปเป‰เบกเบนเบ™, ie casts เบเบฑเบš "void *" เบซเบผเบทเบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ unambiguous.

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

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

-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". เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™
เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ•เบฒเบกโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ‚เบญเบ‡ destructors staticโ€‹, เปเบ•เปˆโ€‹เบˆเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒ 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 เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

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

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

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

-fno-default-inline
เบขเปˆเบฒเบ„เบฒเบ”เป€เบ”เบปเบฒ inline เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™.
เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เป€เบŠเบฑเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ inline; เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบšเปเปˆ
เบˆเบฐเบขเบนเปˆเปƒเบ™เปเบ–เบงเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

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

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

เบ„เบงเบฒเบกเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™ -fabi-version=2 (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™) เบฅเบงเบกเบกเบต:

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

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

เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ™ -fabi-version=3.

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

mangling เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปƒเบ™โ€‹ -fabi-version=4.

เบ„เบงเบฒเบกเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™ -fabi-version=1 เบ›เบฐเบเบญเบšเบกเบต:

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

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ A { virtual void f(); int f1: 1; } ;
struct B : public A { int f2 : 1 ; } ;

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, G++ เบˆเบฐเบงเบฒเบ‡ "B::f2" เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ byte เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš "A::f1"; compilers เบญเบทเปˆเบ™เป†
เบˆเบฐโ€‹เบšเปเปˆ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆ "A" เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบกเบฑเบ™
เป€เบ›เบฑเบ™เบซเบผเบฒเบเบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡ byte เปƒเบ™เป€เบงเบ—เบตเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ; เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ” G ++ เปเบฅเบฐเบญเบทเปˆเบ™เป†
compilers เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบงเบฒเบ‡ "B" เบ„เบทเบเบฑเบ™.

ยทเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบซเบฒเบ‡ padding เบชเปเบฒเบฅเบฑเบšเบ–เบฒเบ™ virtual. G++ เบšเปเปˆเปƒเบŠเป‰เบซเบฒเบ‡
padding เป€เบกเบทเปˆเบญเบงเบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™ virtual. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ A { virtual void f(); char c1; } ;
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ B { B(); char c2; } ;
struct C : public A, public virtual B {};

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, G++ เบˆเบฐเบšเปเปˆเบงเบฒเบ‡ "B" เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบฒเบ‡เบ‚เบญเบ‡ "A"; เบญเบทเปˆเบ™เป†
compilers เบˆเบฐ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆ "A" เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปเบกเปˆเบ™โ€‹เบซเบผเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™ (เบฅเบฐโ€‹เป€เบฅเบตเบโ€‹เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™ virtualโ€‹)โ€‹; เบˆเบฐ
เป€เบฎเบฑเบ”เปƒเบซเป‰ G ++ เปเบฅเบฐ compilers เบญเบทเปˆเบ™เป†เบˆเบฑเบ”เบงเบฒเบ‡ "C" เบ„เบทเบเบฑเบ™.

ยท เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เบ‚เบญเบ‡ bit-fields เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ” width เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹
เบ›เบฐเป€เบžเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ bit-fields เบ›เบฐเบเบปเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบซเบฐเบžเบฒเบš. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

union U { int i : 4096; } ;

เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ "int" เบšเปเปˆเบกเบต 4096 bits, G++ เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบฐเบซเบฐเบžเบฑเบ™เบ™เป‰เบญเบเป€เบเบตเบ™เป„เบ›.
เป‚เบ”เบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบšเบดเบ”เปƒเบ™ "int".

ยท เบซเป‰เบญเบ‡เบฎเบฝเบ™เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ A {};

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

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ C : public B, public A {};

G++ เบˆเบฐเบงเบฒเบ‡ "A" เบŠเบฑเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ "C" เบขเบนเปˆเบ—เบตเปˆเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบนเบ™; เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰
เบขเบนเปˆเบ—เบตเปˆเบชเบนเบ™เบŠเบปเบ”เป€เบŠเบตเบ. G++ เป€เบŠเบทเปˆเบญเบœเบดเบ”เบงเปˆเบฒเบชเบฐเบกเบฒเบŠเบดเบเบ‚เปเป‰เบกเบนเบ™ "A" เบ‚เบญเบ‡ "B" เปเบกเปˆเบ™
เปเบฅเป‰เบงเบขเบนเปˆเบ—เบตเปˆเบชเบนเบ™เบŠเบปเบ”เป€เบŠเบตเบ.

ยท เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ‚เบญเบ‡โ€‹เปเบกเปˆโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เบเปˆเบฝเบงโ€‹เบ‚เป‰เบญเบ‡โ€‹เบเบฑเบš "typenameโ€‹" เบซเบผเบทโ€‹เปเบกเปˆโ€‹เปเบšเบšโ€‹
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฒเบกเบฒเบ” mangled เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

เปเบกเปˆเปเบšเบš
void f(typename Q::X) {}

เปเบกเปˆเปเบšเบš เบŠเบฑเป‰เบ™ Q >
void f(typename Q ::X) {}

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

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

ยท เบชเปเบฒเบฅเบฑเบš SYSV/x86-64, เป€เบกเบทเปˆเบญเบœเปˆเบฒเบ™เบชเบฐเบซเบฐเบžเบฒเบšเบ—เบตเปˆเบกเบตเบ„เบนเปˆเบเบฒเบง, เบกเบฑเบ™เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ pass in.
เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ•เบฒเบกเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ psABI. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

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

"เบชเบฐเบซเบฐเบžเบฑเบ™ U" เบˆเบฐเบ–เบทเบเบ–เปˆเบฒเบเบ—เบญเบ”เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบชเบฐเป€เบซเบกเบต.

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

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

- เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡โ€‹ (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 เบ›เบฐเป€เบกเบตเบ™เป€เบ›เบฑเบ™เบœเบดเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™
เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ–เบดเป‰เบก (ie เบ–เบดเป‰เบก() or เบšเปเปˆเบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™)
เปเบ•เปˆเป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเป‚เบ”เบเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเบฐเบšเปเปˆเป€เบ„เบตเบเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™.

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

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

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

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

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

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

ยท เบฅเบฒเบเบเบฒเบ™เบ—เบต 11: เบเบณเบ™เบปเบ”เบ•เบปเบงเบชเป‰เบฒเบ‡เบชเบณเป€เบ™เบปเบฒ เปเบฅเบฐเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบกเบญเบšเปเบฒเบเบชเบณเบฅเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ”เป‰เบงเบ
เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบˆเบฑเบ”เบชเบฑเบ™เปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ.

ยท เบฅเบฒเบเบเบฒเบ™เบ—เบต 12: เบกเบฑเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบเบฒเบ™เบกเบญเบšเปเบฒเบเปƒเบ™เบ•เบปเบงเบชเป‰เบฒเบ‡.

ยท เบฅเบฒเบเบเบฒเบ™เบ—เบต 14: เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบนเป‰เบ—เบณเบฅเบฒเบเป€เบ›เบฑเบ™ virtual เปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™.

ยท เบฅเบฒเบเบเบฒเบ™เบ—เบต 15: เปƒเบซเป‰ "operator=" เบชเบปเปˆเบ‡เบ„เบทเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡ * เบญเบฑเบ™เบ™เบตเป‰.

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

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบฎเบนเบšเปเบšเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบˆเบฒเบ Scott Meyers' เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš C ++ เบ›เบทเป‰เบก:

ยท เบฅเบฒเบเบเบฒเบ™เบ—เบต 6: เบˆเปเบฒเปเบ™เบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบฎเบนเบšเปเบšเบš prefix เปเบฅเบฐ postfix เบ‚เบญเบ‡ increment เปเบฅเบฐ decrement
เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™.

ยท เบฅเบฒเบเบเบฒเบ™ 7: เบขเปˆเบฒเป‚เบซเบผเบ” "&&", "||", เบซเบผเบท ",".

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

-Wstrict-null-sentinel (C++ เปเบฅเบฐ Objective-C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ "NULL" เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบšเป„เบฅเปˆเป€เบ›เบฑเบ™ sentinel. เป€เบกเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš
GCC เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบชเบปเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบเป‰เบญเบ™เบงเปˆเบฒ "NULL" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ "__null". เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™ null
เบ•เบปเบงเบŠเบตเป‰เบ„เบปเบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเบŠเบตเป‰ null, เบกเบฑเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš a
เบ•เบปเบงเบŠเบตเป‰. เปเบ•เปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเปƒเบ™เบ—เบปเปˆเบง 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, เบชเบฐเบ–เบดเบ•เบด _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++ เบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบšเปเปˆเบฅเบปเบ‡เบ™เบฒเบก, เปเบ•เปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบณเบ™เบปเบ”เปƒเบซเป‰
เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเปเบฒโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹.

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ A {
operator int();
A& operator = (int);
};

เบ•เบปเป‰เบ™เบ•เป ()
{
A a,b;
a = b;
}

เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰, G ++ เบˆเบฐเบชเบฑเบ‡เป€เบ„เบฒเบฐเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ A& เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ = ( const A&);, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ›เบฐเป€เบŠเบตเบ™เบซเบ™เป‰เบฒ
เบˆเบฐเปƒเบŠเป‰เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบเปเบฒเบ™เบปเบ” เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ =.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก 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 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹, เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹, เบˆเบฐ override เป„เบ”เป‰โ€‹
-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 เบ—เบตเปˆเบˆเบฐเป€เบญเบตเป‰เบ™เปƒเบŠเป‰ constructors เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ
เบ•เบปเบงเปเบ›เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™ "เบ•เบปเบ™เป€เบญเบ‡". เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบต
เบ•เบปเบงเปเบ› instance เปเบกเปˆเบ™เบงเบฑเบ”เบ–เบธ C ++ เบ—เบตเปˆเบกเบตเบ•เบปเบงเบ—เปเบฒเบฅเบฒเบเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเป†เบ™เป‰เบญเบเป†, เปเบฅเบฐเบ–เป‰เบฒเป€เบ›เบฑเบ™เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบฑเบ‡เป€เบ„เบฒเบฐ.
เบžเบดเป€เบชเบ” "- (void).cxx_destruct" เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ destructors เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ—เบฑเบ‡เบซเบกเบปเบ”,
เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™.

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

เปƒเบ™โ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฒเบโ€‹เบฅเบฑเบโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹เบ™เบตเป‰โ€‹, เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เปเบฅเปˆเบ™ 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("...")" เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

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

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

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

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

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

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ 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++ เบžเบฒเบชเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™.

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

- 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 ++ เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™. เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”.

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

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

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

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

-pedantic เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹
เบ„เบท - pedantic, เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบกเปˆเบ™เบœเบฐเบฅเบดเบ”เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™.

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

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

-waddress - Warray-bounds (เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -O2) -Wc++11-compat -Wchar-subscripts
-Wenum เบ›เบฝเบšเบ—เบฝเบš (เปƒเบ™ C/Objc; เบญเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบตเบ”เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ C++) -Wimplicit-int (เบ„ เปเบฅเบฐ
Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) -Wimplicit-function-เบ›เบฐเบเบฒเบ” (C เปเบฅเบฐ Objective-C เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) - เบ„เปเบฒเป€เบซเบฑเบ™
-Wformat - เบœเบนเป‰เบเบดเบ‡ (เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš C/ObjC เปเบฅเบฐเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ - freestanding) -Wmaybe-unitialized
-Wmissing-braces -Wnonnull -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++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เบžเบทเป‰เบ™เบ–เบฒเบ™ virtual เบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™.

ยท (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
เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒ "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 เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเป€เบเบตเบ™เบเบงเปˆเบฒ
เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบฐเป€เบžเบฒเบฐ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒ - pedantic เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš -Wformat,
เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เปƒเบซเป‰โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบฅเบทเบญเบ (เปเบ•เปˆโ€‹
เบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบš "strfmon", เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบšเปเปˆเบขเบนเปˆเปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C).

เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ -Wformat เบเบฑเบ‡เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบฎเบนเบšเปเบšเบš null เบชเปเบฒเบฅเบฑเบšเบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆ, -Wformat
เบเบฑเบ‡เปเบฒเบเป€เบ–เบดเบ‡ -Wnonnull.

-Wformat เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™ - เบเบฒ. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบเบฑเบšเบšเบฒเบ‡เบ”เป‰เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบฎเบนเบšเปเบšเบš,
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -Wformat-y2k, -Wno-format-extra-args, -Wno-format-zero-length,
-Wformat-nonliteral, -Wformat เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹, เปเบฅเบฐ -Wformat=2 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™
เบฅเบงเบกเบขเบนเปˆเปƒเบ™ - เบเบฒ.

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

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

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

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

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

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

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

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

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

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

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

-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 - pedantic.

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

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();
เบญเบทเปˆเบ™
เบšเบฒ ();
}
}

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบ‚เบญเบ‡ ?: เบเบฑเบš omitted operand เบเบฒเบ‡ GNU extension. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™ ?: 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 ++.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-Wunused-value
เป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบ„เบณเบ–เบฐเปเบซเบผเบ‡เบ„เบณเบ™เบงเบ™เบœเบปเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡. เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™
เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰เป‚เบเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เป„เบ› void. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ
เบซเบผเบทเบ”เป‰เบฒเบ™เบŠเป‰เบฒเบเบกเบทเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบŠเบฑเปˆเบ™ 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
เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ–เป‰เบฒเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เบซเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰
เบ•เบปเบงเปเบ›เบ—เบตเปˆเบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบ•เปˆเบงเปˆเบฒเบกเบตเบšเบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบญเบทเปˆเบ™เบ—เบตเปˆเบ•เบปเบงเปเบ›เบšเปเปˆเปเบกเปˆเบ™
initialized, compiler เบˆเบฐ emit เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบชเบนเบ” uninitialized เป„เบ”เป‰
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบšเปเปˆเป„เบ”เป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบžเบฒเบฐเบงเปˆเบฒ 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=n, เบ”เป‰เบงเบ n=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
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบ—เบฑเบ‡เบ„เปเบฒเบ–เบฒเบกเปเบฅเบฐเบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡: "x +
1 > x"; เบเบฑเบš -fstrict-เบฅเบปเป‰เบ™, compiler เบˆเบฐเบ‡เปˆเบฒเบเบ™เบตเป‰ 1. เบฅเบฐเบ”เบฑเบšเบ™เบตเป‰
of -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" เบˆเบฐเบ–เบทเบเปเบ›เป€เบ›เบฑเบ™ "x * 2".

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

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

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

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

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

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

-Wtrampoline
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš trampolines เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™.

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

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

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

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

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

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

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

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

ยทเบ— 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 เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ GCC เบฎเบธเปˆเบ™เบเปˆเบญเบ™ GCC 3.0.

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

-wno-endif-labels
เบขเปˆเบฒเป€เบ•เบทเบญเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆ #เบญเบทเปˆเบ™ or an #เบชเบธเบ”เบ—เป‰เบฒเบ เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบเบ‚เปเป‰เบ„เบงเบฒเบก.

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

-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 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธเบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš "printf" / "scanf" เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ ISO "I32",
"I64", เปเบฅเบฐ "เบ‚เป‰เบญเบ" เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ Windows เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™ MS, เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -Wformat เปเบฅเบฐ - pedantic เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ gnu.

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

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

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

-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. เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰
เป€เบ›เบตเบ” - เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡โ€‹ เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒ.

-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 or vfork. เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ -Wextra.

- เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
เป€เบ•เบทเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบ‡ 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 เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹
เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

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

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

- เบฎเปˆเบฒเบ‡เบเบฒเบเบญเปˆเบญเบ™เป€เบžเบ
เป€เบ•เบทเบญเบ™ เบ–เป‰เบฒ เบซเบฒเบ เบงเปˆเบฒ เบฎเปˆเบฒเบ‡ เบเบฒเบ เป€เบ›เบปเปˆเบฒ เป€เบเบตเบ” เบ‚เบถเป‰เบ™ เปƒเบ™ if, เบญเบทเปˆเบ™ or do เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰เปเบกเปˆเบ™
เบเบฑเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบ -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, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ - เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹.

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

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

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

- เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐ 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 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ–เบทเบเบเบณเบ™เบปเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเป‰เบ™เปเบšเบšเบเปˆเบญเบ™เปœเป‰เบฒ. เบ™เบตเป‰
เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปเบกเปˆเบ™เบญเบญเบเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ„เปเบฒเบ™เบดเบเบฒเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ•เบปเป‰เบ™เปเบšเบš. เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญ
เบเบงเบ”เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบฒเบ”เปƒเบ™เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบง.

-Wmissing เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบปเปˆเบงเป‚เบฅเบเบ–เบทเบเบเบณเบ™เบปเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบเปˆเบญเบ™เปœเป‰เบฒ. เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ
เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ•เบปเป‰เบ™เปเบšเบš. เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเบงเบ”เบซเบฒเบ—เบปเปˆเบงเป‚เบฅเบ
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบฒเบ”เปƒเบ™เป„เบŸเบฅเปŒ header. เปƒเบ™ 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 } ;

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

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

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

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

-Wnormalized=
เปƒเบ™ 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เบ—เบตเปˆเบขเบนเปˆ เบ—เปˆเบฒเบ™
เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบญเบทเปˆเบ™เป† (เป€เบŠเบฑเปˆเบ™:
"D"), เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เปเบกเบ‡เป„เบกเป‰เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบฎเบนเป‰เบซเบ™เบฑเบ‡เบชเบทเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ
เป€เบšเบดเปˆเบ‡

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

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

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

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

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

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

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

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ 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" เบขเบนเปˆเปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™.

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

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

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

เบ‚เปเป‰โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบŠเบปเบ”เป€เบŠเบตเบเบ‚เบญเบ‡ เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ เบฎเบธเปˆเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-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 เบ›เบปเบเบเบฐเบ•เบดเบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ
เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ
เป€เบ—เบปเปˆเบฒเบเบฑเบšเบ›เบฑเบ”เป„เบˆเบชเบญเบ‡.

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

-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 (เบ–เป‰เบฒเบญเบฑเบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš). เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ DBX เปƒเบ™ IRIX 6. เบ„เปˆเบฒเบ‚เบญเบ‡ เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ 2, 3 เบซเบผเบท 4; เป„เบ”เป‰
เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ•เบปเป‰เบ™โ€‹เปเบกเปˆเบ™ 2โ€‹.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฑเบš 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-เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒ.

-gvms
เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบ”เบตเบšเบฑเบ VMS (เบ–เป‰เบฒเบญเบฑเบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš). เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ DEBUG เปƒเบ™เบฅเบฐเบšเบปเบš 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.

-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
เบšเบตเบšเบญเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ DWARF2 เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เบปเบ™
เบชเบฑเบ™เบเบฒเบฅเบฑเบ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ DWARF2
เบเบฑเบš -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 เปเบฅเบฐ 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 เบžเบดเบกเบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบฒเบงเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™
เบชเบณ เป€เบฅเบฑเบ”เบฎเบนเบš.

-fpre-ipa-mem-เบฅเบฒเบเบ‡เบฒเบ™
-fpost-ipa-mem-report
เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบดเบกเบชเบฐเบ–เบดเบ•เบดเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบฒเบงเบญเบ™เบเปˆเบญเบ™เบซเบผเบท
เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš interprocedural.

-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 (เบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบซเบกเบฒเบเป€เบ–เบดเบ‡
เบญเบฐเบ”เบตเบ”).

ยท เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบงเบฝเบเบ‡เบฒเบ™เบ•เบปเบงเปเบ—เบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒ 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-เบ›เบฐเป€เบžเบ”-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ
เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบŠเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™ / เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบœเปˆเบฒเบ™. เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ compiler, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ›เบปเบเบเบฐเบ•เบดเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ” / เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ passes
เบ„เบงเบ™เปƒเบŠเป‰เปเบ—เบ™.

*<-fdisable-ipa-เบœเปˆเบฒเบ™>
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ ipa pass เบœเปˆเบฒเบ™. เบœเปˆเบฒเบ™ เปเบกเปˆเบ™เบŠเบทเปˆเบœเปˆเบฒเบ™. เบ–เป‰เบฒเบœเปˆเบฒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบชเบฐเบ–เบดเบ•เบด
invoked เปƒเบ™ compiler เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบŠเบทเปˆ pass เบ„เบงเบ™เบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบเบ”เป‰เบงเบ a
เป€เบฅเบเบฅเปเบฒเบ”เบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ 1.

*<-fdisable-rtl-เบœเปˆเบฒเบ™>
*<-fdisable-rtl-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ>
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ rtl pass เบœเปˆเบฒเบ™. เบœเปˆเบฒเบ™ เปเบกเปˆเบ™เบŠเบทเปˆเบœเปˆเบฒเบ™. เบ–เป‰เบฒเบœเปˆเบฒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบชเบฐเบ–เบดเบ•เบด
invoked เปƒเบ™ compiler เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบŠเบทเปˆ pass เบ„เบงเบ™เบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบเบ”เป‰เบงเบ a
เป€เบฅเบเบฅเปเบฒเบ”เบฑเบšเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ 1. เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเปเบเบเบเบฑเบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”
เบŠเปˆเบงเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ เบซเบผเบทเบŠเบทเปˆเบ•เบปเบงเบ›เบฐเบเบญเบš. เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐเปเบกเปˆเบ™เบ„เบนเปˆเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปเบเบเบเบฑเบ™เป‚เบ”เบ a
เบˆเปเป‰เบฒเบชเบญเบ‡เป€เบกเบฑเบ”. เป„เบฅเบเบฐเปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เบชเบปเป‰เบ™. เบ–เป‰เบฒเป„เบฅเบเบฐเปเบกเปˆเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบ•เบปเบงเป€เบฅเบ
เบ„เบนเปˆเบชเบฒเบกเบฒเบ”เบ‡เปˆเบฒเบเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบเบ”เบฝเบง. เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™ cgraph node's uid is
เบซเบผเบธเบ”เบฅเบปเบ‡เบžเบฒเบเปƒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, เป„เบ”เป‰ เบœเปˆเบฒเบ™ เปเบกเปˆเบ™เบžเบดเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบฑเป‰เบ™
เปœเป‰เบฒ เบ—เบตเปˆ. เบ— 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-tree-เบœเปˆเบฒเบ™>
*<-fenable-tree-เบœเปˆเบฒเบ™=เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเป„เบฅเบเบฐ>
เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบšเบœเปˆเบฒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰ เบœเปˆเบฒเบ™, เบ—เบฐเป€เบฅเบชเบฒเบš -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-เบœเปˆเบฒเบ™
เป€เบงเบปเป‰เบฒเบงเปˆเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰ debugging dumps เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ เบ•เบปเบงเบญเบฑเบเบชเบญเบ™. เบ™เบตเป‰
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ debugging เบœเปˆเบฒเบ™ RTL-based เบ‚เบญเบ‡ compiler. เบŠเบทเปˆเป„เบŸเบฅเปŒเบชเปˆเบงเบ™เปƒเบซเบเปˆ
เบ‚เบญเบ‡เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ•เบทเปˆเบกเบ•เบปเบงเป€เบฅเบเบœเปˆเบฒเบ™เปเบฅเบฐเบ„เปเบฒเบชเบฑเบšเปƒเบชเปˆเบเบฑเบš dumpname, เปเบฅเบฐ
เป„เบŸเบฅเปŒเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปเบฒเบเป€เบฅเบเบœเปˆเบฒเบ™เปเบกเปˆเบ™
เบ„เบดเบ”เป„เบฅเปˆเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเป€เบกเบทเปˆเบญเบšเบฑเบ”เบœเปˆเบฒเบ™เป„เบ”เป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ‚เบปเป‰เบฒเปƒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบœเปˆเบฒเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡
เบ•เบปเบงเป€เบฅเบเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบœเปˆเบฒเบ™. เป‚เบ”เบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐ,
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 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบชเบญเบ‡เบเปˆเบญเบเบ—เบปเปˆเบงเป„เบ›.
เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบœเปˆเบฒเบ™.

-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-regmove
เบ–เบดเป‰เบกเบซเบผเบฑเบ‡เบˆเบฒเบเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเป‰เบฒเบเบœเปˆเบฒเบ™.

-fdump-rtl-sched1
-fdump-rtl-sched2
-fdump-rtl-sched1 เปเบฅเบฐ -fdump-rtl-sched2 เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบœเปˆเบฒเบ™.

-fdump-rtl-เป€เบšเบดเปˆเบ‡
เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ›เป‰เบฒเบ.

-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-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 เบ„เบณ เบญเบฐเบ—เบดเบšเบฒเบ.

-เบ”เบตเบงเบตเบ”เบต เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒ dump เบŠเบตเป‰เบšเบญเบเบญเบทเปˆเบ™เป† (-fdump-rtl-เบœเปˆเบฒเบ™), dump เบ
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบ”เป‰เบงเบ VCG เบเบฑเบš
file.pass.vcg.

-dx เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡ RTL เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบšเบฅเบงเบกเบกเบฑเบ™. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปƒเบŠเป‰เบเบฑเบš
-fdump-rtl-เบ‚เบฐเบซเบเบฒเบ.

-fdump-noaddr
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ debugging dumps, เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบขเบนเปˆ. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐ
เปƒเบŠเป‰ diff เปƒเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบญเบตเป‰เบ™ compiler เบเบฑเบš binaries compiler เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เปเบฅเบฐ / เบซเบผเบทเบ‚เปเป‰เบ„เบงเบฒเบก / bss / เบ‚เปเป‰เบกเบนเบ™ / heap / stack / dso เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-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-เบชเบฐเบ–เบดเบ•เบด-เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เป€เบ›เบตเบ”เปƒเบŠเป‰ เปเบฅเบฐเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ–เบดเป‰เบกเบชเบฐเบ–เบดเบ•เบดเบœเปˆเบฒเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆเบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบเบ—เบตเปˆเบฅเบปเบ‡เบ—เป‰เบฒเบเบ”เป‰เบงเบ .เบชเบฐเบ–เบดเบ•เบด เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡, เปเบฅเบฐ
เป„เบŸเบฅเปŒเบ–เบทเบเบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป„เบŸเบฅเปŒเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบ–เป‰เบฒ -เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เปเบšเบšเบŸเบญเบกเปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง, - เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹ เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ•เบปเบงเบ™เบฑเบšเบ–เบทเบเบชเบฐเบซเบผเบธเบšเปƒเบ™เบ—เบปเปˆเบงเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
- เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹ เบˆเบฐเบ–เบดเป‰เบกเบ—เบธเบเป€เบซเบ”เบเบฒเบ™เบเป‰เบญเบ™เบงเปˆเบฒ passes เบชเป‰เบฒเบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบšเปเปˆเบกเบต
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบฅเบงเบกโ€‹เบ•เบปเบงโ€‹เบ™เบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹.

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

เบ—เบตเปˆเบขเบนเปˆ
เบžเบดเบกเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ node. เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ™เบตเป‰เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบญเบตเบ‡เบ•เบฒเบกเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปเบฅเบฐเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡. เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹เปเบกเปˆเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เป€เบ›เบฑเบ™โ€‹
dump เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ”เบตเบšเบฑเบ.

asmname
เบ–เป‰เบฒ "DECL_ASSEMBLER_NAME" เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ decl เบ—เบตเปˆเปƒเบซเป‰, เปƒเบŠเป‰เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ dump
เปเบ—เบ™ "DECL_NAME". เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบ‡เปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เป„เบ›โ€‹เบšเปˆเบญเบ™โ€‹เบˆเบฒเบโ€‹
mangled เบŠเบทเปˆเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบ›เบฐเบเบญเบš.

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

เบงเบฑเบ”เบ–เบธเบ”เบดเบš เบžเบดเบกเบ•เบปเบงเปเบ—เบ™เบงเบฑเบ”เบ–เบธเบ”เบดเบšเบ‚เบญเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ•เบปเป‰เบ™เป„เบกเป‰เบ–เบทเบเบžเบดเบกเบญเบญเบเบขเปˆเบฒเบ‡เบชเบงเบเบ‡เบฒเบก
เบ•เบปเบงโ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบ„เป‰เบฒเบโ€‹เบ„เบท Cโ€‹.

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™ dumps เบ—เบตเปˆเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก (เบšเปเปˆเป€เบ›เบฑเบ™เบเบฝเบ”เป‚เบ”เบเบ—เบธเบเป†เบ—เบฒเบ‡เป€เบฅเบทเบญเบ dump).

เบชเบฐเบ–เบดเบ•เบด
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบชเบฐเบ–เบดเบ•เบดเบ•เปˆเบฒเบ‡เป†เบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ”เบœเปˆเบฒเบ™ (เบšเปเปˆเบ–เบทเบเบเบปเบเบเป‰เบญเบ‡เบˆเบฒเบเบ—เบธเบเป†เบเบฒเบ™เบ–เบดเป‰เบก
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ).

เบ•เบฑเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ‚เบญเบšเป€เบ‚เบ”เบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ).

vops
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ virtual เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

lineno
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบเปเบ–เบงเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

uid เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡ ID เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ ("DECL_UID") เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ•เบปเบงเปเบ›.

เบ„เบณเป€เบงเบปเป‰เบฒ
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

eh เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบฅเบเบžเบฒเบเบžเบทเป‰เบ™ EH เบ–เบทเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

scev
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบงเบดเบงเบฑเบ–เบ™เบฒเบเบฒเบ™.

เบ—เบฑเบ‡เบซเบกเบปเบ” เป€เบ›เบตเบ”เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบฑเบ‡เปเบปเบ”, เบเบปเบเป€เบงเบฑเป‰เบ™ เบงเบฑเบ”เบ–เบธเบ”เบดเบš, เบเบฐเบ—เบฑเบ”เบฎเบฑเบ”, เบ„เบณเป€เบงเบปเป‰เบฒ เปเบฅเบฐ lineno.

เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ•เบปเป‰เบ™เป„เบกเป‰เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰:

เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
เบ–เบดเป‰เบกเบเปˆเบญเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเป‰เบ™เป„เบกเป‰, เป€เบžเบทเปˆเบญ file.original.

เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
dump เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เป„เบกเป‰โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹, เบเบฑเบšโ€‹ file.optimized.

gimple
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบเปˆเบญเบ™ เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบ gimplification เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเป„เบŸเบฅเปŒ. เป„เบŸเบฅเปŒ
เบŠเบทเปˆเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .gimple เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

cfg เบ–เบดเป‰เบกเป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .cfg เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

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

ch เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบฑเบ”เบฅเบญเบเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡ loop. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
ch เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

ssa เบ–เบดเป‰เบกเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš SSA เปƒเบชเปˆเป„เบŸเบฅเปŒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .เบชเบช
เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

alias
เบ–เบดเป‰เบกเบ‚เปเป‰เบกเบนเบ™เบ™เบฒเบกเปเบเบ‡เบชเบณเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
.เบ™เบฒเบกเปเบเบ‡ เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

CCP เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบ CCP. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .ccp เบเบฒเบ™
เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

storeccp
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบ STORE-CCP. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .storeccp
เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

pre เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .เบเปˆเบญเบ™ เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบญเบดเบ”เบชเบฐเบฅเบฐ เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
.เบŸเบฃเบต เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

copyprop
เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบžเบฒเบเบซเบผเบฑเบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .copyprop
เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

store_copyprop
เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเปเบฒเป€เบ™เบปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ
.store_copyprop เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

dce เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เบฒเบ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .dce เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบ‚เบตเป‰เบ•เบปเบก
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบกเป€เบ„เบทเปˆเบญเบ‡เบกเบท mudflap. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .เบ‚เบตเป‰เบ•เบปเบก เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบ—เปˆเบฒเบ™ / เบ™เบฒเบ‡ เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™. เป„เบŸเบฅเปŒ
เบŠเบทเปˆเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .sra เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบˆเบปเบกเบฅเบปเบ‡
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบปเบกเบฅเบปเบ‡เบฅเบฐเบซเบฑเบ”. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .เบˆเบปเบก เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

dom เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เป€เบ”เบฑเปˆเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เป€เบฎเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เป€เบ•เบตเบกโ€‹ .dom เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เป€เบงเบปเป‰เบฒ เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเปƒเบŠเป‰เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบฎเป‰เบฒเบ™เบ„เป‰เบฒเบ—เบตเปˆเบ•เบฒเบเปเบฅเป‰เบง. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”
เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹ .dse เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

phiopt
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš PHI nodes เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบซเบฑเบ”เป€เบชเบฑเป‰เบ™เบเบปเบ‡. เป„เบŸเบฅเปŒ
เบŠเบทเปˆเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .phiopt เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

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

เบŠเบทเปˆเบชเบณเป€เบ™เบปเบฒ
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เบŠเบทเปˆเบชเบณเป€เบ™เบปเบฒ. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เป€เบฎเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เป€เบ•เบตเบกโ€‹ .copyrename เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบชเบฐเบšเบฑเบšเป€เบฅเบเบ—เบต เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบ„เปˆเบฒเบชเบปเปˆเบ‡เบ„เบทเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเปƒเบ™เปเบšเบšเบ—เบปเปˆเบงเป„เบ›
เบ•เบปเป‰เบ™เป„เบกเป‰. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เปเปˆเบ—เป‰เบฒเบ .nrv เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบงเบตเบ—เบต
เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเปƒเบŠเป‰ vectorization เบ‚เบญเบ‡ loops. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”
เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹ .vect เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

slp เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเปƒเบŠเป‰ vectorization เบ‚เบญเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™
เป€เบฎเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เป€เบ•เบตเบกโ€‹ .slp เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

vp เบ–เบดเป‰เบกเปเบ•เปˆเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบกเบนเบ™เบ„เปˆเบฒ (VRP). เบŠเบทเปˆเป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบ
เป€เบžเบตเปˆเบกเป€เบ•เบตเบก .vrp เบเบฑเบšเบŠเบทเปˆเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡.

เบ—เบฑเบ‡เบซเบกเบปเบ” เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ–เบดเป‰เบกเบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบกเบตเบ—เบธเบ‡เบ—เบตเปˆเบกเบตเปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰.

-ftree-vectorizer-verbose=n
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบ›เบฐโ€‹เบฅเบดโ€‹เบกเบฒเบ™โ€‹เบเบฒเบ™ debugging เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ” vectorizer เป„เบ”เป‰โ€‹. เบ™เบตเป‰
เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -fdump-tree-เบ—เบฑเบ‡เปเบปเบ” or -fdump-tree-vect
เป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบกเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบญเบญเบเป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบฅเบฒเบเบŠเบทเปˆ dump เบ›เบปเบเบเบฐเบ•เบด, .vectเบ—เบตเปˆเบขเบนเปˆ เบชเปเบฒเบฅเบฑเบš
n=0 เบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบงเบดเบ™เบดเป„เบช. เบ–เป‰เบฒ n=1 vectorizer เบฅเบฒเบเบ‡เบฒเบ™เปเบ•เปˆเบฅเบฐ loop
เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš vectorized, เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ loops เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš vectorized. เบ–เป‰เบฒ n=2 เป„เบ”เป‰
vectorizer เบเบฑเบ‡เบฅเบฒเบเบ‡เบฒเบ™ loops เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ vectors เบ—เบตเปˆเบœเปˆเบฒเบ™เป„เบฅเบเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ—เปเบฒเบญเบดเบ”
(vect_analyze_loop_form) - ie countable, inner-most, single-bb, single-entry/exit
เบงเบปเบ‡. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบš verbosity เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบงเปˆเบฒโ€‹ -fdump-tree-vect-stats เปƒเบŠเป‰. เบชเบนเบ‡เบเบงเปˆเบฒ
เบฅเบฐเบ”เบฑเบš verbosity เปเบฒเบ เป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ–เบดเป‰เบกเป„เบงเป‰ เบชเบณ เบฅเบฑเบšเปเบ•เปˆเบฅเบฐ loop เบ—เบตเปˆเบฅเบฒเบเบ‡เบฒเบ™, เบซเบผเบทเบ„เบทเบเบฑเบ™
เบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบฒเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบš loops เป€เบžเบตเปˆเบกเป€เบ•เบตเบก: เบ–เป‰เบฒ n=3, เบ•เบปเบงเปเบšเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ vectorizer
เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบฅเบฒเบเบ‡เบฒเบ™. เบ–เป‰เบฒ n=4, เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบเปˆเบฝเบงโ€‹เบ‚เป‰เบญเบ‡โ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹
เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™. เบ–เป‰เบฒ n=5, data-references related information (eg memory dependences, memory
access-patterns) เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™. เบ–เป‰เบฒ n=6, vectorizer เบฅเบฒเบเบ‡เบฒเบ™เบเบฑเบ‡เบšเปเปˆเปเบกเปˆเบ™
vectorized เบžเบฒเบเปƒเบ™ - เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ” loops เบ—เบตเปˆเบšเปเปˆเบœเปˆเบฒเบ™เป„เบฅเบเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ—เปเบฒเบญเบดเบ” (ie, เบญเบฒเบ”เบˆเบฐเบšเปเปˆ
เบชเบฒเบกเบฒเบ”เบ™เบฑเบšเป„เบ”เป‰, เบซเบผเบทเบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™). เบ–เป‰เบฒ n=7, vectorizer เบฅเบฒเบเบ‡เบฒเบ™
เบเบฑเบ‡เป€เบ›เบฑเบ™ loops เบ—เบตเปˆเบšเปเปˆเบกเบต vectorized. เบ–เป‰เบฒ n=8, เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡ SLP เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ
เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™. เบชเปเบฒเบฅเบฑเบš n=9, เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆ vectorizer เบชเป‰เบฒเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ‚เบญเบ‡เบกเบฑเบ™
เปเบฅเบฐเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบฒเบเบ‡เบฒเบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบš verbosity เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบงเปˆเบฒโ€‹
-fdump-tree-vect-เบฅเบฒเบเบฅเบฐเบญเบฝเบ” เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰.

-frandom-seed=string
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เปเบ™เบงเบžเบฑเบ™เบ—เบตเปˆ GCC เปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบเปเบšเบšเบชเบธเปˆเบก.
เบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบŠเบทเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเบˆเบฐเบ•เป‰เบญเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบ—เบธเบเป†
เป„เบŸเบฅเปŒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก. เบกเบฑเบ™โ€‹เบเบฑเบ‡โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เบงเบฒเบ‡โ€‹เบชเบฐโ€‹เปเบ•เบกโ€‹เป€เบ›เบฑเบ™โ€‹เป€เบญโ€‹เบเบฐโ€‹เบฅเบฑเบโ€‹เปƒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบธเป‰เบกโ€‹เบ„เบญเบ‡โ€‹เปเบฅเบฐโ€‹
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เบžเบงเบเบกเบฑเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰ - เป€เบกเบฑเบ”เบžเบฑเบ™ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ„เป‰เบฒเบเบเบฑเบ™เบ„เบทเบ™เปƒเปเปˆ.

เป„เบ”เป‰ string เบ„เบงเบ™เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เป„เบŸเบฅเปŒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

-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-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 เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡.)

-feliminate-unused-debug-types
เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เป€เบกเบทเปˆเบญเบœเบฐเบฅเบดเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ” DWARF2, GCC เบˆเบฐเบ›เปˆเบญเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™
เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เปƒเบ™โ€‹เบซเบ™เปˆเบงเบโ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹, เบšเปเปˆโ€‹เบงเปˆเบฒโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เบ—เบตเปˆโ€‹เปเบ—เป‰โ€‹เบˆเบดเบ‡โ€‹
เปƒเบŠเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ™เบฑเป‰เบ™. เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบญเบฑเบ™เบ™เบตเป‰เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒ, เปƒเบ™ debugger,
เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบปเปˆเบ‡โ€‹เบ„เปˆเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ•เบปเบงโ€‹เบˆเบดเบ‡โ€‹เปƒเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™ (เปเบ•เปˆโ€‹เปเบกเปˆเบ™โ€‹
เบ›เบฐเบเบฒเบ”). เป€เบฅเบทเป‰เบญเบเป†, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบชเบเป€เบ‡เบดเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.
เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰, GCC เบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบœเบปเบ™เบญเบญเบเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ”เบตเบšเบฑเบเบชเบณเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™
เบšเปเปˆเบกเบตเบšเปˆเบญเบ™เปƒเบ”เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบฅเบงเบšเบฅเบงเบก.

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

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

เบเบฒเบ™เป€เบ›เบตเบ”เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบžเบฐเบเบฒเบเบฒเบกเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš เปเบฅเบฐ/เบซเบผเบท
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบฅเบงเบšโ€‹เบฅเบงเบกโ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐ debug เป„เบ”เป‰โ€‹
เป‚เบ„เบ‡เบเบฒเบ™.

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

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

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

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

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

เบเบฑเบš -O, compiler เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ”เป†เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

-O เป€เบ›เบตเบ”เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

-fauto-inc, เบ„เบฐ -fcompare-elim -fcprop-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ -fdce -fdefer-pop -fdelayed-เบชเบฒเบ‚เบฒ
-fdse -fguess-เบชเบฒเบ‚เบฒ-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ 2โ€‹ -fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹ -fipa-pure-const
-fipa-profile -fipa เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹ -fmerge-เบ„เบปเบ‡เบ—เบตเปˆ -fsplit-wide-types -ftree-bit-ccp
-ftree-builtin-call-dce -ftree-ccp -ftre-ch -free-copyrename -ftree-dce
-ftree-dominator-opts -ftree-dse -ftree-forwprop - เบŸเบฃเบตโ€‹เบŸเบฃเบตโ€‹ -ftree-phiprop -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 -fexpensive-optimizations -fgcse
-fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra
-foptimize-sibling-calls -fpartial-inlining -fpeephole2 -fregmove -freorder-เบ•เบฑเบ™
-freorder - เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹ -frerun-cse-after-loop -fsched-interblock -fsched-spec
-fschedule-insns -fschedule-insns2 -fstrict-aliasing -fstrict-เบฅเบปเป‰เบ™
-ftre-switch-เปเบ›เบ‡ -ftree-tail-merge -ftre-pre -ftree-vrp

เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบ„เปเบฒเป€เบ•เบทเบญเบ™เบžเบฒเบเปƒเบ•เป‰ -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-vectorize, -ftree-partial-pre เปเบฅเบฐ -fipa-cp-clone เบ•เบปเบงเป€เบฅเบทเบญเบ

-O0 เบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบชเป‰เบฒเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
Default

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

-เบญเบช เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบ—เบธเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰: -falign-functions -falign-jumps
-falign-loops -falign-เบ›เป‰เบฒเบ -freorder-เบ•เบฑเบ™ -freorder-blocks-and-partition
-fprefetch-loop-arrays -ftree-vect-loop-version

- เป„เบง
เบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”. - เป„เบง เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฑเบ‡เบซเบกเบปเบ” -O3 เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบกเบฑเบ™เบเบฑเบ‡
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบกเบฑเบ™
เป€เบ›เบตเบ” -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹ เปเบฅเบฐ Fortran เบชเบฐเป€เบžเบฒเบฐ -fno-protect-parens เปเบฅเบฐ -fstack-arrays.

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

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

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

-fno-default-inline
เบขเปˆเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบกเบฒเบŠเบดเบเบขเบนเปˆเปƒเบ™เปเบ–เบงเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบžเบฒเบเปƒเบ™
เบ‚เบญเบšเป€เบ‚เบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™ (C++ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™). เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบ™เบปเบ” -O, เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบกเบฒเบŠเบดเบเบเปเบฒเบ™เบปเบ”
เบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบขเบนเปˆเปƒเบ™เปเบ–เบงเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™; ie, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบก inline
เบขเบนเปˆเบ•เปเปˆเปœเป‰เบฒเบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบกเบฒเบŠเบดเบ.

-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"
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเปเบฒเบเบฎเบญเบ‡เบฎเบฑเบšเบ—เบธเบ‡เบ™เบตเป‰เบซเบผเบทเบšเปเปˆ.

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ GCC เบฎเบธเปˆเบ™ 4.6, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เป€เบกเบทเปˆเบญเบšเปเปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบฐเบซเบ™เบฒเบ”) เบชเปเบฒเบฅเบฑเบš
เป€เบ›เบปเป‰เบฒเปเบฒเบ 32-bit Linux x86 เปเบฅเบฐ 32-bit Darwin x86 เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™
-fomit-frame-pointer. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เป„เบ›เป€เบ›เบฑเบ™ -fno-omit-frame-pointer by
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ GCC เบเบฑเบš --enable-frame-pointer เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-foptimize-sibling-calls
เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบญเป‰เบฒเบเป€เบญเบทเป‰เบญเบเบ™เป‰เบญเบ‡ เปเบฅเบฐเบซเบฒเบ‡เบชเบฝเบ‡เบŠเป‰เบณ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -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 เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒ
เบ•เบปเบงเปเบ›เป„เบ”เป‰เบ–เบทเบเบญเป‰เบฒเบ‡เบญเบตเบ‡, เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบทเบšเปเปˆเป€เบ›เบตเบ”, เปƒเบซเป‰เปƒเบŠเป‰
เป„เบ”เป‰ -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
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ modulo เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ SMS เบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ”เป‰เบงเบเบเบฒเบ™เบเป‰เบฒเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”. เป‚เบ”เบ
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบธเบ‡เบ™เบตเป‰ เบ‚เบญเบšเบเบฒเบ™เบ•เป‰เบฒเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบˆเบฐเบ–เบทเบเบฅเบถเบš เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบœเบปเบ™
เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง reg เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเป„เบฅเบเบฐเบŠเบตเบงเบดเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™
เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -fmodulo-sched enabled

-fno-branch-count-reg
เบขเปˆเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "เบซเบผเบธเบ”เบฅเบปเบ‡เปเบฅเบฐเบชเบฒเบ‚เบฒ" เปƒเบ™เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ™เบฑเบš, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ
เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบซเบผเบธเบ”เบฅเบปเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš
เบชเบนเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฒเบ‚เบฒเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบžเบฝเบ‡เปเบ•เปˆเบเปˆเบฝเบงเบเบฑเบš
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบกเบต x86, PowerPC, IA-64 เปเบฅเบฐ
S / 390.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fbranch-count-reg.

-fno-function-cse
เบขเปˆเบฒเปƒเบชเปˆเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™; เป€เบฎเบฑเบ”เปเบ•เปˆเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป‚เบ—เบซเบฒ a
เบŸเบฑเบ‡เบŠเบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™.

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

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -function-cse

-fno-zero-initialized-in-bss
เบ–เป‰เบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบเบชเปˆเบงเบ™ BSS, GCC เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฐเบงเบฒเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเป€เบ›เบฑเบ™
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบชเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ BSS. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ›เบฐเบซเบเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

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

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fzero-initialized-in-bss.

-fmudflap -fmudflapth -fmudflapir
เบชเปเบฒเบฅเบฑเบšเบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™ (C เปเบฅเบฐ C ++), เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบŠเบตเป‰ / array เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™ dereferencingโ€‹, เบšเบฒเบ‡โ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบดโ€‹เบ‡โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™ / heap functions เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹เบšเบฒเบ‡โ€‹
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป„เบฅเบเบฐ / เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡. เป‚เบกเบ”เบนเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เบžเบนเบกเบ•เป‰เบฒเบ™เบ—เบฒเบ™เบ•เปเปˆเบเบฑเบš buffer overflows, เบเบฒเบ™เปƒเบŠเป‰ heap เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบฅเบฐเบšเบฒเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบญเบทเปˆเบ™เป†เบ‚เบญเบ‡ C/C++
เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก. เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” runtime เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
(libmudflap), เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ›เบผเปเบเบผเบกเบ–เป‰เบฒ -fmudflap เปเบกเปˆเบ™เปƒเบซเป‰เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.
เบžเบถเบ” เบ•เบด เบเปเบฒ เบเบฒเบ™ เบ”เปเบฒ เป€เบ™เบตเบ™ เบ‡เบฒเบ™ เบ‚เบญเบ‡ เป‚เบ„เบ‡ เบเบฒเบ™ เป€เบ„เบทเปˆเบญเบ‡ เบกเบท เปเบกเปˆเบ™ เบ„เบงเบš เบ„เบธเบก เป‚เบ”เบ MUDFLAP_OPTIONS
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ›เปˆเบฝเบ™เปเบ›เบ‡. เป€เบšเบดเปˆเบ‡ "env MUDFLAP_OPTIONS=-help a.out" เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบ‚เบญเบ‡เบกเบฑเบ™.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fmudflapth เปเบ—เบ™โ€‹เบ—เบตเปˆ -fmudflap เป€เบžเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบกเปˆเบ™เบซเบผเบฒเบ.
เบเบฐเบ—เบนเป‰. เปƒเบŠเป‰ -fmudflapir, เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™ -fmudflap or -fmudflapth, เบ–เป‰เบฒ
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ„เบงเบ™เบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฒเบ™เบญเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰. เบ™เบตเป‰เบœเบฐเบฅเบดเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบซเบ™เป‰เบญเบ (เปเบฅเบฐ
เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป„เบงโ€‹เบ‚เบถเป‰เบ™โ€‹) เปเบฅเบฐโ€‹เบเบฑเบ‡โ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบปเบโ€‹เบ›เบฑเบโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เบ•เป‰เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒ outrightโ€‹
corrupting writes, เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ erroneously เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบžเบทเปˆเบญ propagate เบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™.

-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
เบกเบตเบฅเบณเบ”เบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”/เป€เบเบฑเบšเป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ™เบญเบเบงเบปเบ‡เบเบฒเบ™, เปเบฅเบฐ เบ
เบ„เบฑเบ”เบฅเบญเบ / เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเบฒเบเปƒเบ™ loop.

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

-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 เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปเบฅเป‰เบง, เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เป‚เบซเบผเบ”เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
เบซเบผเบฑเบ‡เบˆเบฒเบเป‚เบซเบผเบ”เปƒเปเปˆ. เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบœเปˆเบฒเบ™โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบ—เปเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบชเบฐโ€‹เบญเบฒเบ”โ€‹เบเบฒเบ™โ€‹เบฎเบปเปˆเบงโ€‹เป„เบซเบฅโ€‹เบŠเป‰เบณโ€‹เบŠเป‰เบญเบ™.

-funsafe-loop-optimizations
เบ–เป‰เบฒเบ–เบทเบเบกเบญเบšเปƒเบซเป‰, เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš loop เบˆเบฐเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ”เบฑเบ”เบŠเบฐเบ™เบต loop เบšเปเปˆ overflow, เปเบฅเบฐเบ™เบฑเป‰เบ™
loops เบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบฒเบ‡เบญเบญเบ nontrivial เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”. เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบงเป‰เบฒเบ‡เบ‚เบถเป‰เบ™
เบ‚เบญเบ‡ loop optimizations เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ loop optimizer เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบชเบนเบ”เบงเปˆเบฒเบชเบดเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ–เบทเบเบ•เป‰เบญเบ‡. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -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 doable
เป‚เบ”เบโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™เบŠเบดเบšเบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบขเบนเปˆ
เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบกเปˆเบ™เบ„เบงเบšเบ„เบธเบกเป‚เบ”เบ "if-conversion2".

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fif เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡ 2โ€‹
เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (เบšเปˆเบญเบ™เบกเบต) เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบชเบฒเบ‚เบฒ-เปœเป‰เบญเบเบ—เบฝเบšเป€เบ—เบปเปˆเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-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, -เบญเบช.

-fexpensive-optimizations
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบฅเบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เปเบžเบ‡.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

เบŸเบฃเบต
เบžเบฐเบเบฒเบเบฒเบกเป€เบญเบปเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเบŠเปเป‰เบฒเบŠเป‰เบญเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบš
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ x86-64 เป€เบŠเบดเปˆเบ‡ implicitly zero-extens เปƒเบ™ 64-bit registers เบซเบผเบฑเบ‡เบˆเบฒเบ.
เบ‚เบฝเบ™เปƒเบชเปˆเป€เบ„เบดเปˆเบ‡ 32-bit เบ•เปˆเปเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš x86 เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-foptimize-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™-เบเป‰เบฒเบ
-fregmove
เบžเบฐเบเบฒเบเบฒเบกเบกเบญเบšเบซเบกเบฒเบเป€เบฅเบเบ—เบฐเบšเบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเปเบฅเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเบทเปˆเบ™เป†
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบชเบฑเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบžเบตเปˆเบกโ€‹เบ›เบฐโ€‹เบฅเบดโ€‹เบกเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™ tyingโ€‹. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เบกเบตเบ›เบฐเป‚เบซเบเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบญเบ‡เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹ -fregmove เปเบฅเบฐ -foptimize-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™-เบเป‰เบฒเบ เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ”เบฝเบงเบเบฑเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fira-algorithm=เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบงเบดเบ—เบต
เปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เปƒเบชเปˆเบชเบตเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™. เป„เบ”เป‰
เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบงเบดเบ—เบต เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™ เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบชเบตเบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ‚เบญเบ‡ Chow, เบซเบผเบท CB,
เป€เบŠเบดเปˆเบ‡เบฅเบฐเบšเบธเบเบฒเบ™เปƒเบชเปˆเบชเบต Chaitin-Briggs. เบเบฒเบ™เปƒเบชเปˆเบชเบต Chaitin-Briggs เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”
เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

-fira-region=เบžเบนเบกเบดเบžเบฒเบ
เปƒเบŠเป‰เบžเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™. เป„เบ”เป‰ เบžเบนเบกเบดเบžเบฒเบ เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡
เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบ—เบฑเบ‡เบซเบกเบปเบ” เปƒเบŠเป‰ loops เบ—เบฑเบ‡เปเบปเบ”เป€เบ›เบฑเบ™เป€เบ‚เบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบกเบตเบŠเบธเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปเบฅเบฐ / เบซเบผเบทเบชเบฐเบซเบกเปเปˆเบฒเบชเบฐเป€เบซเบกเบต.

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

เบซเบ™เบถเปˆเบ‡ เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบ›เบฑเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ”เบฝเบง. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”
เบ‚เบฐเบซเบ™เบฒเบ”, เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš -เบญเบช or -O0.

-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.

-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 เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. -fno-sched-stalled-insns-dep เป€เบ—เบปเปˆเบฒเบเบฑเบš
-fsched-stalled-insns-dep=0. -fsched-stalled-insns-dep เบšเปเปˆเบกเบตเบ„เปˆเบฒเปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ
to -fsched-stalled-insns-dep=1.

-fsched2-use-superblocks
เป€เบกเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ superblock.
เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ Superblock เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เป‰เบฒเบกเป€เบ‚เบ”เปเบ”เบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เป„เบงเบ‚เบถเป‰เบ™
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ GCC
เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡ CPU เบขเปˆเบฒเบ‡เปƒเบเป‰เบŠเบดเบ”เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบˆเบฒเบเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ.

เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, 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
เบเบฒเบ™เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบšเบšเป‚เบกเบ”เบนเป‚เบฅเปเบกเปˆเบ™เบกเบฒเบเปˆเบญเบ™เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก, เบ–เป‰เบฒเบงเบปเบ‡เปเบซเบงเบ™เปเบกเปˆเบ™เป‚เบกเบ”เบนเป‚เบฅ
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ passes เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ•เปเปˆเบกเบฒเบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบญเบ‡เบกเบฑเบ™
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบกเบฑเบ™.

-fselective-เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เป€เบฅเบทเบญเบ. เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เปเบฅเปˆเบ™
เปเบ—เบ™เบเบฒเบ™เบœเปˆเบฒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เปเบฒเบญเบดเบ”.

-fselective-เบเบณเบ™เบปเบ”โ€‹เป€เบงเบฅเบฒ2
เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เป€เบฅเบทเบญเบ. เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เปเบฅเปˆเบ™
เปเบ—เบ™เบเบฒเบ™เบœเปˆเบฒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเบชเบญเบ‡.

-fsel-sched-pipelining
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบงเบฒเบ‡เบ—เปเปˆเบŠเบญเบšเปเบงเบ‚เบญเบ‡ loops เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เป€เบฅเบทเบญเบ. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบปเบ™เบเปˆเบงเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™ -fselective-เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹ or -fselective-เบเบณเบ™เบปเบ”โ€‹เป€เบงเบฅเบฒ2 is
เป€เบ›เบตเบ”.

-fsel-sched-pipelining-outer-loops
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปเปˆ loops เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบ, เบเบฑเบ‡เบ—เปเปˆ loops เบžเบฒเบเบ™เบญเบ. เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเบกเบตเบœเบปเบ™เบˆเบปเบ™เบเปˆเบงเบฒ -fsel-sched-pipelining เปเบกเปˆเบ™เป„เบ”เป‰เบซเบฑเบ™เบชเบธเบ”.

-fshrink-wrap
เบ›เปˆเบญเบ prologues เบŸเบฑเบ‡เบŠเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบเปˆเบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบขเบนเปˆ
เป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

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

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

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3, -เบญเบช.

-fcombine-stack-เบ›เบฑเบš
เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เบฑเบšเบ•เบปเบง stack (pushes เปเบฅเบฐ pops) เปเบฅเบฐ stack เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบฐเบเบฒเบเบฒเบก
เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบชเบปเบกเบ—เบปเบšเบžเบงเบเบกเบฑเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O1 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-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 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-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-matrix-reorg
เบ›เบฐเบ•เบดเบšเบฑเบ” matrix flattening เปเบฅเบฐ transposing. Matrix flattening เบžเบฐเบเบฒเบเบฒเบกเบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™
m-dimensional matrix เบเบฑเบš matrix n-dimensional เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบกเบฑเบ™, เบšเปˆเบญเบ™เบ—เบตเปˆ n < m. เบ™เบตเป‰
เบซเบผเบธเบ”เบœเปˆเบญเบ™เบฅเบฐเบ”เบฑเบšเบ—เบฒเบ‡เบญเป‰เบญเบกเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบกเบฒเบ•เบฃเบดเบเป€เบšเบทเป‰เบญเบ‡. เป„เบ”เป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™ transposing matrix, เป€เบŠเบดเปˆเบ‡เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡
เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡ matrix เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเปเบ„เบ”. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบฑเบ‡เบชเบญเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™
- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ เบ—เบธเบ‡. Transposing เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ—เบตเปˆเบกเบตเบขเบนเปˆ.

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

-ftree-bit-ccp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเป€เบฅเบฑเบเบ™เป‰เบญเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ เปเบฅเบฐ เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบงเบŠเบตเป‰
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹. pass เบ™เบตเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› scalar เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ™เบฑเป‰เบ™ -ftree-ccp เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-ftree-ccp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ (CCP) เบขเบนเปˆเป€เบ—เบดเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰. เบœเปˆเบฒเบ™เบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› scalar เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -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-ppl เปเบฅเบฐ --with-cloog to
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ 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-ppl
เปเบฅเบฐ --with-cloog เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ 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-ppl
เปเบฅเบฐ --with-cloog เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ 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 เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบธเบ”
เบˆเบฐ iterate เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ. เบ™เบตเป‰
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบŠเป‰เบเบฑเบšเบ—เบธเบเบžเบฒเบชเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ GCC เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเบเบฑเบ”
เบŸเปเบฃเบฑเบ™. เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, GCC เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบ --with-ppl
เปเบฅเบฐ --with-cloog เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™ Graphite loop.

-fgraphite-เบ•เบปเบงเบ•เบปเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ•เบปเบงเบ•เบปเบ™เบชเปเบฒเบฅเบฑเบš graphite. เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป† SCoP เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡
เบเบฒเบ™เบชเบฐเปเบ”เบ‡ polyhedral เปเบฅเบฐเบ›เปˆเบฝเบ™เบกเบฑเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™ gimple. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -fgraphite-เบ•เบปเบงเบ•เบปเบ™
เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบทเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡ GIMPLE -> GRAPHITE -> เบเบฒเบ™เบซเบฑเบ™เป€เบ›เบฑเบ™ GIMPLE.
เบšเบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบ™เป‰เบญเบเบเปเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ•เบปเบงเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” CLooG เป€เบŠเบฑเปˆเบ™: เบ”เบฑเบ”เบชเบฐเบ™เบต
เบเบฒเบ™เปเบเบเปเบฅเบฐเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ•เบฒเบเปƒเบ™ loops.

-floop-flatten
เบ–เบญเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡ loop nesting: เบ›เปˆเบฝเบ™เบฎเบฑเบ‡ loop เป€เบ›เบฑเบ™ loop เบ”เบฝเบง. เบ™เบตเป‰
เบเบฒเบ™โ€‹เบซเบฑเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบซเบฑเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบ›เบฑเบ™ vectorization เปเบฅเบฐโ€‹
เบ‚เบฐเบซเบ™เบฒเบ™. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡. เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, GCC
เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ configured เบเบฑเบš --with-ppl เปเบฅเบฐ --with-cloog เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ Graphite loop
เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™.

-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 (เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเป„เบ›เบชเบนเปˆ nontrivial
เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡ 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 เบ™เบญเบเบˆเบฒเบ.
เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบกเบตเบ„เปˆเบฒเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰เบขเบนเปˆเปƒเบ™ a
เป€เบŠเบ”เบŠเบฑเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ GCC เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒเบเบงเปˆเบฒ 4.7.

-ftree-coalesce-vars
เบšเบญเบเบŠเบทเปˆ copyrename pass (เป€เบšเบดเปˆเบ‡ -free-copyrename) เป€เบžเบทเปˆเบญโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฅเบงเบกโ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบ -
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบžเบฝเบ‡เปเบ•เปˆ compiler temporaries. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบˆเปเบฒเบเบฑเบ”เบขเปˆเบฒเบ‡เบฎเป‰เบฒเบเปเบฎเบ‡
เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบ—เบตเปˆโ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบเบฑเบšโ€‹ -fno-var-tracking-assignments.
เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”, เบ—เบธเบ‡เบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ SSA coalescing เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบฅเบงเบกเบ—เบฑเบ‡
เบขเบนเปˆเปƒเบ™เปเบ–เบง. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบซเป‰เบฒโ€‹เบ›เบตโ€‹
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบŠเบปเปˆเบงเบ„เบฒเบงเปƒเบ™เป„เบฅเบเบฐ SSA->เป„เบฅเบเบฐเบ›เบปเบเบเบฐเบ•เบด. เป‚เบชเบ”
use/single def temporaries เปเบกเปˆเบ™เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ”เป‰เบงเบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ GIMPLE, เปเบ•เปˆเปƒเบซเป‰เบ•เบปเบงเบ‚เบฐเบซเบเบฒเบเบซเบผเบฒเบ
เบ•เบปเป‰เบ™เป„เบกเป‰เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบœเบฐเบฅเบดเบ” RTL เบ”เบตเบ‚เบถเป‰เบ™. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆ -O เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ.

-ftree-vectorize
เบ›เบฐเบ•เบดเบšเบฑเบ” vectorization loop เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O3.

-ftree-slp-vectorize
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡ vectorization เบžเบทเป‰เบ™เบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰. เบ—เบธเบ‡เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O3 เปเบฅเบฐ
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -ftree-vectorize เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

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

-fvect-cost-model
เป€เบ›เบตเบ”เปƒเบŠเป‰เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ vectorization.

-ftree-vrp
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ•เบฒเบกเบ•เบปเป‰เบ™เป„เบกเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡
pass, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒ, เป„เบฅเบเบฐเบ‚เบญเบ‡เบ„เปˆเบฒเบˆเบฐเบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบžเบฑเบ™. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
optimizers เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ” array เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰ null
เบเบงเบ”เบเบฒ. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ -O2 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบŠเบตเป‰ null
เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -fdelete-null-pointer-checks เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™.

-ftracer
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบซเบฒเบ‡เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ” superblock. เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบ
เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบทเปˆเบ™เป†เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

-funroll-loops
เบ–เบญเบ” loops เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบซเบผเบทเบ•เบฒเบก
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ loop เป„เบ”เป‰. -funroll-loops implies -frerun-cse-after-loop. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰
เบฅเบฐเบซเบฑเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒ, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐ เบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เปเบฅเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™.

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

-fsplit-ivs-in-unroller
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ‚เบญเบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ› induction เปƒเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ•เปเปˆเบกเบฒเบ‚เบญเบ‡
unrolled loop เป‚เบ”เบเปƒเบŠเป‰เบ„เปˆเบฒเปƒเบ™ iteration เบ—เปเบฒเบญเบดเบ”. เบ™เบตเป‰เบ—เปเบฒเบฅเบฒเบเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบเบฒเบง
เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบœเปˆเบฒเบ™.

เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡ -fweb เปเบฅเบฐ CSE เบกเบฑเบเบˆเบฐเบžเบฝเบ‡เบžเปเป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบœเบปเบ™เบ”เบฝเบงเบเบฑเบ™. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก
เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡ loop เปเบกเปˆเบ™เบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเบเปˆเบงเบฒเบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เบ”เบฝเบง, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™
เป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰. เบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบญเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบ
เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ™ 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_เบ„เบฒเบ”เบซเบงเบฑเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
heuristics เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ„เบฒเบ”เป€เบ”เบปเบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบเบฒเบ™เป„เบซเบผเบ‚เบญเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก
เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡, เบเบฒเบ™เบเบดเบ™ __builtin_เบ„เบฒเบ”เบซเบงเบฑเบ‡ เบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบต. เบเบฒเบ™โ€‹เบžเบปเบงโ€‹เบžเบฑเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹
heuristics เปเบฅเบฐ __builtin_เบ„เบฒเบ”เบซเบงเบฑเบ‡ เบชเบฒเบกเบฒเบ”เบชเบฑเบšเบชเบปเบ™, เปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”
เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™ heuristics เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ __builtin_เบ„เบฒเบ”เบซเบงเบฑเบ‡ เบ‡เปˆเบฒเบเบเบงเปˆเบฒ
เป€เบ‚เบปเป‰เบฒเปƒเบˆ

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -fguess-เบชเบฒเบ‚เบฒ-เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹ -O, -O2, -O3, -เบญเบช.

-freorder-เบ•เบฑเบ™
Reorder blocks เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบฅเบงเบšเบฅเบงเบกเป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบญเบปเบฒ
เบชเบฒเบ‚เบฒ เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O2, -O3.

-freorder-blocks-and-partition
เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ reordering เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก, เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบชเบฒโ€‹เบ‚เบฒโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ—เปˆเบญเบ™โ€‹เป„เบกเป‰โ€‹เบžเบทเป‰เบ™โ€‹เบ–เบฒเบ™โ€‹เบฎเป‰เบญเบ™โ€‹เปเบฅเบฐโ€‹เป€เบขเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เปเบเบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบซเบฒเบโ€‹
เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เปเบฅเบฐโ€‹เป„เบŸเบฅโ€‹เปŒ .oโ€‹, เป€เบžเบทเปˆเบญโ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™โ€‹เบ–เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹.

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

-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 arithmetic. เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบขเบนเปˆเปƒเบ™
เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเปƒเบ”เป†เบ•เปเปˆเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบฅเบปเบ‡เบ™เบฒเบกเบˆเบฐเบฅเบปเป‰เบ™
เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบกเบตเบชเปˆเบงเบ™เป€เบเบตเบ™.

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบเบฑเบ‡โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบœเบนเป‰โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบซเบกเบฒเบโ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบฑเป‰เบกโ€‹เบ‡เบงเบ”โ€‹: เปƒเบซเป‰ 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.
เบ„เบงเบฒเบกโ€‹เบซเบงเบฑเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒ loop เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบซเบผเบฒเบโ€‹เบ„เบฑเป‰เบ‡โ€‹, เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบ–เบดเบ‡โ€‹เบเบฒเบ™โ€‹เปƒเบ”เป†โ€‹
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ 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
เบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™เป‚เบ”เบเบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™. เบ–เป‰เบฒ เบ„เปเบฒ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™ plugin เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ,
เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "externally_visible" เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบ•เปˆเบฒเบ‡เป†เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” (เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ—เบทเปˆเบญ
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฐเปเบชเป„เบŸเบŸเป‰เบฒ เบ„เปเบฒ เบšเบฑเบ™เบซเบฒ) เบ—เบตเปˆเบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบ™เบญเบเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ LTO เบญเบตเบ‡เบ•เบฒเบก
เป„เบŸเบฅเปŒเบ„เบงเบฒเบกเบฅเบฐเบญเบฝเบ”เบ—เบตเปˆเบœเบฐเบฅเบดเบ”เป‚เบ”เบ เบ„เปเบฒ. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฐเบญเบฝเบ”เป„เบ”เป‰
เป„เบŸเบฅเปŒ, เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "externally_visible" เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบเบฑเบ‡เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰เบ„เปเบฒเบชเปเบฒเบ„เบฑเบ™ "static" เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ a
เป„เบŸเบฅเปŒเบ”เบฝเบง, เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -flto เบ—เบธเบ‡เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฅเบงเบšเบฅเบงเบกเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ
เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเบ•เบปเบงเปเบ›เบเบฒเบเป€เบ›เบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบซเบกเบปเบ”
เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบฅเบงเบก, เบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบ”เบฝเบง.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡ -fwhole-file เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ Fortran.

-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.

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

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เปเบ™เปˆเบ™เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”
เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบ•เบดโ€‹เบ–เบฒเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹. compiler เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเป‰เบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐเบ•เบปเบงเปเบ›เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”
เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐ runtime เบขเบนเปˆเบ™เบญเบเบซเบ™เปˆเบงเบเบ‡เบฒเบ™ link-time optimized. เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ linker, plugin linker (เป€เบšเบดเปˆเบ‡ -fuse-linker-plugin) เบœเปˆเบฒเบ™
เบ‚เปเป‰เบกเบนเบ™เบเบฑเบšเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเปƒเบŠเป‰เปเบฅเป‰เบงเปเบฅเบฐเบžเบฒเบเบ™เบญเบเบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™. เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ
linker plugin เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, - เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹ เบ„เบงเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™
เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเป€เบกเบทเปˆเบญเป„เบŸเบฅเปŒเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ -flto, เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบกเปˆเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒ
เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ›เบปเบเบเบฐเบ•เบดเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบกเบต GIMPLE bytecodes เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบชเบธเบ”เบ—เป‰เบฒเบเบ›เบปเบเบเบฐเบ•เบด.
เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™ LTO เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ›เบฑเบ™เบงเบฑเบ”เบ–เบธเบ›เบปเบเบเบฐเบ•เบด
เป„เบŸเบฅเปŒ; เบ–เป‰เบฒ -flto เบšเปเปˆเป„เบ”เป‰เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš interprocedural เปเบกเปˆเบ™
เบ™เบณ เปƒเบŠเป‰.

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

gcc -c -O0 -flto foo.c
gcc -c -O0 -flto bar.c
gcc -o myprog -flto -O3 foo.o bar.o

เบ™เบตเป‰เบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ” assembler unoptimized, เปเบ•เปˆ
binary เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš myprog เปเบกเปˆเบ™ optimized เบขเบนเปˆ -O3. เบ–เป‰เบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบ„เบนเปˆเบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™
เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -flto, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ myprog เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เป€เปเบฒเบฐเบชเบปเบก.

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เบนเปˆเบชเบธเบ”เบ—เป‰เบฒเบเบเบฑเบš -flto, GCC เบžเบฝเบ‡เปเบ•เปˆเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
เบเบฑเบšเป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบกเบต bytecode. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบชเบปเบกเปเบฅเบฐเบˆเบฑเบšเบ„เบนเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ
เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบต GIMPLE bytecodes เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบงเบฑเบ”เบ–เบธเบชเบธเบ”เบ—เป‰เบฒเบ. GCC เป€เบฅเบทเบญเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
เป„เบŸเบฅเปŒเปƒเบ”เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เป‚เบซเบกเบ” LTO เปเบฅเบฐเป„เบŸเบฅเปŒเปƒเบ”เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡.

เบกเบตเบšเบฒเบ‡เบ—เบธเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰เป‚เบ”เบ GCC เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡ bytecodes, เป€เบ›เบฑเบ™
เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบธเบ”เบ—เป‰เบฒเบ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ GIMPLE bytecode: -fPIC, -fcommon เปเบฅเบฐเบ—เบฑเบ‡ เปเบปเบ” -m เบ—เบธเบ‡โ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹.

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

เบ–เป‰เบฒ LTO เบžเบปเบšเบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ C เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ
เปœเปˆเบงเบโ€‹เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เป‚เบเบ‡โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบเบฑเบ™ (เบžเบถเบ”โ€‹เบ•เบดโ€‹เบเบณโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเบณโ€‹เบ™เบปเบ”โ€‹เบ•เบฒเบก ISO C99
6.2.7), เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบญเบญเบ. เบžเบถเบ”เบ•เบดเบเบณเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบ‡เบšเปเปˆเบ–เบทเบเบเบณเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™
เป€เบงเบฅเบฒ.

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ LTO เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™
เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ•เปˆเบฒเบ‡เป†. เบ™เบตเป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบžเบฒเบชเบฒ
เบชเบดเป‰เบ™เบชเบธเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, C, C ++ เปเบฅเบฐ Fortran เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเปเบกเปˆเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบญเบ GIMPLE
bytecodes, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ:

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โ€‹)โ€‹; เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบžเบตเปˆเบกโ€‹เปเบกเปˆเบ™โ€‹ -flto เบ—เบฑเบ‡ เปเบปเบ”
เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡.

เบ–เป‰เบฒเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบต GIMPLE bytecode เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ„เบฑเบ‡เป€เบเบฑเบšเบกเป‰เบฝเบ™, เป€เบงเบปเป‰เบฒ
libfoo.a, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบฐเบเบฑเบ”เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ LTO เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ a
linker เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin. เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰, เปƒเบซเป‰เปƒเบŠเป‰เบ—เบธเบ‡ -fuse-linker-plugin
เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ:

gcc -o myprog -O2 -flto -fuse-linker-plugin ao bo -lfoo

เบ”เป‰เบงเบเบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰ plugin เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฐเบเบฑเบ”เป„เบŸเบฅเปŒ GIMPLE เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบˆเบฒเบ
libfoo.a เปเบฅเบฐเบชเบปเปˆเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป„เบ›เบชเบนเปˆ GCC เปเบฅเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบฎเบนเบšเบžเบฒเบš GIMPLE เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin เปเบฅเบฐ / เบซเบผเบทเบšเปเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
plugin, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบงเบฑเบ”เบ–เบธเบžเบฒเบเปƒเบ™ libfoo.a เบ–เบทเบเบชเบฐเบเบฑเบ”เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เปเบ•เปˆเบžเบงเบเบกเบฑเบ™
เบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš 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" เป€เบžเบทเปˆเบญเบฅเบฐเบšเบธเบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฐเบ—เป‰เบญเบ™เป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš เบซเบผเบท
"เบชเบปเบกเบ”เบนเบ™" เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป€เบ›เบฑเบ™เบ•เปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™ (เบ—เบธเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰).
เบเบฒเบ™เบฅเบฐเบšเบธ "none" เป€เบ›เบฑเบ™ algorithm เบ›เบดเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™ เปเบฅเบฐ streaming เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ "เบชเบปเบกเบ”เบนเบ™".

-flto-compression-level=n
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ—เบตเปˆเบ‚เบฝเบ™
เบเบฑเบšเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ LTO, เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบžเบฝเบ‡เปเบ•เปˆเบชเบปเบกเบ—เบปเบšเบเบฑเบšเป‚เบซเบกเบ” LTO (-flto).
เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™ 0 (เบšเปเปˆเบกเบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”) เบซเบฒ 9 (เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบชเบนเบ‡เบชเบธเบ”). เบ„เบธเบ™เบ„เปˆเบฒเบ™เบญเบเบ™เบตเป‰
เบŠเปˆเบงเบ‡เปเบกเปˆเบ™เบ–เบทเบเบเบถเบ”เป€เบ›เบฑเบ™ 0 เบซเบผเบท 9. เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฐเบชเบปเบกเบ”เบนเบ™
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

flto-เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™
เบžเบดเบกเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบžเบฒเบเปƒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ link-time optimizer. เป„เบ”เป‰
เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ™เบตเป‰เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เปเบ•เปˆเบฅเบฐเบชเบฐเบšเบฑเบš. เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆ GCC
เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เป€เบงเบฅเบฒเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” LTO (เบœเปˆเบฒเบ™ -flto).

เบžเบดเบเบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fuse-linker-plugin
เป€เบ›เบตเบ”เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบตเบ‡เปƒเบชเปˆ
เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ plugin เปƒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ„เปเบฒเบซเบผเบทเปƒเบ™ GNU ld 2.21 เบซเบผเบท
เปƒเปเปˆเบเบงเปˆเบฒ.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบชเบฐเบเบฑเบ”เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเบ”เป‰เบงเบ GIMPLE bytecode เบญเบญเบเบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”
เบฎเบงเบšเบฎเบงเบก. เบ™เบตเป‰เบ›เบฑเบšเบ›เบธเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบเบฒเบ™เป€เบ›เบตเบ”เป€เบœเบตเบเบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ -
เบ•เบปเบงเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบงเบฅเบฒ. เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบฅเบฐเบšเบธเบงเปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเปƒเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบ™เบญเบเป„เบ”เป‰
(เป‚เบ”เบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ LTO เบซเบผเบทเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง). เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบฅเบฐเบซเบฑเบ”เปƒเบ™
binary (เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰) เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš
"-fwhole-เป‚เบ„เบ‡เบเบฒเบ™". เป€เบšเบดเปˆเบ‡ -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 เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
plugins เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบšเบšเป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบš (เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบชเบฐเบ–เบดเบ”
เบซเปเบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเบญเบทเปˆเบ™เป†).

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -ffat-lto-เบงเบฑเบ”เบ–เบธ เปเบ•เปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”
เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰ plugin linker เบเบฒเบเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ—เบปเปˆเบงเป„เบ›เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

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

เบœเปˆเบฒเบ™เบ™เบตเป‰เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ›เบฝเบšโ€‹เบ—เบฝเบšโ€‹เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบˆเบฑเบ”โ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹.

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -O, -O2, -O3, -เบญเบช.

-fuse-ld=เบ—เบญเบ‡
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบ„เปเบฒ linker เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fuse-ld=bfd
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ ld.bfd linker เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

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

เป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš -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-values", "-fvpt".

If เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เบ–เบทเบเบเปเบฒเบ™เบปเบ”, GCC เบˆเบฐเป€เบšเบดเปˆเบ‡ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เบ•เปเบฒเบ™เบดเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ
เป„เบŸเบฅเปŒ. เป€เบšเบดเปˆเบ‡ -fprofile-dir.

-fprofile-เปƒเบŠเป‰
-fprofile-use=เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ„เปเบฒเบ•เบดเบŠเบปเบกเบ‚เบญเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒ, เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบกเบตเบเปเบฒเป„เบฅ
เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบกเบตโ€‹เบ„เปเบฒโ€‹เบ„เบถเบ”โ€‹เบ„เปเบฒโ€‹เป€เบซเบฑเบ™ profile เบ—เบตเปˆโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰: "-fbrnch-probabilities", "-fvpt",
"-funroll-loops", "-fpeel-loops", "-ftracer"

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, GCC เบ›เปˆเบญเบเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ„เปเบฒเบ•เบดเบŠเบปเบกเบšเปเปˆเบเบปเบ‡เบเบฑเบš
เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡. เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ™เบตเป‰โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เปˆเบฝเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -Wcoverage-mismatch.
เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒเบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ›เบฑเบšเบ›เบธเบ‡เบšเปเปˆเบ”เบต.

If เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เบ–เบทเบเบเปเบฒเบ™เบปเบ”, GCC เบˆเบฐเป€เบšเบดเปˆเบ‡ เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เบ•เปเบฒเบ™เบดเบ•เบดเบŠเบปเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ
เป„เบŸเบฅเปŒ. เป€เบšเบดเปˆเบ‡ -fprofile-dir.

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

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

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเป€เบเบตเบ™เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบŠเบฑเปˆเบ™ 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-เปƒเบŠเป‰.

-fvpt
เบ–เป‰เบฒเบฅเบงเบกเบเบฑเบš -fprofile-arcs, เบกเบฑเบ™เบชเบฑเปˆเบ‡เปƒเบซเป‰ compiler เป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบฅเบงเบšเบฅเบงเบก
เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ.

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

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

เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ -funroll-loops เปเบฅเบฐ -fpeel-loops.

-ftracer
เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบซเบฒเบ‡เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ” superblock. เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ”เบฒเบ
เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบทเปˆเบ™เป†เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ -fprofile-เปƒเบŠเป‰.

-funroll-loops
เบ–เบญเบ” loops เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบฅเบงเบšเบฅเบงเบกเบซเบผเบทเบ•เบฒเบก
เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ loop เป„เบ”เป‰. -funroll-loops implies -frerun-cse-after-loop, -fweb เปเบฅเบฐ
-frename-เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบตเบ”เบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบ loop เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ (เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป‚เบเบเบเป‰เบฒเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡
loops เบกเบตเบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡ iterations). เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เปเบฅเบฐ
เบญเบฒเบ”เบˆเบฐ เบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เปเบฅเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™.

เป€เบ›เบตเบ”เปƒเบŠเป‰เบ”เป‰เบงเบ -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 เบญเบฒเบ”เบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”.

เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบกเบทเปˆเบญเบกเบตเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เป€เบŠเบฑเปˆเบ™เบ™เบฑเป‰เบ™. เป€เบกเบทเปˆเบญโ€‹เป€เบˆเบปเป‰เบฒ
เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, assembler เปเบฅเบฐ linker เบˆเบฐเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบฅเบฐ
เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปเบฅเบฐเบเบฑเบ‡เบˆเบฐเบŠเป‰เบฒเบฅเบปเบ‡. เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ "gprof" เบ—เบฑเบ‡เบซเบกเบปเบ”
เบฅเบฐเบšเบปเบšเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบฅเบฐเบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบ”เบตเบšเบฑเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™
เบฅเบฐเบšเบธเบ—เบฑเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ เปเบฅเบฐ -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.
เบเบญเบ‡เป„เบ”เป‰เบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเปƒเบชเปˆเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ
เบŸเบฑเบ‡เบŠเบฑเบ™เบญเบญเบ. เบ–เป‰เบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบ–เบทเบเบžเบดเบกเบญเบญเบเปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™
เบญเบญเบ.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เปƒเบ™ Ubuntu 6.10 เปเบฅเบฐโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš Cโ€‹, C ++โ€‹,
ObjC, ObjC++, เบ–เป‰เบฒเบšเปเปˆเบกเบต -fno-stack-protector, -nostdlib, เปเบฅเบฐ - freestanding เบกเบต
เบžเบปเบšเป€เบซเบฑเบ™.

-fstack-protector-เบ—เบฑเบ‡เปเบปเบ”
เบ„เบท -stack-protector เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เปเบ•เปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹.

-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
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เปเบ‚เบšโ€‹เบ‚เบฒโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ crossjumpingโ€‹. เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ
เปƒเบŠเป‰เป‚เบ”เบ -fcrossjumping เปเบกเปˆเบ™ O(N^2) เปƒเบ™เบˆเบณเบ™เบงเบ™เบ‚เบญเบšเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปเบ•เปˆเบฅเบฐเบ—เปˆเบญเบ™เป„เบกเป‰.
เบเบฒเบ™เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบฎเบธเบเบฎเบฒเบ™เบซเบผเบฒเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰.

min-crossjump-insns
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบˆเบฑเบšเบ„เบนเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบชเบญเบ‡เบ•เบฑเบ™
เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ crossjumping เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ„เปˆเบฒเบ™เบตเป‰เบ–เบทเบเบฅเบฐเป€เบฅเบตเบเปƒเบ™เบเปเบฅเบฐเบ™เบต
เบšเปˆเบญเบ™เบ—เบตเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบšเบฅเบฑเบญเบเบ—เบตเปˆเบ–เบทเบเบ‚เป‰เบฒเบกเบˆเบฒเบเปเบกเปˆเบ™เบเบปเบ‡เบเบฑเบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 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
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบตเปˆเบเบฑเบ‡เบ„เป‰เบฒเบ‡เบขเบนเปˆเบˆเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ flushing
เบชเบฐเบ–เบฒเบ™เบฐเบ›เบฐเบˆเบธเบšเบฑเบ™เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเบกเปˆ. เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบกเบตเบชเบฒเบ‚เบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบเบซเบผเบทเบเบฒเบ™เป‚เบ—
เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

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.

large-function-insns
เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบ—เป‰เป†. เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰
เบซเบผเบฑเบ‡เบˆเบฒเบ inlining, inlining เปเบกเปˆเบ™เบˆเปเบฒเบเบฑเบ”เป‚เบ”เบ --param เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹. เบ™เบตเป‰
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เบปเป‰เบ™เบ•เปเป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบงเบฅเบฒเบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบšเปเปˆ.
เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป€เบชเบฑเป‰เบ™เบŠเบทเปˆเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบ›เบฒเบเบซเบผเบฑเบ‡. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 2700.

เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹
เบฅเบฐเบšเบธเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™ inlining เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 100 เป€เบŠเบดเปˆเบ‡เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบ–เบดเบ‡ 2.0 เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš
เบ‚เบฐเบซเบ™เบฒเบ”.

เปœเปˆเบงเบเปƒเบซเบเปˆ
เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบซเบปเบงโ€‹เบซเบ™เปˆเบงเบโ€‹เบเบฒเบ™โ€‹เปเบ›โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹. เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™ inlining เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™
เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰เบ–เบทเบเบˆเปเบฒเบเบฑเบ”เป‚เบ”เบ --param inline-unit-growth. เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ
เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”เป€เบเบตเบ™เป„เบ› (เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบŸเบฑเบ‡เบŠเบฑเบ™ A เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เปเบ–เบงเปเบฅเบฐ
B เบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเป‚เบ—เบซเบฒ A เบชเบฒเบกเป€เบ—เบทเปˆเบญ. เบ–เป‰เบฒ B เปเบกเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบฝเบšเบเบฑเบš A, เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เปˆเบงเบ
เปเบกเปˆเบ™ 300\% เปเบฅเบฐโ€‹เปเบ•เปˆ inlining เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เปเบกเปˆเบ™ sane เบซเบผเบฒเบโ€‹. เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ
เบซเบ™เป‰เบฒเบ—เบตเปˆ inlineable เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบกเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เป‚เบ”เบเบฅเบงเบกเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™
เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบฅเบฐเป€เบšเบตเบ” exponential เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบ‚เบฐเบซเบ™เบฒเบ”เปเบกเปˆเบ™
เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบ›เบฑเบ™ --param เปœเปˆเบงเบเปƒเบซเบเปˆ เบเปˆเบญเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ --param inline-unit-growth.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10000

inline-unit-growth
เบฅเบฐเบšเบธเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเป‚เบ”เบเบฅเบงเบกเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบ inlining. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 30 เป€เบŠเบดเปˆเบ‡เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเป€เบ›เบฑเบ™ 1.3 เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

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
เบฅเบฐเบšเบธเบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เบณเปเบ™เบฐเบ™เบณเบญเบญเบเบ™เบญเบเปเบ–เบงเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ„เบทเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เปเบ–เบง
เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ•เบตเบšเป‚เบ•เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ 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 เบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ inlining recursive.

เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ›เบฐเบเบฒเบ”เปƒเบ™เปเบ–เบง --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 เบ•เบปเบงโ€‹เบˆเบดเบ‡โ€‹
เบ„เบงเบฒเบกเป€เบฅเบดเบเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบˆเบฒเบเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ—เบ—เบตเปˆเปƒเบซเป‰
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบˆเปเบฒเบเบฑเบ” inlining เบžเบฝเบ‡เปเบ•เปˆเป‚เบ—เบซเบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ who
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบเบตเบ™เป€เบเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰ (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™). เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

Early-inlining-insns
เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ—เบตเปˆ inliner เบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰. เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบกเบฑเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบฅเบดเบกเบฒเบ™
inlining เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ” abstraction เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 10.

max-early-inliner-iterations
max-early-inliner-iterations
เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบŠเป‰เบณโ€‹เบ‚เบญเบ‡ inliner เบ•เบปเป‰เบ™โ€‹. เบ™เบตเป‰เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบงเบœเบนเบเบกเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฎเบฑเบ‡
เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบก inliner เบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚. เบ•เปˆเบญเบ‡เป‚เบชเป‰เบ—เบตเปˆเป€เบฅเบดเบเบเบงเปˆเบฒเปเบกเปˆเบ™เบเบฑเบ‡เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบŠเป‰เบฒ
inlining.

comdat-sharing-probability
comdat-sharing-probability
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™) เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™ C++ inline เบเบฑเบš comdat visibility เบˆเบฐเป€เบ›เบฑเบ™
เปเบšเปˆเบ‡เบ›เบฑเบ™เปƒเบ™เบ—เบปเปˆเบงเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเบผเบฒเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 20.

min-vect-loop-bound
เบˆเปเบฒเบ™เบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ—เบตเปˆ loop เบˆเบฐเบšเปเปˆเบ–เบทเบ 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 เบ„เบงเบ™เบกเบตเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ loop เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™
unrolled, เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ loop เปเบกเปˆเบ™ unrolled, เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบ„เบฑเป‰เบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” loop
เบ–เบทเบเบเบปเบเป€เบฅเบตเบ.

max-average-unrolled-insns
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเบฅเปเบฒเบญเบฝเบ‡เป‚เบ”เบเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบงเปˆเบฒ
loop เบ„เบงเบ™เบˆเบฐเบกเบตเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ loop เบ™เบฑเป‰เบ™เบ–เบทเบ unrolled, เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ loop เป„เบ”เป‰เบ–เบทเบ unrolled, เบกเบฑเบ™
เบเบณเบ™เบปเบ”เบˆเบณเบ™เบงเบ™เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบฅเบฐเบซเบฑเบ” loop เบ–เบทเบเบ–เบญเบ”เบญเบญเบ.

max-unroll-times
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡ unrollings เบ‚เบญเบ‡ loop เบ”เบฝเบงโ€‹.

max-peeled-insns
เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆ loop เบ„เบงเบ™เบกเบตเบ–เป‰เบฒ loop เบ™เบฑเป‰เบ™เบ–เบทเบเบ›เบญเบเป€เบ›เบทเบญเบ,
เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ loop เป„เบ”เป‰เบ–เบทเบเบ›เบญเบเป€เบ›เบทเบญเบ, เบกเบฑเบ™เบˆเบฐเบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบฐเบซเบฑเบ” loop เบ–เบทเบเบ›เบญเบเป€เบ›เบทเบญเบ.

max-peel-times
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบญเบเป€เบ›เบทเบญเบเบ‚เบญเบ‡ loop เบ”เบฝเบง.

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 เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบญเบญเบเบˆเบฒเบเบŠเบธเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบกเบฑเบ™เป€เบกเบทเปˆเบญ iv เปƒเบซเบกเปˆเบ–เบทเบเป€เบžเบตเปˆเบก
เบเบฑเบšเบŠเบธเบ”.

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. เป€เบšเบดเปˆเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ ftree-vect-loop-version
เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

vect-max-version-for-alias-checks
เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ” loop
เบฎเบธเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฒเบกเปเบเบ‡เปƒเบ™ vectorizer. เป€เบšเบดเปˆเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ ftree-vect-loop-version เบชเปเบฒเบฅเบฑเบš
เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

max-iterations-to-track
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบŠเปเป‰เบฒโ€‹เบ„เบทเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™ loop เป€เบ›เบฑเบ™โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบœเบปเบ™โ€‹เบšเบฑเบ‡โ€‹เบ„เบฑเบšโ€‹เปƒเบŠเป‰ brute เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹
เบ‚เบญเบ‡ # เบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ‚เบญเบ‡ loop เบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเป€เบกเบตเบ™.

hot-bb-count-fraction
เป€เบฅเบทเบญเบเบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เบˆเบณเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ‚เบญเบ‡เบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เป‚เบ›เบฃเปเบเบฃเบก
เป„เบ”เป‰ เบฎเบฑเบš เบเบฒเบ™ เบ•เบฑเบ™ เบžเบทเป‰เบ™ เบ–เบฒเบ™ เบˆเปเบฒ เป€เบ›เบฑเบ™ เบ•เป‰เบญเบ‡ เป„เบ”เป‰ เบฎเบฑเบš เบเบฒเบ™ เบžเบด เบˆเบฒ เบฅเบฐ เบ™เบฒ เบฎเป‰เบญเบ™.

hot-bb-frequency-fraction
เป€เบฅเบทเบญเบเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบ–เบตเปˆเบ‚เบญเบ‡เบ•เบฑเบ™เป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบฎเป‰เบญเบ™.

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

align-threshold
เป€เบฅเบทเบญเบเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบ–เบตเปˆเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ•เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡.

align-loop-iterations
Loop เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป€เบฎเบฑเบ”เบŠเป‰เบณ เบขเปˆเบฒเบ‡เปœเป‰เบญเบเบˆเบณเบ™เบงเบ™เบเบฒเบ™เบŠเป‰เบณเบ—เบตเปˆเป€เบฅเบทเบญเบเบˆเบฐเป„เบ”เป‰เบฎเบฑเบš
เบชเบญเบ”เบ„เปˆเบญเบ‡.

tracer-dynamic- coverage
tracer-dynamic-coverage-feedback
เบ„เปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡ superblock เป€เบกเบทเปˆเบญเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ—เบตเปˆเปƒเบซเป‰
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบเบงเบกเป€เบญเบปเบฒ. เบ™เบตเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เป„เบ”เป‰ tracer-dynamic-coverage-feedback เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปเบฒเบ„เบถเบ”เบ„เปเบฒเป€เบซเบฑเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒ
เบกเบตเปƒเบซเป‰. เป‚เบ›เบผเป„เบŸเบฅเปŒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡ (เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบšเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบชเบฐเบ–เบดเบ•เบด) เปเบกเปˆเบ™เบกเบตเบซเบผเบฒเบ
เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เปœเป‰เบญเบเบฅเบปเบ‡เปƒเบซเป‰เป€เบเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเปƒเบซเบเปˆเบเบงเปˆเบฒ.

tracer-max-code-growth
เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบซเบฒเบ‡เป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบ•เบตเบšเป‚เบ•เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบšเบฑเบ™เบฅเบธเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ hokey, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบเบฑเบ™เบˆเบฐเบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ•เปเปˆเบกเบฒเปƒเบ™เบ‚เป‰เบฒเบก
เป‚เบ”เบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบนเบ‡เบเบงเปˆเบฒเบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เป€เบ•เบตเบšเปƒเบซเบเปˆเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

tracer-min-branch-ratio
เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเปเบšเบšเบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™เป€เบกเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบ›เบตเป‰เบ™เบเบฑเบšเบเบฑเบ™เบ‚เบญเบ‡เบ‚เบญเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบ™เบตเป‰
เป€เบเบ™ (เป€เบ›เบฑเบ™เป€เบ›เบตเป€เบŠเบฑเบ™).

tracer-min-branch-ratio
tracer-min-branch-ratio-feedback
เบขเบธเบ”เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเป„เบ›เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒเบ–เป‰เบฒเบ‚เบญเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ•เปˆเปเบฒเบเบงเปˆเบฒเบ™เบตเป‰
threshold

เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš 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
เปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เบชเบฑเปˆเบ‡เบœเปˆเบฒเบ™เบ—เบฒเบ‡เบ•เบฑเบ™เบ‚เบฑเป‰เบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบžเบทเปˆเบญเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰เบชเบฒเบ‚เบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบซเบผเบทเบšเปเปˆ
เบซเบผเบทเบชเบณเป€เบ™เบปเบฒเบฅเบฐเบซเบฑเบ”เปƒเบชเปˆเบ›เบฒเบเบ—เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™. เบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบŠเป‰เปเบฒเบเบฑเบ™เป€เบกเบทเปˆเบญเบ„เบฒเบ”เบ„เบฐเป€เบ™เบ‚เบญเบ‡เบกเบฑเบ™
เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปเบกเปˆเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ„เปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบ„เบนเบ™โ€‹เบ”เป‰เบงเบโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹
เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒเบˆเบธเบ”เบฎเป‰เบญเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.

เป„เบ”เป‰ 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 - เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบžเบฒเบเบžเบทเป‰เบ™, N - เป€เบฎเบฑเบ”เปƒเบ™ N เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0.

max-sched-insn-conflict-delay
เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ‚เบญเบ‡เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เบชเบนเบ‡เบชเบธเบ”เบชเปเบฒเบฅเบฑเบš insn เบ—เบตเปˆเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ.
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 3.

sched-spec-prob-cutoff
เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™ (เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบฎเป‰เบญเบ), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ
insn เบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 40.

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.

integer-share-limit
เบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ™เป‰เบญเบเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบฎเปˆเบงเบกเบเบฑเบ™, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบกเบฑเบ™. เบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
เบˆเปเบฒเบ™เบงเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 256.

min-virtual-mappings
เบฅเบฐเบšเบธเบˆเปเบฒเบ™เบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบชเบฐเป€เปเบทเบญเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบญเบฑเบšเป€เบ”เบ” SSA เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™
เบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบžเบทเปˆเบญเบเบฐเบ•เบธเป‰เบ™เปƒเบซเป‰ heuristic เปเบœเบ™เบ—เบตเปˆ virtual เบเปเบฒเบ™เบปเบ”เป‚เบ”เบ
virtual-mappings-เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 100.

virtual-mappings-เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™
เบ–เป‰เบฒเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เปเบœเบ™เบ—เบตเปˆ virtual เปเบกเปˆเบ™ virtual-mappings-เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒเบ•เบปเบงเป€เบฅเบ
เบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ virtual เบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เบปเบงเบ›เบฑเบšเบ›เบธเบ‡ SSA เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ a
เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบญเบฑเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 3.

ssp-buffer-size
เบ‚เบฐเบซเบ™เบฒเบ”เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡ buffers (ie arrays) เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™ smashing stack
เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เป€เบกเบทเปˆเบญ -fstack เบเบฒเบ™โ€‹เบ›เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹ เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰เบเปˆเบญเบ™ Ubuntu 10.10 เปเบกเปˆเบ™ "8". เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เปเบกเปˆเบ™ "4", เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบเบฒเบ™
เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เป‰เบญเบ‡เบเบฑเบ™เป‚เบ”เบเบ•เบปเบงเบ›เป‰เบญเบ‡เบเบฑเบ™ stack.

max-jump-thread-duplication-stmts
เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบ–เบฐโ€‹เปเบซเบผเบ‡โ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบขเบนเปˆโ€‹เปƒเบ™ block เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบŠโ€‹เป‰โ€‹เปเบฒโ€‹เบเบฑเบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ
เบเบฐเบ—เบนเป‰เบเบฐเป‚เบ”เบ”.

max-fields-for-field-sensitive
เบˆเบณเบ™เบงเบ™เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบนเบ‡เบชเบธเบ”เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™
เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ•เบปเบงเบŠเบตเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบชเบนเบ™เบชเปเบฒเบฅเบฑเบš -O0, เปเบฅเบฐ -O1 เปเบฅเบฐ 100 เบชเปเบฒเบฅเบฑเบš -Os,
-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 เบˆเบฐเบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบชเป‰เบฒเบ‡ arrays เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒ
switch-conversion-max-branch-ratio เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบชเบฒเบ‚เบฒเปƒเบ™เบชเบฐเบซเบผเบฑเบš.

max-partial-antic-length
เบ„เบงเบฒเบกเบเบฒเบงเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบŠเบธเบ”เป€เบเบปเปˆเบฒเปเบเปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เบšเบฒเบ‡เบชเปˆเบงเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™ (-ftre-pre) เป€เบกเบทเปˆเบญ optimizing เบขเบนเปˆ -O3 เปเบฅเบฐเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.
เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เบซเบ™เบตเป„เบ”เป‰, เบเบฒเบ™เปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš
เป€เบ„เบทเปˆเบญเบ‡. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบŠเบธเบ”เบ—เบตเปˆเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆ,
เป€เบŠเบดเปˆเบ‡เบ›เป‰เบญเบ‡เบเบฑเบ™เบžเบถเบ”เบ•เบดเบเบณเบเบฒเบ™เปœเบต. เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบ‚เบญเบ‡ 0 เบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบˆเบฐ
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบšเปเปˆเบˆเปเบฒเบเบฑเบ”.

sccvn-max-scc-size
เบ‚เบฐเปœเบฒเบ”เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡ (SCC) เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™ SCCVN. เบ–เป‰เบฒ
เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ™เบตเป‰เบ–เบทเบเบ•เบต, เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ SCCVN เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเป€เบฎเบฑเบ”เปเบฅเบฐ
เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบถเป‰เบ™เบขเบนเปˆเบเบฑเบšเบกเบฑเบ™เบˆเบฐเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ‚เบฐเปœเบฒเบ” SCC เบชเบนเบ‡เบชเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
10000โ€‹.

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, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบกเบนเบ™เบ„เปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบˆเบฒเบเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ.

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
เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

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 เบŠเป‰เบณ.

ipa-cp-value-list-size
IPA-CP เบžเบฐเบเบฒเบเบฒเบกเบ•เบดเบ”เบ•เบฒเบกเบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบฑเบ‡เปเบปเบ” เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ”เปœเบถเปˆเบ‡
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบžเบงเบเบกเบฑเบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ” devirtualization. ipa-cp-value-
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฒเบเบเบฒเบ™ เปเบกเปˆเบ™เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบฑเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เปเปˆเบซเบ™เบถเปˆเบ‡เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™
เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™.

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.

allow-load-data-races
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”. เบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 1 เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰,
เบ–เป‰เบฒ เบšเปเปˆ เบ”เบฑเปˆเบ‡ เบ™เบฑเป‰เบ™ เป€เบ›เบฑเบ™ 0. เบ—เบฒเบ‡ เป€เบฅเบทเบญเบ เบ™เบตเป‰ เปเบกเปˆเบ™ เป€เบ›เบตเบ” เปƒเบŠเป‰ เบ‡เบฒเบ™ เป‚เบ”เบ เป„เบงเป‰ เปƒเบ™ เบ•เบญเบ™ เบ•เบปเป‰เบ™ เป€เบงเบฑเป‰เบ™ เป€เบชเบ เปเบ•เปˆ implicitly เบเปเบฒ เบ™เบปเบ” เป‚เบ”เบ
-fmemory-model= เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™-เป€เบŠเบทเป‰เบญเบŠเบฒเบ”
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆเปƒเบ™เบฎเป‰เบฒเบ™เบ„เป‰เบฒ. เบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 1 เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰,
เบ–เป‰เบฒ เบšเปเปˆ เบ”เบฑเปˆเบ‡ เบ™เบฑเป‰เบ™ เป€เบ›เบฑเบ™ 0. เบ—เบฒเบ‡ เป€เบฅเบทเบญเบ เบ™เบตเป‰ เปเบกเปˆเบ™ เป€เบ›เบตเบ” เปƒเบŠเป‰ เบ‡เบฒเบ™ เป‚เบ”เบ เป„เบงเป‰ เปƒเบ™ เบ•เบญเบ™ เบ•เบปเป‰เบ™ เป€เบงเบฑเป‰เบ™ เป€เบชเบ เปเบ•เปˆ implicitly เบเปเบฒ เบ™เบปเบ” เป‚เบ”เบ
-fmemory-model= เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

allow-packed-load-data-races
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบฑเบ™เบˆเบธ. เบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ 1 เบซเบฒ
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰, เบ–เป‰เบฒโ€‹เบšเปเปˆโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เป€เบ›เบฑเบ™ 0. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เป€เบงเบฑเป‰เบ™โ€‹เป€เบชเบโ€‹เปเบ•เปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ” implicitly เป‚เบ”เบ
เป„เบ”เป‰ -fmemory-model= เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

allow-packed-store-data-races
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ™เบฐเบ™เบณเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเปเปˆเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบฑเบ™เบˆเบธ. เบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ 1 เบซเบฒ
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰, เบ–เป‰เบฒโ€‹เบšเปเปˆโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เป€เบ›เบฑเบ™ 0. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เป€เบงเบฑเป‰เบ™โ€‹เป€เบชเบโ€‹เปเบ•เปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ” implicitly เป‚เบ”เบ
เป„เบ”เป‰ -fmemory-model= เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

case-values-threshold
เบˆเปเบฒเบ™เบงเบ™เบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป‚เบ”เบ”
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเป‰เบ™เป„เบกเป‰เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบ–เป‰เบฒเบ„เปˆเบฒเปเบกเปˆเบ™ 0, เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš
เป€เบ„เบทเปˆเบญเบ‡. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 0.

tree-reassoc-width
เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™เบ•เบปเป‰เบ™เป„เบกเป‰ reassociated.
เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰ overrides heuristics เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบšเปเปˆเบกเบต
เบ„เปˆเบฒเบชเบนเบ™.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก เป„เบ”เป‰ เป‚เบ›เป€เบˆเบฑเบเป€เบ•เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบก C preprocessor, เป€เบŠเบดเปˆเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เป„เบŸเบฅโ€‹เปŒ C source เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบˆเบดเบ‡
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก.

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

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

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

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ - เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Xpre
เบชเบญเบ‡เบ„เบฑเป‰เบ‡, เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

-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
เบเบญเบกเบฎเบฑเบšเบŠเบทเปˆเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบ•เบปเบงเบฅเบฐเบšเบธ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบปเบ”เบฅเบญเบ‡; เบขเบนเปˆโ€‹เปƒเบ™
GCC เบฎเบธเปˆเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบกเบฑเบ™เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš C99 เปเบฅเบฐ C++.

-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.

-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. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
overridden เป‚เบ”เบเบ—เบฑเบ‡ locale เบซเบผเบทเบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡
เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบณเบ„เบฑเบ™เบเบงเปˆเบฒเบ–เป‰เบฒเบกเบตเบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡. เบชเบฒเบเป„เบŸ เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ”เป†
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” "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 เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ”เป†เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เปเบฅเบฐเบŠเบทเปˆเป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธ
เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

-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
เบขเปˆเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบžเบฝเบ‡เปเบ•เปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธ
เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบš, เป€เบŠเบฑเปˆเบ™
เป€เบ›เบฑเบ™ "-static-libgcc" เบซเบผเบท "-shared-libgcc", เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด, เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ -nostartfiles เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. compiler เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒ
"memcmp", "memset", "memcpy" เปเบฅเบฐ "memmove". เบฅเบฒเบเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบฑเบเบˆเบฐเบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบ
เบฅเบฒเบเบเบฒเบ™เปƒเบ™ libc. เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบเบปเบ™เป„เบเบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡
เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบฅเบฐเบšเบธ.

-nostdlib
เบขเปˆเบฒเปƒเบŠเป‰เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบฅเบฐเบšเบปเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบซเบผเบทเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป„เบŸเบฅเปŒเปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบเบฒเบ™เบฅเบฐเบšเบธเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบšเป€เบŠเบฑเปˆเบ™ "-static-libgcc" เบซเบผเบท
"-shared-libgcc", เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. compiler เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒ "memcmp",
"memset", "memcpy" เปเบฅเบฐ "memmove". เบฅเบฒเบเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบฑเบเบˆเบฐเบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบเบฒเบ™เบ›เป‰เบญเบ™เป€เบ‚เบปเป‰เบฒ
libc. เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบเบปเบ™เป„เบเบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹.

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ bypassed เป‚เบ”เบ -nostdlib เปเบฅเบฐ -nodefaultlibs is libgcc.a, เป€เบ›เบฑเบ™
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ›เบฐเบˆเบณเบžเบฒเบเปƒเบ™เบเปˆเบญเบเบ—เบตเปˆ GCC เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบŠเบฐเบ™เบฐเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ, เบซเบผเบทเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบดเป€เบชเบ”เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบžเบฒเบชเบฒ.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ libgcc.a เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบญเบทเปˆเบ™เป†.
เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบเปเบฒเบ™เบปเบ” -nostdlib or -nodefaultlibs เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบ—เปˆเบฒเบ™เบ„เบงเบ™
เบฅเบฐเบšเบธ -lgcc เบ„เบทโ€‹เบเบฑเบ™. เบ™เบตเป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบตเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚
เบšเบฑเบ™เบŠเบตเบเปˆเบญเบเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” GCC เบžเบฒเบเปƒเบ™. (เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, __เบซเบผเบฑเบ, เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™ C ++
เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™.)

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

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

-s เป€เบญเบปเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

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

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

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

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

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

เบ–เป‰เบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบ—เปˆเบฒเบ™เปƒเบŠเป‰เป„เบ”เป€เบงเบต GCC เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบžเบปเบšเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™
เบˆเบฐเบšเปเปˆเบ–เบทเบเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบชเบฐ เป€เปเบต เป„เบ› libgcc. เบ–เป‰เบฒ GCC เบŠเบญเบเบซเบฒ, เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบกเบฑเบ™
เป€เบงเบฅเบฒ, เบ—เปˆเบฒเบ™เบกเบตเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ GNU เบซเบผเบทเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU เบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
--eh-frame-hdr, เบกเบฑเบ™เบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฐเบšเบฑเบšเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เบ‚เบญเบ‡ libgcc เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเบฐเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบญเบญเบเป„เบ›
เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹ libgcc, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบชเบฐเบšเบฑเบš static เบ‚เบญเบ‡ libgcc
เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบžเบทเปˆเบญเป€เบœเบตเบเปเบœเปˆเบœเปˆเบฒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเปˆเบงเบกเบเบฑเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง,
เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบเบตเบ”โ€‹เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบเบปเบโ€‹เบเป‰เบฒเบโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เป‚เบซเบผเบ”โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบทเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบ„เบงเบ™เบˆเบฐเบ–เบดเป‰เบกเบซเบผเบทเบˆเบฑเบšเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, เบ—เปˆเบฒเบ™
เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ G++ เบซเบผเบท GCJ driver, เบ•เบฒเบกเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™
เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹, เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹ -shared-libgcc, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™
libgcc.

-static-libstdc++
เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆ g ++ เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™ C ++โ€‹, เบกเบฑเบ™โ€‹เบˆเบฐโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เปเปˆ libstdc++เบ—เบตเปˆเบขเบนเปˆ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ libstdc++ เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เปเบฅเบฐ
-static เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบ™เบตเป‰โ€‹เบˆเบฐโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ—เบตเปˆโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹
libstdc++. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเบ”เบต. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เบเปเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐ freeze
เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ libstdc++ เบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป„เบ›เบ—เบฑเบ‡เบซเบกเบปเบ”เบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบฑเบ™ static เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เป„เบ”เป‰ -static-libstdc++ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบŠเบตเป‰โ€‹เบ™เปเบฒโ€‹ g ++ เบ„เบปเบ™เบ‚เบฑเบšเป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ libstdc++
statically, เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™ statically.

- เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹
เบœเบนเบเบกเบฑเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เปƒเบชเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบปเปˆเบงเป‚เบฅเบเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™. เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบ”เป†
เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚ (เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบˆเบฐ 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 เบซเบผเบฒเบเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบตเบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡
เป‚เบกเบ”เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ 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 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฑเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบชเปˆเบงเบ™โ€‹เบซเบปเบงโ€‹.

เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ GNU (เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบฐเบšเบฑเบš 2.16) เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ–เป‰เบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เป„เบŸเบฅเปŒ header เบ‚เบญเบ‡
--sysroot เบเบฑเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเบฅเบฑเบเบชเบฐเบ™เบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบˆเบฐเบšเปเปˆ.

-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 เบญเบทเปˆเบ™เป†เปƒเบ™เป€เบงเบ—เบตเบ”เบฝเบงเบเบฑเบ™.

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-เป‚เบ—
เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เป‚เบ”เบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เบ—เบฑเบ‡เปเบปเบ”เบญเบฒเบ”เบˆเบฐเป€เบเบตเบ™
offset range เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ b / bl, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบขเบนเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ— (เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป‚เบ”เบเบเบปเบ‡). เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mshort-เป‚เบ—
เบ–เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เป‚เบ”เบเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ, เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”
เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ b / bl, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเป‚เบ”เบเบเบปเบ‡. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
is -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,
เป€เบŠเบดเปˆเบ‡เบฅเบฐเบšเบธเปƒเบซเป‰เปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ, เปเบฅเบฐเบšเปเปˆเบกเบต, เบŠเบถเปˆเบ‡เปเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบต
เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -m1reg-none.

AAArch64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” AArch64:

-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
เบ•เบปเบงเปเบ›

- เบกเบตเบ™เบฒ=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเป€เบ›เบปเป‰เบฒเปเบฒเบ, เป€เบฅเบทเบญเบเบ•เปเปˆเบ—เป‰เบฒเบเบ”เป‰เบงเบเปœเบถเปˆเบ‡ เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™
เบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปเบšเบšเบŸเบญเบก - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡{+[no]เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”}*, เบšเปˆเบญเบ™เบ—เบตเปˆ
เบกเบนเบ™เบ„เปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš เป‚เบ„เป‰เบ‡ is armv8-a. เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™
เบžเบฒเบเบชเปˆเบงเบ™เบเปˆเบญเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบ›เบฐเบเบญเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบšเบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ -mcpu=
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ.

-mcpu=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ suffixed เป‚เบ”เบเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”
เบ•เบปเบงเปเบเป‰เป„เบ‚. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปเบšเบšเบŸเบญเบก -mcpu=cpu{+[no]เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”}*, เบšเปˆเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰
เบ„เบธเบ™เบ„เปˆเบฒ เบชเบณ เบฅเบฑเบš cpu เบกเบต generic, เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ” เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™
เบžเบฒเบเบชเปˆเบงเบ™เบเปˆเบญเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบ™, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

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

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

- เบกเบตเบ™เบฒ เปเบฅเบฐ -mcpu เบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”

เบ•เบปเบงเปเบเป‰เป„เบ‚เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบเบฑเบš - เบกเบตเบ™เบฒ เปเบฅเบฐ -mcpu เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

crypto
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ Crypto. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ Advanced SIMD เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.

fp เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบ.

เบŠเบดเบก
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบฑเป‰เบ™เบชเบนเบ‡ SIMD. เบ™เบตเป‰เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ„เปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบณเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ - เบกเบตเบ™เบฒ เปเบฅเบฐ
-mcpu=.

ARM เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš Advanced RISC Machines (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 เบซเบ™เป‰เบฒเบ—เบตเปˆ, เบซเบผเบทเบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบ‚เบญเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบขเบนเปˆเปƒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”
เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบฎเบนเป‰เป„เบ”เป‰ (เบซเบผเบทเปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ a
เป€เบฅเบทเบญเบเบˆเบฒเบเบŠเบธเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡ prologues เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™), เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบžเบฒเบเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
is -msched-prolog.

-mfloat-abi=เบŠเบทเปˆ
เบฅเบฐเบšเบธเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰ ABI เบˆเบธเบ”เปƒเบ”. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: เบญเปˆเบญเบ™เป†, softfp เปเบฅเบฐ
เบเบฒเบ.

เบเบฒเบ™เบฅเบฐเบšเบธ เบญเปˆเบญเบ™เป† เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบœเบฐเบฅเบดเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบ—เบซเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเปˆเบญเบ™
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบˆเบธเบ”โ€‹. softfp เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเบฒเบ”โ€‹เปเบง Floating-pointโ€‹
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบ•เปˆเบเบฑเบ‡เบ„เบปเบ‡เปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เปเบšเบšเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เบเบฒเบ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰
เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบชเบฐเป€เบžเบฒเบฐ FPU.

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบปเป‰เบฒเปเบฒเบเบชเบฐเป€เบžเบฒเบฐ. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปเบ‚เบ‡-เป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เปเบฅเบฐ Soft-float ABIs เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ; เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบกเป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบš
ABI เบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบŠเบธเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” little-endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡
เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹.

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” big-endian; เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก
เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian.

-mwords-little-endian
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบซเบเปˆ endian. เบชเป‰เบฒเบ‡
เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบ„เปเบฒเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian เปเบ•เปˆเบ„เปเบฒเบชเบฑเปˆเบ‡ byte เปƒเบซเบเปˆ endian. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป„เบšเบ•เปŒ
เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก 32107654. เบซเบกเบฒเบเป€เบซเบ”: เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต ARM เปƒเบซเบเปˆ-endian เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบฎเบธเปˆเบ™เบ‚เบญเบ‡
compiler เบเปˆเบญเบ™ 2.8. เบ•เบญเบ™เบ™เบตเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบเปเบฅเป‰เบง.

- เบกเบตเบ™เบฒ=เบŠเบทเปˆ
เบญเบฑเบ™เบ™เบตเป‰เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ 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, iwmmxt, iwmmxt2, ep9312.

-march=native เป€เบฎเบฑเบ”เปƒเบซเป‰ compiler เบเบงเบ”เบžเบปเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡
เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบต. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™ 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-a15, cortex-r4, cortex-r4f, cortex-r5, cortex-m4, cortex-m3, cortex-m1,
cortex-m0, xscale, iwmmxt, iwmmxt2, ep9312, fa526, fa626, fa606te, fa626te, fmp626,
fa726te.

-mtune=เบ—เบปเปˆเบงเป„เบ›-เป‚เบ„เป‰เบ‡ เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ GCC เบ„เบงเบ™เบ›เบฑเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเบฐเบชเบปเบกเบœเบฐเบชเบฒเบ™
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบžเบฒเบเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ เป‚เบ„เป‰เบ‡. เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบตเปƒเบ™
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡
CPUs เปƒเบ™เบฅเบฐเบ”เบฑเบš, เปเบฅเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ pitfalls เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ CPUs เบญเบทเปˆเบ™เป†. เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฎเบธเปˆเบ™ GCC เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบเป‰เบญเบ™เบงเปˆเบฒเบฎเบธเปˆเบ™ CPU เบกเบฒเปเบฅเบฐเป„เบ›.

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

-mcpu=เบŠเบทเปˆ
เบ™เบตเป‰เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” ARM เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญเบกเบฒเบˆเบฒเบ
เบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ ARM เป€เบ›เบปเป‰เบฒเปเบฒเบ (เบ„เบทเบเบฑเบšเบ—เบตเปˆเบฅเบฐเบšเบธเป‚เบ”เบ - เบกเบตเบ™เบฒ) เปเบฅเบฐเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” ARM
เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” (เป€เบ›เบฑเบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹ -mtune). เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰
เปเบกเปˆเบ™เปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบš - เบกเบตเบ™เบฒ or -mtune, เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐโ€‹
เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

เบŠเบทเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบš -mtune.

-mcpu=เบ—เบปเปˆเบงเป„เบ›-เป‚เบ„เป‰เบ‡ เบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”, เปเบฅเบฐเป€เบ—เบปเปˆเบฒเบเบฑเบš - เบกเบตเบ™เบฒ=เป‚เบ„เป‰เบ‡
-mtune=เบ—เบปเปˆเบงเป„เบ›-เป‚เบ„เป‰เบ‡, เบ—เบฐเป€เบฅเบชเบฒเบš -mtune เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

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

-mfpu=เบŠเบทเปˆ
-mfpe=เบˆเปเบฒเบ™เบงเบ™
-mfp=เบˆเปเบฒเบ™เบงเบ™
เบ™เบตเป‰เบฅเบฐเบšเบธเบงเปˆเบฒเบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบ (เบซเบผเบทเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบฎเบฒเบ”เปเบง) เบกเบตเบขเบนเปˆเปƒเบ™
เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ. เบŠเบทเปˆเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: fpa, fpe2, fpe3, maverick, vfp, vfpv3, vfpv3-fp16,
vfpv3-d16, vfpv3-d16-fp16, vfpv3xd, vfpv3xd-fp16, neon, เบ™เบตเบญเบญเบ™-fp16, vfpv4, vfpv4-d16,
fpv4-sp-d16 เปเบฅเบฐ เบ™เบตเบญเบญเบ™-vfpv4. -mfp เปเบฅเบฐ -mfpe เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบทเบชเปเบฒเบฅเบฑเบš -mfpu=fpeเบˆเปเบฒเบ™เบงเบ™, for
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš GCC เบฅเบธเป‰เบ™เป€เบเบปเปˆเบฒ.

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 เปเบกเปˆเบ™เบงเปˆเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ static, เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบกเบต เป‚เบ—เบชเบฑเป‰เบ™ เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ,
เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ a #pragma no_long_calls เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ
เบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเปเบฅเป‰เบงเบžเบฒเบเปƒเบ™เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™, เบˆเบฐ
เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เบเบฒเบง. เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญ
เบ„เปเบฒเบ™เบดเบเบฒเบก, เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบเบฑเบš เป‚เบ—เบเบฒเบง เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบซเบผเบทโ€‹ เบชเปˆเบงเบ™ เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹, เปเบฅเบฐโ€‹
เบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ a #pragma long_calls เบ„เปเบฒเบชเบฑเปˆเบ‡, เบˆเบฐเป€เบ›เบฑเบ™เบชเบฐเป€เบซเบกเบต
เบเบฒเบเป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เบเบฒเบง.

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

-msingle-pic-base
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ PIC เป€เบ›เบฑเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”เบกเบฑเบ™เบขเบนเปˆเปƒเบ™
prologue เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆ. เบฅเบฐเบšเบปเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบตเป‰
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ”เป‰เบงเบเบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

-mpic เบกเบฑเบเบชเบฐเบกเบฒเบŠเบดเบ =reg
เบฅเบฐเบšเบธเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆ PIC. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ R10 เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ stack-
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เป€เบกเบทเปˆเบญ R9 เบ–เบทเบเปƒเบŠเป‰.

-mcirrus-fix-invalid-insns
เปƒเบชเปˆ NOPs เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฐเปเบชเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบšเบฑเบ™เบซเบฒ
เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Maverick เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
-mcpu=ep9312 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป„เบ”เป‰เบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบš Cirrus
Maverick เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบฎเปˆเบงเบกเบˆเบธเบ”เบฅเบญเบ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ
เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Maverick เป€เบเบปเปˆเบฒ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ” re-
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mno-cirrus-fix-invalid-insns เบชเบฐเบซเบผเบฑเบš.

-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-เบžเบฒเบชเบฒ =เบžเบฒเบชเบฒ
เบฅเบฐเบšเบธเบžเบฒเบชเบฒเป€เบžเบทเปˆเบญเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบชเบญเบ‡เบžเบฒเบชเบฒเปเบกเปˆเบ™
เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™ --- 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 เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบˆเบฐเบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡
byte เปƒเบ™เป€เบงเบฅเบฒ.

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

-mneon-for-64bits
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เปƒเบŠเป‰ Neon เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™ 64-bits scalar. เบญเบฑเบ™เบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบ—เบฐเบšเบฝเบ™เบซเบผเบฑเบเป„เบ›เบซเบฒ Neon เปเบกเปˆเบ™เบชเบนเบ‡.

APR เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

-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{}="ata6289", "attiny13", "attiny13a", "attiny2313",
"attiny2313a", "attiny24", "attiny24a", "attiny25", "attiny261", "attiny261a",
"attiny43u", "attiny4313", "attiny44", "attiny44a", "attiny45", "attiny461",
"attiny461a", "attiny48", "attiny84", "attiny84a", "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{}= "atmega16u2", "atmega32u2", "atmega8u2",
"attiny167", "at90usb162", "at90usb82".

"avr4"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบตเบชเบนเบ‡เป€เบ–เบดเบ‡ 8@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. mcu@tie{}=
"atmega48", "atmega48a", "atmega48p", "atmega8", "atmega8hva", "atmega8515",
"atmega8535", "atmega88", "atmega88a", "atmega88p", "atmega88pa", "at90pwm1",
"at90pwm2", "at90pwm2b", "at90pwm3", "at90pwm3b", "at90pwm81".

"avr5"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบต 16@tie{}KiB เบชเบนเบ‡เบชเบธเบ” 64@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™.
mcu@tie{}= "atmega16", "atmega16a", "atmega16hva", "atmega16hva2", "atmega16hvb",
"atmega16m1", "atmega16u4", "atmega161", "atmega162", "atmega163", "atmega164a",
"atmega164p", "atmega165", "atmega165a", "atmega165p", "atmega168", "atmega168a",
"atmega168p", "atmega169", "atmega169a", "atmega169p", "atmega169pa", "atmega32",
"atmega32c1", "atmega32hvb", "atmega32m1", "atmega32u4", "atmega32u6",
"atmega323", "atmega324a", "atmega324p", "atmega324pa", "atmega325", "atmega325a",
"atmega325p", "atmega3250", "atmega3250a", "atmega3250p", "atmega328",
"atmega328p", "atmega329", "atmega329a", "atmega329p", "atmega329pa",
"atmega3290", "atmega3290a", "atmega3290p", "atmega406", "atmega64", "atmega64c1",
"atmega64hve", "atmega64m1", "atmega640", "atmega644", "atmega644a", "atmega644p",
"atmega644pa", "atmega645", "atmega645a", "atmega645p", "atmega6450",
"atmega6450a", "atmega6450p", "atmega649", "atmega649a", "atmega649p",
"atmega6490", "at90can32", "at90can64", "at90pwm216", "at90pwm316", "at90scr100",
"at90usb646", "at90usb647", "at94k", "m3000".

"avr51"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบต 128@tie{}KiB เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™. mcu@tie{}= "atmega128",
"atmega128rfa1", "atmega1280", "atmega1281", "atmega1284p", "at90can128",
"at90usb1286", "at90usb1287".

"avr6"
เบญเบธเบ›เบฐเบเบญเบ™ "เบ›เบฑเบšเบ›เบธเบ‡" เบ—เบตเปˆเบกเบต PC 3-byte, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}KiB เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก.
เบ„เบงเบฒเบกเบŠเบปเบ‡ เบˆเบณ. mcu@tie{}= "atmega2560", "atmega2561".

"avrxmega2"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 8@tie{}KiB เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ” 64@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก.
mcu@tie{}= "atxmega16a4", "atxmega16d4", "atxmega16x1", "atxmega32a4",
"atxmega32d4", "atxmega32x1".

"avrxmega4"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 64@tie{}KiB เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ” 128@tie{}KiB เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก
เบ„เบงเบฒเบกเบŠเบปเบ‡ เบˆเบณ. mcu@tie{}= "atxmega64a3", "atxmega64d3".

"avrxmega5"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 64@tie{}KiB เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ” 128@tie{}KiB เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก
เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ เปเบฅเบฐ เบซเบผเบฒเบเบเบงเปˆเบฒ 64@tie{}KiB เบ‚เบญเบ‡ RAM. mcu@tie{}= "atxmega64a1",
"atxmega64a1u".

"avrxmega6"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก. mcu@tie{}=
"atxmega128a3", "atxmega128d3", "atxmega192a3", "atxmega192d3", "atxmega256a3",
"atxmega256a3b", "atxmega256a3bu", "atxmega256d3".

"avrxmega7"
เบญเบธเบ›เบฐเบเบญเบ™ "XMEGA" เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}KiB เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก เปเบฅเบฐเบซเบผเบฒเบเบเบงเปˆเบฒ
64@tie{}KiB เบ‚เบญเบ‡ RAM. mcu@tie{}= "atxmega128a1", "atxmega128a1u".

"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, เปเบ•เปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ™เป‰เบญเบเบฅเบปเบ‡
เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”.

-mno-interrupts
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบฎเบฒเบ”เปเบง. เบฅเบฐเบซเบฑเบ”เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบฅเบปเบ‡.

-mrelax
เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เปเบ—เบ™ "CALL" resp. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "JMP" เป‚เบ”เบ "RCALL" resp เบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒ. "RJMP"
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ–เป‰เบฒเบกเบต. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "-mrelax" เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ "--relax" เบเบฑเบš
linker command line เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเป€เบญเบตเป‰เบ™.

Jump relaxing เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ linker เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบเบฒเบ™เป‚เบ”เบ”เบšเปเปˆเป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบเปˆเบญเบ™
เบฅเบฐเบซเบฑเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบฐเบซเบฑเบ” assembler เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ compiler เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™,
เปเบ•เปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบ•เบปเบงเบ›เบฐเบเบญเบš
เบฅเบฐเบซเบฑเบ”.

เบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเบ•เป‰เบญเบ‡เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป€เบšเบดเปˆเบ‡เบžเบฒเบ "EIND" เปเบฅเบฐ
linker stubs เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

-mshort-เป‚เบ—
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบ เปเบฅเบฐเบˆเบฐเบ–เบทเบเบฅเบถเบšเบญเบญเบเปƒเบ™ GCC 4.8. เป€เบšเบดเปˆเบ‡ "-mrelax" เบชเปเบฒเบฅเบฑเบš a
เบ—เบปเบ”เปเบ—เบ™.

เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "RCALL"/"RJMP" เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบต 16@tie{}KiB เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™เบ‚เบญเบ‡เป‚เบ›เบฃเปเบเบฃเบก.
เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, ie เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CALL" เปเบฅเบฐ "JMP".

-msp8
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบปเบงเบŠเบตเป‰ stack เป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ 8-bit, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ byte เบชเบนเบ‡เบ‚เบญเบ‡
เบ•เบปเบงเบŠเบตเป‰ stack เปเบกเปˆเบ™เบชเบนเบ™. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ”เป‰เบงเบเบกเบท.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™เป‚เบ”เบ compiler เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเปเบฅเบฐเบชเป‰เบฒเบ‡ multilibs เบชเปเบฒเบฅเบฑเบš
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ "avr2" เปเบฅเบฐ "avr25". เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ›เบฐเบชเบปเบกเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเปเบฅเบฐเบšเปเปˆเบกเบต
"SPH". เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบญเบทเปˆเบ™เบ™เบญเบเบˆเบฒเบ "-mmcu=avr2" เบซเบผเบท "-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.

"EIND" เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเปˆเบงเบฒ 128 Ki Bytes เบ‚เบญเบ‡ Flash

เบ•เบปเบงเบŠเบตเป‰เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™ 16@tie{}bits wide. เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™ เบซเบผเบทเบ›เป‰เบฒเบเบเบณเบเบฑเบš
เบ–เบทเบเบชเบฐเปเบ”เบ‡เป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเบšเป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบกเปเบฅเบฐเบเบฒเบ™เป‚เบ—เบชเบฒเบกเบฒเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบฅเบฐเบซเบฑเบ”เปƒเบ”เป†
เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป„เบฅเบเบฐ 64@tie{}Ki เบ„เปเบฒ.

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบกเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 128@tie{}Ki bytes เบ‚เบญเบ‡
เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบดเป€เบชเบ”เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "EIND" เบ—เบตเปˆเป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™
เบชเปˆเบงเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "EICALL" เบซเบผเบท "EIJMP" เปเบกเปˆเบ™
เปƒเบŠเป‰เปเบฅเป‰เบง.

เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบกเปเบฅเบฐเบเบฒเบ™เป‚เบ—เบซเบฒเบญเบธเบ›เบฐเบเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป‚เบ”เบ compiler เปเบฅเบฐเปเบกเปˆเบ™
เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เปเป‰เบˆเบณเบเบฑเบ”เบšเบฒเบ‡เบญเบฑเบ™:

ยท compiler เบšเปเปˆเป€เบ„เบตเบเบเปเบฒเบ™เบปเบ” "EIND".

ยท compiler เปƒเบŠเป‰ "EIND" implicitely เปƒเบ™ "EICALL"/"EIJMP" เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบทเบญเบฒเบ”เบˆเบฐเบญเปˆเบฒเบ™
"EIND" เป‚เบ”เบเบเบปเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบฒเบ‡เบญเป‰เบญเบก / เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒเป‚เบ”เบเบงเบดเบ—เบต "RET"
เบ„เบณ เปเบ™เบฐ เบ™เบณ.

ยท compiler เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ "EIND" เบšเปเปˆเป€เบ„เบตเบเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบผเบทเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, "EIND" เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบ / เบŸเบทเป‰เบ™เบŸเบนเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบทเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡
เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบด prologue/epilogue.

ยทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเป‚เบ”เบเบ—เบฒเบ‡เบญเป‰เบญเบกเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปเบฅเบฐ goto เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐเบชเป‰เบฒเบ‡ เบฅเบณ เบ•เบปเป‰เบ™. เบฅเบณเบ•เบปเป‰เบ™
เปเบกเปˆเบ™ pads เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป€เบญเบตเป‰เบ™เบงเปˆเบฒ trampolines. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบก / เป€เบ•เบฑเป‰เบ™เป„เบ›เบซเบฒ
เบ•เบปเป‰เบ™เป„เบกเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. stub เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบเบฐเป‚เบ”เบ”เป‚เบ”เบเบเบปเบ‡เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

ยท เบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เป‰เบญเบ‡เบ–เบทเบเป€เบ›เบตเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบชเบฐเปเบ•เบก
เบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบธเบเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™. เป€เบšเบดเปˆเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบ compiler "-mrelax" เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบ linler
"--เบœเปˆเบญเบ™เบ„เบฒเบ". เบกเบตเบเปเบฅเบฐเบ™เบตเบกเบธเบกเบ—เบตเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบกเปˆเบ™เบ„เบงเบ™เบˆเบฐเบชเป‰เบฒเบ‡ stubs เปเบ•เปˆ
เป€เบญเบปเบฒเบฅเบนเบเบญเบญเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบœเปˆเบญเบ™เบ„เบฒเบเปเบฅเบฐเบšเปเปˆเบกเบตเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.

ยท 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} เปเบฅเบฐเบ„เบญเบกเบžเบตเบงเป€เบŠเบตเบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™.
"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, 102, 104, 105, 106, 107

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ mcu= "avr2", "avr25", "avr3", "avr31", "avr35", "avr4", "avr5", "avr51", "avr6",
"avrxmega2", "avrxmega4", "avrxmega5", "avrxmega6", "avrxmega7", เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš. เบ–เป‰เบฒ mcu
เบฅเบฐเบšเบธเบญเบธเบ›เบฐเบเบญเบ™, เบกเบฐเบซเบฒเบžเบฒเบเปƒเบ™เบ•เบปเบงเบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ•เบฒเบกเบ„เบงเบฒเบกเป€เปเบฒเบฐเบชเบปเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฑเบš
"-mmcu=atmega8" macro เบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™ 4.

"__AVR_เบญเบธเบ›เบฐเบเบญเบ™__"
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "-mmcu=เบญเบธเบ›เบฐเบเบญเบ™" เบเปเบฒเบ™เบปเบ” macro เปƒเบ™เบ•เบปเบงเบ™เบตเป‰เป€เบŠเบดเปˆเบ‡เบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡เบŠเบทเปˆเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™.
เบ•เบปเบงเบขเปˆเบฒเบ‡, "-mmcu=atmega8" เบเปเบฒเบ™เบปเบ” macro เบ—เบตเปˆเบกเบตเปƒเบ™เบ•เบปเบง "__AVR_ATmega8__",
"-mmcu=attiny261a" เบเปเบฒเบ™เบปเบ” "__AVR_ATtiny261A__", เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบŠเบทเปˆ macro เปƒเบ™เบ•เบปเบงเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป‚เบ„เบ‡เบเบฒเบ™ "__AVR_เบญเบธเบ›เบฐเบเบญเบ™__" เบšเปˆเบญเบ™เบ—เบตเปˆ เบญเบธเบ›เบฐเบเบญเบ™ เป€เบ›เบฑเบ™
เบŠเบทเปˆเบญเบธเบ›เบฐเบเบญเบ™เบˆเบฒเบเบ„เบนเปˆเบกเบทเบœเบนเป‰เปƒเบŠเป‰ AVR. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ เบญเบธเบ›เบฐเบเบญเบ™ เปƒเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™
เบกเบฐเบซเบฒเบžเบฒเบ เปเบฅเบฐ เบญเบธเบ›เบฐเบเบญเบ™ เปƒเบ™ "-mmcu=เบญเบธเบ›เบฐเบเบญเบ™" เปเบกเปˆเบ™เบงเปˆเบฒเบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เบ•เบปเบงเบžเบดเบกเบ™เป‰เบญเบเบชเบฐเป€เปเบต.

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 เบ‚เบญเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป‚เบ›เบฃเปเบเบฃเบก เปเบฅเบฐเบ–เป‰เบฒ "-mshort-calls" เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡.

"__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_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 เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ”เป†เบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
เบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบดเบฅเบดเป‚เบ„เบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เบ–เป‰เบฒ sirevision is none, เบšเปเปˆเบกเบตเบเบฒเบ™เปเบเป‰เป„เบ‚เปเบกเปˆเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบ–เป‰เบฒ sirevision is เปƒเบ”, เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบˆเบฐเป€เบ›เบฑเบ™
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™. เบกเบฐเบซเบฒเบžเบฒเบ "__SILICON_REVISION__" เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™เบชเบญเบ‡เบ•เบปเบงเป€เบฅเบเบ–เบฒเบ™เบชเบดเบšเบซเบปเบ
เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบฅเบฐเบซเบ™เป‰เบญเบเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบดเบฅเบดเป‚เบ„เบ™. เบ–เป‰เบฒ sirevision is
none, "__SILICON_REVISION__" เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”. เบ–เป‰เบฒ sirevision is เปƒเบ”, เบเบฒเบ™
"__SILICON_REVISION__" เบ–เบทเบเบเบณเบ™เบปเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™ 0xffff. เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰ sirevision เบšเปเปˆโ€‹เปเบกเปˆเบ™
เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, GCC เบ–เบทเบงเปˆเบฒเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบŠเบดเบฅเบดเบ„เบญเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบซเบฅเป‰เบฒเบชเบธเบ”เบ‚เบญเบ‡ Blackfin เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เป‚เบ›เป€เบŠเบ”เป€เบŠเบต.

เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš bf561 เบšเปเปˆเบชเบปเบกเบšเบนเบ™. เบชเปเบฒเบฅเบฑเบš bf561, เบžเบฝเบ‡เปเบ•เปˆ macro เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”.
เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, bf532 เบ–เบทเบเปƒเบŠเป‰เป€เบ›เบฑเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ—เบตเปˆโ€‹เบชเบญเบ”โ€‹เบ„เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹
macro เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบชเปเบฒเบฅเบฑเบš cpu เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”. เปเบฅเบฐเบชเปเบฒเบฅเบฑเบš bfin-elf เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท,
เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ BSP เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ libgloss เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™ if - เบŠเบดเบก เบšเปเปˆโ€‹เปเบกเปˆเบ™
เปƒเบซเป‰.

- เบŠเบดเบก
เบฅเบฐเบšเบธเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™ simulator เป„เบ”เป‰. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡
BSP เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ libgloss เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš bfin-elf
เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เป€เบŠเบฑเปˆเบ™: - เบซเปเบชเบฐเปเบธเบ”เบเบฒเบ‡ เปเบฅเบฐ -mfdpic, เปเบฒเบเป€เบ–เบดเบ‡
- เบŠเบดเบก.

-momit-leaf-frame-pointer
เบขเปˆเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ™เบตเป‰เบซเบผเบตเบเบฅเป‰เบฝเบ‡เบเบฒเบ™
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบเบญเบšโ€‹เปเบฅเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹
เบกเบตเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fomit-frame-pointer เป€เบญเบปเบฒเบเบญเบš
เบ•เบปเบงเบŠเบตเป‰เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบเบฒเบเบ‚เบถเป‰เบ™.

-mspecld-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, compiler เบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเบกเบต
เบเบฒเบ™เป‚เบซเบผเบ”เบ„เบฒเบ”เบ„เบฐเป€เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฐเป‚เบ”เบ”. เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเปƒเบŠเป‰,
"__WORKAROUND_SPECULATIVE_LOADS" เบ–เบทเบเบเบณเบ™เบปเบ”.

-mno-specld-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰.

-mcsync-เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด
เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบšเปเปˆเบกเบต 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. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐ
link scripts เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ multicore. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”
"__BFIN_MULTICORE". เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš -mcpu=bf561[-sirevision]. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰
เบเบฑเบš - mcorea or -mcoreb. เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ - mcorea or -mcoreb, เบ”เบฝเบง
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™/เบชเบญเบ‡เบซเบผเบฑเบเปเบกเปˆเบ™เปƒเบŠเป‰. เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰, เบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡
Core B เบ„เบงเบ™เบกเบตเบŠเบทเปˆเป€เบ›เบฑเบ™ coreb_main. เบ–เป‰เบฒเบกเบฑเบ™เปƒเบŠเป‰เบเบฑเบš - mcorea or -mcoreb, เบซเบ™เบถเปˆเบ‡
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เปเปˆเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบซเบผเบฑเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰, เบ”เบฝเบง
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบซเบผเบฑเบเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

- mcorea
เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบšเบšเบ”เปˆเบฝเบงเบชเบณเบฅเบฑเบš Core A เบ‚เบญเบ‡ BF561 เป€เบกเบทเปˆเบญเปƒเบŠเป‰เปœเบถเปˆเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ•เปเปˆเบซเบผเบฑเบ
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ เปเบฅเบฐเบชเบฐเบ„เบฃเบดเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐเบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบญเบ‡เบฎเบฑเบš Core A.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” "__BFIN_COREA". เบกเบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš - mmulticore.

-mcoreb
เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบšเบšเบ”เปˆเบฝเบงเบชเบณเบฅเบฑเบš Core B เบ‚เบญเบ‡ BF561 เป€เบกเบทเปˆเบญเปƒเบŠเป‰เปœเบถเปˆเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ•เปเปˆเบซเบผเบฑเบ
เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ เปเบฅเบฐเบชเบฐเบ„เบฃเบดเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐเบ–เบทเบเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบฎเบญเบ‡เบฎเบฑเบš Core B.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” "__BFIN_COREB". เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, coreb_main เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™
เปƒเบŠเป‰เปเบ—เบ™เบซเบผเบฑเบ. เบกเบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš - mmulticore.

-msdram
เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบšเบšเบ”เปˆเบฝเบงเบชเบณเบฅเบฑเบš SDRAM. เป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐเบชเบฐเบ„เบดเบšเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐเป€เบ›เบฑเบ™
เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ SDRAM. Loader เบ„เบงเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ SDRAM เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบฅเบ”
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ SDRAM. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” "__BFIN_SDRAM".

-micplb
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ ICPLBs เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™
เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ. เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ Linux, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒ ICPLBs เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰; เบชเปเบฒเบฅเบฑเบš
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฐเปเบ•เบ™เบญเบฐเป‚เบฅเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเบ›เบดเบ”เป„เบงเป‰.

C6X เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

- เบกเบตเบ™เบฒ=เบŠเบทเปˆ
เบ™เบตเป‰เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. GCC เปƒเบŠเป‰เบŠเบทเปˆเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบš. เบญเบฐเบ™เบธเบเบฒเบ”
เบŠเบทเปˆเปเบกเปˆเบ™: c62x, c64x, c64x+, c67x, c67x+, c674x.

-mbig-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปƒเบซเบเปˆ.

-mlittle-endian
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ endian. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบŠเบดเบก
เป€เบฅเบทเบญเบเป„เบŸเบฅเปŒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบš simulator.

-msdata=เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบขเบนเปˆเปƒเบ™เป‚เบฅเบ .เบ‚เปเป‰เบกเบนเบ™เปƒเบเป‰เบ„เบฝเบ‡ เบžเบฒเบ, เป€เบŠเบดเปˆเบ‡เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ "B14". เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ™เบณเปƒเบŠเป‰เป€เบ‚เบปเป‰เบฒเปƒเบ™ .bss เบžเบฒเบ,
เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเบ•เบดเบ”เบเบฑเบš .เบ‚เปเป‰เบกเบนเบ™เปƒเบเป‰เบ„เบฝเบ‡ เบžเบฒเบ. เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ—เบตเปˆเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ .rodata
เบžเบฒเบ. เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบกเปˆเบ™ .fardata, .เป„เบ
เปเบฅเบฐ .const.

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

-msdata=เบšเปเปˆเบกเบต
เบขเปˆเบฒเปƒเบŠเป‰เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เปเบฅเบฐเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡
เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เปเบปเบ”. เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เบ—เบตเปˆเบ•เบฑเป‰เบ‡เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบฑเบ‡เปเบปเบ”เปƒเบชเปˆเปƒเบ™ .fardata เบžเบฒเบ,
เปเบฅเบฐโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบฅเบดโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปƒเบ™โ€‹ .เป„เบ เบžเบฒเบ. เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ .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-frame,
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบชเปˆเบงเบ™โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เปเบฅเบฐโ€‹เบ„เปˆเบฒโ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ”เบฝเบงโ€‹
เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบš 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 เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบญเบญเบโ€‹
เบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” 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 เบ‚เบญเบ‡ 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 เป„เบŸเบฅ object เบงเบฑเบ”เบ–เบธ.
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, /usr/bin/libtool, เบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบฅเบฐเบžเบดเบกเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เป‰เบฒเบ–เบทเบเบ–เบฒเบก
เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบกเบฑเบ™ (เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบฐเบเบฒเบเบฒเบกเป€เบญเบปเบฒ a ppc970 เป„เบŸเบฅเปŒเบงเบฑเบ”เบ–เบธเปƒเบ™ a ppc7400 เบซเปเบชเบฐเบซเบกเบธเบ”). เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป„เบ”เป‰โ€‹, ld, เบŠเบทเปˆเป†เบˆเบฐเปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปˆเบญเบเบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เปƒเบ”เป†
เป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบกเบฑเบ™.

-Fdir
เป€เบžเบตเปˆเบกเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบญเบš dir เป„เบ›เบซเบฒเบซเบปเบงเบ‚เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบซเบฒ
เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒ header. เบฅเบฒเบ เบเบฒเบ™ เป€เบซเบผเบปเปˆเบฒ เบ™เบตเป‰ เปเบกเปˆเบ™ interleaved เบเบฑเบš เบ—เบตเปˆ เบเปเบฒ เบ™เบปเบ” เป„เบงเป‰ เป‚เบ”เบ -I
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบฅเบฐโ€‹เบ–เบทเบโ€‹เบชเบฐโ€‹เปเบเบ™โ€‹เปƒเบ™โ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบŠเป‰เบฒเบโ€‹เบซเบฒโ€‹เบ‚เบงเบฒโ€‹.

เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบญเบšเปเบกเปˆเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบเบญเบšเปƒเบ™เบกเบฑเบ™. เบเบญเบšเป€เบ›เบฑเบ™
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบต a "เบชเปˆเบงเบ™เบซเบปเบง" เปเบฅเบฐ / เบซเบผเบท "เบชเปˆเบงเบ™เบซเบปเบงเบชเปˆเบงเบ™เบ•เบปเบง" เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ™เบฑเป‰เบ™
เบ—เบตเปˆเบชเบดเป‰เบ™เบชเบธเบ”เปƒเบ™ ".เบเบญเบš". เบŠเบทเปˆเบ‚เบญเบ‡เบเบญเบšเป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ™เบตเป‰
เบšเปเปˆเบฅเบงเบก ".เบเบญเบš". เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบญเบšเปเบกเปˆเบ™เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™
เบ—เบฑเบ‡เบชเบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เบเบฑเบš "เบชเปˆเบงเบ™เบซเบปเบง" เบ–เบทเบเบ„เบปเป‰เบ™เบซเบฒเบเปˆเบญเบ™. เบเบญเบšเบเปˆเบญเบเปเบกเปˆเบ™ เบ
เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบญเบšเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบเบญเบšเบ‚เบญเบ‡ "เบเบญเบš" เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต. เบฅเบงเบกเบกเบต
subframework headers เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบเบญเบšเบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ
subframework, เบซเบผเบทเบขเบนเปˆเปƒเบ™เบซเบปเบงเบ‚เปเป‰ subframework เบžเบตเปˆเบ™เป‰เบญเบ‡. เบชเบญเบ‡ subframeworks เปเบกเปˆเบ™เบญเป‰เบฒเบเบ™เป‰เบญเบ‡เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบžเบงเบเบกเบฑเบ™เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบเบญเบšเบ”เบฝเบงเบเบฑเบ™. เบเบญเบšเบเปˆเบญเบเบšเปเปˆเบ„เบงเบ™เบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš a
เป‚เบ„เบ‡เบฎเปˆเบฒเบ‡เบเบฒเบ™, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบˆเบฐเบ–เบทเบเบญเบญเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ›เบฑเบ™เบเบญเบšเบเปˆเบญเบ
เบšเปเปˆเบชเบฒเบกเบฒเบ”เบกเบต subframeworks, เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบเบปเบ™เป„เบเบเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
เบ™เบตเป‰. เบเบญเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบฒเบกเบฒเบ”เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™ "/เบฅเบฐเบšเบปเบš/เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”/เบเบญเบš" เปเบฅเบฐ
"/เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”/เบเบญเบš". เบ•เบปเบงเบขเปˆเบฒเบ‡เบ›เบฐเบเบญเบšเบกเบตเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ "#include ",
เบšเปˆเบญเบ™เบ—เบตเปˆ Framework เบซเบกเบฒเบเป€เบ–เบดเบ‡เบŠเบทเปˆเบ‚เบญเบ‡เบเบญเบšเปเบฅเบฐ header.h เปเบกเปˆเบ™เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™
"เบชเปˆเบงเบ™เบซเบปเบงเบชเปˆเบงเบ™เบ•เบปเบง" or "เบชเปˆเบงเบ™เบซเบปเบง" เบฅเบฐเบšเบปเบš.

- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹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-cxa-atexit, -fno-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, -fno-เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป‚เบ—-เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, -fapple-kext, -fno-เบญเปˆเบญเบ™เปเบญ
เปเบฅเบฐ -fno-rtti เบšเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบŠเป‰โ€‹เป„เบ”เป‰โ€‹. เป‚เปเบ”เบ™เบตเป‰เบเบฑเบ‡เบ•เบฑเป‰เบ‡ -mno-altivec, -msoft-float,
-fno-builtin เปเบฅเบฐ - เบชเบฒเบ‚เบฒ เบก เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ PowerPC.

-mone-byte-bool
เบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบš bool เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™ sizeof(bool)==1. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡ (boolโ€‹) is 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 เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบ. เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบเบเบดเบ”เบˆเบฐเบงเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบ•เบฒเบกเปเบšเบšเบขเปˆเบฒเบ‡
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰, เบซเบผเบทเบฅเบงเบšเบฅเบงเบกเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป€เบญเบตเป‰เบ™ emulations เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบ›เบปเบเบเบฐเบ•เบด, เบ›เบปเบเบเบฐเบ•เบดเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบญเบญเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบฅเบงเบšเบฅเบงเบก
เบชเปเบฒเบฅเบฑเบš 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 เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ›เบฐเบเบญเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบžเบฒเบเปƒเบ•เป‰ DEC Unix, เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆ
เบ›เบปเบเบเบฐเบ•เบดเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบš IEEE เบˆเบฐเบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ‚เบปเป‰เบฒ.

-mbuild-เบ„เบปเบ‡เบ—เบตเปˆ
เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด GCC เบเบงเบ”เบชเบญเบšเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ 32- เบซเบผเบท 64-bit เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบกเบฑเบ™เป„เบ”เป‰เบšเป
เบˆเบฒเบเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ™เป‰เบญเบเบเบงเปˆเบฒเปƒเบ™เบชเบญเบ‡เบซเบผเบทเบชเบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹, เบกเบฑเบ™โ€‹เบˆเบฐโ€‹เบชเบปเปˆเบ‡โ€‹เบœเบปเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป„เบ”เป‰โ€‹
เบ„เบปเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเปœเบฑเบ‡เบชเบท เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เบกเบฑเบ™เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™.

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

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

-malpha-as
- เบกเบ
เป€เบฅเบทเบญเบเบงเปˆเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเบฐเบ›เบฐเบเบญเบšเป‚เบ”เบเบ•เบปเบงเบ›เบฐเบเบญเบšเบ—เบตเปˆเบœเบนเป‰เบ‚เบฒเบเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เบซเบผเบทเบšเปเปˆ
(-malpha-as) เบซเบผเบทเป‚เบ”เบเบœเบนเป‰เบ›เบฐเบเบญเบš GNU - เบกเบ.

-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 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

DEC Alpha/VMS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” DEC Alpha/VMS:

-mvms-return-codes
เบชเบปเปˆเบ‡เบ„เบทเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ VMS เบˆเบฒเบเบซเบผเบฑเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เบทเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบฎเบนเบšเปเบšเบš POSIX
(เป€เบŠเบฑเปˆเบ™: เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”) เบฅเบฐเบซเบฑเบ”.

-mdebug-main=เบ„เบณ เบ™เบณ เปœเป‰เบฒ
เปเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ›เบฐเบˆเบณเบ—เบณเบญเบดเบ”เบ—เบตเปˆเบŠเบทเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ เบ„เบณ เบ™เบณ เปœเป‰เบฒ เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
เบ”เบตเบšเบฑเบ.

- mmalloc64
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบเบดเบ”เบˆเบฐเบงเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ 64-เบšเบดเบ”.

FR30 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบžเบญเบ” FR30.

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

-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. เบชเบฐเบงเบดเบ”เบ™เบตเป‰เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบฑเบš -เบ™เบฒเบ‡โ€‹เบชเบฒเบง.

- 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 เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

-mbig-เบชเบฐเบซเบผเบฑเบš
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
assembler/linker เบˆเบปเปˆเบกเบเปˆเบฝเบงเบเบฑเบšเบชเบฒเบ‚เบฒเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบžเบฒเบเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบฑเบš.

-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 เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบเปเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เปเบฅเบฐโ€‹
passes +เบเบญเบกเบฎเบฑเบš เบ›เบฐเป€เบžเบ”เบšเปเปˆเบเบปเบ‡เบเบฑเบ™ เบเบฑเบš ld เปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญ GCC เปเบกเปˆเบ™
เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™ เบซเบผเบท implicitly, เบเบฑเบšเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ HP. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเปƒเบ”เป†เบ—เบตเปˆ ld เบ–เบทเบเป€เบญเบตเป‰เบ™, เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบฝเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเบเบฑเบšเบชเบดเปˆเบ‡เบ™เบฑเป‰เบ™
ld. ld เบ—เบตเปˆโ€‹เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒโ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป‚เบ”เบโ€‹ --with-ld เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, GCC's
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ„เบปเป‰เบ™เบซเบฒเป‚เบ„เบ‡เบเบฒเบ™, เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰ PATH. เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบ GCC เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบžเบดเบกโ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ เบ—เบตเปˆ `gcc -print-prog-name=ld`. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™
64-bit HP-UX 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.

Intel 386 เปเบฅเบฐ AMD x86-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เบญเบšโ€‹เบ„เบปเบง i386 เปเบฅเบฐ x86-64 เบ‚เบญเบ‡โ€‹เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบตโ€‹:

-mtune=cpu-type
เบ›เบšเบฑ cpu-type เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบเบปเบเป€เบงเบฑเป‰เบ™ ABI
เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu-type เปเบกเปˆเบ™:

generic
เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เปƒเบซเป‰เป€เปเบฒเบฐเบชเบปเบกเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต IA32/AMD64/EM64T เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”. เบ–เป‰เบฒโ€‹เป€เบˆเบปเป‰เบฒ
เบฎเบนเป‰ CPU เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™
-mtune เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹ -mtune=เบ—เบปเปˆเบงเป„เบ›. เปเบ•เปˆ, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒ CPU เปƒเบ”
เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฐเบกเบต, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰.

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

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

native
เบ™เบตเป‰เป€เบฅเบทเบญเบ CPU เป€เบžเบทเปˆเบญเบ›เบฑเบšเป€เบงเบฅเบฒเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป‚เบ›เป€เบŠเบ”เป€เบŠเบต
เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบฅเบงเบšเบฅเบงเบก. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -mtune=native เบˆเบฐเบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบžเบฒเบเปƒเบ•เป‰เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ.
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ -march=native เบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบ—เบธเบเบŠเบธเบ”เบเปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™
เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ (เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™).

i386
CPU i386 เบ‚เบญเบ‡ Intel เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

i486
CPU i486 เบ‚เบญเบ‡ Intel. (เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ chip เบ™เบตเป‰โ€‹.

i586, เป€เบžเบ™
CPU Intel Pentium เบ—เบตเปˆเบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš MMX.

pentium-mmx
CPU Intel PentiumMMX เบญเบตเบ‡เปƒเบชเปˆ Pentium core เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX.

pentiumpro
CPU Intel PentiumPro.

i686
เบ„เบทเบเบฑเบ™เบเบฑเบš "เบ—เบปเปˆเบงเป„เบ›", เปเบ•เปˆเป€เบกเบทเปˆเบญเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "เป€เบ”เบทเบญเบ™เบกเบตเบ™เบฒ", PentiumPro เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบ—เบธเบเบŠเบดเบšเบ„เบญเบšเบ„เบปเบง i686.

pentium 2
CPU Intel Pentium2 เบญเบตเบ‡เปƒเบชเปˆ PentiumPro core เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX.

pentium3, pentium 3 เบก
CPU Intel Pentium3 เบญเบตเบ‡เปƒเบชเปˆ PentiumPro core เบเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX เปเบฅเบฐ SSE
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

pentium-เบก
เบฅเบธเป‰เบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ•เปเปˆเบฒเบ‚เบญเบ‡ Intel Pentium3 CPU เบเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX, SSE เปเบฅเบฐ SSE2
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เปƒเบŠเป‰เป‚เบ”เบเบ›เบทเป‰เบกเบšเบฑเบ™เบ—เบถเบ Centrino.

pentium4, pentium 4 เบก
CPU Intel Pentium4 เบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX, SSE เปเบฅเบฐ SSE2.

Prescott
เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡ CPU Intel Pentium4 เบ”เป‰เบงเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX, SSE, SSE2 เปเบฅเบฐ SSE3
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

เป‚เบ™เป‚เบ„เบ™เบฒ
เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡ Intel Pentium4 CPU เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2 เปเบฅเบฐ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE3.

เบซเบผเบฑเบ 2
CPU Intel Core2 เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3 เปเบฅเบฐ SSSE3 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

เบซเบผเบฑเบ7
CPU Intel Core i7 เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 เปเบฅเบฐ
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE4.2.

corei7-avx
CPU Intel Core i7 เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES เปเบฅเบฐ PCLMUL เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

core-avx-i
CPU Intel Core เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND เปเบฅเบฐ F16C เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เบ›เบฐโ€‹เบฅเปเบฒโ€‹เบกเบฐโ€‹เบ™เบน
Intel Atom CPU เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ 64-bit, MMX, SSE, SSE2, SSE3 เปเบฅเบฐ SSSE3 instruction
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹.

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, opteron, เบเบดเบฅเบฒ 64, เบเบดเบฅเบฒ-fx
AMD K8 core CPUs เบ—เบตเปˆเบกเบตเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. (เบ™เบตเป‰ supersets MMX,
SSE, SSE2, 3DNow!, เบ›เบฑเบšเบ›เบธเบ‡ 3DNow! เปเบฅเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit.)

k8-sse3, opteron-sse3, athlon64-sse3
เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡ k8, opteron เปเบฅเบฐ athlon64 เบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE3.

amdfam10, เบšเบฒเป€เบŠเป‚เบฅเบ™เบฒ
AMD Family 10h cores CPUs เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64. (เบ™เบตเป‰
supersets MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, เบ›เบฑเบšเบ›เบธเบ‡ 3DNow!, ABM เปเบฅเบฐ 64-bit
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.)

bdver1
AMD Family 15h cores CPUs เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 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, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2,
SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit.)

btver1
AMD Family 14h cores CPUs เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x86-64. (เบ™เบตเป‰
supersets MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, CX16, ABM เปเบฅเบฐเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 64-bit
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ.)

winchip-c6
IDT Winchip C6 CPU, เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš i486 เบ”เป‰เบงเบเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™.

winchip2
IDT Winchip2 CPU, เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบงเบดเบ—เบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš i486 เบ”เป‰เบงเบ MMX เปเบฅเบฐ 3DNow เป€เบžเบตเปˆเบกเป€เบ•เบตเบก!
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

c3 เบœเปˆเบฒเบ™ C3 CPU เบเบฑเบš MMX เปเบฅเบฐ 3DNow! เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. (เบšเปเปˆเบกเบตเบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš chip เบ™เบตเป‰.)

c3-2
เบœเปˆเบฒเบ™ C3-2 CPU เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ MMX เปเบฅเบฐ SSE. (เบšเปเปˆเบกเบตเบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบงเบฅเบฒ
เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš chip เบ™เบตเป‰.)

geode
เบเบฑเบ‡ CPU AMD เบเบฑเบš MMX เปเบฅเบฐ 3DNow! เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบฅเบทเบญเบเบชเบฐเป€เบžเบฒเบฐ cpu-type เบˆเบฐเบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบชเบดเปˆเบ‡เบ™เบฑเป‰เบ™
chip เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, compiler เบˆเบฐเบšเปเปˆเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ”เป†เบ—เบตเปˆเบšเปเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™
เบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ - เบกเบตเบ™เบฒ=cpu-type เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒ
GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš i686-pc-linux-gnu เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ -mtune=pentium4 เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆ
เปเบกเปˆเบ™ tuned เบชเปเบฒเบฅเบฑเบš Pentium4 เปเบ•เปˆเบˆเบฐเบเบฑเบ‡เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ i686.

- เบกเบตเบ™เบฒ=cpu-type
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu-type. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ cpu-type เปเบกเปˆเบ™
เป€เบŠเบฑเปˆเบ™โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ -mtune. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบเบฒเบ™เบฅเบฐเบšเบธ - เบกเบตเบ™เบฒ=cpu-type implies -mtune=cpu-type.

-mcpu=cpu-type
เบ„เบณเบชเบฑเบšเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”เบชเบณเบฅเบฑเบš -mtune.

-mfpmath=เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™
เบชเป‰เบฒเบ‡เป€เบฅเบเป€เบฅเบเบ„เบฐเบ™เบดเบ”เบˆเบธเบ”เบฅเบญเบเบชเบณเบฅเบฑเบšเปœเปˆเบงเบเบ—เบตเปˆเป€เบฅเบทเบญเบ เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ เบซเบ™เปˆเบงเบเบšเปเบฅเบดเบเบฒเบ™ เปเบกเปˆเบ™:

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

เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš i386 compiler.

sse เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™ scalar เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE. เบ™เบตเป‰
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ Pentium3 เปเบฅเบฐเบŠเบดเบšเปƒเบซเบกเปˆเบเบงเปˆเบฒ, เปƒเบ™เบชเบฒเบ AMD เป‚เบ”เบ
เบŠเบดเบš Athlon-4, Athlon-xp เปเบฅเบฐ Athlon-mp. เบชเบฐเบšเบฑเบšเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE
เบŠเบธเบ”โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เบ„เบงเบฒเบกโ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เบ”เบฝเบงโ€‹, เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบชเบญเบ‡โ€‹เปเบฅเบฐโ€‹เบ‚เบฐโ€‹เบซเบเบฒเบ -
เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเปเบกเปˆเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ 387. A เบชเบฐเบšเบฑเบšเบ•เปเปˆเบกเบฒ, เบ›เบฐเบˆเบธเบšเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™
Pentium4 เปเบฅเบฐเบŠเบดเบš AMD x86-64 เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป€เบฅเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™.

เบชเปเบฒเบฅเบฑเบš i386 compiler, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ - เบกเบตเบ™เบฒ=cpu-type, -msse or -msse2 switches
เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SSE เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบชเปเบฒเบฅเบฑเบš x86-64 compiler,
เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

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

เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš x86-64 compiler.

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

-masm=เบžเบฒเบชเบฒ
เบญเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ asm เป‚เบ”เบเปƒเบŠเป‰เป€เบฅเบทเบญเบ เบžเบฒเบชเบฒ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™ intel or att
(เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™). Darwin เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ intel.

-mieee-fp
-mno-ieee-fp
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบŠเป‰เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบฅเบญเบเบ‚เบญเบ‡ IEEE เบซเบผเบทเบšเปเปˆ. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰
เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ–เบทเบเบˆเบฑเบ”เบฎเบฝเบ‡เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡.

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

เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™ 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. เบฅเบฐเบšเบธเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ FreeBSD, OpenBSD เปเบฅเบฐ NetBSD. เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™ overridden เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹ - เบกเบตเบ™เบฒ
เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ CPU เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบˆเบฐเบกเบต FPU เบชเบฐเป€เบซเบกเบตเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบฐเบšเปเปˆ
เบ•เป‰เบญเบ‡เบเบฒเบ™ emulation. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบฑเบ”เปเบเป‰ 2.6.1, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™
เบเบฑเบ‡เปƒเบŠเป‰ -funsafe-math-optimizations เบชเบฐเบซเบผเบฑเบš.

-malign-double
-mno-align-double
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒ GCC เบงเบฒเบ‡เบ•เบปเบงเปเบ› "เบ„เบนเปˆ", "เบ„เบนเปˆเบเบฒเบง", เปเบฅเบฐ "เบเบฒเบงเบเบฒเบง" เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ› a
เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เบชเบญเบ‡โ€‹เบ„เปเบฒโ€‹เบซเบผเบทโ€‹เป€เบ‚เบ”โ€‹เปเบ”เบ™โ€‹เบ„เปเบฒโ€‹เบ”เบฝเบงโ€‹. เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบ•เบปเบงเปเบ› "เบ„เบนเปˆ" เปƒเบ™เบชเบญเบ‡เบ„เปเบฒ
boundary เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป„เบงเบ‚เบถเป‰เบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™ a Pentium เปƒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบ„เบงเบฒเบกเบŠเบปเบ‡ เบˆเบณ.

เบชเบธเบ” x86-64, -malign-double เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

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

-m96bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
-m128bit-เบเบฒเบง-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เบชเบฐเบซเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบงเบšเบ„เบธเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” "เบ„เบนเปˆเบเบฒเบง". เป„เบšเบ™เบฒเบฃเบตเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ i386
เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ 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 เบเบฑเบš arrays เบซเบผเบทเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ™เบฑเป‰เบ™
เบชเบฐเบซเบผเบฑเบš.

-mlarge-data-threshold=เบˆเปเบฒเบ™เบงเบ™
เป€เบกเบทเปˆเบญโ€‹เปƒเบ”โ€‹ -mcmodel=เบ›เบฒเบ™เบเบฒเบ‡ เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰, เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒ threshold เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ
เบžเบฒเบเบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™. เบ„เปˆเบฒเบ™เบตเป‰เบˆเบฐเบ•เป‰เบญเบ‡เบ„เบทเบเบฑเบ™เบ—เบปเปˆเบงเบ—เบธเบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบ™เบ–เบฒเบ™เบชเบญเบ‡
เปเบฅเบฐเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ 65535.

-mrtd
เปƒเบŠเป‰เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เปเบเป‰เป„เบ‚
เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบšเบ„เบทเบ™เบ”เป‰เบงเบ "ret" num เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เป€เบŠเบดเปˆเบ‡ pops เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ
เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฑเบšเบ„เบทเบ™. เบ™เบตเป‰เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบœเบนเป‰เป‚เบ—เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡
เบ›เบฐเบเบปเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™.

เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เปเบกเปˆเบ™โ€‹เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒโ€‹เบกเบตโ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบญเบตเป‰เบ™โ€‹เบ™เบตเป‰โ€‹เบเบฑเบšโ€‹
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹ stdcall. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ” override เป„เบ”เป‰ -mrtd เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹
เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹ 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 เบขเบนเปˆเบ—เบฒเบ‡เป€เบ‚เบปเป‰เบฒเบ„เบทเบ™เปƒเปเปˆ. เปƒเบ™ Intel x86, the -mstackrealign เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบˆเบฐโ€‹เบชเป‰เบฒเบ‡โ€‹
prologue เบชเบณเบฎเบญเบ‡ เปเบฅเบฐ epilogue เบ—เบตเปˆเบˆเบฑเบ”เบงเบฒเบ‡ stack-time เบ„เบทเบ™เปƒเปเปˆเบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™.
เบ™เบตเป‰เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบฅเบฐเบซเบฑเบ”เป€เบเบปเปˆเบฒเบ—เบตเปˆเบฎเบฑเบเบชเบฒ 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 เบ‚เบญเบšเป€เบ‚เบ”. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เป‚เบกเบ”เบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบ -mpreferred-stack-boundary=3,
เบฅเบงเบกเบ—เบฑเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปƒเบ”เป†. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบฐเบšเบปเบšเปเบฅเบฐเป‚เบกเบ”เบนเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mincoming-stack-boundary=num
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ stack เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™เบเบฑเบš 2 เบเบปเบเบ‚เบถเป‰เบ™เบกเบฒ num เบ‚เบญเบšเป€เบ‚เบ” byte. เบ–เป‰เบฒ
-mincoming-stack-เป€เบ‚เบ”เปเบ”เบ™ เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹, เบซเบ™เบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹
-mpreferred-stack-เป€เบ‚เบ”เปเบ”เบ™ เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

เปƒเบ™ Pentium เปเบฅเบฐ PentiumPro, เบ„เปˆเบฒ "double" เปเบฅเบฐ "double เบเบฒเบง" เบ„เบงเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเบเบฑเบšเบ„เปˆเบฒ.
เบ‚เบญเบšเป€เบ‚เบ” 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
-mno-mmx
-msse
-mno-sse
-msse2
-mno-sse2
-msse3
-mno-sse3
-mssse3
-mno-ssse3
-msse4.1
-mno-sse4.1
-msse4.2
-mno-sse4.2
-msse4
-mno-sse4
-mavx
-mno-avx
-mavx2
-mno-avx2
- เปเบกเปˆ
-mno-aes
-mpclmul
-mno-pclmul
-mfsgsbase
-mno-fsgsbase
-mrdrnd
-mno-rdrnd
-mf16c
-mno-f16c
-mfma
-mno-fma
-msse4a
-mno-sse4a
-mfma4
-mno-fma4
-mxop
-mno-xop
-mlwp
-mno-lwp
-m3dnow
-mno-3dnow
-mpopcnt
-mno-popcnt
- mabm
-mno-abm
-mbmi
-mbmi2
-mno-bmi
-mno-bmi2
-mlzcnt
-mno-lzcnt
-mtbm
-mno-tbm
เบชเบฐเบงเบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ›เบตเบ” เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเปƒเบ™ MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, F16C, FMA, SSE4A, FMA4, XOP,
LWP, ABM, BMI, BMI2, LZCNT เบซเบผเบท 3DNow!
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบ. เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เบกเบตเบขเบนเปˆเปƒเบ™เบ•เบปเบง
เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹: เป€เบšเบดเปˆเบ‡โ€‹ X86 Built-in เบซเบ™เป‰เบฒเบ—เบตเปˆ, เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปเบฅเบฐ
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ›เบธเปˆเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE/SSE2 เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบˆเบธเบ”เบฅเบญเบ (เป€เบ›เบฑเบ™
เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบš 387 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ), เป€เบšเบดเปˆเบ‡ -mfpmath=sse.

GCC depresses SSEx เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -mavx เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบกเบฑเบ™เบชเป‰เบฒเบ‡ AVX เปƒเปเปˆ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบทเบเบฒเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒ AVX เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSEx เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

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

-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 เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”
เป€เบญเบปเบฒเบชเบนเบ™เบžเบฒเบเปƒเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบญเบญเบ.

-mprefer-avx128
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฑเปˆเบ‡เปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ 128-bit AVX เปเบ—เบ™ AVX 256-bit
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™ auto-vectorizer.

-mcx16
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ CMPXCHG16B เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™.
CMPXCHG16B เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปƒเบ™ 128-bit double quadword (เบซเบผเบท oword) เบ‚เปเป‰เบกเบนเบ™
เบ›เบฐเป€เบžเบ”. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ™เบฑเบšเบ„เบงเบฒเบกเบฅเบฐเบญเบฝเบ”เบชเบนเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰เป‚เบ”เบเบซเบผเบฒเบ
เป‚เบ›เป€เบŠเบ”เป€เบŠเบต (เบซเบผเบทเปเบเบ™). เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เบญเบฒเบ•เบญเบกเปƒเบ™เบ•เบปเบง
เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹: เป€เบšเบดเปˆเบ‡โ€‹ __เบŠเบดเป‰เบ‡ เป€เบเบตเบ”เบ‚เบถเป‰เบ™ or __เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน เป€เบเบตเบ”เบ‚เบถเป‰เบ™ เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

-msahf
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SAHF เปƒเบ™เบฅเบฐเบซเบฑเบ” 64-เบšเบดเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบ•เบปเป‰เบ™
CPUs Intel เบเบฑเบš Intel 64 เบ‚เบฒเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ LAHF เปเบฅเบฐ SAHF เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ AMD64 เบˆเบปเบ™เบเปˆเบงเบฒ
เบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™ Pentium 4 G1 เปƒเบ™เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒ 2005. LAHF เปเบฅเบฐ SAHF เปเบกเปˆเบ™เบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบชเปเบฒเบฅเบฑเบšเบ—เบธเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เปƒเบ™เป‚เบซเบกเบ” 64-bit, SAHF
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš "fmod", "drem" เบซเบผเบท "เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญ" เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™: เป€เบšเบดเปˆเบ‡
เบญเบทเปˆเบ™ เป† เป€เบเบตเบ”เบ‚เบถเป‰เบ™ เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”.

- mmovbe
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ movbe เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ” "__builtin_bswap32"
เปเบฅเบฐ "__builtin_bswap64".

-mcrc32
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปƒเบ™เบ•เบปเบง, "__builtin_ia32_crc32qi",
"__builtin_ia32_crc32hi". "__builtin_ia32_crc32si" เปเบฅเบฐ "__builtin_ia32_crc32di" เป€เบ›เบฑเบ™
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ crc32.

-mrecip
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ RCPSS เปเบฅเบฐ RSQRTSS (เปเบฅเบฐเบžเบงเบเบกเบฑเบ™
vectorized variants RCPPS เปเบฅเบฐ RSQRTPS) เบเบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™ Newton-Raphson เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ DIVSS เปเบฅเบฐ SQRTSS (เปเบฅเบฐเบ•เบปเบงเปเบ› vectorized เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ) เบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™เป‚เบ•เป‰เปเบเป‰เบ‡เบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญ
-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=เป€เบฅเบทเบญเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เป€เบฅเบทเบญเบ
เปเบกเปˆเบ™เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เบณเปœเป‰เบฒเบ”เป‰เบงเบ "!" เบเบฑเบš invert เป„เบ”เป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ: "เบ—เบฑเบ‡เปเบปเบ”": เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ—เบฑเบ‡เปเบปเบ”, "เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™": เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เป€เบ—เบปเปˆเบฒเบเบฑเบš -mrecip, "none": เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ—เบฑเบ‡เปเบปเบ”,
เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -mno-recip, "div": เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ‚เบฑเป‰เบ™,
"vec-div": เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡ vectorized, "sqrt": เป€เบ›เบตเบ”เปƒเบŠเป‰
approximation for scalar square root, "vec-sqrt": เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบชเปเบฒเบฅเบฑเบš
เบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบก vectorized.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, -mrecip=เบ—เบฑเบ‡เปเบปเบ”,!sqrt เบˆเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบกเบฒเบ™โ€‹เป€เบŠเบดเปˆเบ‡โ€‹เบเบฑเบ™โ€‹เปเบฅเบฐโ€‹เบเบฑเบ™โ€‹,
เบเบปเบเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบก.

-mveclibabi=เบ›เบฐเป€เบžเบ”
เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ” ABI เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบชเบณเบฅเบฑเบš vectorizing intrinsics เป‚เบ”เบเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบžเบฒเบเบ™เบญเบ.
เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™ "svml" เบชเปเบฒเบฅเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เบชเบฑเป‰เบ™ vector เบ‚เบญเบ‡ Intel เปเบฅเบฐ "acml" เบชเปเบฒเบฅเบฑเบš
เบฎเบนเบšเปเบšเบšเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบซเบผเบฑเบเบ„เบฐเบ™เบดเบ”เบชเบฒเบ” AMD เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ 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 เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐ "__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 เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ—เบฑเบ‡เบชเบญเบ‡ -ftree-vectorize เปเบฅเบฐ -funsafe-math-optimizations เบกเบต
เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš SVML เบซเบผเบท ACML ABI เบˆเบฐเบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบฅเบดเป‰เบ‡
เป€เบงเบฅเบฒ.

-mabi=เบŠเบทเปˆ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบฅเบฐเบšเบธ. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™: sysv เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
ABI เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ GNU/Linux เปเบฅเบฐเบฅเบฐเบšเบปเบšเบญเบทเปˆเบ™เป† เปเบฅเบฐ ms เบชเปเบฒเบฅเบฑเบš Microsoft ABI. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ Microsoft ABI เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ 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 เบŸเบฑเบ‡เบŠเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™เปƒเบ™ CPUs เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ
เบซเบผเบธเบ”เบฅเบปเบ‡เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช, เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเปเบฅเบฐเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เปƒเบŠเป‰ stack เป€เบกเบทเปˆเบญ stack เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
เบ‚เบญเบšเป€เบ‚เบ”เบšเปเปˆเป€เบ—เบปเปˆเบฒเบเบฑเบš 2. เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบฑเบ‡เป€เบเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบ™เบตเป‰
เบชเบฐเบซเบผเบฑเบšเปเบฒเบเป€เบ–เบดเบ‡ -mno-push-args.

-mthreads
เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบžเบเบฐเบ—เบนเป‰ Mingw32. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ 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=เบžเบถเบŠเบฐเบ„เบฐเบ™เบดเบ”
เบ‚เบฝเบ™เบ—เบฑเบšเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบžเบฒเบเปƒเบ™ heuristic เบเปˆเบฝเบงเบเบฑเบš algorithm เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป€เบžเบทเปˆเบญ inline string
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบเบฑเบšโ€‹. เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™ "rep_byte", "rep_4byte", "rep_8byte" เบชเปเบฒเบฅเบฑเบš
เบ‚เบฐเบซเบเบฒเบเป‚เบ”เบเปƒเบŠเป‰ i386 "rep" เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, "byte_loop", "loop",
"unrolled_loop" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ loop inline, "libcall" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบฐเป€เบซเบกเบต
เป‚เบ—เบซเบฒ.

-momit-leaf-frame-pointer
เบขเปˆเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเบŠเบตเป‰เบเบญเบšเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ™เบตเป‰เบซเบผเบตเบเบฅเป‰เบฝเบ‡เบเบฒเบ™
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹, เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบเบญเบšโ€‹เปเบฅเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹
เบกเบตเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เปƒเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ -fomit-frame-pointer เป€เบญเบปเบฒเบเบญเบš
เบ•เบปเบงเบŠเบตเป‰เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เบตเบšเบฑเบเบเบฒเบเบ‚เบถเป‰เบ™.

-mtls-direct-seg-refs
-mno-tls-direct-seg-refs
เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบ•เบปเบงเปเบ› TLS เบญเบฒเบ”เบˆเบฐเบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™ TLS
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ (%gs เบชเปเบฒเบฅเบฑเบš 32-bit, %fs เบชเปเบฒเบฅเบฑเบš 64-bit), เบซเบผเบทเบงเปˆเบฒเบ•เบปเบงเบŠเบตเป‰เบ–เบฒเบ™ thread เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™.
เป€เบžเบตเปˆเบก. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ—เบฒเบ‡โ€‹เบ”เป‰เบฒเบ™โ€‹เบเบปเบ”โ€‹เบซเบกเบฒเบโ€‹เบซเบผเบทโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบ‚เบถเป‰เบ™โ€‹เบเบฑเบšโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹, เปเบฅเบฐโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹
เปเบœเบ™เบ—เบตเปˆเบžเบฒเบเบชเปˆเบงเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบงเบกเป€เบญเบปเบฒเบžเบทเป‰เบ™เบ—เบตเปˆ TLS เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเปƒเบŠเป‰ GNU libc, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบ›เบตเบ”.

-msse2avx
-mno-sse2avx
เบฅเบฐเบšเบธเบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเบ„เบงเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ SSE เบ”เป‰เบงเบเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ VEX. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
-mavx เป€เบ›เบตเบ”เบญเบฑเบ™เบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mfentry
-mno-fentry
เบ–เป‰เบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰ - เปœเป‰เบฒ เป€เบญเบปเบฒเบเบฒเบ™เป‚เบ—เบซเบฒ counter profile เบเปˆเบญเบ™ prologue. เปเบฒเบเป€เบซเบ”: เป€เบ›เบตเบ”
x86 เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "ms_hook_prologue" เปเบกเปˆเบ™เบšเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™เบ‚เบฐเบ™เบฐเบ™เบตเป‰
-mfentry เปเบฅเบฐ - เปœเป‰เบฒ.

-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 เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ.

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบชเบฐเบงเบดเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบเปˆเบฝเบงเบเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD x86-64 เปƒเบ™
เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 64-bit.

-m32
-m64
-mx32
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบซเบผเบท 64-bit. เป„เบ”เป‰ -m32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปเบฒเบ™เบปเบ” int, เบเบฒเบงเปเบฅเบฐ
เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒ 32 bits เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš i386 เปƒเบ”. เป„เบ”เป‰ -m64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ•เบฑเป‰เบ‡ int เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐเบเบฒเบงเปเบฅเบฐ pointer เป€เบ›เบฑเบ™ 64 bits เปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš AMD's
x86-64 เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ. เป„เบ”เป‰ -mx32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเปเบฒเบ™เบปเบ” int, เบเบฒเบงเปเบฅเบฐ pointer เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐ
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ x86-64 เบ‚เบญเบ‡ AMD. เบชเปเบฒเบฅเบฑเบš darwin เบžเบฝเบ‡เปเบ•เปˆ -m64 เบซเบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ›เบดเบ” -fno-pic เปเบฅเบฐ -mdynamic-no-pic เบ•เบปเบงเป€เบฅเบทเบญเบ

-mno-red-zone
เบขเปˆเบฒเปƒเบŠเป‰เป€เบ‚เบ”เบชเบตเปเบ”เบ‡เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ x86-64. เป€เบ‚เบ”โ€‹เบชเบตโ€‹เปเบ”เบ‡โ€‹เปเบกเปˆเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป‚เบ”เบโ€‹
x86-64 ABI, เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ 128-byte เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰ stack เบ—เบตเปˆเบˆเบฐ
เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ”เบฑเบ”โ€‹เปเบเป‰โ€‹เป‚เบ”เบโ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบซเบผเบทโ€‹เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡ handlers เปเบฅเบฐโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™
เบ‚เปเป‰เบกเบนเบ™เบŠเบปเปˆเบงเบ„เบฒเบงเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบŠเบตเป‰ 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.

i386 เปเบฅเบฐ x86-64 Windows เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบกเบตโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบ Windowsโ€‹:

-mconsole
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ console
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™, เป‚เบ”เบเปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบซเบปเบงเบ‚เปเป‰ PE
เบ›เบฐเป€เบžเบ”เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ console. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš
Cygwin เปเบฅเบฐ MinGW เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mdll
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ DLL - a
เบซเปเบชเบฐเบซเบกเบธเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง - เปเบกเปˆเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™
runtime startup object เปเบฅเบฐเบˆเบธเบ”เป€เบ‚เบปเป‰เบฒ.

-mnop-fun-dllimport
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹
dllimport attribute เบ„เบงเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.

-mthread
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ MinGW. เบกเบฑเบ™เบฅเบฐเบšเบธเบงเปˆเบฒเบเบฐเบ—เบนเป‰เบชเบฐเป€เบžเบฒเบฐ MinGW
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-municode
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ mingw-w64. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบกเบฐเบซเบฒเบžเบฒเบ UNICODE
เบเปเบฒเบฅเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเปเบฅเบฐเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ runtime เบชเบฒเบกเบฒเบ” unicode เป„เบ”เป‰เบ–เบทเบเป€เบฅเบทเบญเบ.

-mwin32
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบ›เบปเบเบเบฐเบ•เบด
เป€เบกเป‚เบ„เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เปœเป‰เบฒเบ‚เบญเบ‡ Windows เบˆเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™, เปเบ•เปˆเบšเปเปˆเบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” runtime / เบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ GUI
เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบซเบปเบงเบ‚เปเป‰ PE
เบ›เบฐเป€เบžเบ”เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบขเปˆเบฒเบ‡เป€เปเบฒเบฐเบชเบปเบก.

-fno-set-stack-executable
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบ—เบธเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš
เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡ stack เบ—เบตเปˆเปƒเบŠเป‰เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš binaries เปเบฅเปˆเบ™เปƒเบ™
เบฎเบนเบšเปเบšเบš kernel เบ‚เบญเบ‡ Windows, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบต user32 API, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”, เบšเปเปˆเบกเบตเปƒเบซเป‰.

-mpe-aligned-commons
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเปƒเบซเป‰เบชเบณเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบ Cygwin เปเบฅเบฐ MinGW. เบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ GNU
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป„เบ›เบซเบฒเบฎเบนเบšเปเบšเบšเป„เบŸเบฅเปŒ PE เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบˆเบฑเบ”เบฎเบฝเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบ•เบปเบงเปเบ› COMMON
เบ„เบงเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”. เบกเบฑเบ™เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ GCC เบเบงเบ”เบžเบปเบš
เบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบเบญเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”.

เป€เบšเบดเปˆเบ‡เบžเบฒเบเปƒเบ•เป‰ i386 เปเบฅเบฐ x86-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

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
เบขเปˆเบฒ (เบซเบผเบทเป€เบฎเบฑเบ”) เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบ›เบฐเบเบญเบšเบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบเป€เบฅเบเปเบ–เบง DWARF2. เบ™เบตเป‰
เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบกเบทเปˆเบญเบšเปเปˆเปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบเบญเบš GNU.

-mearly-stop-bits
-mno-early-stop-bits
เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบšเบดเบ”โ€‹เบขเบธเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบงเบฒเบ‡โ€‹เป„เบงโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบเปˆเบญเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ—เบตเปˆโ€‹
เบเบฐเบ•เบธเป‰เบ™เบˆเบธเบ”เบขเบธเบ”. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบตเป„เบ›
เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™.

-mfixed-range=เป„เบฅเบเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบดเปˆเบ™เบ›เบปเบงเบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปƒเบซเป‰เบกเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ
เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบตเปˆเบœเบนเป‰เบˆเบฑเบ”เบชเบฑเบ™เบ—เบฐเบšเบฝเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบก kernel
เบฅเบฐเบซเบฑเบ”. เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เบฅเบฐเบšเบธเป„เบงเป‰เป€เบ›เบฑเบ™เบชเบญเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบเบเบญเบญเบเป‚เบ”เบ dash. เบซเบผเบฒเบ
เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเบšเบธเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

-mtls-size=tls-size
เบฅเบฐเบšเบธเบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบ TLS เบ—เบฑเบ™เบ—เบต. เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™ 14, 22, เปเบฅเบฐ 64.

-mtune=cpu-type
เบ›เบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบชเบญเบ™เบชเปเบฒเบฅเบฑเบš CPU เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™ itanium,
itanium1, Merced, 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' เปƒเบ™เบเบธเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบˆเปเบฒเบเบฑเบ”
เปเบกเปˆเบ™ 'เบญเปˆเบญเบ™' เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป€เบกเบทเปˆเบญเป€เบ–เบดเบ‡เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”
เบญเบฒเบ”เบˆเบฐเบเบฑเบ‡เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ.

IA-64/VMS เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” IA-64/VMS:

-mvms-return-codes
เบชเบปเปˆเบ‡เบ„เบทเบ™เบฅเบฐเบซเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ VMS เบˆเบฒเบเบซเบผเบฑเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เบทเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบฎเบนเบšเปเบšเบš POSIX
(เป€เบŠเบฑเปˆเบ™: เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”) เบฅเบฐเบซเบฑเบ”.

-mdebug-main=เบ„เบณ เบ™เบณ เปœเป‰เบฒ
เปเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบ›เบฐเบˆเบณเบ—เบณเบญเบดเบ”เบ—เบตเปˆเบŠเบทเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ เบ„เบณ เบ™เบณ เปœเป‰เบฒ เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™
เบ”เบตเบšเบฑเบ.

- mmalloc64
เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบเบดเบ”เบˆเบฐเบงเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ 64-เบšเบดเบ”.

LM32 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Lattice Mico32:

-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-เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบต a
เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ GCC เป€เบžเบทเปˆเบญเบ›เบฑเบšเบฅเบฐเบซเบฑเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เปเบฅเบฐ
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ—เบธเบเป‚เบกเบ”เบนเบ™เปƒเบ™ a
เป‚เบ›เบฅเปเบเบฅเบกเบ•เป‰เบญเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰. เบเป‰เบญเบ™เปเบ™เบงเบ™เบฑเป‰เบ™, เป€เบˆเบปเป‰เบฒ
เบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” runtime เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ gcc builds.

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=เบšเปเปˆเบกเบต
เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเปœเบฒเบ”เบ™เป‰เบญเบ. เบ•เบปเบงเปเบ›เบˆเบฐเบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ .เบ‚เปเป‰เบกเบนเบ™, bsss, เบซเบผเบท
.rodata (เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเป„เบ”เป‰เบฅเบฐเบšเบธเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "เบžเบฒเบเบชเปˆเบงเบ™"). เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบžเบฒเบเบชเปˆเบงเบ™เบ•เปˆเบฒเบ‡เป† .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 เบเปเบฒเบ™เบปเบ” macro __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 51cn 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 เบเบฑเบ‡เบเปเบฒเบ™เบปเบ” macro __เบกเบญเบนเบฃ__ เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ›เบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบเบฐโ€‹เบเปเบฒโ€‹เบˆเบธโ€‹เบฅเบฐโ€‹เบžเบฒเบ 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".

- เบšเบดเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบดเบ” - bit test ("btstm"), set ("bsetm"), เบŠเบฑเบ”เป€เบˆเบ™
("bclrm"), invert ("bnotm"), เปเบฅเบฐ test-and-set ("tas").

-mc=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เปƒเบ”เบˆเบฐเบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™. เบŠเบทเปˆ เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ "เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ", "เปƒเบเป‰", เบซเบผเบท
"เป„เบ".

-mclip
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "clip". เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ "-mclip" เบšเปเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเบฑเบ‡
เปƒเบซเป‰ "-mminmax".

-mconfig=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเปœเบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบผเบฑเบเบ‚เบญเบ‡เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡. เปเบ•เปˆเบฅเบฐเบŠเบดเบš MeP เบกเบตเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™
เป‚เบกเบ”เบนเบ™เปƒเบ™เบกเบฑเบ™; เปเบ•เปˆเบฅเบฐเป‚เบกเบ”เบนเบ™เบกเบต CPU เบซเบผเบฑเบ เปเบฅเบฐเบซเบผเบฒเบเบซเบผเบฒเบเบ‚เบญเบ‡ coprocessors, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบ•เปเปˆเบžเปˆเบงเบ‡. เป€เบ„เบทเปˆเบญเบ‡เบกเบท "MeP-Integrator", เบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ GCC, เบชเบฐเบซเบ™เบญเบ‡
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰; เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”
เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ "เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™".

-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 bytes เบซเบผเบทเบ™เป‰เบญเบเบเบงเปˆเบฒเบˆเบฐเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เปƒเบซเป‰เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™ ".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 เปเบกเปˆเบ™เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰
เบฅเบฐเบซเบฑเบ”. เบ„เปˆเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™ 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-check เปเบ—เบ™.

-mxl-gp-opt
เปƒเบŠเป‰เบžเบฒเบเบชเปˆเบงเบ™ GP relative sdata/sbss.

-mxl-เบ„เบนเบ™-เบชเบนเบ‡
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบนเบ‡เบ„เบนเบ™เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบชเบนเบ‡เบ‚เบญเบ‡ 32x32 เบ„เบนเบ™.

-mxl-float-เปเบ›เบ‡
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เปเบ›เบ‡เบˆเบธเบ”เบฅเบญเบเบฎเบฒเบ”เปเบง.

-mxl-float-sqrt
เปƒเบŠเป‰เบเบฒเบ™เบชเบญเบ™เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง.

-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, เป„เบก64 เปเบฅเบฐ mips64r2. เบŠเบทเปˆเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบกเปˆเบ™: 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, 74kc, 74kf2_1, 74kf1_1, 74kf3_2, 1004kc, 1004kf2_1,
1004kf1_1, loongson2e, loongson2f, loongson3a, M4K, octeon, octeon+, octeon2, orion,
r2000, r3000, r3900, r4000, r4400, r4600, r4650, r6000, r8000, rm7000, rm9000, r10000,
r12000, r14000, r16000, sb1, sr71000, vr4100, vr4111, vr4120, vr4130, vr4300, vr5000,
vr5400, vr5500 เปเบฅเบฐ xlr. เบกเบนเบ™เบ„เปˆเบฒเบžเบดเป€เบชเบ” เบˆเบฒเบ-abi เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹
เบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบชเปเบฒเบฅเบฑเบš ABI เบ—เบตเปˆเป€เบฅเบทเบญเบ (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป„เบก1 เบชเปเบฒเบฅเบฑเบš 32-bit ABIs เปเบฅเบฐ เป„เบก3 เบชเปเบฒเบฅเบฑเบš 64-bit
ABIs).

Native Linux/GNU เปเบฅเบฐ IRIX toolchains เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบนเบ™เบ„เปˆเบฒ 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 to "r2000" เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบกเบฐเบซเบฒเบžเบฒเบ _MIPS_ARCH_R2000.

เบซเบกเบฒเบเป€เบซเบ”เบงเปˆเบฒ _MIPS_ARCH macro เปƒเบŠเป‰เบŠเบทเปˆเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†,
เบกเบฑเบ™เบˆเบฐเบกเบตเบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒเป€เบ•เบฑเบกเปเบฅเบฐเบˆเบฐเบšเปเปˆเบซเบเปเป‰ 000 as k. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ เบˆเบฒเบ-
เบŠเปˆเบงเบเป€เบซเบฅเบทเบญ, เบกเบฐเบซเบฒเบžเบฒเบเบ•เบฑเป‰เบ‡เบŠเบทเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ—เบตเปˆเปเบเป‰เป„เบ‚เปเบฅเป‰เบง (เบ—เบฑเบ‡ "mips1" or "mips3"). เบกเบฑเบ™เบŠเบทเปˆ
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ เบเบณ เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเบšเปเปˆเบกเบต - เบกเบตเบ™เบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เปƒเบซเป‰.

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

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

-mtune เบเปเบฒเบ™เบปเบ” macro เป„เบ”เป‰ _MIPS_TUNE เปเบฅเบฐ _MIPS_TUNE_เบŸเบน, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš
เป„เบ”เป‰ - เบกเบตเบ™เบฒ เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

-mips1
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips1.

-mips2
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips2.

-mips3
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips3.

-mips4
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips4.

-mips32
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips32.

-mips32r2
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips32r2.

-mips64
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips64.

-mips64r2
เป€เบ—เบปเปˆเบฒเบเบฑเบš -march=mips64r2.

-mips16
-mno-mips16
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ” MIPS16. เบ–เป‰เบฒ GCC เบเปเบฒเบฅเบฑเบ‡เบ•เบฑเป‰เบ‡เป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบชเปˆ MIPS32 เบซเบผเบท MIPS64
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ, เบกเบฑเบ™เบˆเบฐเบ™เปเบฒเปƒเบŠเป‰ MIPS16e ASE.

เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ” MIPS16 เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™
"mips16" เปเบฅเบฐ "nomips16" เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ.

-mflip-mips16
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” MIPS16 เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบชเบฐเบซเบผเบฑเบš. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ–เบปเบ”เบ–เบญเบ
เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบฅเบฐโ€‹เบซเบฑเบ” MIPS16 / เบšเปเปˆโ€‹เปเบกเปˆเบ™ MIPS16 เบ›เบฐโ€‹เบชเบปเบกโ€‹, เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบกเบตโ€‹เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบกเบฐโ€‹เบ”เบฒโ€‹
เปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰.

-minterlink-mips16
-mno-interlink-mips16
เบฎเบฝเบโ€‹เบฎเป‰เบญเบ‡โ€‹เปƒเบซเป‰ (เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™) เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™ MIPS16 เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบ—เบตเปˆโ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบเบฑเบšโ€‹เบฅเบฐโ€‹เบซเบฑเบ” MIPS16.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ MIPS16 เบšเปเปˆเบชเบฒเบกเบฒเบ”เป„เบ›เบซเบฒเบฅเบฐเบซเบฑเบ” MIPS16 เป‚เบ”เบเบเบปเบ‡เป„เบ”เป‰; เบกเบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ a
เป‚เบ—เบซเบฒเบซเบผเบทเบเบฐเป‚เบ”เบ”เบ—เบฒเบ‡เบญเป‰เบญเบก. -minterlink-mips16 เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ›เบดเบ”เบเบฒเบ™เป‚เบ”เบ”เป‚เบ”เบเบเบปเบ‡เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆ
GCC เบฎเบนเป‰เบงเปˆเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบเบฐเป‚เบ”เบ”เบšเปเปˆเปเบกเปˆเบ™ MIPS16.

-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.

เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เปเบฅเบฐเบ„เปˆเบฒเบเบฑเบšเบ„เบทเบ™เบเบฑเบ‡เบ„เบปเบ‡เบ„เบทเบเบฑเบ™, เปเบ•เปˆเปเบ•เปˆเบฅเบฐเบ„เบปเบ™
เบ„เปˆเบฒ scalar เปเบกเปˆเบ™เบœเปˆเบฒเบ™เบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™ 64-bit เบ”เบฝเบงเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ„เบนเปˆเบ‚เบญเบ‡ 32-bit
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ„เปˆเบฒเบˆเบธเบ”เป€เบฅเบทเปˆเบญเบ™ scalar เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบ™ $f0 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เบšเปเปˆเปเบกเปˆเบ™ a
$f0/$f1 เบ„เบนเปˆ. เบŠเบธเบ”เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป‚เบ—เบšเบฑเบ™เบ—เบถเบเบเบฑเบ‡เบ„เบทเบเบฑเบ™, เปเบ•เปˆเบ—เบฑเบ‡เบซเบกเบปเบ” 64 bits
เบ–เบทเบเบšเบฑเบ™เบ—เบทเบ.

- 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 เบšเบดเบ”.

-mhard-float
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบˆเบธเบ”เบฅเบญเบ.

-msoft-float
เบขเปˆเบฒเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบšเบšเบˆเบธเบ”เบฅเบญเบ. เบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰
เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เป‚เบ”เบโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เป‚เบ—โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹.

-msingle-float
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

-mdouble-float
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ. เบ™เบตเป‰
เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-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 to 1

-MDSPR2
-mno-dspr2
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) เบเบฒเบ™เปเบเป‰เป„เบ‚ 2 เบ‚เบญเบ‡ MIPS DSP ASE.
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ” macro preprocessor __mips_dsp เปเบฅเบฐ __mips_dspr2. เบกเบฑเบ™เบเบฑเบ‡
เบเปเบฒเบ™เบปเบ” __mips_dsp_rev to 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 - เบ„เบนเปˆเบ”เบฝเบง.

-mmt
-mno-mt
เปƒเบŠเป‰ (เบšเปเปˆเปƒเบŠเป‰) MT Multithreading เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-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". เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบšเบนเบ”
เบˆเปเบžเบฒเบš, เป‚เบ›เบฃเปเบเบฃเบกเบ—เบตเปˆเป€เบญเบตเป‰เบ™ boot monitor routines เบˆเบฐเบœเปˆเบฒเบ™เบ„เปˆเบฒเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™ $gp.
(เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, boot monitor เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบกเบฑเบเบˆเบฐเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบ 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. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
is -mno-memcpy, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบขเบนเปˆเปƒเบ™เปเบ–เบงเบ‚เบญเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ„เบปเบ‡เบ—เบตเปˆเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”.

-mlong-เป‚เบ—
-mno-long-calls
เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ (เบซเป‰เบฒเบกเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "jal". เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰ "jal"
เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เปเบ•เปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบœเบนเป‰เป‚เบ—เปเบฅเบฐเบœเบนเป‰เป‚เบ—เบขเบนเปˆเปƒเบ™ 256 megabyte เบ”เบฝเบงเบเบฑเบ™
เบชเปˆเบงเบ™เปเบšเปˆเบ‡.

เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบฅเบฐเบซเบฑเบ” abicalls. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-long-calls.

- เบšเป‰เบฒ
-mno-mad
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "mad", "madu" เปเบฅเบฐ "mul", เบ•เบฒเบกเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบ
R4650 ISA.

-mfused-madd
-mno-fused-madd
เป€เบ›เบตเบ”เปƒเบŠเป‰ (เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰ multiply-accumulate, เป€เบกเบทเปˆเบญเบžเบงเบเป€เบ‚เบปเบฒ
เบกเบตเบขเบนเปˆ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mfused-madd.

เป€เบกเบทเปˆเบญเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ„เบนเบ™เบชเบฐเบชเบปเบกเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบˆเบฐเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆ
เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบญเบฑเบ™เป€เบ›เบฑเบ™เบ™เบดเบ” เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš FCSR Flush เบเบฑเบš Zero bit. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™
เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เปƒเบ™โ€‹เบšเบฒเบ‡โ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เบเบฒเบ™โ€‹.

-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-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, เป„เบ”เป‰
เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ„เบชเป„เบงเป‰เบˆเบฐเบ‚เบฝเบ™เบ—เบฑเบšเบ‚เปเป‰เบกเบนเบ™ 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 or __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-synci", เปเบ•เปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒ.
เบ”เป‰เบงเบ "--with-sync".

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

-mrelax-pic-เป‚เบ—
-mno-relax-pic-calls
เบžเบฐเบเบฒเบเบฒเบกเบ›เปˆเบฝเบ™เบเบฒเบ™เป‚เบ— PIC เบ—เบตเปˆเบ›เบปเบเบเบฐเบ•เบดเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ $25 เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡.
เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเบ–เป‰เบฒ
เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเป‚เบ”เบเบเบปเบ‡.

-mrelax-pic-เป‚เบ— เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เป‰เบฒ GCC เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เปƒเบŠเป‰เบ•เบปเบงเบ›เบฐเบเบญเบš เปเบฅเบฐ a
เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบš ".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 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”
macro preprocessor __NO_SETLB__.

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 เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "rl78".
เปเบกเปˆเบ™เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ„เบนเบ™เบฎเบฒเบ”เปเบงเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เบ„เบนเปˆเบกเบทเบŠเบญเบšเปเบง RL78.

IBM RS / 6000 เปเบฅเบฐ เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ PC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš IBM RS/6000 เปเบฅเบฐ PowerPC:

- เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹
-mno เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹
- เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™ 2โ€‹
-mno-power2
-mpowerpc
-mno-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 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบš RS/6000 เปเบฅเบฐ PowerPC.
เป„เบ”เป‰ POWER เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ เปเบกเปˆเบ™เป‰เปเบฒ เบŠเบธเบ”เบŠเบดเบšเบ—เบตเปˆเปƒเบŠเป‰
เปƒเบ™เบฅเบฐเบšเบปเบš RS / 6000 เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปเบฅเบฐ เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ PC เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡
Freescale MPC5xx, MPC6xx, MPC8xx microprocessors, เปเบฅเบฐ IBM 4xx, 6xx, เปเบฅเบฐ
microprocessors เบ•เบดเบ”เบ•เบฒเบก.

เบ—เบฑเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบเปˆเบญเบเบ‚เบญเบ‡เบญเบฑเบ™เบญเบทเปˆเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบตเบŠเบธเบ”เบเปˆเบญเบเบ—เบปเปˆเบงเป„เบ›เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบ—เบฑเบ‡เบชเบญเบ‡. เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ MQ เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต
เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ POWER.

เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™
เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเบณเบ™เบปเบ”เป€เบกเบทเปˆเบญเบเบณเบ™เบปเบ”เบ„เปˆเบฒ GCC.
เบเบฒเบ™โ€‹เบฅเบฐโ€‹เบšเบธ -mcpu=cpu_type overrides เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบžเบงเบเป€เบฎเบปเบฒ
เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰ -mcpu=cpu_type เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เป„เบ”เป‰ - เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ POWER เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™ MQ. เบเบฒเบ™เบฅเบฐเบšเบธ - เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™ 2โ€‹ implies -เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ เปเบฅเบฐ
เบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ POWER2
เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ POWER เป€เบ”เบตเบก.

เป„เบ”เป‰ -mpowerpc เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™
เบŠเบธเบ”เบเปˆเบญเบ 32-bit เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC. เบเบฒเบ™เบฅเบฐเบšเบธ -mpowerpc-gpopt implies
-mpowerpc เปเบฅเบฐเบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ PowerPC เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™
เบเบธเปˆเบกเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบปเปˆเบงเป„เบ›, เบฅเบงเบกเบ—เบฑเบ‡เบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบกเบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เบเบฒเบ™เบฅเบฐเบšเบธ
-mpowerpc-gfxopt implies -mpowerpc เปเบฅเบฐเบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ 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.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ—เบฑเบ‡เบชเบญเบ‡ -mno เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹ เปเบฅเบฐ -mno-powerpc, GCC เบˆเบฐเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™
เบŠเบธเบ”เบเปˆเบญเบเบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบฑเบ‡เบชเบญเบ‡เบšเบงเบเบเบฑเบšเบšเบฒเบ‡เบเบฒเบ™เป‚เบ—เปเบšเบšเบžเบดเป€เบชเบ” AIX เบ—เบปเปˆเบงเป„เบ›, เปเบฅเบฐ
เบˆเบฐเบšเปเปˆเปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ MQ. เบฅเบฐเบšเบธเบ—เบฑเบ‡เบชเบญเบ‡ - เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹ เปเบฅเบฐ -mpowerpc เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ GCC
เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ”เป†เบˆเบฒเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ MQ;
เบฅเบฐเบšเบธเบญเบฑเบ™เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบš Motorola MPC601.

-mnew-mnemonics
- mold-mnemonic
เป€เบฅเบทเบญเบ mnemonics เปƒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ” assembler เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบเบฑเบš -mnew-mnemonics,
GCC เปƒเบŠเป‰ assembler mnemonics เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เบชเบณเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC. เบเบฑเบš
- mold-mnemonic เบกเบฑเบ™เปƒเบŠเป‰ assembler mnemonics เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ POWER.
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡ mnemonic; GCC เปƒเบŠเป‰เบกเบฑเบ™
mnemonic เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบฅเบฐเบšเบธ.

GCC เบเบณเบ™เบปเบ”เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™ mnemonics เบ—เบตเปˆเป€เปเบฒเบฐเบชเบปเบกเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ—เบตเปˆเปƒเบŠเป‰เบขเบนเปˆ. เบเบฒเบ™เบฅเบฐเบšเบธ
-mcpu=cpu_type เบšเบฒเบ‡เบ„เบฑเป‰เบ‡ overrides เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบเปเปˆเบชเป‰เบฒเบ‡
cross-compiler, เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบฅเบฐเบšเบธ -mnew-mnemonics or
- mold-mnemonic, เปเบ•เปˆเบ„เบงเบ™เบเบญเบกเบฎเบฑเบšเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบ—เบ™.

-mcpu=cpu_type
เบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ, เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡ mnemonics, เปเบฅเบฐเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ 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, ec603e, G3, G4, G5, titan, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™2, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™3, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™4, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™5,
เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ 5+, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™6, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ 6x, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™7, เบ—เบปเปˆเบงเป„เบ›, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™, powerpc64, เปเบกเปˆเบ™เป‰เปเบฒ, เปเบกเปˆเบ™เป‰ เบณ1, เปเบกเปˆเบ™เป‰ เบณ2, csr,
เปเบฅเบฐ rs64.

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

-mcpu=เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™, -mcpu=power2, -mcpu=powerpc, เปเบฅเบฐ -mcpu=powerpc64 เบฅเบฐเบšเบธเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ—เบปเปˆเบงเป„เบ›,
POWER2, โ€‹โ€‹PowerPC 32-bit เบšเปเบฅเบดเบชเบธเบ” (เป€เบŠเบฑเปˆเบ™, เบšเปเปˆเปเบกเปˆเบ™ MPC601), เปเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ PowerPC 64-bit
เบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ, เบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เบ„เบฒเบ”เบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ
เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡.

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

เป„เบ”เป‰ -mcpu เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบ›เบตเบ”เบซเบผเบทเบ›เบดเบ”เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

-maltivec -mfprnd -mhard-float -mmfcrf - เบซเบผเบฒเบ -mnew-mnemonics -mpopcntb
-mpopcntd - เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹ - เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™ 2โ€‹ -mpowerpc64 -mpowerpc-gpopt -mpowerpc-gfxopt
-msingle-float -mdouble-float -msimple-fpu -mstring - mmulhw -mdlmzb -mmfpgpr -mvsx

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš CPU เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบˆเบฐโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบชเบฐโ€‹เบšเบฑเบš compilerโ€‹,
เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš CPU เบ™เบฑเป‰เบ™; เบกเบฑเบ™เบšเปเปˆ
เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ•เบปเบงเบˆเบดเบ‡เบ‚เบญเบ‡เบฎเบฒเบ”เปเบง. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ‚เบญเบ‡โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เบ—เปˆเบฒเบ™โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบกเบฑเบ™โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹ -mcpu เบ—เบฒเบ‡เป€เบฅเบทเบญเบ,
เบ„เบท -mcpu=970 -mno-altivec.

เปƒเบ™ AIX, เป„เบ”เป‰ -maltivec เปเบฅเบฐ -mpowerpc64 เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เบซเบผเบทโ€‹เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เบ‡เบฒเบ™โ€‹เป‚เบ”เบโ€‹ -mcpu
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ AIX เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐ
เบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบซเบฒเบเบ—เปˆเบฒเบ™เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเปƒเบŠเป‰เป„เบ”เป‰เปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡เบ—เปˆเบฒเบ™
เบชเบดเปˆเบ‡เปเบงเบ”เบฅเป‰เบญเบก.

-mtune=cpu_type
เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ cpu_type, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”
เบ›เบฐเป€เบžเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ, เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบซเบผเบทเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡ mnemonic, เป€เบ›เบฑเบ™ -mcpu=cpu_type
เบˆเบฐ. เบ„เปˆเบฒเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบš cpu_type เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -mtune เป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ -mcpu. เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡เปเบกเปˆเบ™
เบฅเบฐเบšเบธเป„เบงเป‰, เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบˆเบฐเปƒเบŠเป‰เบŠเบธเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ, เบ—เบฐเบšเบฝเบ™ เปเบฅเบฐ mnemonics
by -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
เบเบฒเบ™เบเบปเบเบฅเบฐเบ”เบฑเบš.

-mvrsave
-mno-vrsave
เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ VRSAVE เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” AltiVec.

-mgen-cell-microcode
เบชเป‰เบฒเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบˆเบธโ€‹เบฅเบฐโ€‹เบžเบฒเบโ€‹เป‚เบ—เบฅเบฐโ€‹เบชเบฑเบšโ€‹เบกเบทโ€‹เบ–เบทโ€‹

-mwarn-cell-microcode
เบ„เบณเป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ„เบณเบชเบฑเปˆเบ‡เป„เบกเป‚เบ„เบฃเป‚เบ„เบ”เบ‚เบญเบ‡เป€เบŠเบฅเบˆเบฐเบ›เปˆเบญเบเบญเบญเบเบกเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ Cell
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ microcode เปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.

-msecure-plt
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ ld เปเบฅเบฐ ld.so เบเปเปˆเบชเป‰เบฒเบ‡ executables เปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš
เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ exec .plt เปเบฅเบฐ .got. เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ PowerPC 32-bit SYSV ABI.

-mbss-plt
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เบžเบฒเบเบชเปˆเบงเบ™ BSS .plt เบ—เบตเปˆ ld.so เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆ, เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ .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 เป‚เบ”เบเบเบปเบ‡เป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™
เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-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 เปเบฅเบฐ
-mpowerpc, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ -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 เบกเบญเบšเปเบฒเบ no/highest/second-highest เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เปƒเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบชเบฐเบฅเบฑเบญเบ”เบ•เบดเบ‡เบ–เบทเบเบˆเปเบฒเบเบฑเบ”
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

-msched-costly-dep=dependence_type
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบเบฒเบ™โ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบชโ€‹เปเบกเปˆเบ™โ€‹เบ–เบทโ€‹เบงเปˆเบฒโ€‹เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เป‚เบ”เบโ€‹เป€เบ›เบปเป‰เบฒโ€‹เบซเบกเบฒเบโ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™
เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ dependence_type เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบ™เบถเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰
เบ„เบธเบ™เบ„เปˆเบฒ: no: เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบชโ€‹เปเบกเปˆเบ™โ€‹เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹, เบ—เบฑเบ‡เบซเบกเบปเบ”: เบเบฒเบ™โ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบชโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบกเปˆเบ™โ€‹เบ„เปˆเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹,
true_store_to_load: เบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบˆเบฒเบเบฎเป‰เบฒเบ™เบ—เบตเปˆเบˆเบฐเป‚เบซเบผเบ”เปเบกเปˆเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ, store_to_load: any
เบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เบˆเบฒเบเบฎเป‰เบฒเบ™เปƒเบ™เบเบฒเบ™เป‚เบซเบผเบ”เปเบกเปˆเบ™เบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบฒเบ, เบˆเปเบฒเบ™เบงเบ™: เบเบฒเบ™เป€เบญเบทเปˆเบญเบเบญเบตเบ‡เปƒเบ”เป†เบ—เบตเปˆ 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.

-mabi=spe
เบ‚เบฐเบซเบเบฒเบ ABI เบ›เบฐเบˆเบธเบšเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SPE ABI. เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™ ABI เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™,
เปเบ—เบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ SPE ABI เปƒเบซเป‰เบเบฑเบš ABI เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

-mabi=no-spe
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ Booke 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.

-mprototype
-mno-prototype
เปƒเบ™เบฅเบฐเบšเบปเบš V.4 เปเบฅเบฐเบฅเบฐเบšเบปเบš PowerPC เบเบฑเบ‡เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เบธเบเบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เบปเบงเปเบ›
เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปเบกเปˆเบ™ prototyped เบขเปˆเบฒเบ‡โ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, compiler เบ•เป‰เบญเบ‡เปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
เบเปˆเบญเบ™เบ—เบธเบเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ prototyped เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบซเบผเบทเบฅเบถเบš 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 bit เปƒเบ™เบซเบปเบงเบ—เบธเบ‡ 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, เป€เบฎเบฑเบ”
เบšเปเปˆเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ "เบ•เบปเป‰เบ™เบ•เป", เปเบฅเบฐ -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 เบ—เบตเปˆเบเบฑเบ‡เป„เบงเป‰, เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป‚เบฅเบ เปเบฅเบฐ static เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบฑเบ‡เปเบปเบ”เปƒเบชเปˆเปƒเบ™ .เบ‚เปเป‰เบกเบนเบ™
เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹, เปเบฅเบฐโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เบ—เบฑเบ™โ€‹เบชเบฐโ€‹เป„เบซเบกโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปƒเบ™โ€‹ .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 เบˆเบฐเบกเบฑเบเบ—เบตเปˆเบขเบนเปˆเบ—เปเบฒเบญเบดเบ” เปเบฅเบฐเบชเป‰เบฒเบ‡ a
"bl callee" เบ–เป‰เบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ PPC "bl" เบˆเบฐเป€เบ‚เบปเป‰เบฒเบซเบฒเบœเบนเป‰เป‚เบ—เป‚เบ”เบเบเบปเบ‡; เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป„เบ”เป‰
linker เบˆเบฐเบชเป‰เบฒเบ‡ "bl L42" เป€เบžเบทเปˆเบญเป‚เบ—เบซเบฒ "เป€เบเบฒเบฐเบชเบฒเบ‚เบฒ". "เป€เบเบฒเบฐเบชเบฒเบ‚เบฒ" เปเบกเปˆเบ™
เบ•เบทเปˆเบกเปƒเบชเปˆเบเบฑเบšเบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป‚เบ—เบซเบฒ; เบกเบฑเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบขเบนเปˆ 32-bit เป€เบ•เบฑเบกเบ‚เบญเบ‡
callee เปเบฅเบฐ jumps เบเบฑเบšเบกเบฑเบ™.

เปƒเบ™เบฅเบฐเบšเบปเบš Mach-O (Darwin), เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบŠเบตเป‰เบšเบญเบ compiler emit เบเบฑเบšเบเบฒเบงเบชเปเบฒเบฅเบฑเบš.
เบ—เบธเบเป†เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡, เปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Darwin เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบˆเบฐเปƒเบŠเป‰เบซเบผเบทเบเบปเบเป€เบฅเบตเบเบกเบฑเบ™.

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

-mtls-เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ
-mno-tls-เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบ
เปเบฒเบ (เบšเปเปˆเปเบฒเบ) เป‚เบ—เบซเบฒ "__tls_get_addr" เบ”เป‰เบงเบเบเบฒเบ™เบเป‰เบฒเบเบ—เบตเปˆเบฅเบฐเบšเบธเบŸเบฑเบ‡เบŠเบฑเบ™.
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡. เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ ld เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš TLS, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰ gcc เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ
เบฅเปเบฒเบ”เบฑเบš.

- เบเบฐเบ—เบนเป‰
เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš multithreading เบเบฑเบš pthreads เบซเปเบชเบฐเปเบธเบ”. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡เบชเปเบฒเบฅเบฑเบš
เบ—เบฑเบ‡ preprocessor เปเบฅเบฐ linker.

-mrecip
-mno-recip
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™ เปเบฅเบฐเบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ—เบตเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบ‚เบฑเป‰เบ™เบ•เบญเบ™ Newton-Raphson เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ
เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบซเบผเบทเบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบกเปเบฅเบฐเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบˆเบธเบ”เบฅเบญเบ. เป€เบˆเบปเป‰เบฒ
เบ„เบงเบ™เปƒเบŠเป‰ -fast เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹ เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ -mrecip (เบซเบผเบทเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ
-funsafe-math-optimizations, -finite-math-only, -freciprocal-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” เปเบฅเบฐ
-fno-traping-เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”). เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบšเปเบกเปˆเบ™เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›
เบชเบนเบ‡เบเปˆเบงเบฒ throughput เบ‚เบญเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™, เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ‚เบญเบ‡
เบฅเปเบฒเบ”เบฑเบšเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เป„เบ”เป‰เป€เบ–เบดเบ‡ 2 ulp (เป€เบŠเบฑเปˆเบ™ inverse เบ‚เบญเบ‡ 1.0 เป€เบ—เบปเปˆเบฒเบเบฑเบš 0.99999994)
เบชเปเบฒเบฅเบฑเบšเบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบกเบ—เบตเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™.

-mrecip=เป€เบฅเบทเบญเบ
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เป€เบฅเบทเบญเบ
เปเบกเปˆเบ™เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ—เบตเปˆเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เบณเปœเป‰เบฒเบ”เป‰เบงเบ "!" เบเบฑเบš invert เป„เบ”เป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบ: "เบ—เบฑเบ‡เปเบปเบ”": เป€เบ›เบตเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ—เบฑเบ‡เปเบปเบ”, "เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™": เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เป€เบ—เบปเปˆเบฒเบเบฑเบš -mrecip, "none": เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ„เบณเปเบ™เบฐเบ™เบณเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบ—เบฑเบ‡เปเบปเบ”,
เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -mno-recip; "div": เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบชเปเบฒเบฅเบฑเบš
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบงเปเบฅเบฐเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ; "divf": เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบ›เบฐเบกเบฒเบ™; "divd": เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบ›เบฐเบกเบฒเบ™; "rsqrt": เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบ‚เบญเบ‡เบฎเบฒเบเบ—เบตเปˆเบชเบญเบ‡เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ”เบฝเบงเปเบฅเบฐเบชเบญเบ‡เป€เบ—เบปเปˆเบฒ; "rsqrtf": เป€เบ›เบตเบ”เปƒเบŠเป‰ single-
เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒ reciprocal เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบกเบฒเบ™เบฎเบฒเบเบชเบตเปˆเบซเบฅเปˆเบฝเบก; "rsqrtd": เป€เบ›เบตเบ”เปƒเบŠเป‰
double-precision reciprocal square root เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบ›เบฐเบกเบฒเบ™;

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, -mrecip=เบ—เบฑเบ‡เปเบปเบ”,!rsqrtd เบˆเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบเบปเบเป€เบงเบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "FRSQRTE", "XSRSQRTEDP", เปเบฅเบฐ "XVRSQRTEDP"
เป€เบŠเบดเปˆเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ„เบณเบ™เบงเบ™เบ‚เบญเบ‡เบฎเบฒเบเบชเบตเปˆเบซเบผเปˆเบฝเบกเบชเบตเปˆเบซเบผเปˆเบฝเบกเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

-mrecip-precision
-mno-recip-precision
เบชเบปเบกเบกเบธเบ” (เบšเปเปˆเบชเบปเบกเบกเบธเบ”) เบงเปˆเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เปƒเบซเป‰เบชเบนเบ‡เบเบงเปˆเบฒ,
เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเปเบกเปˆเบ™เบšเบฑเบ‡เบ„เบฑเบšเป‚เบ”เบ PowerPC ABI. เบเบฒเบ™เป€เบฅเบทเบญเบ -mcpu=power6 or
-mcpu=power7 เป€เบฅเบทเบญเบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” -mrecip-precision. เบชเบตเปˆเบซเบผเปˆเบฝเบกเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบฎเบฒเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปเบฒเบ•เปˆเปเบฒ,
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ—เบตเปˆ converges เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™.

-mveclibabi=เบ›เบฐเป€เบžเบ”
เบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ” ABI เป€เบžเบทเปˆเบญเปƒเบŠเป‰เบชเบณเบฅเบฑเบš vectorizing intrinsics เป‚เบ”เบเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบžเบฒเบเบ™เบญเบ.
เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™ "เบกเบฐเบซเบฒเบŠเบปเบ™", เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡ IBM
เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบฅเบฐเบšเบปเบšเบเปˆเบญเบเป€เบฅเบฑเปˆเบ‡เบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ” (MASS) เบชเปเบฒเบฅเบฑเบš vectorizing intrinsics เป‚เบ”เบเปƒเบŠเป‰
เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบžเบฒเบเบ™เบญเบ. เบ›เบฐเบˆเบธเบšเบฑเบ™ GCC เบˆเบฐเบชเบปเปˆเบ‡เบชเบฝเบ‡เป‚เบ—เบซเบฒ "acosd2", "acosf4", "acoshd2",
"acoshf4", "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 เป€เบ›เบตเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป‚เบ—เบœเปˆเบฒเบ™
เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™เบซเบผเบทเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเปƒเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™
เปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ„เบปเบ‡เบ—เบตเปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ -mno-pointers-to-nested-functions.

-msave-toc-เบ—เบฒเบ‡เบญเป‰เบญเบก
-mno-save-toc-indirect
เบชเป‰เบฒเบ‡ (เบšเปเปˆเบชเป‰เบฒเบ‡) เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบ„เปˆเบฒ TOC เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ stack เบชเบฐเบซเบ‡เบงเบ™
เปƒเบ™ prologue เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ—เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰เปƒเบ™ AIX เปเบฅเบฐ 64-bit
เบฅเบฐเบšเบปเบš Linux. เบ–เป‰เบฒเบ„เปˆเบฒ TOC เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™ prologue, เบกเบฑเบ™เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบเปˆเบญเบ™
เป‚เบ—เบœเปˆเบฒเบ™เบ•เบปเบงเบŠเบตเป‰. เป„เบ”เป‰ -mno-save-toc-indirect เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

RX เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ RX:

-m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
-m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ
เป€เบฎเบฑเบ”เปƒเบซเป‰เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™ "เบชเบญเบ‡" เป€เบ›เบฑเบ™ 64 bits (-m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ) เบซเบผเบท 32 bits (-m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ)
เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ. เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹ เบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบ RX เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒ 32-bit, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -m32bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ.

-fpu
-nofpu
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ (-fpu) เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ (-nofpu) เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเบฒเบ”เปเบงเบˆเบธเบ”เบฅเบญเบ RX. เป„เบ”เป‰
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบš RX600 เบŠเบธเบ”เปเบฅเบฐเบžเบดเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ RX200 เบŠเบธเบ”.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ Floating-point เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบˆเบธเบ”เบฅเบญเบ 32-bit เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบชเบฐเบ™เบฑเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ -m64bit-เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฎเบฒเบ”เปเบง FPU เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™
เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบ„เบนเปˆ.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹ เบ–เป‰เบฒ -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. เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบŠเป‰เบฒเบฅเบปเบ‡ เปเบฅเบฐ/เบซเบผเบทเปƒเบซเบเปˆเบเบงเปˆเบฒ
เบฅเบฐเบซเบฑเบ”เบ–เป‰เบฒเบ•เบปเบงเปเบ›เบ—เบตเปˆเบ„เบฑเป‰เบ‡เบ”เบฝเบงเบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเบฑเบ”เบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบชเบฐเบซเบ‡เบงเบ™เป„เบงเป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™
pushed เปƒเบชเปˆ 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 เปเบกเปˆเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐ
เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบธเบ”เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเป‚เบ”เบเบเบฒเบ™เบŠเบญเบเบซเบฒเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบชเบฑเป‰เบ™เบเบงเปˆเบฒเบ‚เบญเบ‡เบ•เปˆเบฒเบ‡เป†
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ›เบดเบ”เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-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
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡.

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹: เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ 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 is
เบฅเบฐเบšเบธเป„เบงเป‰, 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. เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™
z/เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ - เบกเบตเบ™เบฒ=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 เบซเบผเบทเปƒเบŠเป‰เบญเบฒเป€เบฃเบ‚เบฐเปœเบฒเบ”เป„เบ”เบ™เบฒเบกเบดเบ. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบšเปเปˆเบ”เบตเบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ” stack เบˆเปเบฒเบเบฑเบ”.

-mstack-guard=stack-guard
-mstack-size=เบ‚เบฐเปœเบฒเบ” stack
เบ–เป‰เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰, s390 back end เบ›เปˆเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™
เบŸเบฑเบ‡เบŠเบฑเบ™ prologue เบ—เบตเปˆเบเบฐเบ•เบธเป‰เบ™เบ”เบฑเบเบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ” stack เปเบกเปˆเบ™ stack-guard bytes เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡
เป„เบ”เป‰ เบ‚เบฐเปœเบฒเบ” stack (เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒ stack เปƒเบ™ s390 เป€เบ•เบตเบšเป‚เบ•เบฅเบปเบ‡). เบ–เป‰เบฒ stack-guard
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ™เป‰เบญเบโ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡ 2 เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เปƒเบซเบเปˆโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบเบญเบšโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เป„เบ”เป‰โ€‹
เบŸเบฑเบ‡เบŠเบฑเบ™เบ–เบทเบเป€เบฅเบทเบญเบ. เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบžเบทเปˆเบญเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบŠเปˆเบงเบ debugging stack
เบšเบฑเบ™เบซเบฒ overflow. เบฅเบฐเบซเบฑเบ” emitted เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบฝเบ‡เปเบ•เปˆ overhead เบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปเบฅเบฐ
เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบŠเบฑเปˆเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบŠเบก. เบ„เปˆเบฒเบ—เบตเปˆเปƒเบซเป‰เบกเบฒเบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบญเบณเบ™เบฒเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ 2 เปเบฅเบฐ เบ‚เบฐเปœเบฒเบ” stack เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™
เปƒเบซเบเปˆโ€‹เบเบงเปˆเบฒ stack-guard เบšเปเปˆเป€เบเบตเบ™ 64k. เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบžเบดเป€เบชเบ”
เบฅเบฐเบซเบฑเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบงเปˆเบฒ stack เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบ„เปˆเบฒ
เบกเบญเบšโ€‹เปƒเบซเป‰โ€‹เป‚เบ”เบ เบ‚เบฐเปœเบฒเบ” stack. เป„เบ”เป‰ stack-guard เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹
เบ‚เบฐเปœเบฒเบ” stack.

เบœเบฐเบฅเบดเบ”เปเบ™เบ™ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบฐเปเบ™เบ™:

-เป€เบกเบš
เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบš 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.

-m4a-nofpu
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4al-dsp, เบซเบผเบทเบชเปเบฒเบฅเบฑเบš SH4a เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบˆเบธเบ”เบฅเบญเบ.
เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰.

-m4a-เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4a, เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™ double-precision floating-point
เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹.

-m4a-เบ”เบฝเบง
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4a เป‚เบ”เบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบˆเบธเบ”เบฅเบญเบเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบฑเบ”เป€เบˆเบ™เบ”เบฝเบง
เบฎเบนเบšเปเบšเบšเป‚เบ”เบเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™.

-m4a
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš SH4a.

-m4al
เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบš -m4a-nofpu, เบเบปเบเป€เบงเบฑเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เบœเปˆเบฒเบ™ implicitly -dsp เบเบฑเบšเบœเบนเป‰เบ›เบฐเบเบญเบš. GCC
เบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ DSP เปƒเบ”เป†เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰.

-mb เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เบฎเบนเบšเปเบšเบšเปƒเบซเบเปˆ.

-ml เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เป‚เบซเบกเบ” little-endian.

-mdalign
เบˆเบฑเบ”เบฎเบฝเบ‡เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบขเบนเปˆเบ—เบตเปˆเบ‚เบญเบšเป€เบ‚เบ” 64-เบšเบดเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป€เบญเบตเป‰เบ™,
เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™ recompile
เบกเบฑเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบเบฑเบš -mdalign.

-mrelax
เบซเบเปเป‰เบšเบฒเบ‡เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป€เบงเบฅเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป€เบกเบทเปˆเบญเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰; เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
- เบœเปˆเบญเบ™เบ„เบฒเบ.

-migtable
เปƒเบŠเป‰เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบ 32-bit เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ "เบชเบฐเบซเบผเบฑเบš". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ 16-bit offsets.

- เบšเบดเบ”
เป€เบ›เบตเบ”เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰เบšเบดเบ”เปƒเบ™ SH2A.

-mfmovd
เป€เบ›เบตเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "fmovd". เบเบงเบ”เบชเบญเบš -mdalign เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡.

-mhitachi
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ Renesas.

-mrenesas
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบ Renesas.

-mno-renesas
เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒเบเบฒเบ™เป‚เบ—เบซเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš GCC เบเปˆเบญเบ™เบชเบปเบ™เบ—เบดเบชเบฑเบ™เบเบฒ Renesas
เบกเบตเบขเบนเปˆ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบท SH.

-mnomacsave
เบซเบกเบฒเบ "MAC" เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ›เบฑเบ™ call-clobbered, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ -mhitachi เปเบกเปˆเบ™เปƒเบซเป‰.

-เบกเบตเปˆ
-mno-ieee
เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก IEEE เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบฅเบญเบ, เป€เบŠเบดเปˆเบ‡เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™
เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบšเปเปˆเบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ -เบกเบตเปˆ is
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ—เบฒเบ‡เบญเป‰เบญเบก. เบ–เป‰เบฒ -ffinite-math-เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ -mno-ieee เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป‚เบ”เบโ€‹เบ—เบฒเบ‡โ€‹เบเบฒเบ™โ€‹,
เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเบธเบ”เบ—เบตเปˆเบฅเบญเบเบ•เบปเบงเป„เบงเบเบงเปˆเบฒ เปเบฅเบฐเบชเบฐเป€เปเบตเบžเบฒเบšเปœเป‰เบญเบเบเบงเปˆเบฒ. เป„เบ”เป‰
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ implcit เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบปเบšเบฅเป‰เบฒเบ‡เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธ -เบกเบตเปˆ or -mno-ieee.

-minline-ic_invalidate
เบฅเบฐเบซเบฑเบ”เปƒเบ™เปเบ–เบงเป€เบžเบทเปˆเบญเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™ cache เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™
trampolines. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ–เป‰เบฒ -musermode เบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เปเบฅเบฐเป€เบฅเบทเบญเบ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” (เบ•เบปเบงเบขเปˆเบฒเบ‡ -m4) เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ icbi. เบ–เป‰เบฒ
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฅเบทเบญเบเบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ icbi,
เปเบฅเบฐ -musermode เบšเปเปˆเบกเบตเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰, เบฅเบฐเบซเบฑเบ” inlined เบˆเบฐ manipulate เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ
cache address array เป‚เบ”เบเบเบปเบ‡เบเบฑเบš associative write. เบ™เบตเป‰เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบต
เบฎเบนเบšเปเบšเบšเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”, เปเบ•เปˆเบกเบฑเบ™เบเปเปˆเบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ–เป‰เบฒเป€เบชเบฑเป‰เบ™ cache เป„เบ”เป‰เบ–เบทเบเปเบœเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™ TLB
เปเบฅเบฐเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเปเบœเบ™เบ—เบตเปˆ.

- misize
เบ–เบดเป‰เบกเบ‚เบฐเบซเบ™เบฒเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบš.

- เบ‚เบปเบง
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเป€เบชเบ”. เบกเบฑเบ™ pads เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบซเบผเบฒเบเบซเบผเบฒเบเบ‚เบญเบ‡ 4 bytes, เป€เบŠเบดเปˆเบ‡เปเบกเปˆเบ™
เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš SH ABI.

-msoft-atomic
เบชเป‰เบฒเบ‡ GNU/Linux เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบŠเบญเบšเปเบง gUSA เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปƒเบ™เบ•เบปเบง
เบซเบ™เป‰เบฒเบ—เบตเปˆ. เบฅเปเบฒเบ”เบฑเบšเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบ—เบตเปˆเบœเบฐเบฅเบดเบ”เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบฒเบเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡ /.
เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš เปเบฅเบฐเป€เปเบฒเบฐเบชเบปเบกเบเบฑเบšเบฅเบฐเบšเบปเบšเบซเบผเบฑเบเบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.
เบžเบงเบเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบซเบผเบฒเบเบซเบผเบฑเบ. เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบกเบทเปˆเบญเป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™ "sh-*-linux*". เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบšเบญเบฒเบฅเปเบฒเบกเบฐเบ™เบน
เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เป€เบšเบดเปˆเบ‡โ€‹ __เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน เป€เบเบตเบ”เบ‚เบถเป‰เบ™.

-mspace
เบ›เบฑเบšเปเบ•เปˆเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเปเบ—เบ™เบ„เบงเบฒเบกเป„เบง. เบšเบปเปˆเบ‡เบšเบญเบเป‚เบ”เบ -เบญเบช.

- เบกเบฑเบ
เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบญเบเบฐเบฅเบฒเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡, เบ›เปˆเบญเบเบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เป‚เบ—เป‚เบ”เบเปƒเบŠเป‰ Global Offset
เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™.

-musermode
เบขเปˆเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบฎเบนเบšเปเบšเบšเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™; เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ -mno-inline-ic_invalidate เบ–เป‰เบฒ
เบฅเบฐเบซเบฑเบ”เปƒเบ™เปเบ–เบงเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เปเบ”เบœเบนเป‰เปƒเบŠเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบกเปˆเบ™
"sh-*-linux*".

-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. เบซเบผเบฒเบ
เป„เบฅเบเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบฐเบšเบธเปเบเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”.

-madjust-unroll
เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป€เบžเบทเปˆเบญเบซเบผเบตเบเบฅเปˆเบฝเบ‡เบเบฒเบ™เบ—เบณเบฅเบฒเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบžเบฝเบ‡เปเบ•เปˆ
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ–เป‰เบฒเบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ” gcc เบฎเบญเบ‡เบฎเบฑเบš hook เป€เบ›เบปเป‰เบฒเปเบฒเบ TARGET_ADJUST_UNROLL_MAX.

-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 เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเปเบฅเบฐ 3 เปเบกเปˆเบ™ 3. เบ™เบตเป‰เบกเบต
เบœเบปเบ™เบเบฐเบ—เบปเบšเบ—เบตเปˆเบšเปเปˆเบ•เบฑเป‰เบ‡เปƒเบˆเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบšเปเปˆเบ›เบญเบ”เป„เบžเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ptabs / ptrel เบเปˆเบญเบ™เบชเบฒเบ‚เบฒ, เบซเบผเบท
เบเบปเบเบกเบฑเบ™เบญเบญเบเบˆเบฒเบเบงเบปเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, __do_global_ctors, เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ libgcc เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
constructors เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹, เป‚เบ—โ€‹เบซเบฒโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เป‚เบ”เบ -1โ€‹.
เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบทเบญเบ -mpt-fixed, ptabs เบˆเบฐเบ–เบทเบเป€เบฎเบฑเบ”เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ—เบปเบ”เบชเบญเบšเบเบฑเบš -1. เบ™เบฑเป‰เบ™
เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบงเบ‚เบถเป‰เบ™, เปเบ•เปˆเป€เบกเบทเปˆเบญ loop เบกเบฒ
เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ, เป‚เบ›เบฃเปเบเบฃเบกเบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เป€เบžเบฒเบฐเบงเปˆเบฒ ptabs เป‚เบซเบฅเบ” -1 เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบšเปเปˆเบ›เบญเบ”เป„เบžเบชเปเบฒเบฅเบฑเบšเบฎเบฒเบ”เปเบงเปƒเบ”เป†เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ เบเบณ เบชเบฐเป€เบžเบฒเบฐ, เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-pt-fixed. เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบœเบนเป‰เปƒเบŠเป‰เบเปเบฒเบ™เบปเบ” a
เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบš -mgettrcost, -mno-pt-fixed เบเบฑเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ -mgettrcost=100; เบ™เบตเป‰
deters เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เปเบฒเบกเบฐเบ”เบฒ.

-minvalid-เบชเบฑเบ™เบเบฒเบฅเบฑเบ
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบชเบฑเบ™เบเบฒเบฅเบฑเบเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบณเบกเบฐเบ”เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ„เบญเบกเบžเบตเบงเป€เบŠเบต
เบˆเบฐเปƒเบŠเป‰เป„เบ”เป‰เบชเบฐเป€เปเบตเปƒเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบ”เป‰เบงเบ movi/shori/ptabs เบซเบผเบท movi/shori/ptrel, เปเบ•เปˆเบกเบต
assembler เปเบฅเบฐ/เบซเบผเบท linker tricks เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”
ptabs / ptrel เบเบฑเบšเบ”เบฑเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ -mno-pt-เปเบเป‰เป„เบ‚ เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เบœเบปเบ™เบเบฐเบ—เบปเบš. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰ cse เบ‚เป‰เบฒเบกเบžเบทเป‰เบ™เบ–เบฒเบ™, hoisting เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡
เบชเบฑเบ™เบเบฒเบฅเบฑเบเป‚เบซเบผเบ”. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ -mno-invalid-เบชเบฑเบ™เบเบฒเบฅเบฑเบ.

-mbranch-cost=num
เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™ num เป€เบžเบทเปˆเบญเป€เบ›เบฑเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เบชเบญเบ™เบชเบฒเบ‚เบฒ. เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰
compiler เบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบฒเบ‚เบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบฐโ€‹เบšเบธโ€‹เป„เบงเป‰โ€‹
เบ„เปˆเบฒเบ–เบทเบเป€เบฅเบทเบญเบเป‚เบ”เบเบ‚เบถเป‰เบ™เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš.

- mcbranchdi
เป€เบ›เบตเบ”เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "cbranchdi4".

-mcmpeqdi
เบ›เปˆเบญเบเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบชเบดเบ”เบชเบญเบ™ "cmpeqdi_t" เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒ - mcbranchdi เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบœเบปเบ™เบเบฐเบ—เบปเบš.

-mfused-madd
เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "fmac" (floating-point multiply-accumulate) เบ–เป‰เบฒ
เบ›เบฐเป€เบžเบ”เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™. เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบœเบฐเบฅเบดเบ”
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบˆเบธเบ”เบฅเบญเบเบ•เบปเบงเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเป€เบฅเบเป€เบฅเบ IEEE 754 เบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”.

-mpretend-cmove
เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบเป‰เบฒเบเบชเบนเบ™เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบเป‰เบฒเบเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚
เบฎเบนเบšเปเบšเบš. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เป„เบงเบ‚เบถเป‰เบ™เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต SH4.

เปเบชเบ‡เบญเบฒเบ—เบดเบ” 2 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เปƒเบ™ Solaris 2โ€‹:

- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ”
- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ”, เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ™เบญเบโ€‹เป€เบซเบ™เบทเบญโ€‹เป„เบ›โ€‹เบˆเบฒเบโ€‹ - เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹, เบšเบญเบ compiler เบšเปเปˆเบœเปˆเบฒเบ™ -z เบ‚เปเป‰เบ„เบงเบฒเบก to
linker เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ•เปเบฒเปเบซเบ™เปˆเบ‡ -
เบฅเบฐเบซเบฑเบ”เบ‚เบถเป‰เบ™เบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™.

- เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ” เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™ "เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบ—เบตเปˆเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เปเบ•เปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰
sections" linker เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”. เปเบ™เบงโ€‹เปƒเบ”โ€‹เบเปโ€‹เบ•เบฒเบก, เบเบฒเบ™โ€‹เบเป‰เบฒเบโ€‹เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบˆเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เป€เบเบตเบ”โ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เป€เบ™เบปเบฒ
on-write, เปเบฅเบฐเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™เบšเปเปˆเป„เบ”เป‰เปเบšเปˆเบ‡เบ›เบฑเบ™เบ•เบปเบงเบˆเบดเบ‡เปƒเบ™เบ—เบปเปˆเบงเบ‚เบฐเบšเบงเบ™เบเบฒเบ™. เปเบ—เบ™โ€‹เบ—เบตเปˆ
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ - เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ”, เบ—เปˆเบฒเบ™เบ„เบงเบ™เบฅเบงเบšเบฅเบงเบกเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบ -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 เบญเบทเปˆเบ™เป†. เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบˆเบธเบ”เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰.

-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, เบเบฐเบˆเปˆเบฒเบ‡เปƒเบช, 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

v8 superspark, hypersparc, leon

เบเบฐเบˆเปˆเบฒเบ‡เปƒเบช
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, f930, f934, sparclite86x, tsc701, ultrasparc,
ultrasparc3, niagara, เบ™เบตเบเบฒเบฃเบฒ2, เบ™เบตเบเบฒเบฃเบฒ3 เปเบฅเบฐ เบ™เบตเบเบฒเบฃเบฒ4. เบเบฑเบš native 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.

-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).

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -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 เบˆเบฐเปƒเบซเป‰
เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบเบปเบเบเป‰เบฒเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. -mno-error-reloc
เบ›เบดเบ”โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹, -mwar-reloc เบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เปเบ—เบ™.

-msafe-dma
-munsafe-dma
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบฅเบดเป€เบฅเบตเปˆเบกเบซเบผเบทเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡ DMA เบˆเบฐเบ•เป‰เบญเบ‡เบšเปเปˆเบ–เบทเบเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเปƒเบซเบกเปˆเบ”เป‰เบงเบ
เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบœเบนเป‰เปƒเบŠเป‰
เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰, เปเบ•เปˆเบงเปˆเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš
เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบšเปˆเบญเบ™เบ—เบตเปˆเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเปเบกเปˆเบ™เบฎเบนเป‰เบงเปˆเบฒเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเบณเป€เบ›เบฑเบ™
เบเบฒเบ™เบœเบฑเบ™เบœเบงเบ™ เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ DMA เป€เบ›เบฑเบ™เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฑเบ‡เปเบปเบ”. เบเบฑเบš
-munsafe-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" เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบˆเบฐเบšเปเปˆเปเบŠเบเปเบŠเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฑเบš 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:

-mcpu=เบŠเบทเปˆ
เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ CPU เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹ tilegx.

-m32
-m64
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบซเบผเบท 64-bit. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 32-bit เบเปเบฒเบ™เบปเบ” int,
เบเบฒเบง, เปเบฅเบฐเบŠเบตเป‰เป„เบ›เบซเบฒ 32 bits. เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก 64-bit เบเปเบฒเบ™เบปเบ” int เป€เบ›เบฑเบ™ 32 bits เปเบฅเบฐเบเบฒเบงเปเบฅเบฐ
เบŠเบตเป‰เป„เบ›เบซเบฒ 64 bits.

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.

-mbig-เบชเบฐเบซเบผเบฑเบš
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
assembler/linker เบˆเบปเปˆเบกเบเปˆเบฝเบงเบเบฑเบšเบชเบฒเบ‚เบฒเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบžเบฒเบเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบฑเบš.

-mapp-regs
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ r2 เปเบฅเบฐ r5 เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เป‚เบ”เบ compiler.
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-mno-app-regs
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰ r2 เปเบฅเบฐ r5 เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบ—เบฐเบšเบฝเบ™เบ„เบปเบ‡เบ—เบตเปˆ.

-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 เบ–เบทเบเบเปเบฒเบ™เบปเบ”
เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฐเบ–เบทเบเป€เบฅเบทเบญเบเปเบฅเบฐเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡ __v850*__ เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบเปˆเบญเบ™
เบ„เบปเบ‡เบˆเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”.

preprocessor เบ„เบปเบ‡เบ—เบตเปˆ __v850 เปเบฅเบฐ __v851__ เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเบฐเป€เบซเบกเบต, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบญเบฑเบ™เปƒเบ”
เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบกเปˆเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ.

-mdisable-callt
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบˆเบฐเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ CALLT เบชเปเบฒเบฅเบฑเบš v850e, v850e1,
v850e2 เปเบฅเบฐ v850e2v3 เบฅเบปเบ”เบŠเบฒเบ”เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ v850. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-mno-disable-callt เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบ„เบณเบชเบฑเปˆเบ‡ CALLT.

Vax เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ -m เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบš VAX:

- munix
เบขเปˆเบฒเบญเบญเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ”เบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™ ("aobleq" เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบš Unix
เบชเปเบฒเบฅเบฑเบš VAX เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเป„เบฅเบเบฐเป„เบเป„เบ”เป‰.

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

- เบกเบ เบฅเบฐเบซเบฑเบ”เบญเบญเบเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฅเบเบˆเบธเบ”เบฅเบญเบเบฎเบนเบšเปเบšเบš G เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบš D.

VxWorks เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

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

-mrtp
GCC เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡เปเบเปˆเบ™ VxWorks เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบงเบฅเบฒเบˆเบดเบ‡ (RTPs). เบ™เบตเป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ›เปˆเบฝเบ™เบˆเบฒเบเบญเบฐเบ”เบตเบ”เป„เบ›เบซเบฒเบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบ. เบกเบฑเบ™เบเบฑเบ‡เบเปเบฒเบ™เบปเบ” macro preprocessor
"__RTP__".

- เบšเปเปˆเบชเบฐเบ–เบดเบ”
เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ RTP เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ„เบปเบ‡เบ—เบตเปˆ. เป„เบ”เป‰
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™ -static เปเบฅเบฐ - เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹ เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบš RTPs; -static เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Bstatic
-Bdynamic
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบžเบงเบเบกเบฑเบ™เบ–เบทเบ เบเบณ เบ™เบปเบ”เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš
Diab.

-Xbind-lazy
เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบš -Wl,-z, เบ”เบฝเบงเบ™เบตเป‰ เปเบฅเบฐเปเบกเปˆเบ™
เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš Diab.

-Xbind-เบ”เบฝเบงเบ™เบตเป‰
เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบŸเบฑเบ‡เบŠเบฑเบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบชเปเบฒเบฅเบฑเบš
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš Diab.

x86-64 เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบžเบฒเบเปƒเบ•เป‰

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", เป€เบŠเบดเปˆเบ‡เบ•เบปเบงเบ›เบฐเบเบญเบšเบˆเบฐเบชเบญเบ”เบ„เปˆเบญเบ‡เบชเบฐเป€เบซเบกเบต, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบซเบผเบทเป‚เบ”เบเบเบฒเบ™เปƒเบชเปˆเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ no-op.

-mlongcalls
-mno-longcalls
เป€เบกเบทเปˆเบญเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, GCC เบˆเบฐเบชเบฑเปˆเบ‡เปƒเบซเป‰เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เปเบ›เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เบซเบฒ
เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบกเป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™
เป„เบฅเบเบฐเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เป‚เบ”เบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบ—. เบเบฒเบ™เปเบ›เบ™เบตเป‰เบกเบฑเบเบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒ
เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เป„เบŸเบฅเปŒเปเบซเบผเปˆเบ‡เบญเบทเปˆเบ™เป†. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเป‚เบ”เบเบเบปเบ‡
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CALL" เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ "L32R" เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ "CALLX". เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
-mno-longcalls. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบเบฒเบ™เป‚เบ—เบชเบฒเบกเบฒเบ”
เบญเบฒเบ”เบˆเบฐเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ›เบฐเบเบญเบš, เบšเปเปˆเปเบกเปˆเบ™
compiler, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบญเบšเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบ GCC เบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป‚เบ—เป‚เบ”เบเบเบปเบ‡
เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ --- เป€เบšเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบงเบฑเบ”โ€‹เบ–เบธ disassembled เป€เบžเบทเปˆเบญโ€‹เป€เบšเบดเปˆเบ‡โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เบ•เบปเบงโ€‹เบˆเบดเบ‡โ€‹.
เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบœเบนเป‰เบ›เบฐเบเบญเบšเบˆเบฐเปƒเบŠเป‰เบเบฒเบ™เป‚เบ—เบ—เบฒเบ‡เบญเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบเบฒเบ™เป‚เบ—เบ‚เป‰เบฒเบกเป„เบŸเบฅเปŒ, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ
เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เปเบ—เป‰เป†เบˆเบฐเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”.

zSeries เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™

เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบžเบฒเบเปƒเบ•เป‰

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

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

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

-ftrapv
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เบเบฑเบšโ€‹เบ”เบฑเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบก overflow เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบšเบงเบโ€‹, เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹,
เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ„เบนเบ™.

-fwrapv
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ™เบตเป‰โ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เปƒเบซเป‰โ€‹เบœเบนเป‰โ€‹เบชเบฑเบ‡โ€‹เบฅเบงเบกโ€‹เบชเบปเบกโ€‹เบกเบธเบ”โ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ” overflow เบ‚เบญเบ‡โ€‹
เบเบฒเบ™เบšเบงเบ, เบเบฒเบ™เบซเบฑเบเบฅเบปเบš เปเบฅเบฐ เบเบฒเบ™เบ„เบนเบ™เบซเปเปˆเบญเป‰เบญเบกเบฎเบญเบšเป‚เบ”เบเปƒเบŠเป‰ twos-complement
เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™. เบ—เบธเบ‡เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡ เปเบฅเบฐเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบญเบฑเบ™เบญเบทเปˆเบ™. เบ™เบตเป‰
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ”โ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เบ„เปˆเบฒโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ Java front end, เบ•เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบ”เบโ€‹เบžเบฒโ€‹เบชเบฒ Java
เบ‚เปเป‰ เบเบณ เบ™เบปเบ”.

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

-fnon-call-exceptions
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบชเปˆเบเบฑเบšเบ”เบฑเบเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ™เบตเป‰
เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบชเบฐเป€เบžเบฒเบฐเป€เบงเบ—เบตเบ—เบตเปˆเบšเปเปˆเบกเบตเบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™,
เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ เบเบฑเบšเบ”เบฑเบ เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบˆเบฐเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, ie เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบซเบผเบท
เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบˆเบธเบ”เบฅเบญเบ. เบกเบฑเบ™เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเบˆเบฐเบ–เบดเป‰เบกเบˆเบฒเบ arbitrary
เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฑเบ™เบเบฒเบ™เป€เบŠเบฑเปˆเบ™ "SIGALRM".

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

-fasynchronous-unwind-เบ•เบฒเบ•เบฐเบฅเบฒเบ‡
เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ unwind เปƒเบ™เบฎเบนเบšเปเบšเบš dwarf2, เบ–เป‰เบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบกเปˆเบ™
เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบขเบนเปˆเปเบ•เปˆเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ stack unwinding เบˆเบฒเบ
เป€เบซเบ”เบเบฒเบ™เบšเปเปˆเบเบปเบ‡เบเบฑเบ™ (เป€เบŠเบฑเปˆเบ™: debugger เบซเบผเบทเบ•เบปเบงเป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ).

-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 เบˆเบฐ เบชเบฑเป‰เบ™ เบฅเบปเบ‡เบ™เบฒเบก int เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฒเบเปƒเบ•เป‰
เป€เบซเบผเบปเป‰เบฒเปเบงเบ‡.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -fshort-wchar switch เป€เบฎเบฑเบ”เปƒเบซเป‰ GCC เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ binary
เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเบ™เบฑเป‰เบ™. เปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบฑเบ™.
เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ binary interface เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-fno-เบ—เบปเปˆเบงเป„เบ›
เปƒเบ™เบฅเบฐเบซเบฑเบ” C, เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰. Unix C compilers
เป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เบ•เบฒเบกเบ›เบฐเป€เบžเบ™เบตเบซเบผเบฒเบเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™
เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เป‚เบ”เบเบเบฒเบ™เบงเบฒเบ‡เบ•เบปเบงเปเบ›เปƒเบ™เบšเบฅเบฑเบญเบเบ—เบปเปˆเบงเป„เบ›. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบถเบ”เบ•เบดเบเปเบฒ
เบฅเบฐเบšเบธเป‚เบ”เบ -fcommon, เปเบฅเบฐเป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ GCC เปƒเบ™เป€เบ›เบปเป‰เบฒเปเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆ. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก,
เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบ ISO C, เปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบญเบฒเบ”เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเป„เบงเบซเบผเบทเบฅเบฐเบซเบฑเบ”
เบเบฒเบ™เบฅเบปเบ‡เป‚เบ—เบ”เบ‚เบฐเปœเบฒเบ”เปƒเบ™เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ•เบปเบงเปเบ›. เป„เบ”เป‰ -fno-เบ—เบปเปˆเบงเป„เบ› เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบงเปˆเบฒโ€‹
compiler เบ„เบงเบ™เบงเบฒเบ‡เบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปƒเบ™เบชเปˆเบงเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ
เป„เบŸเบฅเปŒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบšเบฅเบฑเบญเบเบ—เบปเปˆเบงเป„เบ›. เบ™เบตเป‰เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบงเปˆเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ
เบ•เบปเบงเปเบ›เบ”เบฝเบงเบเบฑเบ™เบ–เบทเบเบ›เบฐเบเบฒเบ” (เป‚เบ”เบเบšเปเปˆเบกเบต "extern") เปƒเบ™เบชเบญเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ—เปˆเบฒเบ™เบˆเบฐ
เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบฒเบเบ„เปเบฒเบ™เบดเบเบฒเบกเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเบงเบเบกเบฑเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบก
เบเบฑเบš -fcommon เปเบ—เบ™. เบชเบฑเบ‡เบฅเบงเบกเบเบฑเบš -fno-เบ—เบปเปˆเบงเป„เบ› เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบกเบฑเบ™
เปƒเบซเป‰เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เบซเบผเบทเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบšเบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ
เบฅเบฐเบšเบปเบšเบญเบทเปˆเบ™เป†เบ—เบตเปˆเบชเบฐเป€เบซเบกเบตเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป€เบญเบ‡เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰.

-fno-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. 386 เบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.)

เบฅเบฐเบซเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบญเบเบฐเบฅเบฒเบ”เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบดเป€เบชเบ”, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™
เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เบชเปเบฒเบฅเบฑเบš 386, 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]
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒ, เบซเปเปˆเบชเบฐเบกเบฒเบŠเบดเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบฎเปˆเบงเบกเบเบฑเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบฎเบน. เป€เบกเบทเปˆเบญ เบ
เบ„เปˆเบฒเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ” (เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เบชเบญเบ‡), เบชเบฐเบกเบฒเบŠเบดเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบŠเบญเบ‡
เบญเบตเบ‡เบ•เบฒเบกเบ„เปˆเบฒเบ™เบตเป‰, เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบชเบนเบ‡เบชเบธเบ” (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบต
เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบญเบญเบเบ—เบตเปˆเบญเบฒเบ”เบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡
เบขเบนเปˆเบ—เบตเปˆเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ•เปเปˆเป„เบ›.

เบ„เปเบฒเป€เบ•เบทเบญเบ™: เป„เบ”เป‰ -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 เบ–เบทเบเบ›เป‰เบญเบ™
เปเบฅเบฐเบญเบญเบ. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบ•เป‰เบญเบ‡เบกเบต.
เบ–เป‰เบฒเบ—เบธเบเบเบฒเบ™เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบขเบนเปˆเปƒเบ™เปเบ–เบง, เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก
เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เบฅเบฐเบซเบฑเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ เบžเบฒเบเบ™เบญเบ inline เปƒเบ™เบฅเบฐเบซเบฑเบ” C เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆ
เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰. (เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบ™เบตเป‰เปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเปƒเบ”เบเปเปˆเบ•เบฒเบก, เปเบ•เปˆ
เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป‚เบŠเบเบ”เบตเปเบฅเบฐ optimizer เบชเบฐเป€เบซเบกเบตเบ‚เบฐเบซเบเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบกเบต
เป„เบ”เป‰โ€‹เป„เบ›โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เบชเปเบฒโ€‹เป€เบ™เบปเบฒโ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹.)

เบŸเบฑเบ‡เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ "no_instrument_function", เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰
เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบˆเบฐเบšเปเปˆเบ–เบทเบเป€เบฎเบฑเบ”. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเปเบฒเบฅเบฑเบš profileing เป„เบ”เป‰
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบด, เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เบ•เปˆเบฒเบ‡เป†เบˆเบฒเบเบ™เบฑเป‰เบ™
เบŸเบฑเบ‡เบŠเบฑเบ™เป‚เบ›เบฃเป„เบŸเบฅเปŒเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบž (เบšเบฒเบ‡เบ—เบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฑเบ™เบเบฒเบ™, เบ–เป‰เบฒ
profileing routines เบชเป‰เบฒเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบซเบผเบทเบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ).

-finstrument-functions-exclude-file-list=เป€เบญเบเบฐเบชเบฒเบ™,เป€เบญเบเบฐเบชเบฒเบ™...
เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบˆเบฒเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบท (เป€เบšเบดเปˆเบ‡โ€‹เบ„เปเบฒโ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹
เบ‚เบญเบ‡ "-finstrument-functions"). เบ–เป‰เบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ„เปเบฒเบ™เบดเบเบฒเบกเบŸเบฑเบ‡เบŠเบฑเบ™เบเบปเบ‡เบเบฑเบ™
เบเบฑเบšเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ เป€เบญเบเบฐเบชเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบชเบธเบ”
substrings: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹ เป€เบญเบเบฐเบชเบฒเบ™ เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™ substring เบ‚เบญเบ‡เบŠเบทเปˆเป„เบŸเบฅเปŒ, เบกเบฑเบ™เปเบกเปˆเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ
เป€เบ›เบฑเบ™เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™.

เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

-finstrument-functions-exclude-file-list=/bits/stl,include/sys

เบˆเบฐเบเบปเบเป€เบงเบฑเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบ™เปเบ–เบงเปƒเบ”เบ™เบถเปˆเบ‡เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบŠเบทเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบกเบต "/bits/stl"
เบซเบผเบท "เบฅเบงเบก / sys".

เบ–เป‰เบฒ, เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบˆเบปเบ”เบซเบกเบฒเบ ',' เปƒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ เบŠเบดเบก, เบ‚เบฝเบ™ ','. เบชเปเบฒเบฅเบฑเบš
เบ•เบปเบงเบขเปˆเบฒเบ‡, "-finstrument-functions-exclude-file-list=',,tmp'" (เปเบฒเบเป€เบซเบ”เบ„เบณเบญเป‰เบฒเบ‡เบญเบตเบ‡เบ”เบฝเบง
เบญเป‰เบญเบกโ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹)โ€‹.

-finstrument-functions-exclude-function-list=เบŠเบดเบก,เบŠเบดเบก...
เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš "-finstrument-functions-exclude-file-list", เปเบ•เปˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”.
เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบเบปเบเป€เบงเบฑเป‰เบ™เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบกเบท. เบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เป€เบ›เบฑเบ™
be matched เปเบกเปˆเบ™เบŠเบทเปˆเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เป€เบŠเบฑเปˆเบ™ "vector blah(const vector &)",
เบšเปเปˆเปเบกเปˆเบ™เบŠเบทเปˆเบ—เบตเปˆเบซเบผเบญเบเบฅเบงเบ‡เบžเบฒเบเปƒเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, "_Z4blahRSt6vectorIiSaIiEE"). เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เปเบกเปˆเบ™เปเบฅเป‰เบง
on substrings: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹ เบŠเบดเบก เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปเบกเปˆเบ™เบชเบฒเบเบเปˆเบญเบเบ‚เบญเบ‡เบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™, เบกเบฑเบ™เปเบกเปˆเบ™
เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธเบ‚เบฐเบซเบเบฒเบ C99 เปเบฅเบฐ C++, เบŠเบทเปˆเบŸเบฑเบ‡เบŠเบฑเบ™
เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบซเป‰เบขเบนเปˆเปƒเบ™ UTF-8, เบšเปเปˆเปƒเบซเป‰เปƒเบŠเป‰เบŠเบทเปˆเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบปเปˆเบงเป„เบ›.

-fstack-เบเบงเบ”โ€‹เบชเบญเบšโ€‹
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ stack. เป€เบˆเบปเป‰เบฒ
เบ„เบงเบ™เบฅเบฐเบšเบธเบ—เบธเบ‡เบ™เบตเป‰ เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเบณเบฅเบฑเบ‡เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบซเบปเบงเบ‚เปเป‰,
เปเบ•เปˆเบšเปเปˆเบ„เปˆเบญเบเบˆเบฐเบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฐเบ—เบนเป‰เบ”เบฝเบงเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ stack
overflow เบˆเบฐเบ–เบทเบเบเบงเบ”เบžเบปเบšเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เป€เบเบทเบญเบšเบ—เบธเบเบฅเบฐเบšเบปเบšเบ–เป‰เบฒเบกเบตเบžเบฝเบ‡เปเบ•เปˆ stack เบ”เบฝเบง.

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบชเบฐเบซเบงเบดเบ”เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง; เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™
เบฅเบฐเบšเบปเบšเบซเบผเบท runtime เบžเบฒเบชเบฒเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™. เบชเบฐเบซเบผเบฑเบšเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”
เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบซเบฑเบ™ stack เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ.

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบชเบฐเบ•เบฃเบดเบ‡: "เบšเปเปˆ" เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบš, "เบ—เบปเปˆเบงเป„เบ›"
เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบšเบšเป€เบเบปเปˆเบฒ, "เบชเบฐเป€เบžเบฒเบฐ" เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”
เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเป€เบ—เบปเปˆเบฒเบเบฑเบšเป€เบ›เบปเปˆเบฒ -fstack-เบเบงเบ”โ€‹เบชเบญเบšโ€‹.

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

1. เบ›เบฑเบšเบ›เบธเบ‡เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ: เบžเบงเบเบกเบฑเบ™เบˆเบฐเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบชเบฐเป€เบซเบกเบต
dynamically เบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบเปเบฒเบ™เบปเบ”.

2. เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบเบญเบš static เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ: เป€เบกเบทเปˆเบญเบกเบฑเบ™เบ–เบทเบ topped เป‚เบ”เบ a
เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เป‚เบ”เบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹, เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบš stack เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เบซเบ™เป‰เบฒโ€‹เป€เบŠเบทเปˆเบญโ€‹เบ–เบทโ€‹เปเบฅเบฐโ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เปเบกเปˆเบ™โ€‹เบญเบญเบโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹
เบ™เบฑเบเบ‚เบฝเบ™.

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

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบš stack เปเบšเบšเป€เบเบปเปˆเบฒเบเบฑเบ‡เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบชเปเบฒเบฅเบฑเบš "เบชเบฐเป€เบžเบฒเบฐ" เบ–เป‰เบฒเบšเปเปˆเบกเบต
เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ compiler.

-fstack-limit-register=reg
-fstack-limit-symbol=เบŠเบดเบก
-fno-stack-เบˆเบณเบเบฑเบ”
เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ stack เบšเปเปˆเป€เบ•เบตเบšเป‚เบ•เป€เบเบตเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เบšเปเปˆเบงเปˆเบฒเบˆเบฐ
เบ„เปˆเบฒเบ‚เบญเบ‡เบ—เบฐเบšเบฝเบ™ เบซเบผเบทเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบ. เบ–เป‰เบฒ stack เบˆเบฐเป€เบ•เบตเบšเป‚เบ•เป€เบเบตเบ™เบเบงเปˆเบฒ
เบกเบนเบ™เบ„เปˆเบฒ, เบชเบฑเบ™เบเบฒเบ™เบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒ. เบชเปเบฒเบฅเบฑเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบชเบฑเบ™เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐ
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. เบ™เบตเป‰โ€‹เปเบกเปˆเบ™
เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš i386 เปเบฅเบฐ x86_64 back ends เปเบฅเปˆเบ™ 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" เบซเบผเบท "local-exec".

เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ -fpic เปเบกเปˆเบ™ "initial-exec"; เบเบฑเบš -fpic เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™
"เบ—เบปเปˆเบงเป‚เบฅเบ-เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง".

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

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

เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ—เบตเปˆเบ”เบตเบเปˆเบฝเบงเบเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเป‚เบ”เบเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ ELF เบ–เบทเบเบ•เป‰เบญเบ‡
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปเบกเปˆเบ™เปƒเบซเป‰เป‚เบ”เบ "เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™" เป‚เบ”เบ Ulrich Drepper (เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™.
เบžเบปเบšเบขเบนเปˆhttp://people.redhat.com/~drepper/>)--- เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบกเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”
เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป‚เบ”เบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบซเบกเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”
เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰ เปเบฅเบฐเปเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบกเบต DLL เปƒเบ™ Windows เปเบฅเบฐ
เบเบฑเบš -fvisibility=hidden เปเบฅเบฐ "__attribute__ ((เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™("เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™")))" เปเบ—เบ™
"__declspec(dllexport)" เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš semantics เป€เบเบทเบญเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบš syntax เบ„เบทเบเบฑเบ™.
เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡เบ•เปเปˆเบœเบนเป‰เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เป‰เบฒเบกเป€เบงเบ—เบต.

เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบŠเบญเบเบซเบฒ #pragma GCC
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹. เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบเบฑเบš (เบ•เบปเบงเบขเปˆเบฒเบ‡) #pragma GCC เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ push(เป€เบŠเบทเปˆเบญเบ‡) เปเบฅเบฐ #pragma GCC
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ เบšเปเปˆ. เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ„เบงเบ™เบˆเบฐเบ–เบทเบเป€เบšเบดเปˆเบ‡ as เบชเปˆเบงเบ™ of เป„เบ”เป‰
API เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš เบชเบฑเบ™เบเบฒ เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ„เบงเบ™เบˆเบฐเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™
เบšเปเปˆเปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™; ie, เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™ DSO เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ„เบงเบ™ เบชเบฐเป€เบซเบกเบตเป„เบ›
เบ–เบทเบเบซเบกเบฒเบเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ overhead PLT indirection --- เบเบฒเบ™เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰.
เบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบเบฑเบ‡เบŠเปˆเบงเบเบญเปˆเบฒเบ™เปเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ
เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐ ISO C++โ€‹, เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เปƒเบซเบกเปˆโ€‹เปเบฅเบฐโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹
เบชเบฐเป€เบซเบกเบตเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™.

เบˆเบปเปˆเบ‡เบฎเบนเป‰เบงเปˆเบฒ headers เบˆเบฒเบเบžเบฒเบเบ™เบญเบเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ headers เบฅเบฐเบšเบปเบšเปเบฅเบฐ
headers เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ—เปˆเบฒเบ™เปƒเบŠเป‰, เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบเบฑเบš
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เป€เบงเบปเป‰เบฒเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡ #pragma GCC
เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ push(เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™) เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบฅเบงเบกเป€เบญเบปเบฒเบซเบปเบงเบ‚เปเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบžเบฒเบเบ™เบญเบ เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบœเบปเบ™โ€‹เบเบฐโ€‹เบ—เบปเบšโ€‹เป‚เบ”เบโ€‹ - เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบซเบผเบฒเบเบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™
เบฅเบงเบšเบฅเบงเบกเบเบฑเบš -fvisibility=hidden เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ
เป‚เบ—เบซเบฒ เบžเบฒเบเบ™เบญเบ เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบˆเบฐเปƒเบŠเป‰ PLT, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบซเบผเบฒเบเบเบงเปˆเบฒ
เบ›เบฐเบชเบดเบ”เบ—เบดเบœเบปเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ __เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ ((เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™)) เปเบฅเบฐ / เบซเบผเบท #pragma GCC เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™ เป€เบžเบทเปˆเบญเบšเบญเบ
compiler เบ—เบตเปˆ เบžเบฒเบเบ™เบญเบ เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ„เบงเบ™เบ–เบทเบเบ–เบทเบงเปˆเบฒเบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰.

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

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡เป€เบ•เบฑเบเบ™เบดเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™เบขเบนเปˆเบ—เบตเปˆ
<http://gcc.gnu.org/wiki/Visibility>.

-fstrict-volatile-bitfields
เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบ–เบทเบเปƒเบŠเป‰เบ–เป‰เบฒเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบŠเปˆเบญเบ‡เบšเบดเบ”เบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰ (เบซเบผเบทเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบญเบทเปˆเบ™เป†
เบ—เบปเปˆเบ‡เบ™เบฒ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบกเบฑเบเบˆเบฐเปƒเบซเป‰เบเบฝเบ”เบ›เบฐเป€เบžเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก) เบ„เบงเบ™เปƒเบŠเป‰เบญเบฑเบ™เบ”เบฝเบง
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก, เบชเบญเบ”เบ„เปˆเบญเบ‡เบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.
เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ›เบปเป‰เบฒเปเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ•เปเปˆเบžเปˆเบงเบ‡เบ—เบตเปˆเบกเบตเปเบœเบ™เบ—เบตเปˆเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฑเบ‡เปเบปเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบงเป‰เบฒเบ‡ 16 เบšเบดเบ”; เบ”เป‰เบงเบเบ—เบธเบ‡เบ™เบตเป‰, เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบ›เบฐเบเบฒเบ” bit peripheral เบ—เบฑเบ‡เบซเบกเบปเบ”.
เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™ "unsigned short" (เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบชเบฑเป‰เบ™เปเบกเปˆเบ™ 16 bits เปƒเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰) เป€เบžเบทเปˆเบญเบšเบฑเบ‡เบ„เบฑเบš GCC
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ 16-bit เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบšเบฒเบ‡เบ—เบต, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ 32-bit เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ.

เบ–เป‰เบฒเบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบ„เบญเบกเบžเบตเบงเป€เบ•เบตเบˆเบฐเปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบธเบ”. เปƒเบ™
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบ™เบฑเป‰เบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป‚เบซเบผเบ” 32-bit, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบˆเบฐ
เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ bytes เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเปˆเบงเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบ‚เบญเบ‡ bit-field, เบซเบผเบท memory-mapped
เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเบเบณเบฅเบฑเบ‡เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡.

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

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

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
เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เปเบฒเป€เบงเบปเป‰เบฒ เปเบฅเบฐเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบซเบฅเบปเบšเบซเบ™เบตเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเปเบฒเบเปƒเบ™เบ—เบฒเบ‡เบญเบทเปˆเบ™
เป€เบ›เบฑเบ™เบ›เบฒเบเบชเบฒเบเบซเบผเบทเบซเบ™เบต.

เป„เบ”เป‰ 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 เป€เบกเบทเปˆเบญเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเบซเบปเบง.

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 เบžเบฒเบชเบฒ เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบซเบผเบทเบ–เป‰เบฒเบกเบฑเบ™เบกเบตเบกเบนเบ™เบ„เปˆเบฒเบญเบทเปˆเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ compiler เบˆเบฐเปƒเบŠเป‰
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 เปเบ—เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐ เป€เบญเบฑเบกเบ—เบตเปˆเบขเบนเปˆ เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เป„เบ”เป‰
เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเป„เบŸเบฅเปŒเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™.

เปƒเบŠเป‰ g++-4.7 เบญเบญเบ™เบฅเบฒเบเป‚เบ”เบเปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™ onworks.net


เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบŸเบฃเบต

เบ”เบฒเบงเป‚เบซเบผเบ”เปเบญเบฑเบš Windows เปเบฅเบฐ Linux

  • 1
    เป€เบŸเบ”
    เป€เบŸเบ”
    Phaser เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบ›เบตเบ”เป„เบง, เบŸเบฃเบต, เปเบฅเบฐเบกเปˆเบงเบ™เบŠเบทเปˆเบ™
    เปเบซเบผเปˆเบ‡ HTML5 เบเบญเบšเป€เบเบกเบ—เบตเปˆเบชเบฐเป€เบซเบ™เบต
    WebGL เปเบฅเบฐ Canvas rendering เบ—เบปเปˆเบง
    desktop เปเบฅเบฐเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบกเบทเบ–เบท. เป€เบเบก
    เบชเบฒเบกเบฒเบ”เบฎเปˆเบงเบก...
    เบ”เบฒเบงเป‚เบซเบฅเบ” Phaser
  • 2
    เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ VASSAL
    เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ VASSAL
    VASSAL เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡
    เบชเบฐเบšเบฑเบšเป€เบญเป€เบฅเบฑเบเป‚เบ•เบฃเบ™เบดเบเบ‚เบญเบ‡เบเบฐเบ”เบฒเบ™เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡
    เปเบฅเบฐเป€เบเบกเบšเบฑเบ”. เบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš
    เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เป€เบเบกเปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš,
    เปเบฅเบฐ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” VASSAL Engine
  • 3
    OpenPDF - เบชเป‰เบญเบกเบ‚เบญเบ‡ iText
    OpenPDF - เบชเป‰เบญเบกเบ‚เบญเบ‡ iText
    OpenPDF เปเบกเปˆเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Java เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡
    เปเบฅเบฐเปเบเป‰เป„เบ‚เป„เบŸเบฅเปŒ PDF เบ”เป‰เบงเบ LGPL เปเบฅเบฐ
    เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ”เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” MPL. OpenPDF เปเบกเปˆเบ™โ€‹
    LGPL/MPL open source เบœเบนเป‰เบชเบทเบšเบ—เบญเบ” iText,
    a
    เบ”เบฒเบงเป‚เบซเบฅเบ” OpenPDF - Fork เบ‚เบญเบ‡ iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - เบฅเบฐเบšเบปเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”
    Geoscientific Analyzes - เปเบกเปˆเบ™เบžเบนเบกเบชเบฒเบ”
    เบŠเบญเบšเปเบงเบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™ (GIS) เบเบฑเบš
    เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบญเบฑเบ™เบเบดเปˆเบ‡เปƒเบซเบเปˆเบชเปเบฒเบฅเบฑเบš geodata
    เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ เปเบฅเบฐ ana...
    เบ”เบฒเบงเป‚เบซเบฅเบ” SAGA GIS
  • 5
    เบเปˆเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบš Java/JTOPen
    เบเปˆเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบš Java/JTOPen
    IBM Toolbox เบชเปเบฒเบฅเบฑเบš Java / JTOPen เปเบกเปˆเบ™ a
    เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ Java เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™
    เป‚เบ›เบฃเปเบเบฃเบกเบฅเบนเบเบ„เป‰เบฒ/เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”
    เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเปเบฅเปˆเบ™ OS/400,
    i5/OS, o...
    เบ”เบฒเบงเป‚เบซเบฅเบ” Toolbox เบชเปเบฒเบฅเบฑเบš Java/JTOPen
  • 6
    D3.js
    D3.js
    D3.js (เบซเบผเบท D3 เบชเปเบฒเบฅเบฑเบšเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™)
    เป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” JavaScript เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™
    เป€เบžเบทเปˆเบญเบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš
    เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบžเบฒเบšเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš. เบ”เป‰เบงเบ D3
    เป€เบˆเบปเป‰เบฒ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” D3.js
  • เป€เบžเบตเปˆเบกเป€เบ•เบตเบก ยป

Linux เบ„เบณ เบชเบฑเปˆเบ‡

Ad