์˜์–ดํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

Ad


์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

mips64el-linux-gnuabi64-g++-5 - ํด๋ผ์šฐ๋“œ์˜ ์˜จ๋ผ์ธ

Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์—์„œ mips64el-linux-gnuabi64-g++-5 ์‹คํ–‰

์ด๊ฒƒ์€ Ubuntu Online, Fedora Online, Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MAC OS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ฌด๋ฃŒ ์˜จ๋ผ์ธ ์›Œํฌ์Šคํ…Œ์ด์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OnWorks ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ๊ณต๊ธ‰์ž์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” mips64el-linux-gnuabi64-g++-5 ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ:

์ด๋ฆ„


gcc - GNU ํ”„๋กœ์ ํŠธ C ๋ฐ C++ ์ปดํŒŒ์ผ๋Ÿฌ

๊ฐœ์š”


gcc [-c|-S|-E] [-ํ‘œ์ค€=ํ‘œ์ค€]
[-g] [-ํŽ˜์ด์ง€] [-O์ˆ˜ํ‰]
[-W๊ฒฝ๊ณ ...] [-Wpedantic]
[-IDIR...] [-LDIR...]
[-D๋งคํฌ๋กœ[=๋ฐํ”„]...] [-U๋งคํฌ๋กœ]
[-f์„ ํƒ๊ถŒ...] [-m๊ธฐ๊ณ„ ์˜ต์…˜...]
[-o ์•„์›ƒํŒŒ์ผ] [@ํŒŒ์ผ] ์ธํŒŒ์ผ...

๊ฐ€์žฅ ์œ ์šฉํ•œ ์˜ต์…˜๋งŒ ์—ฌ๊ธฐ์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๋Š” ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. g ++ ๋ฐ›์•„ ๋“ค์ธ๋‹ค
๋Œ€๋ถ€๋ถ„ ๋™์ผํ•œ ์˜ต์…˜ GCC.

๊ธฐ์ˆ 


GCC๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ฒ˜๋ฆฌ, ์ปดํŒŒ์ผ, ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ ์—ฐ๊ฒฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
"์ „์ฒด ์˜ต์…˜"์„ ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๊ฐ„ ๋‹จ๊ณ„์—์„œ ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด -c ์˜ต์…˜์€ ๋ง์ปค๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋ง๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ถœ๋ ฅ์€ ๊ฐ์ฒด๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์ถœ๋ ฅํ•˜๋Š” ํŒŒ์ผ.

๋‹ค๋ฅธ ์˜ต์…˜์€ ์ฒ˜๋ฆฌ์˜ ํ•œ ๋‹จ๊ณ„๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์˜ต์…˜ ์ œ์–ด
์ „์ฒ˜๋ฆฌ๊ธฐ ๋ฐ ๊ธฐํƒ€ ์ปดํŒŒ์ผ๋Ÿฌ ์ž์ฒด. ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ์–ด์…ˆ๋ธ”๋Ÿฌ๋ฅผ ์ œ์–ดํ•˜๊ณ 
๋ง์ปค; ์ด๋“ค ์ค‘ ๋Œ€๋ถ€๋ถ„์€ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

GCC์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์ค„ ์˜ต์…˜์€ C ํ”„๋กœ๊ทธ๋žจ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ
์˜ต์…˜์€ ๋‹ค๋ฅธ ์–ธ์–ด(๋ณดํ†ต C++)์—์„œ๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์— ๋”ฐ๋ฅด๋ฉด
๋ช…์‹œ์ ์œผ๋กœ. ํŠน์ • ์˜ต์…˜์— ๋Œ€ํ•œ ์„ค๋ช…์— ์ถœ์ฒ˜๊ฐ€ ์–ธ๊ธ‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
์–ธ์–ด์˜ ๊ฒฝ์šฐ ์ง€์›๋˜๋Š” ๋ชจ๋“  ์–ธ์–ด์—์„œ ํ•ด๋‹น ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ใ€€ GCC ํ”„๋กœ๊ทธ๋žจ์€ ์˜ต์…˜๊ณผ ํŒŒ์ผ ์ด๋ฆ„์„ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์˜ต์…˜์—๋Š” ๋‹ค์ค‘
๋ฌธ์ž ์ด๋ฆ„; ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๋‹จ์ผ ๋ฌธ์ž ์˜ต์…˜์€ ์ง€์› ๊ทธ๋ฃนํ™”: -dv ์ด ๋งค์šฐ
๋‹ค๋ฅธ -d -v.

์˜ต์…˜๊ณผ ๊ธฐํƒ€ ์ธ์ˆ˜๋ฅผ ํ˜ผํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ์ˆœ์„œ๋Š”
๋ฌธ์ œ. ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด
๋‹น์‹ ์ด ์ง€์ • -L ๋‘ ๋ฒˆ ์ด์ƒ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ง€์ •๋œ ์ˆœ์„œ๋Œ€๋กœ ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ,
์˜ ๋ฐฐ์น˜ -l ์˜ต์…˜์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ์˜ต์…˜์—๋Š” ๋‹ค์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ธด ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. -f ๋˜๋Š” -W---์˜ˆ๋ฅผ ๋“ค์–ด,
-fmove-loop-๋ถˆ๋ณ€, -Wํฌ๋งท ๋“ฑ๋“ฑ. ์ด๋“ค ๋Œ€๋ถ€๋ถ„์€ ๊ธ์ •์ ์ธ ๊ฒƒ๊ณผ ๋ถ€์ •์ ์ธ
์–‘์‹; ์˜ ๋ถ€์ •์ ์ธ ํ˜•ํƒœ - ํ‘ธํ‘ธ is -fno-foo. ์ด ์„ค๋ช…์„œ๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋งŒ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐ€์ง€ ํ˜•์‹ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹Œ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

์˜ต์…˜


์„ ํƒ๊ถŒ ์š”์•ฝ
๋‹ค์Œ์€ ์œ ํ˜•๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋œ ๋ชจ๋“  ์˜ต์…˜์˜ ์š”์•ฝ์ž…๋‹ˆ๋‹ค. ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค
์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์‚ฌ๋ฌด์šฉ ๊ฒ‰์˜ท ์˜ต์…˜
-c -S -E -o ํŒŒ์ผ -ํ‘œ์ค€ ์ ‘๋‘์‚ฌ ์—†์Œ -ํŒŒ์ดํ”„ -ํ†ต๊ณผ ์ข…๋ฃŒ ์ฝ”๋“œ -x ์–ธ์–ด -v
-### --๋„์›€[=์ˆ˜์—…[, ...]] -ํƒ€๊ฒŸ ํ™€ํ”„ --๋ฒˆ์—ญ -์‹ธ๊ฐœ @ํŒŒ์ผ -fํ”Œ๋Ÿฌ๊ทธ์ธ=ํŒŒ์ผ
-fplugin-์ธ์ˆ˜-name=์•„๋ฅดํ—จํ‹ฐ๋‚˜ -fdump-ada-spec[-๋‚ ์”ฌํ•œ] -fada-์‚ฌ์–‘-๋ถ€๋ชจ=๋‹จ์œ„
-fdump-go-spec=ํŒŒ์ผ

C ์ง€์›ํ•˜๋Š” ์–ธ์–ด ์˜ต์…˜
-์•ˆ์‹œ -ํ‘œ์ค€=ํ‘œ์ค€ -fgnu89-์ธ๋ผ์ธ -๋ณด์กฐ ์ •๋ณด ํŒŒ์ผ ์ด๋ฆ„
- ํœด๊ฒฝ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†๋Š” ๊ฐ€๋ณ€ ํ•จ์ˆ˜ -fno-asm -fno ๋‚ด์žฅ -fno-๋‚ด์žฅ-๊ธฐ๋Šฅ
-ํ˜ธ์ŠคํŠธ -ํ”„๋ฆฌ์Šคํƒ ๋”ฉ -fopenacc -fopenmp -fopenmp-simd -fms-ํ™•์žฅ
-fplan9-ํ™•์žฅ -์‚ผ๊ฐํ˜• -์ „ํ†ต์ ์ธ -์ „ํ†ต์ ์ธ cpp - ํœด๊ฒฝ๋‹จ์ •๋ฐ€๋„
-fcond-๋ถˆ์ผ์น˜ -์•„๋งˆ ๋ฒกํ„ฐ ๋ณ€ํ™˜ -fsigned ๋น„ํŠธ ํ•„๋“œ -fsigned-char
- funsigned ๋น„ํŠธ ํ•„๋“œ -funsigned-char

C + + ์ง€์›ํ•˜๋Š” ์–ธ์–ด ์˜ต์…˜
-fabi ๋ฒ„์ „=n -fno-์•ก์„ธ์Šค ์ œ์–ด -fcheck-์‹ ๊ทœ -fconstexpr-๊นŠ์ด=n
-ffriend ์ฃผ์ž… -fno-elide-์ƒ์„ฑ์ž -fno-enforce-eh-specs -ffor ๋ฒ”์œ„
-๋ฒ”์œ„์— ๋Œ€ํ•œ fno -fno-gnu-ํ‚ค์›Œ๋“œ -fno-์•”์‹œ์  ํ…œํ”Œ๋ฆฟ
-fno-implicit-inline-ํ…œํ”Œ๋ฆฟ -fno-๊ตฌํ˜„-์ธ๋ผ์ธ -fms-ํ™•์žฅ
-fno-nonansi-๋‚ด์žฅ -fnothrow-opt -fno ์—ฐ์‚ฐ์ž ์ด๋ฆ„ -fno-์„ ํƒ ์‚ฌํ•ญ-diags
-ํ—ˆ์šฉ -fno-pretty-ํ…œํ”Œ๋ฆฟ -ํ”„๋ ˆํฌ -fno-rtti -fsize-deallocation -fstats
-ftemplate-์—ญ์ถ”์  ์ œํ•œ=n -fํ…œํ”Œ๋ฆฟ-๊นŠ์ด=n -fno-threadsafe-์ •์ 
-ํ“จ์ฆˆ -cxa-atexit -fno-์•ฝํ•œ -nostdinc++ -fvisibility-inlines-hidden
-fvtable-ํ™•์ธ=[ํ‘œ์ค€|๋ฏธ๋ฆฌ|์—†์Œ] -fvtv-์นด์šดํŠธ -fvtv-๋””๋ฒ„๊ทธ -fvisibility-ms-compat
-fext-์ˆซ์ž-๋ฆฌํ„ฐ๋Ÿด -์™€๋น„=n -์™€๋น„ํƒœ๊ทธ -wconversion-null. -Wctor-dtor-ํ”„๋ผ์ด๋ฒ„์‹œ
-Wdelete-non-virtual-dtor -๋ฌธ์ž ์ ‘๋ฏธ์‚ฌ - ์ถ•์†Œ -์•„๋‹ˆ์š” -W๋น„ ๊ฐ€์ƒ dtor
- Wreorder -์›จํ”„์”จ++ -Wstrict-null-์„ผํ‹ฐ๋„ฌ - ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ ์นœ๊ตฌ -Wold ์Šคํƒ€์ผ ์บ์ŠคํŠธ
-์˜ค๋ฒ„๋กœ๋”ฉ๋œ ๊ฐ€์ƒ -Wno-pmf-๋ณ€ํ™˜ -Wsign-ํ”„๋กœ๋ชจ์…˜

์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C ๊ณผ ๋ชฉํ‘œ-C++ ์ง€์›ํ•˜๋Š” ์–ธ์–ด ์˜ต์…˜
-f์ƒ์ˆ˜-๋ฌธ์ž์—ด-ํด๋ž˜์Šค=ํด๋ž˜์Šค ์ด๋ฆ„ -fgnu-๋Ÿฐํƒ€์ž„ -fnext-๋Ÿฐํƒ€์ž„ -fno-nil-์ˆ˜์‹ ๊ธฐ
-fobjc-abi-๋ฒ„์ „=n -fobjc-call-cxx-cdtors -fobjc-์ง์ ‘ ๋ฐœ์†ก -fobjc-์˜ˆ์™ธ
-fobjc-gc -fobjc-nilcheck -fobjc-std = OBJC1. -fno-local-ivars
-fivar-๊ฐ€์‹œ์„ฑ=[๊ณต๊ฐœ|๋ณดํ˜ธ|์‚ฌ์„ค|๊พธ๋Ÿฌ๋ฏธ] -freplace-objc-ํด๋ž˜์Šค
-fzero-๋งํฌ -gen-decls -Wassign-์ธํ„ฐ์…‰ํŠธ -Wno ํ”„๋กœํ† ์ฝœ -W์„ ํƒ์ž
-Wstrict ์„ ํƒ์ž ์ผ์น˜ -Wunddeclared-์„ ํƒ์ž

์ง€์›ํ•˜๋Š” ์–ธ์–ด ๋…๋ฆฝ ์˜ต์…˜
-f๋ฉ”์‹œ์ง€ ๊ธธ์ด=n -fdiagnostics-ํ‘œ์‹œ-์œ„์น˜=[์ผ๋‹จ|๋ชจ๋“  ๋ผ์ธ]
-fdiagnostics-์ƒ‰์ƒ=[์ž๋™|๋ชป|ํ•ญ์ƒ] -fno-์ง„๋‹จ-์‡ผ-์˜ต์…˜
-fno-diagnostics-show-caret

๊ฒฝ๊ณ  ์˜ต์…˜
-fsyntax ์ „์šฉ -fmax-์˜ค๋ฅ˜=n -Wpedantic - ํ˜„ํ•™์  ์˜ค๋ฅ˜ -w -์›ฉ์ŠคํŠธ๋ผ -๋ฒฝ
-์›Œ๋“œ๋ ˆ์Šค -Waggregate-๋ฆฌํ„ด -์™œ๊ณก ๋ฃจํ”„ ์ตœ์ ํ™” -์›Œ๋ ˆ์ด ๊ฒฝ๊ณ„
-์›Œ๋ ˆ์ด ๊ฒฝ๊ณ„=n -Wbool-๋น„๊ต -Wno-์†์„ฑ -Wno ๋‚ด์žฅ ๋งคํฌ๋กœ ์žฌ์ •์˜
-Wc90-c99-ํ˜ธํ™˜ -Wc99-c11-ํ˜ธํ™˜ -Wc++-ํ˜ธํ™˜ -Wc++11-ํ˜ธํ™˜ -Wc++14-ํ˜ธํ™˜
-Wcast ์ •๋ ฌ -Wcast๊ธ‰ -Wchar-์ฒจ์ž -ํด๋กœ๋ฒ„๋“œ -๋Œ“๊ธ€
- ์กฐ๊ฑด๋ถ€ ์ง€์› -W๋ณ€ํ™˜ -Wcoverage-๋ถˆ์ผ์น˜ -W๋‚ ์งœ-์‹œ๊ฐ„
-W์‚ญ์ œ-๋ถˆ์™„์ „ -Wno-cpp - ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ -Wno-deprecated-์„ ์–ธ
-Wno ์ง€์ • ์ดˆ๊ธฐํ™” -Wdisabled-์ตœ์ ํ™” -ํ๊ธฐ๋˜์ง€ ์•Š๋Š” ํ•œ์ •์ž
- Wno-discarded-array-qualifiers -Wno-div-by-XNUMX -W๋”๋ธ” ํ”„๋กœ๋ชจ์…˜ - ๋ฉํ•œ ๋ชธ
-Wenum-๋น„๊ต -Wno-endif-๋ ˆ์ด๋ธ” -์›Œ๋Ÿฌ -์˜ค๋ฅ˜=* -Wfatal-์˜ค๋ฅ˜ -Wfloat-๊ฐ™์Œ
-Wํฌ๋งท -Wํ˜•์‹=2 -Wno-ํฌ๋งท-ํฌํ•จ-nul -Wno-format-extra-args
-Wformat-๋น„๋ฆฌํ„ฐ๋Ÿด -Wformat ๋ณด์•ˆ -Wformat ์„œ๋ช… -Wformat-y2k
-Wframe-๋ณด๋‹ค ํผ=๋ Œ -Wno-free-nonheap-๊ฐ์ฒด -Wjump-๋ฏธ์Šค-์ดˆ๊ธฐํ™”
-๋ฌด์‹œ ์˜ˆ์„  -Wincompatible-ํฌ์ธํ„ฐ ์œ ํ˜• - ์•”๋ฌต์ 
-์•”์‹œ์  ํ•จ์ˆ˜ ์„ ์–ธ - ์•”๋ฌต์  ์ •์ˆ˜ -์œˆํŠธ์…€ํ”„ -์œˆ๋ผ์ธ
-Wno-int-๋ณ€ํ™˜ - ํฌ์ธํ„ฐ ํˆฌ ํฌ์ธํ„ฐ ์บ์ŠคํŠธ ์—†์Œ -Wno-invalid-offsetof -Winvalid-pch
-๋ณด๋‹ค ํผ=๋ Œ -Wunsafe ๋ฃจํ”„ ์ตœ์ ํ™” -W๋…ผ๋ฆฌ์  ์—ฐ์‚ฐ -Wlogical-not-๊ด„ํ˜ธ
-๋กฑ๋กฑ -W๋ฉ”์ธ -W์•„๋งˆ๋„ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ -Wmemset-transposed-args -Wmissing-์ค‘๊ด„ํ˜ธ
-Wmissing-field-initializers - ํฌํ•จ ๋””๋ ‰ํ† ๋ฆฌ ๋ˆ„๋ฝ -Wno-๋‹ค์ค‘ ๋ฌธ์ž -Wnonnull
- ์ •๊ทœํ™” =[์—†์Œ|id|NFC|nfkc]
-์šฐ๋“œ๋ฅด -Wno ์˜ค๋ฒ„ํ”Œ๋กœ -Wopenmp-simd -Woverlength-๋ฌธ์ž์—ด -Wํฌ์žฅ
-Wpacked-bitfield-compat -WํŒจ๋”ฉ -๊ด„ํ˜ธ -Wpedantic-ms-ํ˜•์‹
-Wno-pedantic-ms-ํ˜•์‹ -Wpointer-arith - Wno-pointer-to-int-cast - Wredundant-decls
-Wno-return-local-addr -Wreturnํ˜• -W์‹œํ€€์Šค ํฌ์ธํŠธ -W์„€๋„์šฐ -Wno-shadow-ivar
-Wshift-count-์Œ์ˆ˜ -Wshift-count-overflow -Wsign-๋น„๊ต -Wsign ๋ณ€ํ™˜
-Wfloat ๋ณ€ํ™˜ -Wsizeof-pointer-memaccess -Wsizeof-๋ฐฐ์—ด ์ธ์ˆ˜
-Wstack ๋ณดํ˜ธ๊ธฐ -Wstack ์‚ฌ์šฉ=๋ Œ -Wstrict-์•จ๋ฆฌ์–ด์‹ฑ -Wstrict-์•จ๋ฆฌ์–ด์‹ฑ=n
-Wstrict ์˜ค๋ฒ„ํ”Œ๋กœ -Wstrict-์˜ค๋ฒ„ํ”Œ๋กœ=n -Wsuggest-์†์„ฑ=[์ˆœ์ˆ˜ํ•œ|const๋ฅผ|๋…ธ๋ฆฌํ„ด|์ฒด์žฌ]
-Wsuggest-์ตœ์ข… ์œ ํ˜• -Wsuggest-์ตœ์ข… ๋ฐฉ๋ฒ• -Wsuggest ์žฌ์ •์˜
-Wmissing ํ˜•์‹ ์†์„ฑ -W์Šค์œ„์น˜ -Wswitch-๊ธฐ๋ณธ๊ฐ’ -Wswitch ์—ด๊ฑฐ ํ˜• -Wswitch-๋ถ€์šธ
-Wsync-๋‚ธ๋“œ -Wsystem ํ—ค๋” - ํŠธ๋žจํด๋ฆฐ -์ €์„œ -W ์œ ํ˜• ์ œํ•œ -๋ถ„๋ฐํ”„
-์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ -Wunknown-pragma -Wno-pragma -Wunsuffixed ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์ˆ˜
- ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ - ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ -์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ผ๋ฒจ -Wunused-local-typedefs -Wunused-๋งค๊ฐœ๋ณ€์ˆ˜
- ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ ์—†์Œ - ๋ฏธ์‚ฌ์šฉ ๊ฐ€์น˜ - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ -์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์„ค์ • ๋งค๊ฐœ๋ณ€์ˆ˜
-์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์„ค์ • ๋ณ€์ˆ˜ -์“ธ๋ฐ์—†๋Š” ์บ์ŠคํŒ… -Wvariadic ๋งคํฌ๋กœ
-W๋ฒกํ„ฐ ์ž‘์—… ์„ฑ๋Šฅ - ๋ธ”๋ผ -Wํœ˜๋ฐœ์„ฑ ๋ ˆ์ง€์Šคํ„ฐ ๋ณ€์ˆ˜ -๋ฌธ์ž์—ด ์“ฐ๊ธฐ
-Wzero-as-null-ํฌ์ธํ„ฐ ์ƒ์ˆ˜

C ๊ณผ Objective-C ์ „์šฉ ๊ฒฝ๊ณ  ์˜ต์…˜
-Wbad ํ•จ์ˆ˜ ์บ์ŠคํŠธ -Wmissing-์„ ์–ธ -Wmissing-๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ํ˜•
-Wmissing-ํ”„๋กœํ† ํƒ€์ž… -Wnested-externs -Wold ์Šคํƒ€์ผ ์„ ์–ธ -Wold ์Šคํƒ€์ผ ์ •์˜
-Wstrict ํ”„๋กœํ† ํƒ€์ž… -์ „ํ†ต์ ์ธ -์ „ํ†ต ๋ณ€ํ™˜
-W์„ ์–ธ ํ›„ ์„ ์–ธ -Wpointer ๊ธฐํ˜ธ

๋””๋ฒ„๊น… ์˜ต์…˜
-dํŽธ์ง€ -๋คํ”„ ์‚ฌ์–‘ - ๋คํ”„ ๋จธ์‹  -๋คํ”„ ๋ฒ„์ „ -f์œ„์ƒ์ฒ˜๋ฆฌ=์Šคํƒ€์ผ -fsanitize-๋ณต๊ตฌ
-fsanitize-๋ณต๊ตฌ=์Šคํƒ€์ผ -fasan-๊ทธ๋ฆผ์ž ์˜คํ”„์…‹=๋ฒˆํ˜ธ
-fsanitize-์ •์˜๋˜์ง€ ์•Š์€-ํŠธ๋žฉ-์˜ค๋ฅ˜ -fcheck ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ -fchkp-๊ฒ€์‚ฌ-๋ถˆ์™„์ „ ์œ ํ˜•
-fchkp-first-field-has-own-bounds -fchkp-์ข์€ ๊ฒฝ๊ณ„
-fchkp-์ข์€ ๋ฐฐ์—ด๋ถ€ํ„ฐ ๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฐฐ์—ด -fchkp-์ตœ์ ํ™” -fchkp-use-fast-string-functions
-fchkp-use-nochk-๋ฌธ์ž์—ด ๊ธฐ๋Šฅ -fchkp-์‚ฌ์šฉ-์ •์ -๊ฒฝ๊ณ„
-fchkp-use-static-const-bounds -fchkp-XNUMX-๋™์  ํฌ๊ธฐ๋ฅผ ๋ฌดํ•œ๋Œ€๋กœ ์ฒ˜๋ฆฌ
-fchkp-์ฒดํฌ-์ฝ๊ธฐ -fchkp-์ฒดํฌ-์ฝ๊ธฐ -fchkp-์ฒดํฌ-์“ฐ๊ธฐ -fchkp-์ €์žฅ-๊ฒฝ๊ณ„
-fchkp-๊ณ„์ธก๊ธฐ ํ˜ธ์ถœ -fchkp-๊ธฐ๊ธฐ ํ‘œ์‹œ ์ „์šฉ -fchkp-use-๋ž˜ํผ
-fdbg-cnt-๋ชฉ๋ก -fdbg-cnt=๋ฐ˜๋Œ€ ๊ฐ€์น˜ ๋ชฉ๋ก -fdisable-ipa-ํŒจ์Šค ์ด๋ฆ„
-fdisable-rtl-ํŒจ์Šค ์ด๋ฆ„ -fdisable-rtl-๋น„๋ฐ€๋ฒˆํ˜ธ=๋ฒ”์œ„ ๋ชฉ๋ก -fdisable-ํŠธ๋ฆฌ-ํŒจ์Šค ์ด๋ฆ„
-fdisable-ํŠธ๋ฆฌ-๋น„๋ฐ€๋ฒˆํ˜ธ=๋ฒ”์œ„ ๋ชฉ๋ก -fdump-noaddr -fdump-๋ฒˆํ˜ธ ์—†์Œ
-fdump-unnumbered-๋งํฌ -fdump-๋ฒˆ์—ญ-๋‹จ์œ„[-n] -fdump-ํด๋ž˜์Šค-๊ณ„์ธต ๊ตฌ์กฐ[-n]
-fdump-ipa-๋ชจ๋‘ -fdump-ipa-cgraph -fdump-ipa-์ธ๋ผ์ธ -fdump-pass -fdump-ํ†ต๊ณ„
-fdump-ํŠธ๋ฆฌ-๋ชจ๋‘ -fdump-ํŠธ๋ฆฌ-์›๋ณธ[-n] -fdump-tree ์ตœ์ ํ™”[-n] -fdump-ํŠธ๋ฆฌ-cfg
-fdump-ํŠธ๋ฆฌ ๋ณ„์นญ -fdump-ํŠธ๋ฆฌ-ch -fdump-ํŠธ๋ฆฌ-ssa[-n] -fdump-ํŠธ๋ฆฌ-pre[-n]
-fdump-ํŠธ๋ฆฌ-ccp[-n] -fdump-ํŠธ๋ฆฌ-dce[-n] -fdump-tree-gimple[-๋…ธ๊ณจ์ ์ธ] -fdump-ํŠธ๋ฆฌ๋”[-n]
-fdump-ํŠธ๋ฆฌ-dse[-n] -fdump-ํŠธ๋ฆฌ-phiprop[-n] -fdump-ํŠธ๋ฆฌ-phiopt[-n]
-fdump-ํŠธ๋ฆฌ-forwprop[-n] -fdump-tree-copy์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ[-n] -fdump-ํŠธ๋ฆฌ-nrv -fdump-ํŠธ๋ฆฌ-๋ฒกํ„ฐ
-fdump-ํŠธ๋ฆฌ ์‹ฑํฌ -fdump-ํŠธ๋ฆฌ-sra[-n] -fdump-ํŠธ๋ฆฌ-forwprop[-n] -fdump-tree-fre[-n]
-fdump-tree-vtable-๊ฒ€์ฆ -fdump-ํŠธ๋ฆฌ-vrp[-n] -fdump-ํŠธ๋ฆฌ-storeccp[-n]
-fdump-์ตœ์ข…-insns=ํŒŒ์ผ -fcompare-๋””๋ฒ„๊ทธ[=์„ ํƒํ•˜์ง€ ์•Š๋Š”] -f๋น„๊ต-๋””๋ฒ„๊ทธ-์ดˆ
-felimate-dwarf2-dups -fno-์ œ๊ฑฐ-unused-debug-types
-feliminate-unused-debug-๊ธฐํ˜ธ -femit-class-debug-ํ•ญ์ƒ -ํ•ฉ๋ฆฌ์ ์ธ-์ข…๋ฅ˜-ํŒจ์Šค
-ํ•ฉ๋ฆฌ์ ์ธ-์ข…๋ฅ˜-ํŒจ์Šค=๋ฒ”์œ„ ๋ชฉ๋ก -fdebug-types-์„น์…˜ -fmem-๋ณด๊ณ ์„œ-wpa -fmem ๋ณด๊ณ ์„œ
-fpre-ipa-mem-๋ณด๊ณ ์„œ -fpost-ipa-mem-๋ณด๊ณ ์„œ -fprofile-ํ˜ธ -fopt-์ •๋ณด
-fopt-์ •๋ณด-์˜ต์…˜[=ํŒŒ์ผ] -์ž„์˜์˜ ์‹œ๋“œ=๋ฒˆํ˜ธ -fsched-์ƒ์„ธ=n -fsel-sched-verbose
-fsel-sched-dump-cfg -fsel-sched-ํŒŒ์ดํ”„๋ผ์ธ-์ƒ์„ธ -fstack-์‚ฌ์šฉ -์ตœํ›„ ๋ฒ”์œ„
-ftime-๋ณด๊ณ  -fvar ์ถ”์  -fvar-์ถ”์  ํ• ๋‹น
-fvar-์ถ”์ -ํ• ๋‹น-์ „ํ™˜ -g -g์ˆ˜ํ‰ -gttoggle -gcoff -๊ทธ๋“œ์›Œํ”„-๋ฒ„์ „ -ggdb
-grecord-gcc-์Šค์œ„์น˜ -gno-record-gcc-์Šค์œ„์น˜ -gstabs -gstabs + -gstrict-dwarf
-gno-strict-dwarf -gvms -gxcoff -gxcoff+ -gz[=์œ ํ˜•] -fno-๋ณ‘ํ•ฉ-๋””๋ฒ„๊ทธ-๋ฌธ์ž์—ด
-fno-dwarf2-cfi-asm -fdebug-์ ‘๋‘์‚ฌ-๋งต=๋‚ก์€= -femit-struct-debug-baseonly
-femit-struct-debug-reduced -femit-struct-debug-detailed[=์‚ฌ์–‘ ๋ชฉ๋ก] -p -ํŽ˜์ด์ง€
-์ธ์‡„ ํŒŒ์ผ ์ด๋ฆ„=๋„์„œ๊ด€ -print-libgcc-ํŒŒ์ผ ์ด๋ฆ„ - ์ธ์‡„ ๋‹ค์ค‘ ๋””๋ ‰ํ† ๋ฆฌ
-print-multi-lib -print-multi-os-๋””๋ ‰ํ† ๋ฆฌ -์ธ์‡„ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„=ํ”„๋กœ๊ทธ๋žจ
-์ธ์‡„-๊ฒ€์ƒ‰-๋””๋ ‰ํ† ๋ฆฌ -Q -์ธ์‡„-sysroot -์ธ์‡„-sysroot-ํ—ค๋”-์ ‘๋ฏธ์‚ฌ - ์ž„์‹œ ์ €์žฅ
- ์ž„์‹œ ์ €์žฅ = cwd - ์ž„์‹œ ์ €์žฅ = obj -์‹œ๊ฐ[=ํŒŒ์ผ]

์ตœ์ ํ™” ์˜ต์…˜
- faggressive-loop-optimizations -falign-ํ•จ์ˆ˜[=n] -falign-์ ํ”„[=n]
-falign-๋ ˆ์ด๋ธ”[=n] -์ •๋ ฌ ๋ฃจํ”„[=n] -์—ฐ๊ด€ ์ˆ˜ํ•™ -fauto ํ”„๋กœํ•„
-fauto ํ”„๋กœํ•„[=ํ†ต๋กœ] -fauto-inc-dec -f๋ถ„๊ธฐ ํ™•๋ฅ 
-fbranch-๋Œ€์ƒ-๋กœ๋“œ-์ตœ์ ํ™” -fbranch-๋Œ€์ƒ-๋กœ๋“œ-์ตœ์ ํ™”2 -fbtr-bb-๋…์ 
-fcaller ์ €์žฅ -fcheck-๋ฐ์ดํ„ฐ-deps -fcombin-stack-adjustments -fconserve-์Šคํƒ
-f๋น„๊ต-์ œ๊ฑฐ -fcprop ๋ ˆ์ง€์Šคํ„ฐ -ํฌ๋กœ์Šค์ ํ”„ -fcse-์ถ”์ข…-์ ํ”„ -fcse-skip-blocks.
-fcx-fortran-๊ทœ์น™ -fcx ์ œํ•œ ๋ฒ”์œ„ -fdata ์„น์…˜ -fdce -fdelayed-๋ถ„๊ธฐ
-fdelete-null-ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ -f๋น„๊ฐ€์ƒํ™” -fdevirtualize-์ถ”์ธก์ ์œผ๋กœ
-fdevirtualize-at-ltrans -fdse -๋‘๋ ค์šด ์ธ๋ผ์ธ -ํ”ผํŒŒ-์Šค๋ผ -๋น„์‹ผ ์ตœ์ ํ™”
-ffat-lto-๊ฐ์ฒด -๋น ๋ฅธ ์ˆ˜ํ•™ - ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ -fffloat-store
-fexcess-์ •๋ฐ€๋„=์Šคํƒ€์ผ -์•ž์œผ๋กœ ์ „ํŒŒ -ffp-๊ณ„์•ฝ=์Šคํƒ€์ผ -ffunction-์„น์…˜
-fgcse -fgcse-์žฌ๋กœ๋“œ ํ›„ -fgcse-las -fgcse-lm -fgraphite-์ •์ฒด์„ฑ -fgcse-sm
-fhoist-์ธ์ ‘ ํ•˜์ค‘ -fif ๋ณ€ํ™˜ -fi-๋ณ€ํ™˜2 -findirect ์ธ๋ผ์ธ
-finline-ํ•จ์ˆ˜ -finline-functions-call-once -finline-ํ•œ๊ณ„=n
-finline-์ž‘์€ ๊ธฐ๋Šฅ -fipa-cp -fipa-cp-ํด๋ก  -fipa-cp-์ •๋ ฌ -fipa-pta
-fipa ํ”„๋กœํ•„ -fipa-์ˆœ์ˆ˜-const -fipa-์ฐธ์กฐ -fipa-icf -ํ”ผ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜=์—ฐ์‚ฐ
-ํ”ผ๋ผ ์ง€์—ญ=์ง€๋ฐฉ -ํ”ผ๋ผ-ํ˜ธ์ด์ŠคํŠธ-์••๋ ฅ -ํ”ผ๋ผ ๋ฃจํ”„ ์••๋ ฅ -fno-ira-๊ณต์œ -์ €์žฅ-์Šฌ๋กฏ
-fno-ira-share-spill-slots -Fira-์žฅํ™ฉํ•œ=n -๋ถ„๋ฆฌ-์˜ค๋ฅ˜-๊ฒฝ๋กœ-์—ญ์ฐธ์กฐ
-๋ถ„๋ฆฌ-์˜ค๋ฅ˜-๊ฒฝ๋กœ-์†์„ฑ -fivopts -fkeep ์ธ๋ผ์ธ ํ•จ์ˆ˜
-fkeep-static-const - ํ”Œ๋ผ์ด ๋ ˆ์ธ์ง€ ์ˆ˜์ถ• -floop-๋ธ”๋ก - ๋ฃจํ”„ ๊ตํ™˜
-floop-์ŠคํŠธ๋ฆฝ-๊ด‘์‚ฐ -ํ”Œ๋ฃจํ”„ ํ’€๊ธฐ ๋ฐ ๊ฑธ๋ฆผ -floop-nest-์ตœ์ ํ™” -floop-๋ณ‘๋ ฌํ™”-๋ชจ๋‘
-fla-remat -flto -flto ์••์ถ• ์ˆ˜์ค€ -flto-ํŒŒํ‹ฐ์…˜=ALG -flto-๋ณด๊ณ 
-flto-๋ณด๊ณ -wpa -fmerge-all-์ƒ์ˆ˜ -fmerge-์ƒ์ˆ˜ -fmodulo-sched
-fmodulo-sched-allow-regmoves -fmove-loop-๋ถˆ๋ณ€ -fno-๋ธŒ๋žœ์น˜-์นด์šดํŠธ-reg
-fno-์ง€์—ฐ-ํŒ -fno-๊ธฐ๋Šฅ-cse -fno-์ถ”์ธก-๋ถ„๊ธฐ-ํ™•๋ฅ  -fno ์ธ๋ผ์ธ
-fno-์ˆ˜ํ•™-errno -fno ์—ฟ๋ณด๊ธฐ -fno-๊ตฌ๋ฉ2 -fno-sched-์ธํ„ฐ๋ธ”๋ก -fno-sched-spec
-fno ๋ถ€ํ˜ธ ์žˆ๋Š” XNUMX -fno-์ตœ์ƒ์œ„-์žฌ์ฃผ๋ฌธ -fno ํŠธ๋ž˜ํ•‘ ์ˆ˜ํ•™
-fno-zero-initialized-in-bss -fomit ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ -foptimize-ํ˜•์ œ ํ˜ธ์ถœ
-f๋ถ€๋ถ„ ์ธ๋ผ์ธ -ํ•„ ๋ฃจํ”„ -f์˜ˆ์ธก-๊ณตํ†ต -fprefetch ๋ฃจํ”„ ๋ฐฐ์—ด
-fprofile-๋ณด๊ณ  -fprofile-์ˆ˜์ • -fํ”„๋กœํ•„-๋””๋ ‰ํ† ๋ฆฌ=ํ†ต๋กœ -fprofile ์ƒ์„ฑ
-fprofile ์ƒ์„ฑ=ํ†ต๋กœ -fprofile-์‚ฌ์šฉ -fํ”„๋กœํ•„ ์‚ฌ์šฉ=ํ†ต๋กœ -fprofile-๊ฐ’
-fprofile-์žฌ์ฃผ๋ฌธ-๊ธฐ๋Šฅ - ๋ถ„์ˆ˜ ์ˆ˜ํ•™ -๋น„์–ด ์žˆ๋Š” -frename ๋ ˆ์ง€์Šคํ„ฐ
-freorder-๋ธ”๋ก -freeorder-blocks-and-partition -freorder-ํ•จ์ˆ˜
-frerun-cse-ํ›„-๋ฃจํ”„ -freschedule-modulo-scheduled-loops - ๋ฐ˜์˜ฌ๋ฆผ ์ˆ˜ํ•™
-fsched2-use-์ˆ˜ํผ๋ธ”๋ก -fsched-์••๋ ฅ -fsched-์‚ฌ์–‘-๋กœ๋“œ
-fsched-spec-load-์œ„ํ—˜ํ•œ -fsched-stalled-insns-dep[=n] -fsched-stalled-insns[=n]
-fsched-group-ํœด๋ฆฌ์Šคํ‹ฑ -fsched-critical-path-ํœด๋ฆฌ์Šคํ‹ฑ -fsched-spec-insn-ํœด๋ฆฌ์Šคํ‹ฑ
-fsched-rank-ํœด๋ฆฌ์Šคํ‹ฑ -fsched-last-insn-ํœด๋ฆฌ์Šคํ‹ฑ -fsched-dep-count-ํœด๋ฆฌ์Šคํ‹ฑ
-fschedule-ํ“จ์ „ -fschedule-insns -fschedule-insns2 -f์„น์…˜ ์•ต์ปค
-f์„ ํƒ์  ์Šค์ผ€์ค„๋ง -f์„ ํƒ์ -์Šค์ผ€์ค„๋ง2 -fsel-sched-ํŒŒ์ดํ”„๋ผ์ด๋‹
-fsel-sched-ํŒŒ์ดํ”„๋ผ์ธ-์™ธ๋ถ€ ๋ฃจํ”„ -์˜๋ฏธ๋ก ์  ์‚ฝ์ž… -fshrink-wrap
-fsignaling-nans -fsingle-precision-์ƒ์ˆ˜ -fsplit-ivs-in-unroller
-fsplit-์™€์ด๋“œ ์œ ํ˜• -fssa-phiopt -fstack ๋ณดํ˜ธ๊ธฐ -fstack-ํ”„๋กœํ…ํ„ฐ-all
-fstack-๋ณดํ˜ธ์ž-๊ฐ•ํ•œ -fstack-๋ณดํ˜ธ์ž-๋ช…์‹œ์  -fstdarg-opt -fstrict-์•จ๋ฆฌ์–ด์‹ฑ
-fstrict-์˜ค๋ฒ„ํ”Œ๋กœ -fthread ์ ํ”„ -์ถ”์ ์ž -ftree-bit-ccp -ftree-๋‚ด์žฅ ํ˜ธ์ถœ-dce
-fttree-ccp -fttree-ch -ftree-coalesce-inline-vars -ftree-coalesce-vars -ftree ๋ณต์‚ฌ ์†Œํ’ˆ
-ftree-copy์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ -fttree-dce -ftree-์ง€๋ฐฐ์ž-opts -fttree-dse -fttree-forwprop
-fttree-fre -ftree-loop-if-๋ณ€ํ™˜ -ftree-loop-if-convert-stores -ftree-๋ฃจํ”„-im
-fttree-phiprop -ftree-loop-๋ถ„ํฌ -ftree-๋ฃจํ”„-๋ฐฐํฌ-ํŒจํ„ด
-ftree-๋ฃจํ”„-ivcanon -ftree ๋ฃจํ”„ ์„ ํ˜• -ftree ๋ฃจํ”„ ์ตœ์ ํ™” -ftree ๋ฃจํ”„ ๋ฒกํ„ฐํ™”
-ftree ๋ณ‘๋ ฌํ™” ๋ฃจํ”„=n -fttree-pre -ftree-๋ถ€๋ถ„ ์‚ฌ์ „ -fttree-pta -fttree-์žฌ์—ฐ๊ฒฐ
-ftree-์‹ฑํฌ๋Œ€ -fttree-slsr -fttree-sra -ftree ์Šค์œ„์น˜ ๋ณ€ํ™˜ -fttree-tail-merge
-fttree-ter -ftree ๋ฒกํ„ฐํ™” -fttree-vrp -ํ•œ ๋ฒˆ์— ๋‹จ์œ„ -Funroll-All-๋ฃจํ”„
-ํŽ€๋กค ๋ฃจํ”„ -ํŽ€์„ธ์ดํ”„ ๋ฃจํ”„ ์ตœ์ ํ™” -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™”
-ํŽ€์Šค์œ„์น˜ ๋ฃจํ”„ -ํ”ผํŒŒ๋ผ -f๋ณ€์ˆ˜ ํ™•์žฅ-์–ธ๋กค๋Ÿฌ -fvect-๋น„์šฉ ๋ชจ๋ธ -fvpt
-fweb -์ „์ฒด ํ”„๋กœ๊ทธ๋žจ -fwpa -ํ“จ์ฆˆ-๋ง์ปค-ํ”Œ๋Ÿฌ๊ทธ์ธ --๋งค๊ฐœ๋ณ€์ˆ˜ name=๊ฐ€์น˜ -O -O0 -O1 -O2
-O3 - ์˜ค์Šค -์˜คํŒŒ์ŠคํŠธ -์˜ค๊ทธ

์ „ ์ฒ˜๋ฆฌ๊ธฐ ์˜ต์…˜
-A๋ฌธ์ œ=๋‹ต๋ณ€ -์—์ด-๋ฌธ์ œ[=๋‹ต๋ณ€] -C -dD -๋”” -dM -NS -D๋งคํฌ๋กœ[=๋ฐํ”„] -E -H
-idirafter DIR -ํฌํ•จ ํŒŒ์ผ -๋งคํฌ๋กœ ํŒŒ์ผ -ipprefix ํŒŒ์ผ -iwith ์ ‘๋‘์‚ฌ DIR
-์•ž์— ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ DIR -์•„์ด์‹œ์Šคํ…œ DIR -imultilib DIR -isysroot DIR -M -MM -MF -mg
- MP -MQ -์‚ฐ -Nostdinc -P -fdebug-cpp -ftrack ๋งคํฌ๋กœ ํ™•์žฅ -fworking-๋””๋ ‰ํ† ๋ฆฌ
-๋‹ค์‹œ ๋งคํ•‘ -์‚ผ๊ฐํ˜• -์–ธ๋ฐํ”„ -U๋งคํฌ๋กœ -์›Œ,์„ ํƒ๊ถŒ -์—‘์Šคํ”„๋ฆฌํ”„๋กœ์„ธ์„œ ์„ ํƒ๊ถŒ -ํ†ตํ•ฉ๋˜์ง€ ์•Š์€-cpp

์–ด์…ˆ๋ธ”๋Ÿฌ ์„ ํƒ๊ถŒ
-์™€,์„ ํƒ๊ถŒ -X์–ด์…ˆ๋ธ”๋Ÿฌ ์„ ํƒ๊ถŒ

๋งํฌ ์˜ต์…˜
๊ฐœ์ฒด ํŒŒ์ผ ์ด๋ฆ„ -ํ“จ์ฆˆ-ld=๋งํฌ -l๋„์„œ๊ด€ -nostartํŒŒ์ผ -nodefaultlibs -nostdlib
-ํŒŒ์ด -์—ญ๋™์  -s -๊ณต์ „ -์ •์ -libgcc -์ •์ -libstdc++ -์ •์ -๋ฆฌ๋ฐ”์‚ฐ
-์ •์ -libtsan -์ •์ -liblsan -์ •์ -libubsan -์ •์ -libmpx -์ •์ -libmpxwrappers
-๊ณต์œ  -๊ณต์œ -libgcc - ์ƒ์ง•์  -T ์Šคํฌ๋ฆฝํŠธ -NS,์„ ํƒ๊ถŒ -X๋ง์ปค ์„ ํƒ๊ถŒ -u ์ƒ์ง• -z
ํ‚ค์›Œ๋“œ๋Š”

๋ช…๋ถ€ ๋‹ด๋‹น ์˜ต์…˜
-B์ ‘๋‘์‚ฌ -IDIR -iplugindir=DIR - ์ธ์šฉDIR -LDIR -์‚ฌ์–‘=ํŒŒ์ผ -๋‚˜๋Š”- --sysroot=DIR
--no-sysroot-์ ‘๋ฏธ์‚ฌ

๋จธ์‹  ๋งค๋‹ฌ๋ฆฐ ์˜ต์…˜
AAArch64 ์˜ต์…˜ -๋งˆ๋น„=name -mbig-์—”๋””์•ˆ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -mgeneral-regs-only.
-mcmodel=์ž‘์€ -mcmodel=์ž‘์€ -mcmodel=๋Œ€ํ˜• -mstrict-์ •๋ ฌ -momit-๋ฆฌํ”„ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ
-mno-์ƒ๋žต-๋ฆฌํ”„-ํ”„๋ ˆ์ž„-ํฌ์ธํ„ฐ -mtls-dialect=desc -mtls-dialect=์ „ํ†ต
-mfix-cortex-a53-835769 -mno-fix-cortex-a53-835769 -mfix-cortex-a53-843419
-mno-fix-cortex-a53-843419 -ํ–‰์ง„=name -mcpu =name -mtune=name

์•„๋‹ตํ…Œ๋ฐ” ์ถœํ˜„ ์˜ต์…˜ -mhalf-reg-ํŒŒ์ผ -mprefer-์งง์€-insn-regs -mbranch ๋น„์šฉ=NUM
-mcmmove -mnops=NUM -msoft-cmpsf -msplit-lohi -mpost-inc -mpost ์ˆ˜์ •
-mstack ์˜คํ”„์…‹=NUM -mround-๊ฐ€์žฅ ๊ฐ€๊นŒ์šด -mlong-ํ†ตํ™” -m์งง์€ ํ†ตํ™” -msmall16 -mfp ๋ชจ๋“œ=๋ชจ๋“œ
-mvect-๋”๋ธ” -์ตœ๋Œ€ ๋ฒกํ„ฐ ์ •๋ ฌ=NUM -msplit-vecmove-early -m1reg-๋“ฑ๋ก ๋ฒˆํ˜ธ

ARC ์˜ต์…˜ -mbarrel-shifter -mcpu =CPU -mA6 -mARC600 -mA7 -mARC700 -mdpfp
-mdpfp-์ปดํŒฉํŠธ -mdpfp-๋น ๋ฅธ -mno-dpfp-lrsr -๋ฉ”์•„ -mno-mpy -mmul32x16 -mmul64 -์ผ๋ฐ˜
-mspfp -mspfp-์ปดํŒฉํŠธ -mspfp-๋น ๋ฅธ -msimd -msoft-float -mswap -mcrc -mdsp-ํŒจ์นด -mdvbf
-mlock -mmac-d16 -mmac-24 -mrtsc -mswap -์ „ํ™” -mxy -์‚ฌ์ด์ฆˆ๋ฅผ ์ž˜๋ชป ๋งž์ถ”๋‹ค -mannotate ์ •๋ ฌ
-๋งˆํฌ๋ฆฌ๋ˆ…์Šค -marclinux_prof -mepilogue-cfi -mlong-ํ†ตํ™” -์ค‘๊ฐ„ ํ†ตํ™” -msdata
-mucb-mcount -mํœ˜๋ฐœ์„ฑ ์บ์‹œ -์•…์„ฑ ํ˜ธ์ถœ -mauto-์ˆ˜์ •-reg -mbbit-๊ตฌ๋ฉ -mno-brcc
-mcase-๋ฒกํ„ฐ-pcrel -mcompact-casesi -mno-์กฐ๊ฑด-exec -๊ฑฐ์˜-cbranchsi -mexpand-adddi
-mindexed ๋กœ๋“œ -mlra -mlra-์šฐ์„ ์ˆœ์œ„-์—†์Œ -mlra-์šฐ์„ ์ˆœ์œ„-์ปดํŒฉํŠธ mlra-์šฐ์„ ์ˆœ์œ„-
๋น„์ปดํŒฉํŠธ -mno-๋ฐ€๋ฆฌ์ฝ”๋“œ -mmํ˜ผํ•ฉ ์ฝ”๋“œ -mq ํด๋ž˜์Šค -mRcq -mRcw -msize ์ˆ˜์ค€=์ˆ˜ํ‰
-mtune=CPU -๋‹ค์ค‘ ๋น„์šฉ=NUM -munalign-prob-์ž„๊ณ„๊ฐ’=ํ™•๋ฅ 

ARM ์˜ต์…˜ -mapcs-ํ”„๋ ˆ์ž„ -mno-apcs-ํ”„๋ ˆ์ž„ -๋งˆ๋น„=name -mapcs-์Šคํƒ-์ฒดํฌ
-mno-apcs-์Šคํƒ-์ฒดํฌ -mapcs-ํ”Œ๋กœํŠธ -mno-apcs-ํ”Œ๋กœํŠธ -mapcs-์žฌ์ง„์ž…
-mno-apcs-์žฌ์ง„์ž… -msched-ํ”„๋กค๋กœ๊ทธ -mno-sched-ํ”„๋กค๋กœ๊ทธ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -mbig-์—”๋””์•ˆ
-mfloat-abi=name -mfp16 ํ˜•์‹=name -mthumb-์—ฐ๋™ -mno-thumb-์—ฐ๋™ -mcpu =name
-ํ–‰์ง„=name -mfpu=name -mtune=name -mprint-์กฐ์ •-์ •๋ณด -m๊ตฌ์กฐ-ํฌ๊ธฐ-๊ฒฝ๊ณ„=n
- mabort-on-noreturn -mlong-ํ†ตํ™” -mno-long-ํ†ตํ™” -msingle-pic-base
-mno-๋‹จ์ผ-์‚ฌ์ง„-๋ฒ ์ด์Šค -mpic-๋ ˆ์ง€์Šคํ„ฐ=๋“ฑ๋ก ๋ฒˆํ˜ธ -mnop-์žฌ๋ฏธ-dllimport -mpoke ํ•จ์ˆ˜ ์ด๋ฆ„
-์—„์ง€์†๊ฐ€๋ฝ -๋งˆ๋ฆ„ -mtpcs-ํ”„๋ ˆ์ž„ -mtpcs-๋ฆฌํ”„ ํ”„๋ ˆ์ž„ -mcaller-์Šˆํผ ์ธํ„ฐ์›Œํ‚น
-mcallee-์Šˆํผ ์ธํ„ฐ์›Œํ‚น -mtp=name -mtls-๋ฐฉ์–ธ=๋ฐฉ์–ธ -mword-์žฌ๋ฐฐ์น˜
-mfix-cortex-m3-ldrd -munaligned ์•ก์„ธ์Šค -64๋น„ํŠธ์šฉ mneon -mslow ํ”Œ๋ž˜์‹œ ๋ฐ์ดํ„ฐ
-masm ๊ตฌ๋ฌธ ํ†ตํ•ฉ -mrestrict-it

AVR ์˜ต์…˜ -mmcu=MCU -maccumulate-args -mbranch ๋น„์šฉ=๋น„์šฉ -mcall-ํ”„๋กค๋กœ๊ทธ -๋ฏผํŠธ8
-mn_ํ”Œ๋ž˜์‹œ=ํฌ๊ธฐ -mno ์ธํ„ฐ๋ŸฝํŠธ -mrelax -mmw -mstrict-X -mtiny ์Šคํƒ -nodevicelib
-Waddr ๊ณต๊ฐ„ ๋ณ€ํ™˜

๋ธ”๋ž™ ํ•€ ์˜ต์…˜ -mcpu =CPU[-ํ›„๊ฒฌ] -msim -momit-๋ฆฌํ”„ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ
-mno-์ƒ๋žต-๋ฆฌํ”„-ํ”„๋ ˆ์ž„-ํฌ์ธํ„ฐ -mspecld-์ด์ƒ -mno-specld-์ด์ƒ -mcsync-์ด์ƒ
-mno-csync-์ด์ƒ -mlow-64k -mno-low64k -mstack-check-l1 -์ค‘๊ฐ„ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
-mno-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ -mshared-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ-id=n -mleaf-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
-mno-leaf-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ -msep-๋ฐ์ดํ„ฐ -mno-XNUMX์›”-๋ฐ์ดํ„ฐ -mlong-ํ†ตํ™” -mno-long-ํ†ตํ™”
-mfast-fp -minline-plt -m๋ฉ€ํ‹ฐ์ฝ”์–ด -์— ์ฝ”๋ฆฌ์•„ -mcoreb -msdram -micplb

C6X ์˜ต์…˜ -mbig-์—”๋””์•ˆ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -ํ–‰์ง„=CPU -msim -ms๋ฐ์ดํ„ฐ=๋ฐ์ดํ„ฐ ์œ ํ˜•

CRIS ์˜ต์…˜ -mcpu =CPU -ํ–‰์ง„=CPU -mtune=CPU -mmax-์Šคํƒ ํ”„๋ ˆ์ž„=n
-melinux-์Šคํƒํฌ๊ธฐ=n -๋ฉ”ํŠธ๋ ‰์Šค4 -๋ฉ”ํŠธ๋ ‰์Šค100 -mp๋””๋ฒ„๊ทธ -mcc-์ดˆ๊ธฐํ™” -mno ๋ถ€์ž‘์šฉ
-mstack ์ •๋ ฌ -mdata ์ •๋ ฌ -mconst-์ •๋ ฌ -m32๋น„ํŠธ -m16๋น„ํŠธ -m8๋น„ํŠธ
-mno-ํ”„๋กค๋กœ๊ทธ-์—ํ•„๋กœ๊ทธ -mno-gotplt -๋ฉœํ”„ -๋งˆ์šฐํŠธ -๋ฏธ๋ฆฌ๋ˆ…์Šค -mlinux -์‹ฌ -sim2
-mmul-bug-ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• -mno-mul-bug-ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

CR16 ์˜ต์…˜ -mmac -mcr16cplus -mcr16c -msim -๋ฏผํŠธ32 -mbit-ops -mdata-๋ชจ๋ธ=๋ชจ๋ธ

๋‹ค์œˆ ์˜ต์…˜ -all_load -allowable_client -์•„์น˜ -arch_errors_fatal -arch_only
-bind_at_load -๋ฌถ์Œ -bundle_loader -๊ณ ๊ฐ ์ด๋ฆ„ -ํ˜ธํ™˜์„ฑ_๋ฒ„์ „
-ํ˜„์žฌ_๋ฒ„์ „ -dead_strip -์ข…์†์„ฑ ํŒŒ์ผ -dylib_file -dylinker_install_name
-๋™์  -๋‹ค์ด๋‚ด๋ฏน ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ -๋‚ด๋ณด๋‚ธ_๊ธฐํ˜ธ_๋ชฉ๋ก -ํŒŒ์ผ ๋ชฉ๋ก -ํ”Œ๋žซ_๋„ค์ž„์ŠคํŽ˜์ด์Šค
-force_cpusubtype_ALL -force_plat_namespace -headerpad_max_install_names -iframework
-์ด๋ฏธ์ง€_๋ฒ ์ด์Šค -์ดˆ๊ธฐํ™” -์„ค์น˜ ์ด๋ฆ„ -keep_private_externs -๋‹ค์ค‘ ๋ชจ๋“ˆ
-๊ณฑํ•˜๊ธฐ_์ •์˜ -multiply_defined_unused -noall_load
-no_dead_strip_inits_and_terms -nofix ์‚ฌ์ „ ๋ฐ”์ธ๋”ฉ -nomultidefs -๋…ธํ”„๋ฆฌ๋ฐ”์ธ๋“œ
-noseglinkit -pagezero_size -์‚ฌ์ „ ๋ฐ”์ธ๋”ฉ -prebind_all_twolevel_modules -private_bundle
-read_only_relocs -๋ถ„ํ•  ์ •๋ ฌ -์„นํŠธ๊ฐ์ฒด ๊ธฐํ˜ธ -์™œ ๋กœ๋“œ -์„ธ๊ทธ1์ฃผ์†Œ -์„น์…˜ ์ƒ์„ฑ
-์„นํŠธ๊ฐ์ฒด ๊ธฐํ˜ธ - ๋ถ€๋ฌธ๋ณ„ -segaddr -segs_read_only_addr -segs_read_write_addr
-์„ธ๊ทธ_์ฃผ์†Œ_ํ…Œ์ด๋ธ” -seg_addr_table_filename -์„ธ๊ทธ๋งํฌ๋“œ์ž‡ -์„ธ๊ทธํ”„๋กœํŠธ -segs_read_only_addr
-segs_read_write_addr -๋‹จ์ผ_๋ชจ๋“ˆ -๊ณต์ „ -ํ•˜์œ„_๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ -sub_umbrella
-twolevel_namespace -์šฐ์‚ฐ -์ฐพ์œผ์‹œ๋Š” ์ฃผ์†Œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค -๋‚ด๋ณด๋‚ด์ง€ ์•Š์€_๊ธฐํ˜ธ_๋ชฉ๋ก
-weak_reference_mismatches -๋ฌด์—‡์„ ๋กœ๋“œ -F -๊ฑฐ์Šค -gfull -mmacosx-๋ฒ„์ „-์ตœ์†Œ=๋ฒ„์ „
-mkernel -mon-byte-bool

12์›” ์•ŒํŒŒ ์˜ต์…˜ -mno-fp-regs -msoft-float -์ด๋”ฐ - ๋ถ€์ •ํ™•ํ•œ
-mieee-์ค€์ˆ˜ -mfp-ํŠธ๋žฉ ๋ชจ๋“œ=๋ชจ๋“œ -mfp-๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ=๋ชจ๋“œ -mtrap-์ •๋ฐ€๋„=๋ชจ๋“œ
-mbuild-์ƒ์ˆ˜ -mcpu =CPU ์œ ํ˜• -mtune=CPU ์œ ํ˜• -mbwx -mmax -mfix -mcix
-mfloat-vax -mfloat-ieee -mexplicit-relocs -msmall-๋ฐ์ดํ„ฐ -mlarge-๋ฐ์ดํ„ฐ -m์ž‘์€ ํ…์ŠคํŠธ
-mlarge-ํ…์ŠคํŠธ -๋ฉ”๋ชจ๋ฆฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„=์‹œ๊ฐ„

FR30 ์˜ต์…˜ -m์ž‘์€ ๋ชจ๋ธ -mno-lsim

FRV ์˜ต์…˜ -mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 -mhard-float -msoft-float
-malloc-cc -mfixed-cc -mdword -mno-dword -m๋”๋ธ” -mno-๋”๋ธ” -๋ฏธ๋””์–ด -mno-๋ฏธ๋””์–ด
-mmuladd -mno-๋ฌผ๋ผ๋“œ -mfdpic -minline-plt -mgprel-๋กœ -multilib-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ-pic
-Mlinked-FP -mlong-ํ†ตํ™” -์•…์„ฑ ๋ ˆ์ด๋ธ” - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์ง„ -๋งฅ-4 -๋งฅ-8 -mpack
-mno-ํŒฉ -mno ํ”Œ๋ž˜๊ทธ -mcond-์ด๋™ -mno-cond-์ด๋™ -moptimize-๋ฉค๋ฐ”
-mno-optimize-๋ฉค๋ฐ” -mscc -mno-scc -mcond-exec -mno-์กฐ๊ฑด-exec -mvliw-๋ถ„๊ธฐ
-mno-vliw-๋ถ„๊ธฐ -m๋‹ค์ค‘ ์กฐ๊ฑด ์‹คํ–‰ -mno-๋‹ค์ค‘ ์กฐ๊ฑด-exec -mnested-cond-exec
-mno-์ค‘์ฒฉ-์กฐ๊ฑด-exec -mtomcat-ํ†ต๊ณ„ -mTLS -mtls -mcpu =CPU

GNU / ๋ฆฌ๋ˆ…์Šค ์˜ต์…˜ -mglibc -๋ฎคํด๋ฆฝ -์— ๋น„์˜ค๋‹‰ -๋งจ๋“œ๋กœ์ด๋“œ -tno-์•ˆ๋“œ๋กœ์ด๋“œ-cc -tno-์•ˆ๋“œ๋กœ์ด๋“œ-ld

H8 / 300 ์˜ต์…˜ -mrelax -mh -ms -mn -๋ฉ•์Šค -mno-exr -๋ฏผํŠธ32 -์•…์„ฑ-300

HPPA ์˜ต์…˜ -ํ–‰์ง„=๊ฑด์ถ•ํ˜• -mdisable-fpregs -mdisable-์ธ๋ฑ์‹ฑ
-mfast-๊ฐ„์ ‘ ํ˜ธ์ถœ - ๊ฐ€์Šค -mgnu-ld -mhp-ld -m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„
-m์ ํ”„-์ธ-์ง€์—ฐ -mlinker-opt -mlong-ํ†ตํ™” -mlong-๋กœ๋“œ-์Šคํ† ์–ด -mno-disable-fpregs
-mno-disable-์ธ๋ฑ์‹ฑ -mno-๋น ๋ฅธ ๊ฐ„์ ‘ ํ˜ธ์ถœ -mno-๊ฐ€์Šค -mno-์ ํ”„-์ธ-์ง€์—ฐ
-mno-long-load-store -mno-ํœด๋Œ€์šฉ-๋Ÿฐํƒ€์ž„ -mno-์†Œํ”„ํŠธ-ํ”Œ๋กœํŠธ -mno-๊ณต๊ฐ„-regs
-msoft-float -mpa-risc-1-0 -mpa-risc-1-1 -mpa-risc-2-0 -๊ฐ€๋™ ๊ฐ€๋Šฅํ•œ ๋Ÿฐํƒ€์ž„
-ms์Šค์ผ€์ค„=CPU ์œ ํ˜• -mspace-regs -msio -mwsio -๋ฎค๋‹‰์Šค=์œ ๋‹‰์Šค ํ‘œ์ค€ -nolibdld -๊ณต์ „
- ์Šค๋ ˆ๋“œ

IA-64 ์˜ต์…˜ -mbig-์—”๋””์•ˆ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -mgnu-as -mgnu-ld -mno-๊ทธ๋ฆผ
-mvolatile-asm-์ค‘์ง€ -m ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„ -msdata -mno-sdata -m์ƒ์ˆ˜-gp -์ž๋™ ์‚ฌ์ง„
-๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ -minline-float-divide-min-latency -minline-float-divide-max-์ฒ˜๋ฆฌ๋Ÿ‰
-mno-inline-float-divide -minline-int-divide-min-latency
-minline-int-divide-max-์ฒ˜๋ฆฌ๋Ÿ‰ -mno-์ธ๋ผ์ธ-int-๋‚˜๋ˆ„๊ธฐ -minline-sqrt-์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„
-minline-sqrt-max-์ฒ˜๋ฆฌ๋Ÿ‰ -mno-์ธ๋ผ์ธ-sqrt -mdwarf2-asm -๊ฑฐ์˜ ์Šคํ†ฑ ๋น„ํŠธ
-m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„ -mtls-ํฌ๊ธฐ=tls ํฌ๊ธฐ -mtune=CPU ์œ ํ˜• -milp32. -mlp64
-msched-br-๋ฐ์ดํ„ฐ-์‚ฌ์–‘ -msched-ar-๋ฐ์ดํ„ฐ-์‚ฌ์–‘ -msched-์ œ์–ด-์‚ฌ์–‘ -msched-br-in-data-spec
-msched-ar-in-data-spec -msched-in-control-spec -msched-spec-ldc
-msched-spec-control-ldc -msched-prefer-๋น„-๋ฐ์ดํ„ฐ-์‚ฌ์–‘-insns
-msched-prefer-non-control-spec-insns -๋งค ์ฃผ๊ธฐ ํ›„ msched-stop-bits
-msched-count-spec-in-์ค‘์š”-๊ฒฝ๋กœ -msel-sched-dont-check-control-spec
-msched-fp-mem-deps-์ œ๋กœ ๋น„์šฉ -msched-์ตœ๋Œ€-๋ฉ”๋ชจ๋ฆฌ-insns-ํ•˜๋“œ ์ œํ•œ
-msched-์ตœ๋Œ€-๋ฉ”๋ชจ๋ฆฌ-insns=์ตœ๋Œ€-์ธ์Šค

LM32 ์˜ต์…˜ -mbarrel-shift ์‚ฌ์šฉ ๊ฐ€๋Šฅ -mdivide ์‚ฌ์šฉ -m๊ณฑํ•˜๊ธฐ ๊ฐ€๋Šฅ
-msign ํ™•์žฅ ๊ฐ€๋Šฅ -muser ์‚ฌ์šฉ ๊ฐ€๋Šฅ

M32R/D ์˜ต์…˜ -m32r2 -m32rx -m32r -m๋””๋ฒ„๊ทธ -์•…์„ฑ ๋ฃจํ”„ -mno-align ๋ฃจํ”„
-์˜ค๋ฅ˜์œจ=๋ฒˆํ˜ธ -mbranch ๋น„์šฉ=๋ฒˆํ˜ธ -๋ชจ๋ธ=์ฝ”๋“œ ํฌ๊ธฐ ๋ชจ๋ธ ์œ ํ˜• -ms๋ฐ์ดํ„ฐ=์‚ฌ๋‹ค
์œ ํ˜• -mno-ํ”Œ๋Ÿฌ์‹œ-ํŽ‘ํฌ -mflush-func=name -mno-ํ”Œ๋Ÿฌ์‹œ-ํŠธ๋žฉ -mflush-ํŠธ๋žฉ=๋ฒˆํ˜ธ -G NUM

M32C ์˜ต์…˜ -mcpu =CPU -msim -memregs=๋ฒˆํ˜ธ

M680x0 ์˜ต์…˜ -ํ–‰์ง„=์•„์น˜ -mcpu =CPU -mtune=๊ณก์กฐ -m68000 -m68020 -m68020-40
-m68020-60 -m68030 -m68040 -m68060 -mcpu32 -m5200 -m5206e -m528x -m5307 -m5407
-mcfv4e -mbitํ•„๋“œ -mno ๋น„ํŠธ ํ•„๋“œ -mc68000 -mc68020 -mnobitํ•„๋“œ -mrtd -mno-rtd
-mdiv -mno-div -m์งง์€ -mno-์งง์€ -mhard-float -m68881 -msoft-float -mprel
-์•…์„ฑ-int -mstrict-์ •๋ ฌ -msep-๋ฐ์ดํ„ฐ -mno-XNUMX์›”-๋ฐ์ดํ„ฐ -mshared-library-id=n
-์ค‘๊ฐ„ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ -mno-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ -mxgot -mno-xgot

์— ์ฝ”์–ด ์˜ต์…˜ -mhardlit -mno-hardlit -mdiv -mno-div -mrelax-์ฆ‰์‹œ
-mno-relax-immediate -mwide-๋น„ํŠธ ํ•„๋“œ -mno ์™€์ด๋“œ ๋น„ํŠธ ํ•„๋“œ -m4byte-ํ•จ์ˆ˜
-mno-4byte-ํ•จ์ˆ˜ -mcallgraph-๋ฐ์ดํ„ฐ -mno-callgraph-๋ฐ์ดํ„ฐ -mslow-๋ฐ”์ดํŠธ
-mno-๋Š๋ฆฐ ๋ฐ”์ดํŠธ -mno-lsim -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -mbig-์—”๋””์•ˆ -m210 -m340
-mstack ์ฆ๊ฐ€

MeP ์˜ต์…˜ -๋ง™์Šค๋””ํ”„ -๋ชฐ ์˜ต์…˜ -ํ‰๊ท  -m ๊ธฐ๋ฐ˜=n -์— ๋น„ํƒ‘์Šค -MC=n -mclip
-mconfig=name -์— ์บ… -mcop32 -mcop64 -mivc2 -MDC -mdiv -๋ฉ”๋ธŒ -๋ฉœ -mio-ํœ˜๋ฐœ์„ฑ -ml
-mleadz -mm -mminmax -๋ฉ€ํ‹ฐ -mno ์˜ต์…˜ -mrepeat -ms -msatur -msdram -msim -msimnovec
-MTF -์ตœ์†Œ =n

๋งˆ์ดํฌ๋กœ๋ธ”๋ ˆ์ด์ฆˆ ์˜ต์…˜ -msoft-float -mhard-float -m์ž‘์€ ๋‚˜๋ˆ„๊ธฐ -mcpu =CPU -mmemcpy
-mxl-์†Œํ”„ํŠธ-๋ฎฌ -mxl-์†Œํ”„ํŠธ-div -mxl-๋ฐฐ๋Ÿด ์‹œํ”„ํŠธ -mxl-ํŒจํ„ด-๋น„๊ต -mxl-์Šคํƒ ๊ฒ€์‚ฌ
-mxl-gp-opt -mno-clearbss -mxl-๊ณฑํ•˜๊ธฐ-๋†’์Œ -mxl-ํ”Œ๋กœํŠธ ๋ณ€ํ™˜ -mxl-ํ”Œ๋กœํŠธ-sqrt
-mbig-์—”๋””์•ˆ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -mxl-์žฌ์ฃผ๋ฌธ -mxl-๋ชจ๋“œ-์•ฑ ๋ชจ๋ธ

MIPS ์˜ต์…˜ -์—˜์ž -EB -ํ–‰์ง„=์•„์น˜ -mtune=์•„์น˜ -๋ฐ‰์Šค1 -๋ฐ‰์Šค2 -๋ฐ‰์Šค3 -๋ฐ‰์Šค4
-๋ฐ‰์Šค32 -mips32r2 -mips32r3 -mips32r5 -mips32r6 -๋ฐ‰์Šค64 -mips64r2 -mips64r3
-mips64r5 -mips64r6 -๋ฐ‰์Šค16 -mno-mips16 -mflip-mips16 -minterlink ์••์ถ•
-mno-interlink-์••์ถ• -minterlink-mips16 -mno-interlink-mips16 -๋งˆ๋น„=ABI
-๋งˆ๋น„์ฝœ -mno-abicals -m๊ณต์œ  -mno ๊ณต์œ  -MPLT -mno-plt -mxgot -mno-xgot
-mgp32 -mgp64 -mfp32 -mfpxx -mfp64 -mhard-float -msoft-float -mno-float
-msingle-float -m๋”๋ธ” ํ”Œ๋กœํŠธ -modd-spreg -mno-ํ™€์ˆ˜-spreg -๋ง™์Šค=๋ชจ๋“œ -๋ฏ€๋‚œ=๋ถ€ํ˜ธํ™”
-mdsp -mno-dsp -MDSPR2 -mno-dspr2 -mmcu -mmno-mcu -๋ฉ”๋ฐ” -mno-์—๋ฐ” -mvirt -mno-virt
-mxpa -mno-xpa -mmmicromips -mno-micromip -mfpu=fpu ์œ ํ˜• -msmartmips -mno-smartmips
-mpaired-๋‹จ์ผ -mno ์Œ ๋‹จ์ผ -mdmx -mno-mdmx -mips3d -mno-mips3d -mmt
-mno-mt -mllsc -mno-llsc -mlong64 -mlong32 -msym32 -mno-sym32 -GNUM
-mlocal-sdata -mno-๋กœ์ปฌ-sdata -mextern-sdata -mno-์™ธ๋ถ€-sdata -mgpopt -mno-gopt
-ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ -mno-embedded-๋ฐ์ดํ„ฐ -muninit-const-in-rodata
-mno-unit-const-in-rodata -mcode ํŒ๋… ๊ฐ€๋Šฅ=์„ค์ • -msplit ์ฃผ์†Œ
-mno-๋ถ„ํ•  ์ฃผ์†Œ -mexplicit-relocs -mno-๋ช…์‹œ์ -relocs -mcheck-XNUMX ๋‚˜๋ˆ—์…ˆ
-mno-check-zero-division -mdivide-ํŠธ๋žฉ -mdivide-break -mmemcpy -mno-memcpy
-mlong-ํ†ตํ™” -mno-long-ํ†ตํ™” -mmad -mno-mad -๋งˆ๋งˆ๋“œ -mno-imadd -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ
-mno-์œตํ•ฉ-๋งค๋“œ -nocpp -mfix-24k -mno-fix-24k -mfix-r4000 -mno-fix-r4000
-mfix-r4400 -mno-fix-r4400 -mfix-r10000 -mno-fix-r10000 -mfix-rm7000 -mno-fix-rm7000
-mfix-vr4120 -mno-fix-vr4120 -mfix-vr4130 -mno-fix-vr4130 -mfix-sb1 -mno-fix-sb1
-mflush-func=ํŽ‘ํฌ -mno-ํ”Œ๋Ÿฌ์‹œ-ํŽ‘ํฌ -mbranch ๋น„์šฉ=NUM -mbranch ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”
-mno-branch-like -mfp-์˜ˆ์™ธ -mno-fp-์˜ˆ์™ธ -mvr4130-์ •๋ ฌ -mno-vr4130-์ •๋ ฌ
-msynci -mno-synci -mrelax-ํ”ฝ-์ฝœ -mno-relax-pic-calls -mmcount-ra-์ฃผ์†Œ

์— ๋ฏน์Šค ์˜ต์…˜ -mlibfuncs -mno-libfuncs -๋ฉค์‹ค๋ก  -mno-์—ก์‹ค๋ก  -๋งˆ๋น„=๋ˆ„
-๋งˆ๋น„=mmixware -mzero ํ™•์žฅ -mknuthdiv -mtoplevel-์‹ฌ๋ณผ -๋ฉœํ”„ -mbranch ์˜ˆ์ธก
-mno-๋ถ„๊ธฐ-์˜ˆ์ธก -mbase ์ฃผ์†Œ -mno-base-์ฃผ์†Œ -ms๋‹จ์ผ ์ข…๋ฃŒ
-mno-๋‹จ์ผ ์ข…๋ฃŒ

MN10300 ์˜ต์…˜ - ๋ณตํ•ฉ ๋ฒ„๊ทธ -mno-multi-bug -mno-am33 -mam33 -mam33-2 -mam34 -mtune=CPU-
์œ ํ˜• -mreturn-ํฌ์ธํ„ฐ-on-d0 -mno-crt0 -mrelax -๋ฐ€๋ฆฌ -msetlb

์šฉ๊ฐ ์˜ต์…˜ -๋ฉ”๋ธŒ -๋ฉœ -mmul.x -mno-crt0

MSP430 ์˜ต์…˜ -msim -masm-hex -mmcu= -mcpu = -๋Œ€ํ˜• -m์ž‘์€ -mrelax -mhwmult= -๋ฏผํŠธ

NDS32 ์˜ต์…˜ -mbig-์—”๋””์•ˆ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -mreduced-regs -mfull-regs -mcmov -mno-cmov
-mperf-ext -mno-perf-ext -mv3push -mno-v3push -m16๋น„ํŠธ -mno-16๋น„ํŠธ -misr-๋ฒกํ„ฐ-ํฌ๊ธฐ=NUM
-mcache-๋ธ”๋ก ํฌ๊ธฐ=NUM -ํ–‰์ง„=์•„์น˜ -mc๋ชจ๋ธ=์ฝ”๋“œ ๋ชจ๋ธ -mctor-dtor -mrelax

๋‹ˆ์˜ค์Šค II ์˜ต์…˜ -G NUM -mgpopt=์„ ํƒ๊ถŒ -mgpopt -mno-gpopt -๋ฉœ -๋ฉ”๋ธŒ -mno ์šฐํšŒ ์บ์‹œ
-mbypass-์บ์‹œ -mno-์บ์‹œ-ํœ˜๋ฐœ์„ฑ -mcache-ํœ˜๋ฐœ์„ฑ -mno-๋น ๋ฅธ-sw-div -mfast-sw-div
-mhw-๋ฌผ -mno-hw-๋ฌผ -mhw-mux -mno-hw-mux -mno-hw-div -mhw-div -์— ์ปค์Šคํ…€-์—ฌ๊ด€=N
-mno-์ปค์Šคํ…€-์—ฌ๊ด€ -mcustom-fpu-cfg=name -๋ง -msmallc -msys-crt0=name -msys-lib=name

์—”๋น„๋””์•„ PTX ์˜ต์…˜ -m32 -m64 -mmainkernel

PDP-11 ์˜ต์…˜ -mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 -mbcopy
-mbcopy ๋‚ด์žฅ -๋ฏผํŠธ32 -mno-int16 -๋ฏผํŠธ16 -mno-int32 -mfloat32 -mno-float64
-mfloat64 -mno-float32 -๋ง›์‹œ -mno-abshi -mbranch-๋น„์‹ผ -mbranch-์ €๋ ดํ•œ
-munix-asm -mdec-asm

ํ”ผ์ฝ”์นฉ ์˜ต์…˜ -๋งค=ae_type -mvliw-์˜ˆ์ธก=N -msymbol-์ฃผ์†Œ
-mno-inefficiency-warnings

PowerPC ์˜ต์…˜ RS/6000 ๋ฐ PowerPC ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

RL78 ์˜ต์…˜ -msim -mmul=์—†์Œ -mmul=g13 -mmul=rl78 -m64bit-๋”๋ธ” -m32bit-๋”๋ธ”

RS/6000 ๊ณผ PowerPC ์˜ต์…˜ -mcpu =CPU ์œ ํ˜• -mtune=CPU ์œ ํ˜• -mc๋ชจ๋ธ=์ฝ”๋“œ ๋ชจ๋ธ
-mpowerpc64 -๋งํ‹ฐ๋ฒก -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-ํ•˜๋“œ-dfp -mfull-toc -์ตœ์†Œ-toc -mno-fp-in-toc -mno-ํ•ฉ๊ณ„-๋ชฉ์ฐจ
-m64 -m32 -mxl-ํ˜ธํ™˜ -mno-xl-์ปดํŒจํŠธ -mp -์•…์˜๋ ฅ -์•…์„ฑ - ์ž์—ฐ
-msoft-float -mhard-float -m๋‹ค์ค‘ -mno-๋‹ค์ค‘ -msingle-float -m๋”๋ธ” ํ”Œ๋กœํŠธ
-ms๋‹จ์ˆœ-fpu -mstring -mno-๋ฌธ์ž์—ด -์—…๋ฐ์ดํŠธ -mno-์—…๋ฐ์ดํŠธ -mavoid-์ƒ‰์ธ ์ฃผ์†Œ
-mno-avoid-์ƒ‰์ธ ์ฃผ์†Œ -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ -mno-์œตํ•ฉ-๋งค๋“œ -mbit ์ •๋ ฌ
-mno ๋น„ํŠธ ์ •๋ ฌ -mstrict-์ •๋ ฌ -mno-์—„๊ฒฉํ•œ ์ •๋ ฌ -m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ -mno ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ
-mrelocateable-lib -mno-relocateable-lib -mtoc -mno-toc -์กฐ๊ธˆ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
-mbig -mbig-์—”๋””์•ˆ -mdynamic-no-pic -๋งํ‹ฐ๋ฒก -mswdiv -msingle-pic-base
- ์šฐ์„  ์ˆœ์œ„ ์ œํ•œ - inns =์šฐ์„  -msched-๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š”-dep=์˜์กด ์œ ํ˜•
-minsert-sched-nops=๊ณ„ํš -mcall-sysv -mcall-netbsd -maix-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜
-msvr4-๊ตฌ์กฐ์ฒด ๋ฐ˜ํ™˜ -๋งˆ๋น„=์•„๋น„ํ˜• -msecure-plt -mbss-plt
-mblock-์ด๋™-์ธ๋ผ์ธ-์ œํ•œ=NUM -๋ฏธ์ ค -mno-isel -misel=์˜ˆ -misel=์•„๋‹ˆ์š” -mspe -mno-sp
-mspe=์˜ˆ -mspe=์•„๋‹ˆ์š” -์ง์ด ๋œ -mgen-cell-๋งˆ์ดํฌ๋กœ์ฝ”๋“œ -mwarn-cell-๋งˆ์ดํฌ๋กœ์ฝ”๋“œ -mvrsave
-mno-vrsave -mmulhw -mno-๋ฌผํ -mdlmzb -mno-dlmzb -mfloat-gprs=์˜ˆ -mfloat-gprs=์•„๋‹ˆ์š”
-mfloat-gprs=๋‹จ์ผ -mfloat-gprs=๋”๋ธ” -mํ”„๋กœํ† ํƒ€์ž… -mno ํ”„๋กœํ† ํƒ€์ž… -msim -mmvme
- ๋ฏธ์นœ -๊ณจ์ˆ˜์นผ -๋ฉค๋ฒ„ -msdata -ms๋ฐ์ดํ„ฐ=๊ณ ๋ฅด๋‹ค -mvxworks -G NUM -pthread -mrecip
-mrecip=๊ณ ๋ฅด๋‹ค -mno-recipe -mrecip-์ •๋ฐ€๋„ -mno-precision. -mveclibabi=์œ ํ˜• -mfriz
-mno-friz -์ค‘์ฒฉ ํ•จ์ˆ˜์— ๋Œ€ํ•œ mpointers -์ค‘์ฒฉ ํ•จ์ˆ˜์— ๋Œ€ํ•œ mno ํฌ์ธํ„ฐ
-msave-toc-๊ฐ„์ ‘ -mno-save-toc-๊ฐ„์ ‘ -mpower8-ํ“จ์ „ -mno-mpower8-ํ“จ์ „
-mpower8-๋ฒกํ„ฐ -mno-power8-๋ฒกํ„ฐ -mcrypto -mno-์•”ํ˜ธํ™” -mdirect-์ด๋™ -mno-์ง์ ‘ ์ด๋™
-mquad-๋ฉ”๋ชจ๋ฆฌ -mno ์ฟผ๋“œ ๋ฉ”๋ชจ๋ฆฌ -mquad-๋ฉ”๋ชจ๋ฆฌ-์›์ž -mno-์ฟผ๋“œ-๋ฉ”๋ชจ๋ฆฌ-์›์ž
-mcompat-์ •๋ ฌ-parm -mno-compat-align-parm -mupper-regs-df -mno-upper-regs-df
-mupper-regs-sf -mno-upper-regs-sf -mupper-regs -mno-์ƒ์œ„-regs

RX ์˜ต์…˜ -m64bit-๋”๋ธ” -m32bit-๋”๋ธ” -fpu -๋…ธํ‘ธ -mcpu = -mbig-endian-๋ฐ์ดํ„ฐ
-mlittle-endian-๋ฐ์ดํ„ฐ -msmall-๋ฐ์ดํ„ฐ -msim -mno-sim -mas100-๊ตฌ๋ฌธ -mno-as100-๊ตฌ๋ฌธ
-mrelax -mmax-์ผ์ • ํฌ๊ธฐ= -๋ฏผํŠธ ๋ ˆ์ง€์Šคํ„ฐ= -mpid -mno-warn-๋‹ค์ค‘ ๊ณ ์†-์ธํ„ฐ๋ŸฝํŠธ
-msave-ACC -์— - ์ธํ„ฐ๋ŸฝํŠธ

S / 390 ๊ณผ z ์‹œ๋ฆฌ์ฆˆ ์˜ต์…˜ -mtune=CPU ์œ ํ˜• -ํ–‰์ง„=CPU ์œ ํ˜• -mhard-float -msoft-float
-mhard-dfp -mno-ํ•˜๋“œ-dfp -mlong-๋”๋ธ”-64 -mlong-๋”๋ธ”-128 -mbackchain
-mno-๋ฐฑ์ฒด์ธ -mpacked-์Šคํƒ -mno-packed-์Šคํƒ -msmall-exec -mno-์†Œํ˜•-exec
-mmvcle -mno-mvcle -m64 -m31 -m๋””๋ฒ„๊ทธ -mno ๋””๋ฒ„๊ทธ -๋ฉ”์‚ฌ -mzarch -mtpf ์ถ”์ 
-mno-tpf-์ถ”์  -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ -mno-์œตํ•ฉ-๋งค๋“œ -mwarn-ํ”„๋ ˆ์ž„ ํฌ๊ธฐ -mwarn-๋™์  ์Šคํƒ
-mstack ํฌ๊ธฐ -mstack-๊ฐ€๋“œ -mhotpatch=ํ•˜ํ”„์›Œ๋“œ,ํ•˜ํ”„์›Œ๋“œ

์ ์ˆ˜ ์˜ต์…˜ -๋ฉ”๋ธŒ -๋ฉœ -mnhwloop -๋ฌผ -mmac -mscore5 -mscore5u -mscore7 -mscore7d

SH ์˜ต์…˜ -m1 -m2 -m2e -m2a-๋…ธํ‘ธ -m2a-๋‹จ์ผ ์ „์šฉ -m2a-๋‹จ์ผ -m2a -m3 -m3e
-m4-๋…ธํ‘ธ -m4-๋‹จ์ผ ์ „์šฉ -m4-๋‹จ์ผ -m4 -m4a-๋…ธํ‘ธ -m4a-๋‹จ์ผ ์ „์šฉ -m4a-๋‹จ์ผ
-m4a -m4al -m5-64๋ฏธ๋””์–ด -m5-64๋ฏธ๋””์–ด-๋…ธํ‘ธ -m5-32๋ฏธ๋””์–ด -m5-32๋ฏธ๋””์–ด-๋…ธํ‘ธ -m5-์ปดํŒฉํŠธ
-m5-์ปดํŒฉํŠธ-nofpu -mb -ml -mdalign -mrelax -mbigtable -mfmovd -๋ฏธํƒ€์น˜ -๋ฏ€๋ ˆ๋„ค์‚ฌ์Šค
-mno-๋ฅด๋„ค์‚ฌ์Šค -mnomac์ €์žฅ -์ด๋”ฐ -mno-ieee -์— ๋น„ํƒ‘์Šค -์‚ฌ์ด์ฆˆ๋ฅผ ์ž˜๋ชป ๋งž์ถ”๋‹ค -minline-ic_invalidate
-mpadstruct -mspace -mpfergot -muser ๋ชจ๋“œ -๋‹ค์ค‘ ๋น„์šฉ=๋ฒˆํ˜ธ -mdiv=์ „๋žต
-mdivsi3_libfunc=name -m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„ -mindexed ์ฃผ์†Œ ์ง€์ •
-mgettr๋น„์šฉ=๋ฒˆํ˜ธ -mpt ๊ณ ์ • -maccumulate-outgoing-args -์ตœ์†Œ ์œ ํšจ ๊ธฐํ˜ธ
-์›์ž ๋ชจ๋ธ=์›์ž ๋ชจ๋ธ -mbranch ๋น„์šฉ=NUM -mzdc๋ถ„๊ธฐ -mno-zdc๋ธŒ๋žœ์น˜
-mcbranch-force-delay-slot -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ -mno-์œตํ•ฉ-๋งค๋“œ -mfsca -mno-fsca -mfsrra
-mno-fsrra -์ฒ™-cmove -mtas

์†”๋ผ๋ฆฌ์Šค 2 ์˜ต์…˜ -mclear-hwcap -mno-clear-hwcap -๋ถˆ์ˆœํ•œ ํ…์ŠคํŠธ -mno-์ˆœ์ˆ˜ ํ…์ŠคํŠธ
-pthread -pthread

SPARC ์˜ต์…˜ -mcpu =CPU ์œ ํ˜• -mtune=CPU ์œ ํ˜• -mc๋ชจ๋ธ=์ฝ”๋“œ ๋ชจ๋ธ -๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ=๋ฉ”๋ชจ๋ฆฌ
๋ชจ๋ธ -m32 -m64 -map-regs -mno-app-regs -mfaster-๊ตฌ์กฐ์ฒด -mno-๋น ๋ฅธ ๊ตฌ์กฐ
-mํ”Œ๋žซ -mno-ํ”Œ๋žซ -mfpu -mno-fpu -mhard-float -msoft-float -mhard-quad-float
-msoft-์ฟผ๋“œ-ํ”Œ๋กœํŠธ -mstack ๋ฐ”์ด์–ด์Šค -mno-์Šคํƒ-๋ฐ”์ด์–ด์Šค -munaligned-๋”๋ธ”
-mno-unaligned-double -muser ๋ชจ๋“œ -mno-์‚ฌ์šฉ์ž ๋ชจ๋“œ -mv8plus -mno-v8plus -mvis
-mno-vis -mvis2 -mno-vis2 -mvis3 -mno-vis3 -mcbcond -mno-cbcond -mfmaf -mno-fmaf
-mpoc -mno-popc -mfix-at697f -mfix-ut699

SPU ์˜ต์…˜ -Mwarn-Reloc -mererror-reloc -msafe-dma -munsafe-dma -mbranch ํžŒํŠธ
-msmall-mem -mlarge-mem -mstdmain -m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„ -mea32 -mea64
-maddress ๊ณต๊ฐ„ ๋ณ€ํ™˜ -mno ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ณ€ํ™˜ -mcache ํฌ๊ธฐ=์บ์‹œ ํฌ๊ธฐ
-๋งˆํ† ๋ฏน ์—…๋ฐ์ดํŠธ -mno-์›์ž ์—…๋ฐ์ดํŠธ

V ์˜ต์…˜ -Qy -Qn - ์‘,๊ฒฝ๋กœ -์Œ,DIR

ํƒ€์ผ-Gx ์˜ต์…˜ -mcpu=CPU -m32 -m64 -mbig-์—”๋””์•ˆ -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ -mc๋ชจ๋ธ=์ฝ”๋“œ ๋ชจ๋ธ

ํƒ€์ผํ”„๋กœ ์˜ต์…˜ -mcpu =CPU -m32

V850 ์˜ต์…˜ -mlong-ํ†ตํ™” -mno-long-ํ†ตํ™” -mep -mno-ep -mprolog-ํ•จ์ˆ˜
-mno-prolog-ํ•จ์ˆ˜ -mspace -mtda =n -msda=n -mzda=n -map-regs -mno-app-regs
-mdisable-callt -mno-๋น„ํ™œ์„ฑํ™”-์ฝœํŠธ -mv850e2v3 -mv850e2 -mv850e1 -mv850es -mv850e
-mv850 -mv850e3v5 -mloop -mrelax -mlong-์ ํ”„ -msoft-float -mhard-float -mgcc-์•„๋น„
-mrh850-์•„๋น„ -mbig ์Šค์œ„์น˜

๋ฐฑ์Šค ์˜ต์…˜ -mg -mgnu -๋ฎค๋‹‰์Šค

๋น„์ „ ์˜ต์…˜ -m๋””๋ฒ„๊ทธ -msim -mfpu -mno-fpu -mhard-float -msoft-float -mcpu =CPU ์œ ํ˜•
-mtune=CPU ์œ ํ˜• -msv ๋ชจ๋“œ -muser ๋ชจ๋“œ

VMS ์˜ต์…˜ -mvms-๋ฐ˜ํ™˜ ์ฝ”๋“œ -mdebug-๋ฉ”์ธ=์ ‘๋‘์‚ฌ -mmalloc64 -mpointer-ํฌ๊ธฐ=ํฌ๊ธฐ

VxWorks ์˜ต์…˜ -mrtp -๋น„์ •์  -๋น„์ •์  -๋น„๋‹ค์ด๋‚˜๋ฏน -Xbind-๊ฒŒ์œผ๋ฅธ -X๋ฐ”์ธ๋“œ-์ง€๊ธˆ

x86 ์˜ต์…˜ -mtune=CPU ์œ ํ˜• -ํ–‰์ง„=CPU ์œ ํ˜• -mtune-ctrl=๊ธฐ๋Šฅ ๋ชฉ๋ก
-mdump-์กฐ์ • ๊ธฐ๋Šฅ -mno-๊ธฐ๋ณธ๊ฐ’ -mfpmath=๋‹จ์œ„ -๋งค์ฆ˜=๋ฐฉ์–ธ -mno-ํŒฌ์‹œ-์ˆ˜ํ•™-387
-mno-fp-ret-in-387 -msoft-float -mno-์™€์ด๋“œ-๊ณฑํ•˜๊ธฐ -mrtd -์•…์„ฑ-๋”๋ธ”
-mpreferred-์Šคํƒ-๊ฒฝ๊ณ„=NUM -์ตœ์†Œํ™” ์Šคํƒ ๊ฒฝ๊ณ„=NUM -mcld -mcx16 -msahf
-mmovbe -mcrc32 -mrecip -mrecip=๊ณ ๋ฅด๋‹ค -mvzeroupper -mprefer-avx128 -mmmx. -msse -msse2.
-msse3. -mssse3 -msse4.1. -msse4.2. -msse4. -mavx -mavx2 -mavx512f -mavx512pf -mavx512er
-mavx512cd -msha -๋ฉ”์Šค -mpclmul -mfsgsbase -mrdrnd -mf16c. -mfma -mprefetchwt1
-mclflushopt -mxsavec -mxsave -msse4a -m3dnow -mpopcnt -๋ง˜๋งˆ -mbmi -mtbm -mfma4 -mxop
-mlzcnt -mbmi2 -mfxsr -mx์ €์žฅ -mxsaveopt -mrtm -mlwp -mmpx -mmwaitx -m์Šค๋ ˆ๋“œ
-mno-align-stringops -minline-all-stringops -minline-stringops-๋™์ ์œผ๋กœ
-mstringop-์ „๋žต=ALG -mmemcpy-์ „๋žต=์ „๋žต -mmemset-์ „๋žต=์ „๋žต
-mpush-์ธ์ˆ˜ -maccumulate-outgoing-args -m128bit-๋กฑ-๋”๋ธ” -m96bit-๋กฑ-๋”๋ธ”
-mlong-๋”๋ธ”-64 -mlong-๋”๋ธ”-80 -mlong-๋”๋ธ”-128 -mregparm=NUM -msseregparm
-mveclibabi=์œ ํ˜• -mvect8-ret-in-mem -mpc32 -mpc64 -mpc80 -mstack์žฌ์ •๋ ฌ
-momit-๋ฆฌํ”„ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ -mno-๋ ˆ๋“œ-์กด -mno-tls-direct-seg-refs -mc๋ชจ๋ธ=์ฝ”๋“œ ๋ชจ๋ธ
-๋งˆ๋น„=name -maddress ๋ชจ๋“œ=๋ชจ๋“œ -m32 -m64 -mx32 -m16 -mlarge-๋ฐ์ดํ„ฐ-์ž„๊ณ„๊ฐ’=NUM
-msse2avx -์— ํŽœํŠธ๋ฆฌ -mrecord-mcount -mnop-mcount -m8bit-idiv
-mavx256-๋ถ„ํ• -์ •๋ ฌ๋˜์ง€ ์•Š์€-๋กœ๋“œ -mavx256-๋ถ„ํ• -์ •๋ ฌ๋˜์ง€ ์•Š์€-์ €์žฅ -์•…์„ฑ ๋ฐ์ดํ„ฐ=์œ ํ˜•
-mstack-๋ณดํ˜ธ์ž-๊ฐ€๋“œ=๊ฐ€๋“œ

x86 Windows ์˜ต์…˜ -mconsole -mcygwin -mno-cygwin -mdll -mnop-์žฌ๋ฏธ-dllimport --mthread.
-๋ฎค๋‹ˆ์ฝ”๋“œ -mwin32 -mwindows -fno-set-stack-์‹คํ–‰ ๊ฐ€๋Šฅ

Xstormy16 ์˜ต์…˜ -msim

์—‘์Šคํ…์‚ฌ ์˜ต์…˜ -mconst16 -mno-const16 -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ -mno-์œตํ•ฉ-๋งค๋“œ -mforce-no-pic
- ์ง๋ ฌํ™” - ํœ˜๋ฐœ์„ฑ -mno ์ง๋ ฌํ™” ํœ˜๋ฐœ์„ฑ -mtext-์„น์…˜-๋ฆฌํ„ฐ๋Ÿด
-mno-ํ…์ŠคํŠธ-์„น์…˜-๋ฆฌํ„ฐ๋Ÿด -mtarget-์ •๋ ฌ -mno-ํƒ€๊ฒŸ-์ •๋ ฌ -๊ธด ํ†ตํ™”
-mno-longcalls

z ์‹œ๋ฆฌ์ฆˆ ์˜ต์…˜ S/390 ๋ฐ zSeries ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์•”ํ˜ธ ์„ธ๋Œ€ ์˜ต์…˜
-fcall ์ €์žฅ-๋“ฑ๋ก ๋ฒˆํ˜ธ -fcall ์‚ฌ์šฉ-๋“ฑ๋ก ๋ฒˆํ˜ธ -๊ณ ์ •-๋“ฑ๋ก ๋ฒˆํ˜ธ -์˜ˆ์™ธ -fnon-call-exception
-fdelete-dead-์˜ˆ์™ธ -ํŽ€์œˆ๋“œ ํ…Œ์ด๋ธ” -fasynchronous-unwind-tables -fno-gnu-๊ณ ์œ 
-finhibit-size-์ง€์‹œ์–ด - ๊ธฐ๊ตฌ ๊ธฐ๋Šฅ
-finstrument-๊ธฐ๋Šฅ-์ œ์™ธ-๊ธฐ๋Šฅ-๋ชฉ๋ก=SYM,SYM, ...
-finstrument-๊ธฐ๋Šฅ-์ œ์™ธ-ํŒŒ์ผ-๋ชฉ๋ก=ํŒŒ์ผ,ํŒŒ์ผ, ... -fno-๊ณตํ†ต -fno-ident
-fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ -fpic -fPIC -ํŒŒ์ด -fPIE -fno-์ ํ”„ ํ…Œ์ด๋ธ” -frecord-gcc-์Šค์œ„์น˜
-freg-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ -fshort ์—ด๊ฑฐํ˜• -fshort-๋”๋ธ” -fshort-wchar -fverbose-asm
-fpack-๊ตฌ์กฐ์ฒด[=n] -fstack-์ฒดํฌ -fstack ์ œํ•œ ๋ ˆ์ง€์Šคํ„ฐ=๋“ฑ๋ก ๋ฒˆํ˜ธ -fstack-์ œํ•œ-์‹ฌ๋ณผ=SYM
-fno-์Šคํƒ ์ œํ•œ -fsplit ์Šคํƒ - ๋ฐ‘์ค„์„ ๊ธ‹๋‹ค -ftls-๋ชจ๋ธ=๋ชจ๋ธ
-fstack-์žฌ์‚ฌ์šฉ=์žฌ์‚ฌ์šฉ ์ˆ˜์ค€ -ftrapv. -fwrapv -fbounds-์ฒดํฌ
-๊ฐ€์‹œ์„ฑ=[๋””ํดํŠธ ๊ฐ’|๋‚ด๋ถ€์˜|์ˆจ๊ฒจ์ง„|๋ณดํ˜ธ] -fstrict-ํœ˜๋ฐœ์„ฑ ๋น„ํŠธ ํ•„๋“œ
-fsync-libcalls

์˜ต์…˜ ์ œ์–ด ์ „์—, ์ข…๋ฅ˜ of ์‚ฐ์ถœ
์ปดํŒŒ์ผ์—๋Š” ์‚ฌ์ „ ์ฒ˜๋ฆฌ, ์ ์ ˆํ•œ ์ปดํŒŒ์ผ, ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ
ํ•ญ์ƒ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ž…๋ ฅ ํŒŒ์ผ ๋˜๋Š” ํ•˜๋‚˜์˜ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ž…๋ ฅ ํŒŒ์ผ๋กœ ํŒŒ์ผ; ๊ทธ ๋‹ค์Œ์—
๊ฐ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ž…๋ ฅ ํŒŒ์ผ์€ ๊ฐœ์ฒด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋งํฌ๋Š” ๋ชจ๋“  ๊ฐœ์ฒด๋ฅผ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ(์ƒˆ๋กœ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ ๋ฐ ์ž…๋ ฅ์œผ๋กœ ์ง€์ •๋œ ํŒŒ์ผ)์„ ์‹คํ–‰ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ์ž…๋ ฅ ํŒŒ์ผ์— ๋Œ€ํ•ด ํŒŒ์ผ ์ด๋ฆ„ ์ ‘๋ฏธ์‚ฌ๋Š” ์ปดํŒŒ์ผ์˜ ์ข…๋ฅ˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
๋๋‚œ:

ํŒŒ์ผ.c
์ „์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” C ์†Œ์Šค ์ฝ”๋“œ.

ํŒŒ์ผ.i
์ „์ฒ˜๋ฆฌํ•˜๋ฉด ์•ˆ๋˜๋Š” C ์†Œ์Šค ์ฝ”๋“œ.

ํŒŒ์ผ.ii
์ „์ฒ˜๋ฆฌํ•˜๋ฉด ์•ˆ๋˜๋Š” C++ ์†Œ์Šค ์ฝ”๋“œ.

ํŒŒ์ผ.m
์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C ์†Œ์Šค ์ฝ”๋“œ. ์™€ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. libobjc ๋งŒ๋“œ๋Š” ๋„์„œ๊ด€
์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C ํ”„๋กœ๊ทธ๋žจ ์ž‘์—….

ํŒŒ์ผ.๋ฏธ
์ „์ฒ˜๋ฆฌํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” Objective-C ์†Œ์Šค ์ฝ”๋“œ.

ํŒŒ์ผ.mm
ํŒŒ์ผ.M
Objective-C++ ์†Œ์Šค ์ฝ”๋“œ. ์™€ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. libobjc ๋งŒ๋“œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
Objective-C++ ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  .M ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋Œ€๋ฌธ์ž M์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ํŒŒ์ผ.mii
์ „์ฒ˜๋ฆฌํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” Objective-C++ ์†Œ์Šค ์ฝ”๋“œ.

ํŒŒ์ผ.h
C, C++, Objective-C ๋˜๋Š” Objective-C++ ํ—ค๋” ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜
ํ—ค๋”(๊ธฐ๋ณธ๊ฐ’) ๋˜๋Š” C, C++ ํ—ค๋” ํŒŒ์ผ์„ Ada ์‚ฌ์–‘์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค(
-fdump-ada-spec ์Šค์œ„์น˜).

ํŒŒ์ผ.CC
ํŒŒ์ผ.cp
ํŒŒ์ผ.cxx
ํŒŒ์ผ.cpp
ํŒŒ์ผ.CPP
ํŒŒ์ผ.C++
ํŒŒ์ผ.C
์ „์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” C++ ์†Œ์Šค ์ฝ”๋“œ. ์ฐธ๊ณ ๋กœ .cxx, ๋งˆ์ง€๋ง‰ ๋‘ ๊ธ€์ž
๋‘˜ ๋‹ค ๋ง ๊ทธ๋Œ€๋กœ x. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, .C ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋Œ€๋ฌธ์ž C๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ํŒŒ์ผ.mm
ํŒŒ์ผ.M
์ „์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” Objective-C++ ์†Œ์Šค ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ.mii
์ „์ฒ˜๋ฆฌํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” Objective-C++ ์†Œ์Šค ์ฝ”๋“œ.

ํŒŒ์ผ.hh
ํŒŒ์ผ.H
ํŒŒ์ผ.hp
ํŒŒ์ผ.hxx
ํŒŒ์ผ.hpp
ํŒŒ์ผ.HPP
ํŒŒ์ผ.h++
ํŒŒ์ผ.tcc
C++ ํ—ค๋” ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋” ๋˜๋Š” Ada ์‚ฌ์–‘์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ.f
ํŒŒ์ผ.์„์œ„ํ•œ
ํŒŒ์ผ.ftn
์‚ฌ์ „ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๊ณ ์ •๋œ ํ˜•์‹์˜ Fortran ์†Œ์Šค ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ.F
ํŒŒ์ผ.์„์œ„ํ•œ
ํŒŒ์ผ.fpp
ํŒŒ์ผ.FPP
ํŒŒ์ผ.FTN
์ „์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ณ ์ • ํ˜•์‹ Fortran ์†Œ์Šค ์ฝ”๋“œ(๊ธฐ์กด
์ „์ฒ˜๋ฆฌ๊ธฐ).

ํŒŒ์ผ.f90
ํŒŒ์ผ.f95
ํŒŒ์ผ.f03
ํŒŒ์ผ.f08
์‚ฌ์ „ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ์ž์œ  ํ˜•์‹ Fortran ์†Œ์Šค ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ.F90
ํŒŒ์ผ.F95
ํŒŒ์ผ.F03
ํŒŒ์ผ.F08
์‚ฌ์ „ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ž์œ  ํ˜•์‹ Fortran ์†Œ์Šค ์ฝ”๋“œ(๊ธฐ์กด
์ „์ฒ˜๋ฆฌ๊ธฐ).

ํŒŒ์ผ.๊ฐ€๋‹ค
์†Œ์Šค ์ฝ”๋“œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ.ads
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์œ„ ์„ ์–ธ(a์˜ ์„ ์–ธ)์„ ํฌํ•จํ•˜๋Š” Ada ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ
ํŒจํ‚ค์ง€, ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์ผ๋ฐ˜ ๋˜๋Š” ์ผ๋ฐ˜ ์ธ์Šคํ„ด์Šคํ™”) ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์œ„
์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ์„ ์–ธ(ํŒจํ‚ค์ง€, ์ผ๋ฐ˜ ๋˜๋Š” ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ์„ ์–ธ). ๊ทธ๋Ÿฐ
ํŒŒ์ผ์ด๋ผ๊ณ ๋„ ํ•จ ๋ช…์„ธ์„œ.

ํŒŒ์ผ.adb
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์œ„ ๋ณธ๋ฌธ(์„œ๋ธŒ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ํŒจํ‚ค์ง€ ๋ณธ๋ฌธ)์„ ํฌํ•จํ•˜๋Š” Ada ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ.
์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ ๊ธฐ๊ด€.

ํŒŒ์ผ.s
์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ.

ํŒŒ์ผ.S
ํŒŒ์ผ.sx
์ „์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

other
๋งํฌ์— ์ง์ ‘ ๊ณต๊ธ‰ํ•  ๊ฐœ์ฒด ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ธ์‹๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ํŒŒ์ผ ์ด๋ฆ„
์ ‘๋ฏธ์‚ฌ๋Š” ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ์–ธ์–ด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -x ์˜ต์…˜ :

-x ์–ธ์–ด
๋ช…์‹œ์ ์œผ๋กœ ์ง€์ • ์–ธ์–ด ๋‹ค์Œ ์ž…๋ ฅ ํŒŒ์ผ์— ๋Œ€ํ•ด (๋Œ€์‹ 
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํŒŒ์ผ ์ด๋ฆ„ ์ ‘๋ฏธ์‚ฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋ชจ๋“ 
๋‹ค์Œ ์ž…๋ ฅ ํŒŒ์ผ๊นŒ์ง€ -x ์˜ต์…˜. ๊ฐ€๋Šฅํ•œ ๊ฐ’ ์–ธ์–ด ์œ„์น˜ :

c c-ํ—ค๋” cpp-์ถœ๋ ฅ
C++ C++-ํ—ค๋” C++-cpp-์ถœ๋ ฅ
๋ชฉ์ -c ๋ชฉ์ -c-ํ—ค๋” ๋ชฉ์ -c-cpp-์ถœ๋ ฅ
๋ชฉ์ -c++ ๋ชฉ์ -c++-ํ—ค๋” ๋ชฉ์ -c++-cpp-์ถœ๋ ฅ
์–ด์…ˆ๋ธ”๋Ÿฌ ์–ด์…ˆ๋ธ”๋Ÿฌ-with-cpp
ADA
f77 f77-cpp-์ž…๋ ฅ f95 f95-cpp-์ž…๋ ฅ
go
์ž๋ฐ”

-x ์—†์Œ
ํ›„์† ํŒŒ์ผ์ด ์ฒ˜๋ฆฌ๋˜๋„๋ก ์–ธ์–ด์˜ ๋ชจ๋“  ์‚ฌ์–‘์„ ๋•๋‹ˆ๋‹ค.
ํŒŒ์ผ ์ด๋ฆ„ ์ ‘๋ฏธ์‚ฌ์— ๋”ฐ๋ผ -x ์ „ํ˜€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

-ํ†ต๊ณผ ์ข…๋ฃŒ ์ฝ”๋“œ
์ผ๋ฐ˜์ ์œผ๋กœ GCC ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋‹จ๊ณ„๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด 1์˜ ์ฝ”๋“œ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ ๋ฐ˜ํ™˜ ์ฝ”๋“œ. ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ -ํ†ต๊ณผ ์ข…๋ฃŒ ์ฝ”๋“œWalk Through California ํ”„๋กœ๊ทธ๋žจ, GCC ๋Œ€์‹  ํ”„๋กœ๊ทธ๋žจ
์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์ƒ์„ฑ๋œ ์ˆ˜์น˜์ƒ ๊ฐ€์žฅ ๋†’์€ ์˜ค๋ฅ˜๋กœ ๋ฐ˜ํ™˜
ํ‘œ์‹œ. ๋‚ด๋ถ€ ์ปดํŒŒ์ผ๋Ÿฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด C, C++ ๋ฐ Fortran ํ”„๋ŸฐํŠธ ์—”๋“œ์—์„œ 4๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋งŒ๋‚œ๋‹ค.

์ปดํŒŒ์ผ ๋‹จ๊ณ„ ์ค‘ ์ผ๋ถ€๋งŒ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -x (๋˜๋Š” ํŒŒ์ผ ์ด๋ฆ„ ์ ‘๋ฏธ์‚ฌ)
๋งํ•˜๋‹ค GCC ์‹œ์ž‘ ์œ„์น˜ ๋ฐ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜ -c, -S๋ฐ -E ์–ด๋””๋ฅผ ๋งํ•˜๋‹ค GCC ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค
๋ฉˆ์ถ”๋‹ค. ์ผ๋ถ€ ์กฐํ•ฉ(์˜ˆ: -x cpp ์ถœ๋ ฅ -E) ์ง€์‹œํ•˜๋‹ค GCC ํ• 
์ „ํ˜€.

-c ์†Œ์Šค ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ์–ด์…ˆ๋ธ”ํ•˜๋˜ ๋งํฌํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์—ฐ๊ฒฐ ๋‹จ๊ณ„๋Š” ๋‹จ์ˆœํžˆ
์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ตœ์ข… ์ถœ๋ ฅ์€ ๊ฐ ์†Œ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ชฉ์  ํŒŒ์ผ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์Šค ํŒŒ์ผ์˜ ๊ฐœ์ฒด ํŒŒ์ผ ์ด๋ฆ„์€ ์ ‘๋ฏธ์‚ฌ๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .c,
.i, .s, ๋“ฑ .o.

์ปดํŒŒ์ผ์ด๋‚˜ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ธ์‹๋˜์ง€ ์•Š๋Š” ์ž…๋ ฅ ํŒŒ์ผ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

-S ์ ์ ˆํ•œ ์ปดํŒŒ์ผ ๋‹จ๊ณ„ ํ›„์— ์ค‘์ง€ํ•˜์‹ญ์‹œ์˜ค. ์กฐ๋ฆฝํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ถœ๋ ฅ์€
์ง€์ •๋œ ๊ฐ ๋น„ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ž…๋ ฅ ํŒŒ์ผ์— ๋Œ€ํ•œ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ ํŒŒ์ผ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์Šค ํŒŒ์ผ์˜ ์–ด์…ˆ๋ธ”๋Ÿฌ ํŒŒ์ผ ์ด๋ฆ„์€ ์ ‘๋ฏธ์‚ฌ๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
.c, .i, ๋“ฑ .s.

์ปดํŒŒ์ผ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ ํŒŒ์ผ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

-E ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„ ํ›„์— ์ค‘์ง€ํ•˜์‹ญ์‹œ์˜ค. ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ถœ๋ ฅ์€
ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ์ „์†ก๋˜๋Š” ์‚ฌ์ „ ์ฒ˜๋ฆฌ๋œ ์†Œ์Šค ์ฝ”๋“œ์˜ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

์ „์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ ํŒŒ์ผ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

-o ํŒŒ์ผ
ํŒŒ์ผ์— ์ถœ๋ ฅ ๋ฐฐ์น˜ ํŒŒ์ผ. ์ด๊ฒƒ์€ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์ถœ๋ ฅ์ด ์ƒ์„ฑ๋˜๋“  ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
์‹คํ–‰ ํŒŒ์ผ, ๊ฐœ์ฒด ํŒŒ์ผ, ์–ด์…ˆ๋ธ”๋Ÿฌ ํŒŒ์ผ ๋˜๋Š” ์ „์ฒ˜๋ฆฌ๋œ C
์•”ํ˜ธ.

If -o ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ ์‹คํ–‰ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„์›ƒ, ๊ทธ ๋ฌผ์ฒด
~์„์œ„ํ•œ ํŒŒ์ผ ์†Œ์Šค.์ ‘๋ฏธ์‚ฌ in ์†Œ์Šค.์˜ค, ํ•ด๋‹น ์–ด์…ˆ๋ธ”๋Ÿฌ ํŒŒ์ผ ์†Œ์Šค, ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ
ํ—ค๋” ํŒŒ์ผ ์†Œ์Šค.์ ‘๋ฏธ์‚ฌ.gch, ๊ทธ๋ฆฌ๊ณ  ํ‘œ์ค€ ์ถœ๋ ฅ์˜ ๋ชจ๋“  ์ „์ฒ˜๋ฆฌ๋œ C ์†Œ์Šค.

-v ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰๋œ ๋ช…๋ น์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค(ํ‘œ์ค€ ์˜ค๋ฅ˜ ์ถœ๋ ฅ์—์„œ).
ํŽธ์ง‘. ๋˜ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ์™€
์ „์ฒ˜๋ฆฌ๊ธฐ์™€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ ์ ˆํ•ฉ๋‹ˆ๋‹ค.

-###
์ฒ˜๋Ÿผ -v ๋ช…๋ น์ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ์ธ์ˆ˜๊ฐ€ ์ธ์šฉ๋˜์ง€ ์•Š๋Š” ํ•œ
์˜์ˆซ์ž ๋˜๋Š” "./-_"๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋“œ๋ผ์ด๋ฒ„ ์ƒ์„ฑ ๋ช…๋ น์ค„์„ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค.

-ํŒŒ์ดํ”„
๋‹ค์–‘ํ•œ ๋‹จ๊ณ„์˜ ํ†ต์‹ ์„ ์œ„ํ•ด ์ž„์‹œ ํŒŒ์ผ ๋Œ€์‹  ํŒŒ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘. ์ด๊ฒƒ์€ ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์ฝ์„ ์ˆ˜ ์—†๋Š” ์ผ๋ถ€ ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํŒŒ์ดํ”„์—์„œ; ๊ทธ๋Ÿฌ๋‚˜ GNU ์–ด์…ˆ๋ธ”๋Ÿฌ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

--๋„์›€
๋‹ค์Œ์—์„œ ์ดํ•ดํ•˜๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ‘œ์ค€ ์ถœ๋ ฅ์— ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
GCC. ๊ฒฝ์šฐ -v ์˜ต์…˜๋„ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. --๋„์›€ ๋˜ํ•œ ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
์— ์˜ํ•ด ํ˜ธ์ถœ๋œ ํ”„๋กœ์„ธ์Šค GCC, ๋ช…๋ น์ค„ ์˜ต์…˜์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก
๋™์˜ํ•˜๊ธฐ. ๋งŒ์•ฝ -์›ฉ์ŠคํŠธ๋ผ ์˜ต์…˜๋„ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์— --๋„์›€ ์˜ต์…˜),
๊ด€๋ จ ๋ฌธ์„œ๊ฐ€ ์—†๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜๋„
ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

-ํƒ€๊ฒŸ ํ™€ํ”„
๋Œ€์ƒ๋ณ„ ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•œ ์„ค๋ช… ์ธ์‡„(ํ‘œ์ค€ ์ถœ๋ ฅ์—์„œ)
๊ฐ ๋„๊ตฌ์— ๋Œ€ํ•ด. ์ผ๋ถ€ ๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๋Œ€์ƒ๋ณ„ ์ •๋ณด๋„ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ์‡„.

--๋„์›€={์ˆ˜์—…|[^]์ž๊ฒฉ}[, ...]
๋‹ค์Œ์—์„œ ์ดํ•ดํ•˜๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ‘œ์ค€ ์ถœ๋ ฅ์— ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
์ง€์ •๋œ ๋ชจ๋“  ํด๋ž˜์Šค ๋ฐ ํ•œ์ •์ž์— ๋งž๋Š” ์ปดํŒŒ์ผ๋Ÿฌ. ์ด๋“ค์€
์ง€์›๋˜๋Š” ํด๋ž˜์Šค:

์˜ตํ‹ฐ ๋งˆ์ด์ €
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์ตœ์ ํ™” ์˜ต์…˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ชจ๋“  ์˜ต์…˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๋ชฉํ‘œ
๋Œ€์ƒ๋ณ„ ์˜ต์…˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ฌ๋ฆฌ -ํƒ€๊ฒŸ ํ™€ํ”„ ๊ทธ๋Ÿฌ๋‚˜ ์˜ต์…˜, ๋Œ€์ƒ-
๋ง์ปค ๋ฐ ์–ด์…ˆ๋ธ”๋Ÿฌ์˜ ํŠน์ • ์˜ต์…˜์€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค
ํ•ด๋‹น ๋„๊ตฌ๋Š” ํ˜„์žฌ ํ™•์žฅ๋œ --๋„์›€๋ง= ํ†ต์‚ฌ๋ก .

๋งค๊ฐœ ๋ณ€์ˆ˜
์—์„œ ์ธ์‹ํ•œ ๊ฐ’์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. --๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์–ธ์–ด
์ง€์›๋˜๋Š” ์˜ต์…˜ ํ‘œ์‹œ ์–ธ์–ด์–ด๋””๋กœ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค
์ด ๋ฒ„์ „์˜ GCC์—์„œ ์ง€์›๋˜๋Š” ์–ธ์–ด.

๊ณตํ†ต์˜
๋ชจ๋“  ์–ธ์–ด์— ๊ณตํ†ต์ ์ธ ์˜ต์…˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ง€์›๋˜๋Š” ํ•œ์ •์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์„œ๋ฅ˜ ๋ฏธ๋น„ ์ž
๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ์˜ต์…˜๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํ•ฉ๋ฅ˜ ํ•œ
๋™์ผํ•œ ๊ธฐํ˜ธ ๋’ค์— ๋‚˜ํƒ€๋‚˜๋Š” ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์‹œ ์˜ต์…˜
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์†์ ์ธ ํ…์ŠคํŠธ ์กฐ๊ฐ: --help=๋Œ€์ƒ.

๋ณ„๋„์˜
๋’ค์— ์˜ค๋Š” ๋ณ„๋„์˜ ๋‹จ์–ด๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ธ์ˆ˜๋ฅผ ์ทจํ•˜๋Š” ํ‘œ์‹œ ์˜ต์…˜
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›๋ž˜ ์˜ต์…˜: -o ๊ฒฐ๊ณผ๋ฌผ ํŒŒ์ผ.

๋”ฐ๋ผ์„œ ์˜ˆ๋ฅผ ๋“ค์–ด ์—์„œ ์ง€์›ํ•˜๋Š” ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋Œ€์ƒ๋ณ„ ์Šค์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--help=๋Œ€์ƒ, ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์Œ

ํ•œ์ •์ž์˜ ์˜๋ฏธ๋Š” ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜์ „๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ^ ์บ๋ฆญํ„ฐ, ๊ทธ๋ž˜์„œ
๋ชจ๋“  ์ด์ง„ ๊ฒฝ๊ณ  ์˜ต์…˜์„ ํ‘œ์‹œํ•˜๋Š” ์˜ˆ(์ฆ‰, ์ผœ์ ธ ์žˆ๊ฑฐ๋‚˜ ๊บผ์ ธ ์žˆ๋Š” ์˜ต์…˜
๊ทธ๋ฆฌ๊ณ  ์ธ์ˆ˜๋ฅผ ์ทจํ•˜์ง€ ์•Š์Œ) ์„ค๋ช…์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--help=๊ฒฝ๊ณ ,^๊ฐ€์ž…๋จ,^๋ฌธ์„œํ™”๋˜์ง€ ์•Š์Œ

์ธ์ˆ˜ --๋„์›€๋ง= ์—ญ ํ•œ์ •์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ถœ๋ ฅ์„ ์ œํ•œํ•˜๋ฏ€๋กœ
ํ‘œ์‹œํ•  ๊ฒƒ์ด ์—†์„ ์ •๋„๋กœ. ๊ทธ๋Ÿฌ๋‚˜ ์ž‘๋™ํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ˆ˜์—… ์ค‘ ํ•˜๋‚˜๋Š” ๋ชฉํ‘œ. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋“  ๋Œ€์ƒ๋ณ„
์ตœ์ ํ™” ์˜ต์…˜, ์‚ฌ์šฉ:

--help=ํƒ€๊ฒŸ, ์˜ตํ‹ฐ๋งˆ์ด์ €

ใ€€ --๋„์›€๋ง= ์˜ต์…˜์€ ๋ช…๋ น์ค„์—์„œ ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์—ฐ์† ์‚ฌ์šฉ ํ‘œ์‹œ
์ด๋ฏธ ํ‘œ์‹œ๋œ ์˜ต์…˜์€ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์š”์ฒญ๋œ ์˜ต์…˜ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

๊ฒฝ์šฐ -Q ์˜ต์…˜์ด ๋ช…๋ น์ค„์— ํ‘œ์‹œ๋˜๊ธฐ ์ „์— --๋„์›€๋ง= ์˜ต์…˜์„ ์„ ํƒํ•œ ๋‹ค์Œ
์— ์˜ํ•ด ํ‘œ์‹œ๋˜๋Š” ์„ค๋ช… ํ…์ŠคํŠธ --๋„์›€๋ง= ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ํ‘œ์‹œ๋œ ๊ฒƒ์„ ์„ค๋ช…ํ•˜๋Š” ๋Œ€์‹ 
์˜ต์…˜, ์˜ต์…˜ ํ™œ์„ฑํ™”, ๋น„ํ™œ์„ฑํ™” ๋˜๋Š” ์„ค์ • ์—ฌ๋ถ€์— ๋Œ€ํ•œ ํ‘œ์‹œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
ํŠน์ • ๊ฐ’์œผ๋กœ (์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด
--๋„์›€๋ง= ์˜ต์…˜์ด ์‚ฌ์šฉ๋จ).

๋‹ค์Œ์€ ARM ํฌํŠธ์˜ ์ž˜๋ฆฐ ์˜ˆ์ž…๋‹ˆ๋‹ค. GCC:

% gcc -Q -mabi=2 --help=๋Œ€์ƒ -c
๋‹ค์Œ ์˜ต์…˜์€ ๋Œ€์ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
-๋งˆ๋น„= 2
-mabort-on-noreturn [๋น„ํ™œ์„ฑํ™”๋จ]
-mapcs [๋น„ํ™œ์„ฑํ™”๋จ]

์ถœ๋ ฅ์€ ์ด์ „ ๋ช…๋ น์ค„ ์˜ต์…˜์˜ ์˜ํ–ฅ์— ๋ฏผ๊ฐํ•˜๋ฏ€๋กœ
์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ์ตœ์ ํ™”๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -O2 ์‚ฌ์šฉํ•˜์—ฌ:

-Q -O2 --help=์ตœ์ ํ™”๊ธฐ

๋˜๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ตœ์ ํ™”๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -O3 ์‚ฌ์šฉํ•˜์—ฌ:

gcc -c -Q -O3 --help=์ตœ์ ํ™”๊ธฐ > /tmp/O3-opts
gcc -c -Q -O2 --help=์ตœ์ ํ™”๊ธฐ > /tmp/O2-opts
diff /tmp/O2-opts /tmp/O3-opts | ๊ทธ๋ ™ ํ™œ์„ฑํ™”

-ํ‘œ์ค€ ์ ‘๋‘์‚ฌ ์—†์Œ
์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํ™•์žฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ฐธ์กฐ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. /../ or //./, ๋˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค
์ƒ๋Œ€ ์ ‘๋‘์‚ฌ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ ˆ๋Œ€.

--๋ฒˆ์—ญ
ํ˜ธ์ถœ๋œ GCC์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ์™€ ์ €์ž‘๊ถŒ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

-์‹ธ๊ฐœ
๋ž˜ํผ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ชจ๋“  ํ•˜์œ„ ๋ช…๋ น์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ž˜ํผ ํ”„๋กœ๊ทธ๋žจ์˜ ์ด๋ฆ„๊ณผ
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

gcc -c tc -wrapper gdb,--args

์ด๊ฒƒ์€ ๋ชจ๋“  ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. GCC ์•„๋ž˜์— gdb --์ธ์ˆ˜, ๋”ฐ๋ผ์„œ ํ˜ธ์ถœ cc1 is
gdb --์ธ์ˆ˜ cc1 ....

-fํ”Œ๋Ÿฌ๊ทธ์ธ=name.๊ทธ๋ž˜์„œ
ํŒŒ์ผ์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฝ”๋“œ ๋กœ๋“œ name.so, dlopen'dํ•  ๊ณต์œ  ๊ฐ์ฒด๋กœ ๊ฐ€์ •
์ปดํŒŒ์ผ๋Ÿฌ. ๊ณต์œ  ๊ฐ์ฒด ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์œ„ํ•ด(์ฐธ์กฐ -fplugin-์ธ์ˆ˜-name-ํ‚ค=๊ฐ€์น˜ ์•„๋ž˜์—). ๊ฐ
ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ API์— ์ง€์ •๋œ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-fplugin-์ธ์ˆ˜-name-ํ‚ค=๊ฐ€์น˜
๋ผ๋Š” ์ธ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค ๊ฐ€์น˜๊ฐ€์žˆ๋Š” ๊ฐ€์น˜ ๋ผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๊ฒฝ์šฐ name.

-fdump-ada-spec[-๋‚ ์”ฌํ•œ]
C ๋ฐ C++ ์†Œ์Šค ๋ฐ ํฌํ•จ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น Ada ์‚ฌ์–‘์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-fada-์‚ฌ์–‘-๋ถ€๋ชจ=๋‹จ์œ„
ํ•จ๊ป˜ -fdump-ada-spec[-๋‚ ์”ฌํ•œ] ์œ„์˜ Ada ์‚ฌ์–‘์„ ํ•˜์œ„ ๋‹จ์œ„๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋ชจ์˜ ๋‹จ์œ„.

-fdump-go-spec=ํŒŒ์ผ
๋ชจ๋“  ์–ธ์–ด์˜ ์ž…๋ ฅ ํŒŒ์ผ์— ๋Œ€ํ•ด ํ•ด๋‹น Go ์„ ์–ธ์„ ๋‹ค์Œ์—์„œ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ. ์ด
์œ ์šฉํ•œ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ๋Š” Go "const", "type", "var" ๋ฐ "func" ์„ ์–ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์— Go ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

@ํŒŒ์ผ
๋‹ค์Œ์—์„œ ๋ช…๋ น์ค„ ์˜ต์…˜ ์ฝ๊ธฐ ํŒŒ์ผ. ์ฝ์€ ์˜ต์…˜์€ ๋‹ค์Œ ์œ„์น˜์— ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค.
์›๋ž˜์˜ @ํŒŒ์ผ ์˜ต์…˜. ๋งŒ์•ฝ์— ํŒŒ์ผ ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ฝ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์˜ต์…˜
๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ต์…˜ ํŒŒ์ผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ๊ณต๋ฐฑ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ต์…˜์—์„œ ์ „์ฒด ์˜ต์…˜์„ ์ž‘์€๋”ฐ์˜ดํ‘œ๋‚˜ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค. ์–ด๋Š
๋ฌธ์ž(๋ฐฑ์Šฌ๋ž˜์‹œ ํฌํ•จ)๋Š”
๋ฐฑ์Šฌ๋ž˜์‹œ์™€ ํ•จ๊ป˜ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. NS ํŒŒ์ผ ์ž์ฒด์— ์ถ”๊ฐ€ @๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํŒŒ์ผ ์˜ต์…˜; ์–ด๋Š
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ์žฌ๊ท€์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ C + + ํ”„๋กœ๊ทธ๋žจ
C++ ์†Œ์Šค ํŒŒ์ผ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ ‘๋ฏธ์‚ฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. .C, .CC, .cpp, .CPP, .C++, .cp๋ฐ
.cxx; C++ ํ—ค๋” ํŒŒ์ผ์€ ์ž์ฃผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. .hh, .hpp, .H, ๋˜๋Š” (๊ณต์œ  ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ) .tcc๋ฐ
์ „์ฒ˜๋ฆฌ๋œ C++ ํŒŒ์ผ์€ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. .ii. GCC๋Š” ์ด๋Ÿฌํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ํŒŒ์ผ์„ ์ธ์‹ํ•˜๊ณ 
์ปดํŒŒ์ผํ•  ๋•Œ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•˜๋”๋ผ๋„ C++ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
C ํ”„๋กœ๊ทธ๋žจ(๋ณดํ†ต ์ด๋ฆ„ GCC).

๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ GCC C++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. g ++ GCC๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋ฉฐ
C++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ž๋™์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ทจ๊ธ‰ .c, .h ๊ณผ .i ํŒŒ์ผ
C ์†Œ์Šค ํŒŒ์ผ ๋Œ€์‹  C++ ์†Œ์Šค ํŒŒ์ผ -x ์‚ฌ์šฉ. ์ด ํ”„๋กœ๊ทธ๋žจ๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค
C ํ—ค๋” ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผํ•  ๋•Œ .h C++ ์ปดํŒŒ์ผ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ™•์žฅ์ž…๋‹ˆ๋‹ค. ์—
๋งŽ์€ ์‹œ์Šคํ…œ, g ++ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. C ++.

C++ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ๋™์ผํ•œ ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” C์— ์˜๋ฏธ ์žˆ๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜
๋ฐ ๊ด€๋ จ ์–ธ์–ด; ๋˜๋Š” C++ ํ”„๋กœ๊ทธ๋žจ์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ์˜ต์…˜.

์˜ต์…˜ ์ œ์–ด C ๋ฐฉ์–ธ
๋‹ค์Œ ์˜ต์…˜์€ C์˜ ๋ฐฉ์–ธ(๋˜๋Š” C++๊ณผ ๊ฐ™์€ C์—์„œ ํŒŒ์ƒ๋œ ์–ธ์–ด,
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” Objective-C ๋ฐ Objective-C++):

-์•ˆ์‹œ
C ๋ชจ๋“œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -ํ‘œ์ค€=c90. C++ ๋ชจ๋“œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
-std = c ++ 98.

์ด๊ฒƒ์€ ISO C90๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” GCC์˜ ํŠน์ • ๊ธฐ๋Šฅ์„ ๋•๋‹ˆ๋‹ค.
C ์ฝ”๋“œ ์ปดํŒŒ์ผ) ๋˜๋Š” "asm" ๋ฐ ๊ฐ™์€ ํ‘œ์ค€ C++(C++ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ)
"typeof" ํ‚ค์›Œ๋“œ ๋ฐ "unix" ๋ฐ "vax"์™€ ๊ฐ™์€ ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋งคํฌ๋กœ
์‚ฌ์šฉ ์ค‘์ธ ์‹œ์Šคํ…œ ์œ ํ˜•. ๋˜ํ•œ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š๊ณ  ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ISO๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
์‚ผ๊ตญ์ง€ ๊ธฐ๋Šฅ. C ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฝ์šฐ C++ ์Šคํƒ€์ผ ์ธ์‹์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. //
์ฃผ์„ ๋ฐ "์ธ๋ผ์ธ" ํ‚ค์›Œ๋“œ.

๋Œ€์ฒด ํ‚ค์›Œ๋“œ "__asm__", "__extension__", "__inline__" ๋ฐ "__typeof__"
์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ„์† ์ผํ•˜๋‹ค -์•ˆ์‹œ. ISO C ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ํ—ค๋” ํŒŒ์ผ์— ๋„ฃ๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ์™„๋ฃŒ -์•ˆ์‹œ. "__unix__"์™€ ๊ฐ™์€ ์‚ฌ์ „ ์ •์˜๋œ ๋Œ€์ฒด ๋งคํฌ๋กœ ๋ฐ
"__vax__"๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์•ˆ์‹œ.

ใ€€ -์•ˆ์‹œ ์˜ต์…˜์œผ๋กœ ์ธํ•ด ๋น„ ISO ํ”„๋กœ๊ทธ๋žจ์ด ๋ฌด๋ฃŒ๋กœ ๊ฑฐ๋ถ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์ฆ‰, -Wpedantic ์— ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค -์•ˆ์‹œ.

๋งคํฌ๋กœ "__STRICT_ANSI__"๋Š” -์•ˆ์‹œ ์˜ต์…˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ—ค๋”
ํŒŒ์ผ์€ ์ด ๋งคํฌ๋กœ๋ฅผ ์ธ์ง€ํ•˜๊ณ  ํŠน์ • ๊ธฐ๋Šฅ์„ ์„ ์–ธํ•˜๊ฑฐ๋‚˜ ์ •์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ISO ํ‘œ์ค€์ด ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ํŠน์ • ๋งคํฌ๋กœ; ์ด๊ฒƒ์€ ๋ฐฉํ•ด๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค
๋‹ค๋ฅธ ์šฉ๋„๋กœ ์ด๋Ÿฌํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์—์„œ.

์ผ๋ฐ˜์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€๋งŒ ISO C์—์„œ ์ •์˜ํ•œ ์˜๋ฏธ ์ฒด๊ณ„๊ฐ€ ์—†๋Š” ๊ธฐ๋Šฅ(์˜ˆ:
"alloca" ๋ฐ "ffs")๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋‚ด์žฅ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. -์•ˆ์‹œ ์‚ฌ์šฉ.

-ํ‘œ์ค€=
์–ธ์–ด ํ‘œ์ค€์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํ˜„์žฌ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
C ๋˜๋Š” C++ ์ปดํŒŒ์ผ.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ํ‘œ์ค€์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. c90 or C ++ 98, GNU ๋ฐฉ์–ธ
๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‘œ์ค€์˜ gnu90 or ๋ˆ„++98. ๊ธฐ๋ณธ ํ‘œ์ค€์ด ์ง€์ •๋˜๋ฉด
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•ด๋‹น ํ‘œ์ค€์„ ๋”ฐ๋ฅด๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ๊ณผ GNU ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ชจ์ˆœ๋˜์ง€ ์•Š๋Š” ๊ฒƒ. ์˜ˆ๋ฅผ ๋“ค์–ด, -ํ‘œ์ค€=c90 GCC์˜ ํŠน์ • ๊ธฐ๋Šฅ์„ ๋•๋‹ˆ๋‹ค.
"asm" ๋ฐ "typeof" ํ‚ค์›Œ๋“œ์™€ ๊ฐ™์ด ISO C90๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์ง€๋งŒ
์ƒ๋žต๊ณผ ๊ฐ™์ด ISO C90์—์„œ ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๊ธฐํƒ€ GNU ํ™•์žฅ
"?:" ํ‘œํ˜„์‹์˜ ์ค‘๊ฐ„ ์šฉ์–ด. ๋ฐ˜๋ฉด์— ํ‘œ์ค€์˜ GNU ๋ฐฉ์–ธ์ด
๊ฐ€ ์ง€์ •๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ ํ‘œ์ค€์˜ ์˜๋ฏธ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ผ๋ถ€ ์—„๊ฒฉํ•œ ์ค€์ˆ˜
ํ”„๋กœ๊ทธ๋žจ์ด ๊ฑฐ๋ถ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ํ‘œ์ค€์€ ๋‹ค์Œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. -Wpedantic ํ™•์ธํ•˜๊ธฐ
์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•ด๋‹น ํ‘œ์ค€ ๋ฒ„์ „์—์„œ GNU ํ™•์žฅ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด
-std=gnu90 -Wpedantic C++ ์Šคํƒ€์ผ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  // ๋Œ“๊ธ€, ๋™์•ˆ -std=gnu99 -Wpedantic
ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์— ๋Œ€ํ•œ ๊ฐ’์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€

c90
c89
ISO9899:1990
๋ชจ๋“  ISO C90 ํ”„๋กœ๊ทธ๋žจ ์ง€์›(ISO C90๊ณผ ์ถฉ๋Œํ•˜๋Š” ํŠน์ • GNU ํ™•์žฅ
๋น„ํ™œ์„ฑํ™”๋จ). ์™€ ๋™์ผ -์•ˆ์‹œ C ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ.

ISO9899:199409
๊ฐœ์ • 90์—์„œ ์ˆ˜์ •๋œ ISO C1.

c99
์˜ C9x
ISO9899:1999
ISO9899:199x
ISO C99. ์ด ํ‘œ์ค€์€ ์‹ค์งˆ์ ์œผ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›๋˜๋ฉฐ ๋ชจ๋“ˆ๋กœ ๋ฒ„๊ทธ ๋ฐ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฌธ์ œ(์„ ํƒ์  C99 ๊ธฐ๋Šฅ๊ณผ ์ฃผ๋กœ ๊ด€๋ จ๋˜์ง€๋Š” ์•Š์ง€๋งŒ
๋ถ€๋ก F ๋ฐ G). ๋ณด๋‹คhttp://gcc.gnu.org/c99status.html> ๋”
์ •๋ณด. ์ด๋ฆ„ ์˜ C9x ๊ณผ ISO9899:199x ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

c11
์˜ C1x
ISO9899:2011
ISO C11์€ ISO C ํ‘œ์ค€์˜ 2011๋…„ ๊ฐœ์ •ํŒ์ž…๋‹ˆ๋‹ค. ์ด ํ‘œ์ค€์€ ์‹ค์งˆ์ ์œผ๋กœ
์™„์ „ํžˆ ์ง€์›๋จ, ๋ชจ๋“ˆ๋กœ ๋ฒ„๊ทธ, ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฌธ์ œ(์ฃผ๋กœ ์™„์ „ํžˆ๋Š” ์•„๋‹ˆ์ง€๋งŒ
๋ถ€๋ก F ๋ฐ G) ๋ฐ ์˜ต์…˜ ๋ถ€๋ก K์˜ ์„ ํƒ์  C11 ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ
(๊ฒฝ๊ณ„ ํ™•์ธ ์ธํ„ฐํŽ˜์ด์Šค) ๋ฐ L (๋ถ„์„ ๊ฐ€๋Šฅ์„ฑ). ์ด๋ฆ„ ์˜ C1x ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

gnu90
gnu89
ISO C90์˜ GNU ๋ฐฉ์–ธ(์ผ๋ถ€ C99 ๊ธฐ๋Šฅ ํฌํ•จ).

gnu99
gnu9x
ISO C99์˜ GNU ๋ฐฉ์–ธ. ์ด๋ฆ„ gnu9x ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

gnu11
gnu1x
ISO C11์˜ GNU ๋ฐฉ์–ธ. ์ด๊ฒƒ์€ C ์ฝ”๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„ gnu1x is
๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

C ++ 98
C ++ 03
1998๋…„ ISO C++ ํ‘œ์ค€๊ณผ 2003๋…„ ๊ธฐ์ˆ  ์ •์˜คํ‘œ ๋ฐ ์ผ๋ถ€ ์ถ”๊ฐ€
๊ฒฐํ•จ ๋ณด๊ณ ์„œ. ์™€ ๋™์ผ -์•ˆ์‹œ C++ ์ฝ”๋“œ์šฉ.

๋ˆ„++98
๋ˆ„++03
GNU ๋ฐฉ์–ธ -std = c ++ 98. ์ด๊ฒƒ์€ C++ ์ฝ”๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

C ++ 11
C++0x
2011 ISO C++ ํ‘œ์ค€ ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ. ์ด๋ฆ„ C++0x ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ˆ„++11
gnu++0x
GNU ๋ฐฉ์–ธ -std = c ++ 11. ์ด๋ฆ„ gnu++0x ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

C ++ 14
C++1y
2014 ISO C++ ํ‘œ์ค€ ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ. ์ด๋ฆ„ C++1y ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ˆ„++14
gnu++1๋…„
GNU ๋ฐฉ์–ธ -std = c ++ 14. ์ด๋ฆ„ gnu++1๋…„ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

C++1z
2017๋…„์— ์ž ์ •์ ์œผ๋กœ ๊ณ„ํš๋œ ISO C++ ํ‘œ์ค€์˜ ๋‹ค์Œ ๊ฐœ์ •ํŒ. ์ง€์›
๋งค์šฐ ์‹คํ—˜์ ์ด๋ฉฐ ๊ฑฐ์˜ ํ™•์‹คํ•˜๊ฒŒ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค.

gnu++1z
GNU ๋ฐฉ์–ธ -std=c++1z. ์ง€์›์€ ๋งค์šฐ ์‹คํ—˜์ ์ด๋ฉฐ ๊ฑฐ์˜
ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ํ™•์‹คํžˆ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

-fgnu89-์ธ๋ผ์ธ
์˜ต์…˜ -fgnu89-์ธ๋ผ์ธ GCC์— "์ธ๋ผ์ธ"์— ๋Œ€ํ•ด ์ „ํ†ต์ ์ธ GNU ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
C99 ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ "gnu_inline" ํ•จ์ˆ˜ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์ธ๋ผ์ธ ํ•จ์ˆ˜์—.

์˜ต์…˜ -fno-gnu89-์ธ๋ผ์ธ ๋ช…์‹œ์ ์œผ๋กœ GCC์— C99 ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
C99 ๋˜๋Š” gnu99 ๋ชจ๋“œ์— ์žˆ์„ ๋•Œ "์ธ๋ผ์ธ"์ž…๋‹ˆ๋‹ค(์ฆ‰, ๊ธฐ๋ณธ ๋™์ž‘์„ ์ง€์ •ํ•จ). ์ด๊ฒƒ
์˜ต์…˜์€ ์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค -ํ‘œ์ค€=c90 or -std=gnu90 ๋ฐฉ๋ฒ•.

์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__GNUC_GNU_INLINE__" ๋ฐ "__GNUC_STDC_INLINE__"์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"์ธ๋ผ์ธ" ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์–ด๋–ค ์˜๋ฏธ ์ฒด๊ณ„๊ฐ€ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

-๋ณด์กฐ ์ •๋ณด ํŒŒ์ผ ์ด๋ฆ„
์„ ์–ธ๋œ ๋ชจ๋“  ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ํŒŒ์ผ ์ด๋ฆ„ ํ”„๋กœํ† ํƒ€์ž… ์„ ์–ธ์œผ๋กœ ์ถœ๋ ฅ ๋ฐ/๋˜๋Š”
ํ—ค๋” ํŒŒ์ผ์„ ํฌํ•จํ•˜์—ฌ ๋ฒˆ์—ญ ๋‹จ์œ„์— ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
C ์ด์™ธ์˜ ์–ธ์–ด์—์„œ๋Š” ์กฐ์šฉํžˆ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์„ ์–ธ ์™ธ์—๋„ ํŒŒ์ผ์€ ์ฃผ์„์—์„œ ๊ฐ ์„ ์–ธ์˜ ์ถœ์ฒ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
(์†Œ์Šค ํŒŒ์ผ ๋ฐ ๋ผ์ธ), ์„ ์–ธ์ด ์•”์‹œ์ , ํ”„๋กœํ† ํƒ€์ž… ๋˜๋Š”
ํ”„๋กœํ† ํƒ€์ž…๋˜์ง€ ์•Š์€(I, N ์ƒˆ๋กœ์šด ๋˜๋Š” O old์˜ ๊ฒฝ์šฐ ๊ฐ๊ฐ ๋‹ค์Œ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—์„œ
ํ–‰ ๋ฒˆํ˜ธ ๋ฐ ์ฝœ๋ก ), ์„ ์–ธ ๋˜๋Š” ์ •์˜์—์„œ ์™”๋Š”์ง€ ์—ฌ๋ถ€
(C or F, ๊ฐ๊ฐ ๋‹ค์Œ ๋ฌธ์ž). ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ
์ •์˜์—์„œ ์„ ์–ธ์ด ๋’ค๋”ฐ๋ฅด๋Š” K&R ์Šคํƒ€์ผ์˜ ์ธ์ˆ˜ ๋ชฉ๋ก๋„
์„ ์–ธ ํ›„ ์ฃผ์„ ๋‚ด๋ถ€์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

- ํœด๊ฒฝ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†๋Š” ๊ฐ€๋ณ€ ํ•จ์ˆ˜
๋ช…๋ช…๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์ด ๊ฐ€๋ณ€ ํ•จ์ˆ˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ด๊ฒƒ์€ ๋งค์šฐ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ธ์ˆ˜๋ฅผ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์„ฑ์€ C์— ๋Œ€ํ•ด์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
C++์—์„œ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

-fno-asm
์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก "asm", "inline" ๋˜๋Š” "typeof"๋ฅผ ํ‚ค์›Œ๋“œ๋กœ ์ธ์‹ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋‹จ์–ด๋ฅผ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. "__asm__", "__inline__" ๋ฐ
๋Œ€์‹  "__typeof__". -์•ˆ์‹œ ์˜๋ฏธํ•˜๋‹ค -fno-asm.

C++์—์„œ ์ด ์Šค์œ„์น˜๋Š” "typeof" ํ‚ค์›Œ๋“œ์—๋งŒ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. "asm"๊ณผ "inline"์€
ํ‘œ์ค€ ํ‚ค์›Œ๋“œ. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -fno-gnu-ํ‚ค์›Œ๋“œ ๋Œ€์‹  ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ™์€ ํšจ๊ณผ. C99 ๋ชจ๋“œ์—์„œ(-ํ‘œ์ค€=c99 or -std=gnu99), ์ด ์Šค์œ„์น˜๋Š”
"inline"์€ ISO C99์˜ ํ‘œ์ค€ ํ‚ค์›Œ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— "asm" ๋ฐ "typeof" ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.

-fno ๋‚ด์žฅ
-fno-๋‚ด์žฅ-๊ธฐ๋Šฅ
๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์ธ์‹ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. __๋‚ด์žฅ_ ์ ‘๋‘์‚ฌ๋กœ.

GCC๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ๋” ๋งŽ์ด ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ˆ˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํšจ์œจ์ ์œผ๋กœ; ์˜ˆ๋ฅผ ๋“ค์–ด, "alloca"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์€ ๋‹จ์ผ ๋ช…๋ น์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์Šคํƒ์„ ์ง์ ‘ ์กฐ์ •ํ•˜๊ณ  "memcpy"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ์ธ๋ผ์ธ ๋ณต์‚ฌ ๋ฃจํ”„๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NS
๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ์ข…์ข… ๋” ์ž‘๊ณ  ๋น ๋ฅด์ง€๋งŒ ํ•จ์ˆ˜๊ฐ€ no๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์—
๋” ์ด์ƒ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ํ˜ธ์ถœ์— ์ค‘๋‹จ์ ์„ ์„ค์ •ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•จ์ˆ˜์˜ ๋™์ž‘. ๋˜ํ•œ, ์–ธ์ œ
ํ•จ์ˆ˜๊ฐ€ ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ ์ธ์‹๋˜๋ฉด GCC๋Š” ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ฑฐ๋‚˜ ๋” ๋งŽ์€ ๊ฒƒ์„ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜
๊ฒฐ๊ณผ ์ฝ”๋“œ์— ์—ฌ์ „ํžˆ ํ•ด๋‹น ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด๋„ ํšจ์œจ์ ์ธ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. -Wํฌ๋งท "printf"๊ฐ€ "printf"์ผ ๋•Œ "printf"์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ํ˜ธ์ถœ์˜ ๊ฒฝ์šฐ
๋‚ด์žฅ๋˜์–ด ์žˆ๊ณ  "strlen"์€ ์ „์—ญ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์™€ ๋”๋ถˆ์–ด -fno-๋‚ด์žฅ-๊ธฐ๋Šฅ ์˜ต์…˜ ๋‚ด์žฅ ๊ธฐ๋Šฅ๋งŒ ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ๋กœ ์‹œ์ž‘ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. __๋‚ด์žฅ_. ๋‚ด์žฅ๋˜์ง€ ์•Š์€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ์ง€์ •๋œ ๊ฒฝ์šฐ
์ด ๋ฒ„์ „์˜ GCC์—์„œ๋Š” ์ด ์˜ต์…˜์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹นํ•˜๋Š” ๋‚ด์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค
-f๋‚ด์žฅ-๊ธฐ๋Šฅ ์˜ต์…˜; ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ์„ ํƒ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
์‚ฌ์šฉ -fno ๋‚ด์žฅ or -ํ”„๋ฆฌ์Šคํƒ ๋”ฉ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

-ํ˜ธ์ŠคํŠธ
์ปดํŒŒ์ผ์ด ํ˜ธ์ŠคํŒ… ํ™˜๊ฒฝ์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค -f๋‚ด์žฅ. ์—์ด
ํ˜ธ์ŠคํŒ…๋œ ํ™˜๊ฒฝ์€ ์ „์ฒด ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.
"main"์˜ ๋ฐ˜ํ™˜ ์œ ํ˜•์€ "int"์ž…๋‹ˆ๋‹ค. ์˜ˆ๋Š” ๋‹ค์Œ์„ ์ œ์™ธํ•˜๊ณ  ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ•ต์‹ฌ. ์ด๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -fno ๋…๋ฆฝํ˜•.

-ํ”„๋ฆฌ์Šคํƒ ๋”ฉ
์ปดํŒŒ์ผ์ด ๋…๋ฆฝ ํ™˜๊ฒฝ์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค
-fno ๋‚ด์žฅ. ๋…๋ฆฝ ํ™˜๊ฒฝ์€ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๊ณตํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.
์กด์žฌํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์ด ๋ฐ˜๋“œ์‹œ "main"์— ์žˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํ™•์‹คํ•œ ์˜ˆ
OS ์ปค๋„์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -fno ํ˜ธ์ŠคํŒ….

-fopenacc
C/C++์—์„œ OpenACC ์ง€์‹œ๋ฌธ "#pragma acc" ๋ฐ Fortran์—์„œ "!$acc" ์ฒ˜๋ฆฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -fopenacc ๊ฐ€ ์ง€์ •๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ์— ๋”ฐ๋ผ ๊ฐ€์† ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
OpenACC ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค v2.0http://www.openacc.org/>. ์ด ์˜ต์…˜
์˜๋ฏธํ•˜๋‹ค -pthread, ๋”ฐ๋ผ์„œ ๋‹ค์Œ์„ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
-pthread.

์ด๊ฒƒ์€ ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์ด๋ฉฐ ๋ถˆ์™„์ „ํ•˜๋ฉฐ ํ–ฅํ›„ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GCC ๋ฒ„์ „. ๋ณด๋‹คhttps://gcc.gnu.org/wiki/OpenACC> ์ž์„ธํ•œ ๋‚ด์šฉ์€.

-fopenmp
C/C++์—์„œ OpenMP ์ง€์‹œ๋ฌธ "#pragma omp" ๋ฐ Fortran์—์„œ "!$omp" ์ฒ˜๋ฆฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -fopenmp ๊ฐ€ ์ง€์ •๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ์— ๋”ฐ๋ผ ๋ณ‘๋ ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
OpenMP ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ธํ„ฐํŽ˜์ด์Šค v4.0http://www.openmp.org/>. ์ด ์˜ต์…˜
์˜๋ฏธํ•˜๋‹ค -pthread, ๋”ฐ๋ผ์„œ ๋‹ค์Œ์„ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
-pthread. -fopenmp ์˜๋ฏธํ•˜๋‹ค -fopenmp-simd.

-fopenmp-simd
C/C++์—์„œ๋Š” "#pragma omp"๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  C/C++์—์„œ๋Š” "!$omp"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OpenMP์˜ SIMD ์ง€์‹œ๋ฌธ ์ฒ˜๋ฆฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํฌํŠธ๋ž€. ๋‹ค๋ฅธ OpenMP ์ง€์‹œ๋ฌธ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

-fclkplus
C/C++์šฉ Cilk Plus ์–ธ์–ด ํ™•์žฅ ๊ธฐ๋Šฅ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์ด
-fclkplus ๊ฐ€ ์ง€์ •๋˜๋ฉด Cilk Plus Language ํ™•์žฅ ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
C/C++์šฉ. ํ˜„์žฌ ๊ตฌํ˜„์€ ABI ๋ฒ„์ „ 1.2๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋ถ€๋ถ„์ ์œผ๋กœ๋งŒ ์™„๋ฃŒ๋˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ์‹คํ—˜์  ๊ธฐ๋Šฅ
๊ณต์‹ ์‚ฌ์–‘์ด ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ GCC์˜ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ. ํ˜„์žฌ ๋ชจ๋“ 
๊ธฐ๋Šฅ์ด์ง€๋งŒ "_Silk_for"๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-fgnu-tm
์˜ต์…˜์ด -fgnu-tm ๊ฐ€ ์ง€์ •๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” Linux์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ธํ…”์˜ ํ˜„์žฌ ํŠธ๋žœ์žญ์…˜ ๋ฉ”๋ชจ๋ฆฌ ABI ์‚ฌ์–‘ ๋ฌธ์„œ์˜ ๋ณ€ํ˜•(๊ฐœ์ •
1.1, 6๋…„ 2009์›” XNUMX์ผ). ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
๊ณต์‹ ์‚ฌ์–‘์ด ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ GCC์˜ ํ–ฅํ›„ ๋ฒ„์ „. ์•„๋‹ˆ๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”
์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

GCC์˜ ํŠธ๋žœ์žญ์…˜ ๋ฉ”๋ชจ๋ฆฌ ์ง€์›์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€

๋น„ํ˜ธ์ถœ ์˜ˆ์™ธ์—์„œ๋Š” ํŠธ๋žœ์žญ์…˜ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋Šฅ์ด ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
(-fnon-call-exception).

-fms-ํ™•์žฅ
Microsoft ํ—ค๋” ํŒŒ์ผ์— ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ถ€ ๋น„ํ‘œ์ค€ ๊ตฌ์„ฑ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

C++ ์ฝ”๋“œ์—์„œ ์ด๊ฒƒ์€ ๊ตฌ์กฐ์˜ ๋ฉค๋ฒ„ ์ด๋ฆ„์ด ์ด์ „ ์œ ํ˜•๊ณผ ์œ ์‚ฌํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
์„ ์–ธ.

typedef ์ •์ˆ˜ UOW;
๊ตฌ์กฐ์ฒด ABC {
์šฐ์šฐ์šฐ์šฐ์šฐ์šฐ์šฐ;
};

๊ตฌ์กฐ์ฒด์™€ ๊ณต์šฉ์ฒด์—์„œ ์ด๋ฆ„์ด ์—†๋Š” ํ•„๋“œ์˜ ์ผ๋ถ€ ๊ฒฝ์šฐ๋Š” ์ด ๊ฒฝ์šฐ์—๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.
์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ms-abi๋ฅผ ์‚ฌ์šฉํ•˜๋Š” x86 ๋Œ€์ƒ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋Œ€์ƒ์— ๋Œ€ํ•ด ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-fplan9-ํ™•์žฅ
Plan 9 ์ฝ”๋“œ์— ์‚ฌ์šฉ๋œ ์ผ๋ถ€ ๋น„ํ‘œ์ค€ ๊ตฌ์„ฑ์„ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด -fms-ํ™•์žฅ, ์ต๋ช…์˜ ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ์ „๋‹ฌ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ•„๋“œ ์œ ํ˜•์˜ ์š”์†Œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ•„๋“œ, ๋ฐ
typedef๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋œ ์ต๋ช… ํ•„๋“œ ์ฐธ์กฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€
C++๊ฐ€ ์•„๋‹Œ C์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-์‚ผ๊ฐํ˜•
ISO C trigraph๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. NS -์•ˆ์‹œ ์˜ต์…˜(๋ฐ -ํ‘œ์ค€ ์—„๊ฒฉํ•œ ISO C๋ฅผ ์œ„ํ•œ ์˜ต์…˜
์ ํ•ฉ์„ฑ) ์˜๋ฏธ -์‚ผ๊ฐํ˜•.

-์ „ํ†ต์ ์ธ
-์ „ํ†ต์ ์ธ cpp
์ด์ „์—๋Š” ์ด๋Ÿฌํ•œ ์˜ต์…˜์œผ๋กœ ์ธํ•ด GCC๊ฐ€ ์‚ฌ์ „ ํ‘œ์ค€ C ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. -E ์Šค์œ„์น˜. ์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ๊ณ„์† ์ง€์›
์‚ฌ์ „ ํ‘œ์ค€ ๋ชจ๋“œ. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GNU CPP ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

-fcond-๋ถˆ์ผ์น˜
๋‘ ๋ฒˆ์งธ ๋ฐ ์„ธ ๋ฒˆ์งธ ์ธ์ˆ˜์—์„œ ์œ ํ˜•์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์กฐ๊ฑด์‹์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌํ•œ ํ‘œํ˜„์‹์˜ ๊ฐ’์€ ๋ฌดํšจ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ C++์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์•„๋งˆ ๋ฒกํ„ฐ ๋ณ€ํ™˜
์š”์†Œ ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๋ฒกํ„ฐ ๊ฐ„์˜ ์•”์‹œ์  ๋ณ€ํ™˜ ํ—ˆ์šฉ ๋ฐ/๋˜๋Š”
ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์š”์†Œ ์œ ํ˜• ์ด ์˜ต์…˜์€ ์ƒˆ ์ฝ”๋“œ์— ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

-funsigned-char
"unsigned char"์ฒ˜๋Ÿผ "char" ์œ ํ˜•์„ unsigned๋กœ ๋‘ก๋‹ˆ๋‹ค.

๊ฐ ์ข…๋ฅ˜์˜ ๊ธฐ๊ณ„์—๋Š” "char"๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€
๊ธฐ๋ณธ์ ์œผ๋กœ "unsigned char" ๋˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ "signed char"์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ ์ด์‹ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ํ•ญ์ƒ "signed char" ๋˜๋Š” "unsigned char"๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์ฒด์˜ ๋ถ€ํ˜ธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋„๋ก ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ฐ˜ "char"์— ๋”ฐ๋ผ ์„œ๋ช…๋˜๊ฑฐ๋‚˜ ์„œ๋ช…๋˜์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋“ค์ด ์“ฐ์—ฌ์ง„ ๊ธฐ๊ณ„. ์ด ์˜ต์…˜๊ณผ ๊ทธ ์—ญ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐ˜๋Œ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

"char" ์œ ํ˜•์€ ํ•ญ์ƒ "signed char" ๋˜๋Š” "unsigned" ๊ฐ๊ฐ๊ณผ ๊ตฌ๋ณ„๋˜๋Š” ์œ ํ˜•์ž…๋‹ˆ๋‹ค.
char", ๊ทธ ๋™์ž‘์ด ํ•ญ์ƒ ๊ทธ ๋‘˜ ์ค‘ ํ•˜๋‚˜์™€ ๊ฐ™๋”๋ผ๋„.

-fsigned-char
"signed char"์™€ ๊ฐ™์ด "char" ์œ ํ˜•์„ ์„œ๋ช…ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -fno-unsigned-char, ์˜ ๋ถ€์ •ํ˜•์ด๋‹ค.
-funsigned-char. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜ต์…˜ -fno-์„œ๋ช…-๋ฌธ์ž ์— ํ•ด๋‹นํ•˜๋Š”
-funsigned-char.

-fsigned ๋น„ํŠธ ํ•„๋“œ
- funsigned ๋น„ํŠธ ํ•„๋“œ
-fno-signed-bitfields
-fno-๋ถ€ํ˜ธ ์—†๋Š” ๋น„ํŠธ ํ•„๋“œ
์ด ์˜ต์…˜์€ ์„ ์–ธ ์‹œ ๋น„ํŠธ ํ•„๋“œ๊ฐ€ ์„œ๋ช…๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
"signed" ๋˜๋Š” "unsigned"๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋น„ํŠธ ํ•„๋“œ๋Š” ์„œ๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๊ด€์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. "int"์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ์ •์ˆ˜ ์œ ํ˜•์€ ๋ถ€ํ˜ธ ์žˆ๋Š” ์œ ํ˜•์ž…๋‹ˆ๋‹ค.

์˜ต์…˜ ์ œ์–ด C + + ๋ฐฉ์–ธ
์ด ์„น์…˜์—์„œ๋Š” C++ ํ”„๋กœ๊ทธ๋žจ์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์— ๊ด€๊ณ„์—†์ด ๋Œ€๋ถ€๋ถ„์˜ GNU ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํผ์ŠคํŠธํด๋ž˜์Šค.C ์ด๋ ‡๊ฒŒ :

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

์ด ์˜ˆ์—์„œ๋Š” -ํ”„๋ ˆํฌ C++ ํ”„๋กœ๊ทธ๋žจ ์ „์šฉ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
GCC์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด์˜ ๊ธฐํƒ€ ์˜ต์…˜.

๋‹ค์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ต์…˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๋งŒ C++ ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ:

-fabi ๋ฒ„์ „=n
๋ฒ„์ „ ์‚ฌ์šฉ n C++ ABI. ๊ธฐ๋ณธ๊ฐ’์€ ๋ฒ„์ „ 0์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „ 0์€ C++ ABI ์‚ฌ์–‘์— ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋ฒ„์ „ 0์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์€ ABI๋Š” ๋‹ค๋ฅธ ๋ฒ„์ „์˜ G++์—์„œ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
ABI ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ 1์€ G++ 3.2์— ์ฒ˜์Œ ๋“ฑ์žฅํ•œ C++ ABI์˜ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „ 2๋Š” G++ 3.4์— ์ฒ˜์Œ ๋“ฑ์žฅํ•œ C++ ABI ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
G++ 4.9๋ฅผ ํ†ตํ•œ ๊ธฐ๋ณธ๊ฐ’.

๋ฒ„์ „ 3์€ ์ƒ์ˆ˜ ์ฃผ์†Œ๋ฅผ ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜๋กœ ๋งน๊ธ€๋งํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

G++ 4์—์„œ ์ฒ˜์Œ ๋“ฑ์žฅํ•œ ๋ฒ„์ „ 4.5๋Š” ๋ฒกํ„ฐ์— ๋Œ€ํ•œ ํ‘œ์ค€ ๋งน๊ธ€๋ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
์œ ํ˜•.

G++ 5์—์„œ ์ฒ˜์Œ ๋“ฑ์žฅํ•œ ๋ฒ„์ „ 4.6๋Š” ์†์„ฑ์˜ ๋งน๊ธ€๋ง์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ํฌ์ธํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ const/volatile, ์ผ๋ฐ˜ decl์˜ decltype ๋ฐ ์‚ฌ์šฉ
๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์„ ์–ธ์—์„œ ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜.

G++ 6์— ์ฒ˜์Œ ๋“ฑ์žฅํ•œ ๋ฒ„์ „ 4.7์€ C++11์˜ ์Šน๊ฒฉ ๋™์ž‘์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ์—ด๊ฑฐํ˜• ๋ฐ ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜ ํŒฉ์˜ ๋งน๊ธ€๋ง, const/static_cast, ์ ‘๋‘์‚ฌ ++
๋ฐ --, ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค ๋ฒ”์œ„ ํ•จ์ˆ˜.

G++ 7์—์„œ ์ฒ˜์Œ ๋“ฑ์žฅํ•œ ๋ฒ„์ „ 4.8์€ nullptr_t๋ฅผ ๋‚ด์žฅ ์œ ํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ธ์ˆ˜ ๋ฒ”์œ„์—์„œ ๋žŒ๋‹ค์˜ ๋งน๊ธ€๋ง์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

G++ 8์—์„œ ์ฒ˜์Œ ๋“ฑ์žฅํ•œ ๋ฒ„์ „ 4.9์€ ๋‹ค์Œ์˜ ๋Œ€์ฒด ๋™์ž‘์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
function-cv-qualifier๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜ ์œ ํ˜•.

์ฐธ์กฐ -์™€๋น„.

-fabi ํ˜ธํ™˜ ๋ฒ„์ „=n
๊ฐ•๋ ฅํ•œ ๋ณ„์นญ์„ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ G++๋Š” ๋‹ค์Œ์„ ์ƒ์„ฑํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
์ž˜๋ชป๋œ ๊ธฐํ˜ธ๋ฅผ ์ •์˜ํ•  ๋•Œ ์˜ฌ๋ฐ”๋ฅธ ๋งน๊ธ€๋ง๋œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ณ„์นญ
๋ง๊ฐ€์ง„ ์ด๋ฆ„. ์ด ์Šค์œ„์น˜๋Š” ๋ณ„์นญ์— ์‚ฌ์šฉํ•  ABI ๋ฒ„์ „์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์™€ -fabi ๋ฒ„์ „=0 (๊ธฐ๋ณธ๊ฐ’), ๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ABI ๋ฒ„์ „์ด
๋ช…์‹œ์ ์œผ๋กœ ์„ ํƒํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

ํ˜ธํ™˜์„ฑ ๋ฒ„์ „๋„ ๋‹ค์Œ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. -์™€๋น„=n.

-fno-์•ก์„ธ์Šค ์ œ์–ด
๋ชจ๋“  ์•ก์„ธ์Šค ํ™•์ธ์„ ๋•๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ๋‹ค์Œ์˜ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์•ก์„ธ์Šค ์ œ์–ด ์ฝ”๋“œ.

-fcheck-์‹ ๊ทœ
์‹œ๋„ํ•˜๊ธฐ ์ „์— "operator new"๊ฐ€ ๋ฐ˜ํ™˜ํ•œ ํฌ์ธํ„ฐ๊ฐ€ null์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
ํ• ๋‹น๋œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒ€์‚ฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ C++
ํ‘œ์ค€์€ "์—ฐ์‚ฐ์ž new"๊ฐ€ "throw()"๋กœ ์„ ์–ธ๋œ ๊ฒฝ์šฐ์—๋งŒ 0์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด ์˜ต์…˜์ด ์—†์–ด๋„ ํ•ญ์ƒ ๋ฐ˜ํ™˜ ๊ฐ’์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์—
๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒฝ์šฐ, "operator new"์— ๋น„์–ด ์žˆ์ง€ ์•Š์€ ์˜ˆ์™ธ ์‚ฌ์–‘์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ
์†Œ์ง„์€ "std::bad_alloc"์„ ๋˜์ ธ์„œ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค (์•„๋ฌด๋„).

-fconstexpr-๊นŠ์ด=n
C++11 constexpr ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ตœ๋Œ€ ์ค‘์ฒฉ ํ‰๊ฐ€ ๊นŠ์ด๋ฅผ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. n. ํ•œ๋„
์ƒ์ˆ˜ ํ‘œํ˜„์‹ ํ‰๊ฐ€ ์ค‘์— ๋ฌดํ•œ ์žฌ๊ท€๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. NS
ํ‘œ์ค€์—์„œ ์ง€์ •ํ•œ ์ตœ์†Œ๊ฐ’์€ 512์ž…๋‹ˆ๋‹ค.

-fdeduce-init-list
์ค‘๊ด„ํ˜ธ์—์„œ "std::initializer_list"๋กœ ํ…œํ”Œ๋ฆฟ ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ์ถ”๋ก  ํ™œ์„ฑํ™”
๋™๋ด‰๋œ ์ดˆ๊ธฐํ™” ๋ชฉ๋ก, ์ฆ‰

์ฃผํ˜• ์ž๋™ ์ „๋‹ฌ(T t) -> decltype(realfn(t))
{
๋ฐ˜ํ™˜ realfn (t);
}

๋ฌดํšจ f()
{
์•ž์œผ๋กœ({1,2}); // ์ฝœํฌ์›Œ๋“œ >
}

์ด ๊ณต์ œ๋Š” ์›๋ž˜ ์ œ์•ˆ๋œ ๊ฒƒ์˜ ๊ฐ€๋Šฅํ•œ ํ™•์žฅ์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
C++11 ํ‘œ์ค€์— ๋Œ€ํ•œ ์˜๋ฏธ ์ฒด๊ณ„์ด์ง€๋งŒ ์ตœ์ข… ํ‘œ์ค€์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ–ฅํ›„ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
G++ ๋ฒ„์ „.

-ffriend ์ฃผ์ž…
์นœ๊ตฌ ํ•จ์ˆ˜๋ฅผ ๋‘˜๋Ÿฌ์‹ธ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ฃผ์ž…ํ•˜์—ฌ ์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์„ ์–ธ๋œ ํด๋ž˜์Šค์˜ ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค. ์นœ๊ตฌ ๊ธฐ๋Šฅ์ด ๋ฌธ์„œํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด์ „ ์ฃผ์„ C++ ์ฐธ์กฐ ์„ค๋ช…์„œ์—์„œ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ISO C++์—์„œ๋Š”
๋‘˜๋Ÿฌ์‹ธ๋Š” ๋ฒ”์œ„์—์„œ ์„ ์–ธ๋˜์ง€ ์•Š์€ friend ํ•จ์ˆ˜๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด์„œ๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ์ˆ˜ ์ข…์† ์กฐํšŒ. GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‘œ์ค€ ๋™์ž‘์ž…๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ํ–ฅํ›„ G++ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-fno-elide-์ƒ์„ฑ์ž
C++ ํ‘œ์ค€์€ ๊ตฌํ˜„์ด ์ž„์‹œ ์ƒ์„ฑ์„ ์ƒ๋žตํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ฐ™์€ ์œ ํ˜•์˜ ๋‹ค๋ฅธ ๊ฐœ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜๋ฉด
์ตœ์ ํ™”ํ•˜๊ณ  ๋ชจ๋“  ๊ฒฝ์šฐ์— G++์—์„œ ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

-fno-enforce-eh-specs
๋Ÿฐํƒ€์ž„์— ์˜ˆ์™ธ ์‚ฌ์–‘ ์œ„๋ฐ˜์„ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ด ์˜ต์…˜์€ C++ ํ‘œ์ค€์„ ์œ„๋ฐ˜ํ•˜์ง€๋งŒ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"NDEBUG"๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์˜ˆ์™ธ ์‚ฌ์–‘์„ ์œ„๋ฐ˜ํ•˜์—ฌ ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ NS
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์—ฌ์ „ํžˆ ์‚ฌ์–‘์— ๋”ฐ๋ผ ์ตœ์ ํ™”ํ•˜๋ฏ€๋กœ ์˜ˆ๊ธฐ์น˜ ์•Š์€
์˜ˆ์™ธ๋กœ ์ธํ•ด ๋Ÿฐํƒ€์ž„์— ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

-fextern-tls-์ดˆ๊ธฐํ™”
-fno-์™ธ๋ถ€-tls-์ดˆ๊ธฐํ™”
C++11 ๋ฐ OpenMP ํ‘œ์ค€์€ "thread_local" ๋ฐ "threadprivate" ๋ณ€์ˆ˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋™์ (๋Ÿฐํƒ€์ž„) ์ดˆ๊ธฐํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
ํ•„์š”ํ•œ ์ดˆ๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ž˜ํผ ํ•จ์ˆ˜๋ฅผ โ€‹โ€‹๊ฑฐ์นฉ๋‹ˆ๋‹ค. ๋•Œ
๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ ๋ฐ ์ •์˜๊ฐ€ ๋™์ผํ•œ ๋ฒˆ์—ญ ๋‹จ์œ„์— ์žˆ์œผ๋ฏ€๋กœ ์ด ์˜ค๋ฒ„ํ—ค๋“œ๋Š”
์ตœ์ ํ™”๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฒˆ์—ญ ๋‹จ์œ„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
๋ณ€์ˆ˜์— ์‹ค์ œ๋กœ ๋™์ ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ƒ๋‹นํ•œ ์˜ค๋ฒ„ํ—ค๋“œ
์ดˆ๊ธฐํ™”. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ํ™•์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด
TU๋ฅผ ์ •์˜ํ•˜๋ ค๋ฉด ๋™์  ์ดˆ๊ธฐํ™”๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋ณ€์ˆ˜๊ฐ€
์ •์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜๊ฑฐ๋‚˜ TU๋ฅผ ์ •์˜ํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ TU์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ด๋Ÿฌํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-fno-์™ธ๋ถ€-tls-์ดˆ๊ธฐํ™” ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํ˜ธ ๋ณ„์นญ์„ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ ๊ธฐ๋ณธ๊ฐ’์€ -fextern-tls-์ดˆ๊ธฐํ™”. ๋ชฉํ‘œ์—
๊ธฐํ˜ธ ๋ณ„์นญ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ -fno-์™ธ๋ถ€-tls-์ดˆ๊ธฐํ™”.

-ffor ๋ฒ”์œ„
-๋ฒ”์œ„์— ๋Œ€ํ•œ fno
If -ffor ๋ฒ”์œ„ ๊ฐ€ ์ง€์ •๋˜๋ฉด ์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„ for-init-๋ฌธ
C++ ํ‘œ์ค€์— ์ง€์ •๋œ ๋Œ€๋กœ "for" ๋ฃจํ”„ ์ž์ฒด๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
-๋ฒ”์œ„์— ๋Œ€ํ•œ fno ๊ฐ€ ์ง€์ •๋˜๋ฉด ์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„ for-init-๋ฌธ
์ด์ „ ๋ฒ„์ „์˜ G++์—์„œ์™€ ๊ฐ™์ด ๋‘˜๋Ÿฌ์‹ธ๋Š” ๋ฒ”์œ„์˜ ๋๊นŒ์ง€ ํ™•์žฅ๋˜๋ฉฐ,
C++์˜ ๋‹ค๋ฅธ (์ „ํ†ต์ ์ธ) ๊ตฌํ˜„.

๋‘ ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋ชจ๋‘ ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ ํ‘œ์ค€์„ ๋”ฐ๋ฅด์ง€๋งŒ ํ—ˆ์šฉํ•˜๊ณ  ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์œ ํšจํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์‹ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ 
ํ–‰๋™.

-fno-gnu-ํ‚ค์›Œ๋“œ
์ฝ”๋“œ์—์„œ ์ด ๋‹จ์–ด๋ฅผ ํ‚ค์›Œ๋“œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก "typeof"๋ฅผ ํ‚ค์›Œ๋“œ๋กœ ์ธ์‹ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์‹๋ณ„์ž. ๋Œ€์‹  "__typeof__" ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์•ˆ์‹œ ์˜๋ฏธํ•˜๋‹ค
-fno-gnu-ํ‚ค์›Œ๋“œ.

-fno-์•”์‹œ์  ํ…œํ”Œ๋ฆฟ
์•”์‹œ์ ์œผ๋กœ(์ฆ‰,
์‚ฌ์šฉํ•˜๋‹ค); ๋ช…์‹œ์  ์ธ์Šคํ„ด์Šคํ™”์— ๋Œ€ํ•ด์„œ๋งŒ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

-fno-implicit-inline-ํ…œํ”Œ๋ฆฟ
์ธ๋ผ์ธ ํ…œํ”Œ๋ฆฟ์˜ ์•”์‹œ์  ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ๋„ ๋‚ด๋ณด๋‚ด์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’
์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•œ์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ปดํŒŒ์ผ๋˜๋„๋ก ์ธ๋ผ์ธ์„ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋™์ผํ•œ ๋ช…์‹œ์  ์ธ์Šคํ„ด์Šคํ™” ์„ธํŠธ.

-fno-๊ตฌํ˜„-์ธ๋ผ์ธ
๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๋ ค๋ฉด ์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ์ธ๋ผ์ธ ํ•จ์ˆ˜์˜ ์™ธ๋ถ€ ๋ณต์‚ฌ๋ณธ์„ ๋‚ด๋ณด๋‚ด์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
"#pragma ๊ตฌํ˜„". ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฉด ๋ง์ปค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
ํ˜ธ์ถœ๋˜๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์ธ๋ผ์ธ๋ฉ๋‹ˆ๋‹ค.

-fms-ํ™•์žฅ
์•”์‹œ์  int์™€ ๊ฐ™์€ MFC์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ Wpedantic ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋น„ํ‘œ์ค€ ๊ตฌ๋ฌธ์„ ํ†ตํ•ด ๋ฉค๋ฒ„ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

-fno-nonansi-๋‚ด์žฅ
ANSI/ISO C์—์„œ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜ ์„ ์–ธ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
"ffs", "alloca", "_exit", "index", "bzero", "conjf" ๋ฐ ๊ธฐํƒ€ ๊ด€๋ จ ํ•ญ๋ชฉ ํฌํ•จ
๊ธฐ๋Šฅ.

-fnothrow-opt
"noexcept" ์‚ฌ์–‘์ธ ๊ฒƒ์ฒ˜๋Ÿผ "throw()" ์˜ˆ์™ธ ์‚ฌ์–‘์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ์™ธ ์—†์ด ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ…์ŠคํŠธ ํฌ๊ธฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ฑฐ๋‚˜ ์ œ๊ฑฐ
์‚ฌ์–‘. ํ•จ์ˆ˜์— ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์œ ํ˜•์˜ ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
์†Œ๋ฉธ์ž, ์˜ˆ์™ธ ์‚ฌ์–‘์€ ์‹ค์ œ๋กœ ํ•จ์ˆ˜๋ฅผ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ EH ์ •๋ฆฌ๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜๋ฏธ๋ก ์  ํšจ๊ณผ๋Š”
๊ทธ๋Ÿฌํ•œ ์˜ˆ์™ธ ์‚ฌ์–‘์ด ์žˆ๋Š” ํ•จ์ˆ˜์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
"์˜ˆ๊ธฐ์น˜ ์•Š์€" ๋Œ€์‹  "์ข…๋ฃŒ"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

-fno ์—ฐ์‚ฐ์ž ์ด๋ฆ„
์—ฐ์‚ฐ์ž ์ด๋ฆ„ ํ‚ค์›Œ๋“œ "and", "bitand", "bitor", "compl", "not", "or"๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
ํ‚ค์›Œ๋“œ๋กœ ๋™์˜์–ด๋กœ "xor".

-fno-์„ ํƒ ์‚ฌํ•ญ-diags
ํ‘œ์ค€์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฐœํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ง„๋‹จ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ, G++์—์„œ ๋ฐœํ–‰ํ•œ ์œ ์ผํ•œ ์ง„๋‹จ์€ ๋‹ค์Œ์„ ๊ฐ€์ง„ ์ด๋ฆ„์— ๋Œ€ํ•œ ์ง„๋‹จ์ž…๋‹ˆ๋‹ค.
ํด๋ž˜์Šค ๋‚ด์˜ ์—ฌ๋Ÿฌ ์˜๋ฏธ.

-ํ—ˆ์šฉ
๋น„์ค€์ˆ˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ผ๋ถ€ ์ง„๋‹จ์„ ์˜ค๋ฅ˜์—์„œ ๊ฒฝ๊ณ ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ,
์‚ฌ์šฉ -ํ—ˆ์šฉ ์ผ๋ถ€ ๋ถ€์ ํ•ฉ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-fno-pretty-ํ…œํ”Œ๋ฆฟ
์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•จ์ˆ˜ ํ…œํ”Œ๋ฆฟ์˜ ํŠน์ˆ˜ํ™”๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š”
์ผ๋ฐ˜์ ์œผ๋กœ ํ…œํ”Œ๋ฆฟ์˜ ์„œ๋ช…๊ณผ ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜๋ฅผ ์ธ์‡„ํ•˜๊ณ 
์„œ๋ช…์˜ ๋ชจ๋“  typedef ๋˜๋Š” typenames(์˜ˆ: "void f(T) [with T = int]"
์–ด๋–ค ํ…œํ”Œ๋ฆฟ์ด ๊ด€๋ จ๋˜์–ด ์žˆ๋Š”์ง€ ๋ช…ํ™•ํ•˜๋„๋ก "void f(int)")๋ณด๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ
๋ฉ”์‹œ์ง€๊ฐ€ ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ์˜ ํŠน์ˆ˜ํ™”๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์˜ ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜์™€ ์ผ์น˜ํ•˜๋Š” ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜. ๋งŒ์•ฝ์—
์ด๋Ÿฌํ•œ ๋™์ž‘ ์ค‘ ํ•˜๋‚˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋” ์‰ฝ๊ฒŒ, ๋‹น์‹ ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -fno-pretty-ํ…œํ”Œ๋ฆฟ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-ํ”„๋ ˆํฌ
๋งํฌ ์‹œ๊ฐ„์— ์ž๋™ ํ…œํ”Œ๋ฆฟ ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋˜ํ•œ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
-fno-์•”์‹œ์  ํ…œํ”Œ๋ฆฟ.

-fno-rtti
์—์„œ ์‚ฌ์šฉํ•  ๊ฐ€์ƒ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ •๋ณด ์ƒ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
C++ ๋Ÿฐํƒ€์ž„ ์œ ํ˜• ์‹๋ณ„ ๊ธฐ๋Šฅ("dynamic_cast" ๋ฐ "typeid"). ๋งŒ์•ฝ ๋„ˆ๋ผ๋ฉด
์–ธ์–ด์˜ ํ•ด๋‹น ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ๋™์ผํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ G++๋Š” ์ด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•„์š”. "dynamic_cast" ์—ฐ์‚ฐ์ž๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์€ ์บ์ŠคํŠธ์— ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋Ÿฐํƒ€์ž„ ์œ ํ˜• ์ •๋ณด, ์ฆ‰ "void *" ๋˜๋Š” ๋ช…ํ™•ํ•œ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋กœ์˜ ์บ์ŠคํŠธ.

-fsize-deallocation
๋‚ด์žฅ ์ „์—ญ ์„ ์–ธ ํ™œ์„ฑํ™”

void ์—ฐ์‚ฐ์ž ์‚ญ์ œ (void *, std::size_t) noexcept;
void ์—ฐ์‚ฐ์ž delete[] (void *, std::size_t) noexcept;

C++14์— ๋„์ž…๋œ ๋Œ€๋กœ. ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ •์˜ ๋Œ€์ฒด ํ• ๋‹น ํ•ด์ œ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ• ๋‹น ํ•ด์ œ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -std = c ++ 14 ๊ทธ๋ฆฌ๊ณ  ์œ„. ๊นƒ๋ฐœ -ํฌ๊ธฐ ํ• ๋‹น ํ•ด์ œ ๊ฒฝ๊ณ 
์ •์˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์†Œ์— ๋Œ€ํ•ด

-fstats
์ปดํŒŒ์ผ์ด ๋๋‚  ๋•Œ ํ”„๋ŸฐํŠธ ์—”๋“œ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ •๋ณด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ G++ ๊ฐœ๋ฐœ ํŒ€์—๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

-fstrict ์—ด๊ฑฐํ˜•
์—ด๊ฑฐํ˜•์˜ ๊ฐ’์„ ๊ฐ€์ •ํ•˜์—ฌ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์—ด๊ฑฐํ˜• ๊ฐ’ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(C++ ํ‘œ์ค€์— ์ •์˜๋จ).
๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ ์ตœ์†Œ ๋น„ํŠธ ์ˆ˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’
๋ชจ๋“  ์—ด๊ฑฐ์ž๋ฅผ ๋‚˜ํƒ€๋ƒ„). ์ด ๊ฐ€์ •์€ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์œ ํšจํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž„์˜์˜ ์ •์ˆ˜ ๊ฐ’์„ ์—ด๊ฑฐํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์บ์ŠคํŠธ.

-ftemplate-์—ญ์ถ”์  ์ œํ•œ=n
๋‹จ์ผ ๊ฒฝ๊ณ  ๋˜๋Š” ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ตœ๋Œ€ ํ…œํ”Œ๋ฆฟ ์ธ์Šคํ„ด์Šคํ™” ๋ฉ”๋ชจ ์ˆ˜ ์„ค์ •
์— n. ๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

-fํ…œํ”Œ๋ฆฟ-๊นŠ์ด=n
ํ…œํ”Œ๋ฆฟ ํด๋ž˜์Šค์˜ ์ตœ๋Œ€ ์ธ์Šคํ„ด์Šคํ™” ๊นŠ์ด๋ฅผ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. n. ํ•œ๋„
ํ…œํ”Œ๋ฆฟ ์ค‘ ๋ฌดํ•œ ์žฌ๊ท€๋ฅผ ๊ฐ์ง€ํ•˜๋ ค๋ฉด ํ…œํ”Œ๋ฆฟ ์ธ์Šคํ„ด์Šคํ™” ๊นŠ์ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šคํ™”. ANSI/ISO C++ ์ค€์ˆ˜ ํ”„๋กœ๊ทธ๋žจ์€ ์ตœ๋Œ€๊ฐ’์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
๊นŠ์ด๊ฐ€ 17๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค(C++1024์—์„œ 11๋กœ ๋ณ€๊ฒฝ๋จ). ๊ธฐ๋ณธ๊ฐ’์€ 900์ž…๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ 1024์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์Šคํƒ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-fno-threadsafe-์ •์ 
์Šค๋ ˆ๋“œ์šฉ C++ ABI์— ์ง€์ •๋œ ๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋กœ์ปฌ ์ •์ ์˜ ์•ˆ์ „ํ•œ ์ดˆ๊ธฐํ™”. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์ฝ”๋“œ์—์„œ ์•ฝ๊ฐ„.

-ํ“จ์ฆˆ -cxa-atexit
"__cxa_atexit"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์  ์ €์žฅ ๊ธฐ๊ฐ„์ด ์žˆ๋Š” ๊ฐ์ฒด์˜ ์†Œ๋ฉธ์ž๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
"atexit" ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ธฐ๋Šฅ. ์ด ์˜ต์…˜์€ ์™„์ „ํžˆ
์ •์  ์†Œ๋ฉธ์ž์˜ ํ‘œ์ค€ ํ˜ธํ™˜ ์ฒ˜๋ฆฌ, ๊ทธ๋Ÿฌ๋‚˜ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
"__cxa_atexit"๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-fno-use-cxa-get-์˜ˆ์™ธ-ptr
"__cxa_get_exception_ptr" ๋Ÿฐํƒ€์ž„ ๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๋กœ ์ธํ•ด
"std::uncaught_exception"์€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์ง€๋งŒ ๋Ÿฐํƒ€์ž„ ๋ฃจํ‹ด์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ ๋ถˆ๊ฐ€.

-fvisibility-inlines-hidden
์ด ์Šค์œ„์น˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํฌ์ธํ„ฐ๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ๋น„๊ตํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š์Œ์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.
๋‘ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ
๊ณต์œ  ๊ฐ์ฒด.

์ด๊ฒƒ์˜ ํšจ๊ณผ๋Š” GCC๊ฐ€ ์ธ๋ผ์ธ ๋ฉ”์†Œ๋“œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํšจ๊ณผ์ ์œผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‚ด๋ณด๋‚ด๊ธฐ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋„๋ก "__attribute__ ((๊ฐ€์‹œ์„ฑ("hidden")))"
DSO์˜ ํ…Œ์ด๋ธ”์ด๋ฉฐ DSO ๋‚ด์—์„œ ์‚ฌ์šฉ๋  ๋•Œ PLT ๊ฐ„์ ‘ ์ฐธ์กฐ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด DSO์˜ ๋กœ๋“œ ๋ฐ ๋งํฌ ์‹œ๊ฐ„์— ๊ทน์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฌด๊ฑฐ์›Œ์ง€๋ฉด ๋™์  ๋‚ด๋ณด๋‚ด๊ธฐ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ์ค„์ž…๋‹ˆ๋‹ค.
ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ.

์ด ์Šค์œ„์น˜์˜ ๋™์ž‘์€ ๋ฉ”์„œ๋“œ๋ฅผ ์ˆจ๊น€์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ๊ณผ ์™„์ „ํžˆ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์— ๊ตญํ•œ๋œ ์ •์  ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ฑฐ๋‚˜ ์›์ธ
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•จ์ˆ˜๊ฐ€ ํ•˜๋‚˜์˜ ๊ณต์œ  ๊ฐ์ฒด์—๋งŒ ์ •์˜๋˜์–ด ์žˆ๋‹ค๊ณ  ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์†Œ๋“œ์˜ ํšจ๊ณผ๋ฅผ ๋ฌดํšจํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ช…์‹œ์ ์œผ๋กœ ๊ฐ€์‹œ์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ฉ”์†Œ๋“œ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น ๋ฐฉ๋ฒ•์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํฌ์ธํ„ฐ๋ฅผ ๋น„๊ตํ•˜๋ ค๋Š” ๊ฒฝ์šฐ
ํŠน์ • ์ธ๋ผ์ธ ๋ฉ”์„œ๋“œ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ฐ€์‹œ์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์‹œ
๋ช…์‹œ์  ๊ฐ€์‹œ์„ฑ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ๋‘˜๋Ÿฌ์‹ธ๋Š” ๊ฒƒ์€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ช…์‹œ์ ์œผ๋กœ ์ธ์Šคํ„ด์Šคํ™”๋œ ์ธ๋ผ์ธ ๋ฉ”์„œ๋“œ๋Š” ๋งํฌ๋กœ ์ด ์˜ต์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-fvisibility-ms-compat
์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ฐ€์‹œ์„ฑ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ GCC์˜ C++ ์—ฐ๊ฒฐ ๋ชจ๋ธ์„ ๋งŒ๋“ค๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
Microsoft Visual Studio์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๊ทธ๋Š” GCC์˜ ์—ฐ๊ฒฐ ๋ชจ๋ธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

1. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ธฐ๋ณธ ๊ฐ€์‹œ์„ฑ์„ "์ˆจ๊น€"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. -fvisibility=์ˆจ๊น€.

2. ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹Œ ์œ ํ˜•์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆจ๊ฒจ์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

3. ๋ช…์‹œ์  ๊ฐ€์‹œ์„ฑ์ด ์—†๋Š” ์œ ํ˜•์— ๋Œ€ํ•ด ๋‹จ์ผ ์ •์˜ ๊ทœ์น™์ด ์™„ํ™”๋ฉ๋‹ˆ๋‹ค.
๋‘˜ ์ด์ƒ์˜ ๊ณต์œ  ๊ฐ์ฒด์— ์ •์˜๋œ ์‚ฌ์–‘: ํ•ด๋‹น ์„ ์–ธ
์ด ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ์ฝ”๋“œ์—์„œ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. -fvisibility=์ˆจ๊น€ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ฝ”๋“œ๊ฐ€ ์˜์กดํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์•„๋งˆ๋„ ์‹ค์ˆ˜๋กœ Visual Studio ๋™์ž‘์—์„œ.

์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์˜ ๊ฒฐ๊ณผ ์ค‘์—๋Š” ๋™์ผํ•œ ์œ ํ˜•์˜ ์ •์  ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๊ฐ€
์ด๋ฆ„์€ ๊ฐ™์ง€๋งŒ ๋‹ค๋ฅธ ๊ณต์œ  ๊ฐ์ฒด์— ์ •์˜๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ณ€๊ฒฝ
ํ•˜๋‚˜๋Š” ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์— ์ •์˜๋œ ํ•จ์ˆ˜ ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ
๋‹ค๋ฅธ ๊ณต์œ  ๊ฐœ์ฒด๋Š” ๋™์ผํ•˜๊ฒŒ ๋น„๊ตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ,
๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์œ ํ˜•์„ ๋‹ค๋ฅด๊ฒŒ ์ •์˜ํ•˜๋Š” ODR ์œ„๋ฐ˜.

-fvtable-ํ™•์ธ=[ํ‘œ์ค€|๋ฏธ๋ฆฌ|์—†์Œ]
์ผœ๊ธฐ(๋˜๋Š” ๋„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -fvtable-verify=์—†์Œ) ์—์„œ ํ™•์ธํ•˜๋Š” ๋ณด์•ˆ ๊ธฐ๋Šฅ
๋Ÿฐํƒ€์ž„, ๋ชจ๋“  ๊ฐ€์ƒ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ํ˜ธ์ถœ์ด ํ†ต๊ณผํ•˜๋Š” vtable ํฌ์ธํ„ฐ
made๋Š” ๊ฐ์ฒด์˜ ์œ ํ˜•์— ๋Œ€ํ•ด ์œ ํšจํ•˜๋ฉฐ ์†์ƒ๋˜๊ฑฐ๋‚˜ ๋ฎ์–ด์“ฐ์—ฌ์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋Ÿฐํƒ€์ž„์— ์ž˜๋ชป๋œ vtable ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ณด๊ณ ๋˜๊ณ 
ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด ์ฆ‰์‹œ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.
vtable ํฌ์ธํ„ฐ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ต์…˜ ํ‘œ์ค€ ๊ณผ ๋ฏธ๋ฆฌ ์ œ์–ด
์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๊ตฌ์ถ•๋˜๋Š” ์‹œ์ . ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š”
์‹คํ–‰์ด "main"์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ -fvtable-verify=ํ‘œ์ค€ ๋ฐ์ดํ„ฐ์˜ ์›์ธ
๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ์ดˆ๊ธฐํ™”๋œ ํ›„ ๋นŒ๋“œ๋  ๊ตฌ์กฐ.
-fvtable-verify=์‚ฌ์ „ ์ดˆ๊ธฐํ™” ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ์ „์— ๋นŒ๋“œ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋กœ๋“œ ๋ฐ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์ด ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ช…๋ น์ค„์— ์—ฌ๋Ÿฌ ๋ฒˆ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ
์ง€์ •๋œ, ์—†์Œ ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ€์ง ํ‘œ์ค€ ๊ณผ ๋ฏธ๋ฆฌ; ๋ฏธ๋ฆฌ ์†Œ์š”
์šฐ์„ ๊ถŒ ํ‘œ์ค€.

-fvtv-๋””๋ฒ„๊ทธ
์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ -fvtable-verify=ํ‘œ์ค€ or -fvtable-verify=์‚ฌ์ „ ์ดˆ๊ธฐํ™”์›์ธ
vtable ํ™•์ธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋Ÿฐํƒ€์ž„ ๊ธฐ๋Šฅ์˜ ๋””๋ฒ„๊ทธ ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š”. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๋˜ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์–ด๋–ค vtable์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์ฐพ์€ ํฌ์ธํ„ฐ. ์ด ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.
vtv_set_ptr_data.log ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์˜ํ•ด ๋ช…๋ช…๋œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ VTV_LOGS_DIR
์ •์˜๋œ ๊ฒฝ์šฐ ๋˜๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ.

์ฐธ๊ณ : ์ด ๊ธฐ๋Šฅ์€ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๊ทธ ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋กœ๊ทธ ํŒŒ์ผ์„ ์›ํ•˜์‹œ๋ฉด
๊ธฐ์กด ๊ฒƒ์„ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

-fvtv-์นด์šดํŠธ
์ด๊ฒƒ์€ ๋””๋ฒ„๊น… ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ -fvtable-verify=ํ‘œ์ค€ or
-fvtable-verify=์‚ฌ์ „ ์ดˆ๊ธฐํ™”, ์ด๋กœ ์ธํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด
๋ฐœ์ƒํ•˜๋Š” ๊ฐ€์ƒ ํ†ตํ™” ๋ฐ ์‚ฝ์ž…ํ•œ ํ™•์ธ ํšŸ์ˆ˜. ๋˜ํ•œ
์‚ฝ์ž…ํ•œ ํŠน์ • ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ 
๊ฐ ์ปดํŒŒ์ผ ๋‹จ์œ„์— ๋Œ€ํ•ด ์ด ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด ์ •๋ณด๋ฅผ ์”๋‹ˆ๋‹ค.
๋ผ๋Š” ํŒŒ์ผ์— vtv_count_data.log ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์˜ํ•ด ๋ช…๋ช…๋œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ
VTV_LOGS_DIR ์ •์˜๋œ ๊ฒฝ์šฐ ๋˜๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ. ๋˜ํ•œ
๊ฐ ํด๋ž˜์Šค์— ๋Œ€ํ•œ vtable ํฌ์ธํ„ฐ ์ง‘ํ•ฉ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ด ์ •๋ณด๋ฅผ ์”๋‹ˆ๋‹ค.
์— vtv_class_set_sizes.log ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ๊ธฐ๋Šฅ์€ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๊ทธ ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋กœ๊ทธ ํŒŒ์ผ์„ ์–ป์œผ๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ์กด ๊ฒƒ์„ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.

-fno-์•ฝํ•œ
๋ง์ปค์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์•ฝํ•œ ๊ธฐํ˜ธ ์ง€์›์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ G++
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์•ฝํ•œ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ๋งŒ ์กด์žฌํ•˜๋ฉฐ,
์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์—ด๋“ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์ด์ ์ด ์—†์Šต๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์€ G++์˜ ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-nostdinc++
C++์— ํŠน์ •ํ•œ ํ‘œ์ค€ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ—ค๋” ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์—ฌ์ „ํžˆ ๋‹ค๋ฅธ ํ‘œ์ค€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. (์ด ์˜ต์…˜์€ ๋นŒ๋“œํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
C++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.)

๋˜ํ•œ ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”, ๊ฒฝ๊ณ  ๋ฐ ์ฝ”๋“œ ์ƒ์„ฑ ์˜ต์…˜์€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
C++ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ:

-์™€๋น„ (C, Objective-C, C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๋ช…์‹œ์ ์ผ ๋•Œ -fabi ๋ฒ„์ „=n ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜๋ฉด G++๊ฐ€ ์ƒ์„ฑํ•  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ณต๊ธ‰์—…์ฒด ์ค‘๋ฆฝ์ ์ธ C++ ABI์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ G++ ์ดํ›„๋กœ
๊ธฐ๋ณธ๊ฐ’์€ -fabi ๋ฒ„์ „=0, -์™€๋น„ ์ด์ „ ABI ๋ฒ„์ „์ด
์„ ํƒ๋จ( -fabi ๋ฒ„์ „=n) ๋˜๋Š” ์ด์ „ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(
-์™€๋น„=n or -fabi ํ˜ธํ™˜ ๋ฒ„์ „=n).

๊ทธ๋Ÿฌํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ, ์•„๋งˆ๋„ ์ผ๋ถ€
G++๊ฐ€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋”๋ผ๋„ ๊ฒฝ๊ณ ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ.
์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ์„ฑ๋œ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์‚ฌํ•ญ์ด ์—ผ๋ ค๋˜๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
G++๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ์œผ๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค
๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ.

-์™€๋น„ ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ๋ช…์‹œ์  ๋ฒ„์ „ ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠน์ •ํ•œ -fabi ๋ฒ„์ „ ์ˆ˜์ค€, ์˜ˆ -์™€๋น„=2 ๊ด€๋ จ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด
-fabi ๋ฒ„์ „=2. ๋ฒ„์ „ ๋ฒˆํ˜ธ ์ง€์ •๋„ ์„ค์ • -fabi ํ˜ธํ™˜ ๋ฒ„์ „=n.

์•Œ๋ ค์ง„ ๋น„ํ˜ธํ™˜์„ฑ -fabi ๋ฒ„์ „=2 (GCC 3.4์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ
4.9)์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

* ์ฐธ์กฐ ์œ ํ˜•์˜ ์œ ํ˜•์ด ์•„๋‹Œ ํ…œํ”Œ๋ฆฟ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ํ…œํ”Œ๋ฆฟ์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ‹€๋ฆฌ๊ฒŒ:

์™ธ๋ถ€ ์ •์ˆ˜ N;
์ฃผํ˜• ๊ตฌ์กฐ์ฒด S {};
๊ณตํ—ˆ n (S ) {2}

์ด๊ฒƒ์€ ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -fabi ๋ฒ„์ „=3.

* "__attribute((vector_size))"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋œ SIMD ๋ฒกํ„ฐ ์œ ํ˜•์€
๋ฒกํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์˜ ์˜ค๋ฒ„๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋น„ํ‘œ์ค€ ๋ฐฉ์‹
๋‹ค๋ฅธ ํฌ๊ธฐ์˜.

๋งน๊ธ€๋ง์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -fabi ๋ฒ„์ „=4.

* "__attribute((const))" ๋ฐ "noreturn"์€ ์œ ํ˜• ํ•œ์ •์ž๋กœ ๋งน๊ธ€๋ง๋˜์—ˆ์œผ๋ฉฐ,
์ผ๋ฐ˜ ์„ ์–ธ์˜ "decltype"์ด ์ ‘ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋งน๊ธ€๋ง ๋ฌธ์ œ๋Š” ๋‹ค์Œ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -fabi ๋ฒ„์ „=5.

* ๊ฐ€๋ณ€ ํ•จ์ˆ˜์— ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฒ”์œ„ ์—ด๊ฑฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์Šน๊ฒฉ๋ฉ๋‹ˆ๋‹ค.
๋ฒ”์œ„๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ์—ด๊ฑฐ์ž๋กœ ์ธํ•ด "va_arg"๊ฐ€ ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํƒ€๊ฒŸ์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ABI๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.
"int"๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ABI๋Š” ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜ ํŒฉ "const_cast"์˜ ๋งน๊ธ€๋ง์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
"static_cast", ์ ‘๋‘์‚ฌ ์ฆ๊ฐ€/๊ฐ์†Œ ๋ฐ ํด๋ž˜์Šค ๋ฒ”์œ„ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉ
ํ…œํ”Œ๋ฆฟ ์ธ์ˆ˜.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -fabi ๋ฒ„์ „=6.

* ๊ธฐ๋ณธ ์ธ์ˆ˜ ๋ฒ”์œ„์˜ Lambdas๊ฐ€ ์ž˜๋ชป ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ ABI๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
"nullptr_t"์˜ ๋งน๊ธ€๋ง.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -fabi ๋ฒ„์ „=7.

* function-cv-qualifier๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜ ์œ ํ˜•์„ ๋งน๊ธ€๋งํ•  ๋•Œ ๊ทœ์ •๋˜์ง€ ์•Š์€
ํ•จ์ˆ˜ ์œ ํ˜•์ด ๋Œ€์ฒด ํ›„๋ณด๋กœ ์ž˜๋ชป ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -fabi ๋ฒ„์ „=8.

๋˜ํ•œ psABI ๊ด€๋ จ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ์•Œ๋ ค์ง„ psABI ๋ณ€๊ฒฝ
๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

* SysV/x86-64์˜ ๊ฒฝ์šฐ "long double" ๋ฉค๋ฒ„๊ฐ€ ์žˆ๋Š” ๊ณต์šฉ์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
psABI์— ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

์œ ๋‹ˆ์˜จ ์œ  {
๊ธด ์ด์ค‘ LD;
int i;
};

"union U"๋Š” ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

-์™€๋น„ํƒœ๊ทธ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ABI ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š” ์œ ํ˜•์ด ํ•ด๋‹น ABI ํƒœ๊ทธ๊ฐ€ ์—†๋Š” ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉ๋  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋งŒ๋‚˜๋‹ค C + + Attributes ABI ํƒœ๊ทธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€

-Wctor-dtor-ํ”„๋ผ์ด๋ฒ„์‹œ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ƒ์„ฑ์ž ๋˜๋Š” ์†Œ๋ฉธ์ž๋กœ ์ธํ•ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํด๋ž˜์Šค๋Š” ๋น„๊ณต๊ฐœ์ด๋ฉฐ ์นœ๊ตฌ๋‚˜ ๊ณต๊ฐœ ์ •์  ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋น„๊ณต๊ฐœ๊ฐ€ ์•„๋‹Œ ๋ฉ”์„œ๋“œ๊ฐ€ ์—†๊ณ  ๋น„๊ณต๊ฐœ ๋ฉค๋ฒ„๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ƒ์„ฑ์ž๋‚˜ ์†Œ๋ฉธ์ž๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜.

-Wdelete-non-virtual-dtor (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
"delete"๊ฐ€ ๊ฐ€์ƒ ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํŒŒ๊ดดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ๋ฐ ๋น„๊ฐ€์ƒ ์†Œ๋ฉธ์ž. ํŒŒ์ƒ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ํด๋ž˜์Šค์— ๊ฐ€์ƒ์ด ์—†๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค
ํ๋ฌผ ์†Œ๊ฐ๋กœ. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-๋ฌธ์ž ์ ‘๋ฏธ์‚ฌ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๋ฌธ์ž์—ด์ด๋‚˜ ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด ๋’ค์— ud ์ ‘๋ฏธ์‚ฌ๊ฐ€ ์˜ฌ ๋•Œ ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฐ‘์ค„๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ค€์ˆ˜ ํ™•์žฅ์œผ๋กœ์„œ GCC๋Š” ์ด๋Ÿฌํ•œ ์ ‘๋ฏธ์‚ฌ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ์™€์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ์ „์ฒ˜๋ฆฌ ํ† ํฐ
"์—์„œ ์„œ์‹ ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ". ์˜ˆ๋ฅผ ๋“ค์–ด:

#์ •์˜ __STDC_FORMAT_MACROS
#ํฌํ•จํ•˜๋‹ค
#ํฌํ•จํ•˜๋‹ค

int main () {
int64_t i64 = 123;
printf("๋‚ด int64: %"PRId64"\n", i64);
}

์ด ๊ฒฝ์šฐ "PRId64"๋Š” ๋ณ„๋„์˜ ์ „์ฒ˜๋ฆฌ ํ† ํฐ์œผ๋กœ ์ทจ๊ธ‰๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

- ์ถ•์†Œ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
C++11์—์„œ ๊ธˆ์ง€ํ•˜๋Š” ์ถ•์†Œ ๋ณ€ํ™˜์ด ๋‹ค์Œ ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋ฉด ๊ฒฝ๊ณ  { }, ์˜ˆ.

์ •์ˆ˜ i = { 2.2 }; // ์˜ค๋ฅ˜: double์—์„œ int๋กœ ์ถ•์†Œ

์ด ํ”Œ๋ž˜๊ทธ๋Š” -๋ฒฝ ๊ณผ -Wc++11-ํ˜ธํ™˜.

์™€ -std = c ++ 11, - ์ขํ˜€์ง€์ง€ ์•Š๋Š” ํ‘œ์ค€์—์„œ ์š”๊ตฌํ•˜๋Š” ์ง„๋‹จ์„ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์ž˜ ๊ตฌ์„ฑ๋œ ์ฝ”๋“œ์˜ ์˜๋ฏธ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ถ•์†Œ ์ „ํ™˜
SFINAE ์ปจํ…์ŠคํŠธ์—์„œ ์—ฌ์ „ํžˆ ์ž˜๋ชป๋œ ํ˜•์‹์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

-์•„๋‹ˆ์š” (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ์ธํ•ด noexcept-expression์ด false๋กœ ํ‰๊ฐ€๋  ๋•Œ ๊ฒฝ๊ณ 
throw๋˜์ง€ ์•Š๋Š” ์˜ˆ์™ธ ์‚ฌ์–‘(์˜ˆ: "throw()" ๋˜๋Š”
"noexcept") ์˜ˆ์™ธ๋ฅผ throwํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ์— ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-W๋น„ ๊ฐ€์ƒ dtor (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํด๋ž˜์Šค์— ๊ฐ€์ƒ ํ•จ์ˆ˜์™€ ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ๋น„๊ฐ€์ƒ ์†Œ๋ฉธ์ž๊ฐ€ ์žˆ์„ ๋•Œ ๊ฒฝ๊ณ 
๊ทธ ์ž์ฒด ๋˜๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋‹คํ˜•์„ฑ ๊ธฐ๋ณธ ํด๋ž˜์Šค์—์„œ, ์ด ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ
ํด๋ž˜์Šค ์ž์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋˜๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -์›จํ”„์”จ++ ์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

- Wreorder (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
์ฝ”๋“œ์— ์ง€์ •๋œ ๋ฉค๋ฒ„ ์ด๋‹ˆ์…œ๋ผ์ด์ €์˜ ์ˆœ์„œ๊ฐ€ ์ˆœ์„œ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋“ค์ด ์‹คํ–‰๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

๊ตฌ์กฐ์ฒด A {
int i;
์ •์ˆ˜ j;
A(): j(0), i(1) { }
};

์ปดํŒŒ์ผ๋Ÿฌ๋Š” "i" ๋ฐ "j"์— ๋Œ€ํ•œ ๋ฉค๋ฒ„ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์žฌ์ •๋ ฌํ•˜์—ฌ ์ผ์น˜์‹œํ‚ต๋‹ˆ๋‹ค.
๊ตฌ์„ฑ์›์˜ ์„ ์–ธ ์ˆœ์„œ์— ๋”ฐ๋ผ ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š”
ํ™œ์„ฑํ™” ๋œ -๋ฒฝ.

-fext-์ˆซ์ž-๋ฆฌํ„ฐ๋Ÿด (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํ—ˆ์ˆ˜, ๊ณ ์ • ์†Œ์ˆ˜์  ๋˜๋Š” ๊ธฐ๊ณ„ ์ •์˜ ๋ฆฌํ„ฐ๋Ÿด ์ˆซ์ž ์ ‘๋ฏธ์‚ฌ๋ฅผ GNU๋กœ ํ—ˆ์šฉ
ํ™•์žฅ. ์ด ์˜ต์…˜์„ ๋„๋ฉด ์ด๋Ÿฌํ•œ ์ ‘๋ฏธ์‚ฌ๋Š” C++11 ์‚ฌ์šฉ์ž๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
์ •์˜๋œ ๋ฆฌํ„ฐ๋Ÿด ์ˆซ์ž ์ ‘๋ฏธ์‚ฌ. ๋ชจ๋“  C++11 ์ด์ „ ๋ฐฉ์–ธ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  GNU ๋ฐฉ์–ธ: -std = c ++ 98, -std=gnu++98, -std=gnu++11, -std=gnu++14. ์ด
์˜ต์…˜์€ ISO C++11 ์ดํ›„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค(-std = c ++ 11, ...).

๋‹ค์Œ - ์™€... ์˜ต์…˜์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค -๋ฒฝ.

-์›จํ”„์”จ++ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
Scott Meyers์˜ ๋‹ค์Œ ์Šคํƒ€์ผ ์ง€์นจ ์œ„๋ฐ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ
C + + ์ผ๋ จ์˜ ์ฑ…:

* ๋™์ ์œผ๋กœ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋ณต์‚ฌ ์ƒ์„ฑ์ž์™€ ํ• ๋‹น ์—ฐ์‚ฐ์ž๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ.

* ์ƒ์„ฑ์ž์—์„œ ํ• ๋‹น๋ณด๋‹ค ์ดˆ๊ธฐํ™”๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

* "operator="๊ฐ€ *this์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

* ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•  ๋•Œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค๊ณ  ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

* ์ฆ๊ฐ€ ๋ฐ ๊ฐ์†Œ ์—ฐ์‚ฐ์ž์˜ ์ ‘๋‘์‚ฌ์™€ ํ›„์œ„ ํ˜•์‹์„ ๊ตฌ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

* ์ ˆ๋Œ€ "&&", "||" ๋˜๋Š” ","๋ฅผ ์˜ค๋ฒ„๋กœ๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ด ์˜ต์…˜์€ ๋˜ํ•œ -W๋น„ ๊ฐ€์ƒ dtor, ์ด๊ฒƒ์€ ๋˜ํ•œ ํšจ๊ณผ์ ์ธ C++ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
๊ถŒ์žฅ ์‚ฌํ•ญ. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์ƒ์˜ ๋ถ€์กฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒ€์‚ฌ๊ฐ€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.
์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋น„๋‹คํ˜•์„ฑ ๊ธฐ๋ณธ ํด๋ž˜์Šค์—์„œ๋„ ์†Œ๋ฉธ์ž์ž…๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์„ ํƒํ•  ๋•Œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ—ค๋”๊ฐ€ ๋ชจ๋“ 
์ด ์ง€์นจ์˜; ์‚ฌ์šฉํ•˜๋‹ค GREP -v ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

-Wstrict-null-์„ผํ‹ฐ๋„ฌ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
์บ์ŠคํŠธ๋˜์ง€ ์•Š์€ "NULL"์„ ์„ผํ‹ฐ๋„ฌ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. GCC๋กœ๋งŒ ์ปดํŒŒ์ผํ•  ๋•Œ
"NULL"์ด "__null"๋กœ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด๊ฒƒ์€ ์œ ํšจํ•œ ์„ผํ‹ฐ๋„ฌ์ž…๋‹ˆ๋‹ค. ๋น„๋ก null์ด์ง€๋งŒ
๋„ ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹Œ ํฌ์ธํ„ฐ ์ƒ์ˆ˜, ๋™์ผํ•œ ํฌ๊ธฐ๊ฐ€ ๋ณด์žฅ๋จ
ํฌ์ธํ„ฐ๋กœ. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์‚ฌ์šฉ์€ ๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ ๊ฐ„์— ์ด์‹ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

- ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ ์นœ๊ตฌ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํ…œํ”Œ๋ฆฟ ๋‚ด์—์„œ ํ…œํ”Œ๋ฆฟํ™”๋˜์ง€ ์•Š์€ ์นœ๊ตฌ ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
G++์—์„œ ๋ช…์‹œ์  ํ…œํ”Œ๋ฆฟ ์‚ฌ์–‘ ์ง€์›์˜ ์ถœํ˜„ ์ดํ›„,
์นœ๊ตฌ๊ฐ€ ๋น„์ •๊ทœ ID์ž…๋‹ˆ๋‹ค(์ฆ‰, ์นœ๊ตฌ ํ‘ธ(์ •์ˆ˜)), C++ ์–ธ์–ด ์‚ฌ์–‘
์นœ๊ตฌ๊ฐ€ ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ฑฐ๋‚˜ ์ •์˜ํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. (๋ถ€๋ถ„
14.5.3). G++๊ฐ€ ๋ช…์‹œ์  ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์—, unqualified-ids๋Š”
ํ…œํ”Œ๋ฆฟํ™”๋œ ๊ธฐ๋Šฅ์˜ ํŠน์ • ์ „๋ฌธํ™”๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฑด
๋น„์ค€์ˆ˜ ๋™์ž‘์€ ๋” ์ด์ƒ G++์˜ ๊ธฐ๋ณธ ๋™์ž‘์ด ์•„๋‹™๋‹ˆ๋‹ค.
- ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ ์นœ๊ตฌ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž ์žฌ์ ์ธ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ˜์ ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กœ์šด ์ปดํŒŒ์ผ๋Ÿฌ ๋™์ž‘์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ ์นœ๊ตฌ, ์ค€์ˆ˜ ์ปดํŒŒ์ผ๋Ÿฌ ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜์ง€๋งŒ
์œ ์šฉํ•œ ๊ฒฝ๊ณ .

-Wold ์Šคํƒ€์ผ ์บ์ŠคํŠธ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
C++ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ void๊ฐ€ ์•„๋‹Œ ์œ ํ˜•์œผ๋กœ์˜ ์ด์ „ ์Šคํƒ€์ผ(C ์Šคํƒ€์ผ) ์บ์ŠคํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ("dynamic_cast", "static_cast", "reinterpret_cast" ๋ฐ
"const_cast")๋Š” ์˜๋„ํ•˜์ง€ ์•Š์€ ํšจ๊ณผ์— ๋œ ์ทจ์•ฝํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ธฐ ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค.

-์˜ค๋ฒ„๋กœ๋”ฉ๋œ ๊ฐ€์ƒ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜ ์„ ์–ธ์ด ๊ธฐ๋ณธ ํด๋ž˜์Šค์—์„œ ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ์ˆจ๊ธธ ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ:

๊ตฌ์กฐ์ฒด A {
๊ฐ€์ƒ ๋ฌดํšจ f();
};

๊ตฌ์กฐ์ฒด B: ๊ณต๊ฐœ A {
๋ฌดํšจ f(int);
};

"f"์˜ "A" ํด๋ž˜์Šค ๋ฒ„์ „์€ "B"์— ์ˆจ๊ฒจ์ ธ ์žˆ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ใ„ด*ใ„ด;
b->f();

์ปดํŒŒ์ผ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

-Wno-pmf-๋ณ€ํ™˜ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๋ฉค๋ฒ„ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ๋œ ํฌ์ธํ„ฐ๋ฅผ ์ผ๋ฐ˜์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ์ง„๋‹จ ๋น„ํ™œ์„ฑํ™”
๋ฐ”๋Š˜.

-Wsign-ํ”„๋กœ๋ชจ์…˜ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๊ณผ๋ถ€ํ•˜ ํ•ด๊ฒฐ์ด unsigned ๋˜๋Š” enumerated ์œ ํ˜•์—์„œ ๋‹ค์Œ์œผ๋กœ ์Šน๊ฒฉ์„ ์„ ํƒํ•  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ช…๋œ ์œ ํ˜•, ๋™์ผํ•œ ํฌ๊ธฐ์˜ ๋ถ€ํ˜ธ ์—†๋Š” ์œ ํ˜•์œผ๋กœ์˜ ๋ณ€ํ™˜. ์ด์ „์˜
G++ ๋ฒ„์ „์€ ์„œ๋ช…๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ํ‘œ์ค€์€ ํ˜„์žฌ
ํ–‰๋™.

์˜ต์…˜ ์ œ์–ด ์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C ๊ณผ ๋ชฉํ‘œ-C++ ๋ฐฉ์–ธ
(์ฐธ๊ณ : ์ด ๋งค๋‰ด์–ผ์€ Objective-C ๋ฐ Objective-C++ ์–ธ์–ด๋ฅผ ์„ค๋ช…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋“ค ์ž์‹ .

์ด ์„น์…˜์—์„œ๋Š” Objective-C์—์„œ๋งŒ ์˜๋ฏธ ์žˆ๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ Objective-C++ ํ”„๋กœ๊ทธ๋žจ. ๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด ๋…๋ฆฝ์ ์ธ GNU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. some_class.m ์ด๋ ‡๊ฒŒ :

gcc -g -fgnu-๋Ÿฐํƒ€์ž„ -O -c some_class.m

์ด ์˜ˆ์—์„œ, -fgnu-๋Ÿฐํƒ€์ž„ Objective-C ๋ฐ Objective-C++ ์ „์šฉ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ๋“ค; GCC์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด๋กœ ๋‹ค๋ฅธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Objective-C๋Š” C ์–ธ์–ด์˜ ํ™•์žฅ์ด๋ฏ€๋กœ Objective-C ์ปดํŒŒ์ผ์€
C ํ”„๋ก ํŠธ์—”๋“œ์— ํŠน์ •ํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: -์ „ํ†ต์ ์ธ). ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ,
Objective-C++ ์ปดํŒŒ์ผ์€ C++ ํŠน์ • ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: -์™€๋น„).

๋‹ค์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ต์…˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๋งŒ Objective-C ๋ฐ Objective-C++ ์ปดํŒŒ์ผ์šฉ
ํ”„๋กœ๊ทธ๋žจ :

-f์ƒ์ˆ˜-๋ฌธ์ž์—ด-ํด๋ž˜์Šค=ํด๋ž˜์Šค ์ด๋ฆ„
ํด๋ž˜์Šค ์ด๋ฆ„ ๊ฐ ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์ธ์Šคํ„ด์Šคํ™”ํ•  ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ
"@"..."" ๊ตฌ๋ฌธ์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํด๋ž˜์Šค ์ด๋ฆ„์€ "NXConstantString"์ž…๋‹ˆ๋‹ค.
GNU ๋Ÿฐํƒ€์ž„์ด ์‚ฌ์šฉ ์ค‘์ด๊ณ  NeXT ๋Ÿฐํƒ€์ž„์ด ์‚ฌ์šฉ ์ค‘์ธ ๊ฒฝ์šฐ "NSConstantString"
์‚ฌ์šฉ(์•„๋ž˜ ์ฐธ์กฐ). NS -f์ƒ์ˆ˜-cfstrings ์˜ต์…˜์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์˜ต์…˜์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
-f์ƒ์ˆ˜-๋ฌธ์ž์—ด-ํด๋ž˜์Šค ์„ค์ •ํ•˜๊ณ  "@"..."" ๋ฆฌํ„ฐ๋Ÿด์ด ์ƒ์ˆ˜๋กœ ๋ฐฐ์น˜๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
CoreFoundation ๋ฌธ์ž์—ด.

-fgnu-๋Ÿฐํƒ€์ž„
ํ‘œ์ค€ GNU Objective-C ๋Ÿฐํƒ€์ž„๊ณผ ํ˜ธํ™˜๋˜๋Š” ๊ฐœ์ฒด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ ์œ ํ˜•์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-fnext-๋Ÿฐํƒ€์ž„
NeXT ๋Ÿฐํƒ€์ž„๊ณผ ํ˜ธํ™˜๋˜๋Š” ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ NeXT ๊ธฐ๋ฐ˜์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
Darwin ๋ฐ Mac OS X๋ฅผ ํฌํ•จํ•œ ์‹œ์Šคํ…œ. ๋งคํฌ๋กœ "__NEXT_RUNTIME__"์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
(๊ทธ๋ฆฌ๊ณ  ๊ฒฝ์šฐ์—๋งŒ) ์ด ์˜ต์…˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-fno-nil-์ˆ˜์‹ ๊ธฐ
์—ฌ๊ธฐ์—์„œ ๋ชจ๋“  Objective-C ๋ฉ”์‹œ์ง€ ๋””์ŠคํŒจ์น˜("[receiver message:arg]")๋ฅผ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋ฒˆ์—ญ ๋‹จ์œ„๋Š” ์ˆ˜์‹ ๊ธฐ๊ฐ€ "nil"์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋” ๋งŽ์€ ๊ฒƒ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค
์‚ฌ์šฉํ•  ๋Ÿฐํƒ€์ž„์˜ ํšจ์œจ์ ์ธ ์ง„์ž…์ . ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
NeXT ๋Ÿฐํƒ€์ž„ ๋ฐ ABI ๋ฒ„์ „ 0 ๋˜๋Š” 1๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-fobjc-abi-๋ฒ„์ „=n
๋ฒ„์ „ ์‚ฌ์šฉ n ์„ ํƒํ•œ ๋Ÿฐํƒ€์ž„์— ๋Œ€ํ•œ Objective-C ABI์˜ ์ด ์˜ต์…˜์€
ํ˜„์žฌ NeXT ๋Ÿฐํƒ€์ž„์— ๋Œ€ํ•ด์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฒ„์ „ 0์€
์†์„ฑ ๋ฐ ๊ธฐํƒ€ Objective-C 32์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ธฐ์กด(2.0๋น„ํŠธ) ABI
์ถ”๊ฐ€. ๋ฒ„์ „ 1์€ ์†์„ฑ ๋ฐ
๋‹ค๋ฅธ Objective-C 2.0 ์ถ”๊ฐ€ ์‚ฌํ•ญ. ๋ฒ„์ „ 2๋Š” ์ตœ์‹ (64๋น„ํŠธ) ABI์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋ฉด
์ง€์ •๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ 0๋น„ํŠธ ๋Œ€์ƒ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ๋ฒ„์ „ 32์ด๊ณ  2๋น„ํŠธ์˜ ๊ฒฝ์šฐ ๋ฒ„์ „ 64์ž…๋‹ˆ๋‹ค.
๋Œ€์ƒ ๊ธฐ๊ณ„.

-fobjc-call-cxx-cdtors
๊ฐ Objective-C ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ C++ ๊ฐ์ฒด์ธ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํŠน์ˆ˜ "-(id)
.cxx_construct" ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋Š” ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•œ ๋‹ค์Œ "self"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ
์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์†Œ๋ฉธ์ž๊ฐ€ ์žˆ๋Š” C++ ๊ฐ์ฒด์ด๋ฉฐ, ๊ทธ๋ ‡๋‹ค๋ฉด
์ด๋Ÿฌํ•œ ๋ชจ๋“  ๊ธฐ๋ณธ ์†Œ๋ฉธ์ž๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŠน๋ณ„ํ•œ "- (void) .cxx_destruct" ๋ฉ”์„œ๋“œ
์—ญ์ˆœ์œผ๋กœ.

๋”ฐ๋ผ์„œ "-(id) .cxx_construct" ๋ฐ "-(void) .cxx_destruct" ๋ฉ”์„œ๋“œ๋งŒ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ Objective-C ํด๋ž˜์Šค์— ์„ ์–ธ๋œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์Šˆํผํด๋ž˜์Šค์—์„œ ์ƒ์†๋จ. Objective-C ๋Ÿฐํƒ€์ž„์˜ ์ฑ…์ž„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ฐœ์ฒด์˜ ์ƒ์† ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. "-(์•„์ด๋””)
.cxx_construct" ๋ฉ”์„œ๋“œ๋Š” ์ƒˆ ๊ฐœ์ฒด ์งํ›„ ๋Ÿฐํƒ€์ž„์—์„œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
์ธ์Šคํ„ด์Šค๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. "- (void) .cxx_destruct" ๋ฉ”์„œ๋“œ๊ฐ€ ์ฆ‰์‹œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
๋Ÿฐํƒ€์ž„์ด ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ํ• ๋‹น ํ•ด์ œํ•˜๊ธฐ ์ „์—.

์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ Mac OS X 10.4 ์ด์ƒ์˜ NeXT ๋Ÿฐํƒ€์ž„๋งŒ ๋‹ค์Œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
"-(id) .cxx_construct" ๋ฐ "-(void) .cxx_destruct" ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

-fobjc-์ง์ ‘ ๋ฐœ์†ก
๋ฉ”์‹œ์ง€ ๋””์ŠคํŒจ์ฒ˜๋กœ ๋น ๋ฅธ ์ ํ”„๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์œˆ์—์„œ ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
์ปค๋ฎค ํŽ˜์ด์ง€.

-fobjc-์˜ˆ์™ธ
Objective-C์—์„œ ๊ตฌ์กฐ์  ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
C++ ๋ฐ Java์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ. ์ด ์˜ต์…˜์€ Objective-C๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํ‚ค์›Œ๋“œ @try, @throw, @catch, @finally ๋ฐ @synchronized. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
GNU ๋Ÿฐํƒ€์ž„๊ณผ NeXT ๋Ÿฐํƒ€์ž„ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๊ทธ๋Ÿฌ๋‚˜
Mac OS X 10.2 ๋ฐ ์ด์ „ ๋ฒ„์ „์˜ NeXT ๋Ÿฐํƒ€์ž„).

-fobjc-gc
Objective-C ๋ฐ Objective-C++ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘(GC)์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜
NeXT ๋Ÿฐํƒ€์ž„์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GNU ๋Ÿฐํƒ€์ž„์— ๋‹ค๋ฅธ ์“ฐ๋ ˆ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠน๋ณ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ปฌ๋ ‰์…˜ ๊ตฌํ˜„.

-fobjc-nilcheck
ABI ๋ฒ„์ „ 2๊ฐ€ ์žˆ๋Š” NeXT ๋Ÿฐํƒ€์ž„์˜ ๊ฒฝ์šฐ ๋ฉ”์„œ๋“œ์—์„œ nil ์ˆ˜์‹ ๊ธฐ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ ์ค‘์ง€ -fno-objc-nilcheck. ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ๋ฐ ์ˆ˜ํผ ํ˜ธ์ถœ์€ ์ ˆ๋Œ€ ํ™•์ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋ฌด์—‡์œผ๋กœ ์„ค์ •๋˜๋“  ์ด๋Ÿฐ ์‹์œผ๋กœ nil์— ๋Œ€ํ•ด. ํ˜„์žฌ ์ด ํ”Œ๋ž˜๊ทธ๋Š”
GNU ๋Ÿฐํƒ€์ž„์ด๋‚˜ NeXT ๋Ÿฐํƒ€์ž„ ABI์˜ ์ด์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค.

-fobjc-std = OBJC1.
GCC 1.0์—์„œ ์ธ์‹ํ•˜๋Š” ์–ธ์–ด์ธ Objective-C 4.0์˜ ์–ธ์–ด ๊ตฌ๋ฌธ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ C/C++ ์–ธ์–ด์— ๋Œ€ํ•œ Objective-C ์ถ”๊ฐ€์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค
๋ณ„๋„์˜ C/C++ ๋ฐฉ์–ธ์œผ๋กœ ์ œ์–ด๋˜๋Š” C/C++ ํ‘œ์ค€ ์ค€์ˆ˜
์˜ต์…˜ ํ”Œ๋ž˜๊ทธ. ์ด ์˜ต์…˜์ด Objective-C ๋˜๋Š” Objective-C++์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ GCC 4.0์—์„œ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ชจ๋“  Objective-C ๊ตฌ๋ฌธ์€ ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
Objective-C ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปดํŒŒ์ผ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด์ „ ๋ฒ„์ „์˜ GCC.

-freplace-objc-ํด๋ž˜์Šค
์ง€์‹œํ•˜๋Š” ํŠน์ˆ˜ ๋งˆ์ปค๋ฅผ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค. ld(1) ๊ฒฐ๊ณผ ๊ฐ์ฒด์—์„œ ์ •์ ์œผ๋กœ ๋งํฌํ•˜์ง€ ์•Š๋„๋ก
ํŒŒ์ผ ๋ฐ ํ—ˆ์šฉ ๋”œ(1) ๋Œ€์‹  ๋Ÿฐํƒ€์ž„์— ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
Fix-and-Continue ๋””๋ฒ„๊น… ๋ชจ๋“œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ์ฒด ํŒŒ์ผ์ด
์งˆ๋ฌธ์€ ํ”„๋กœ๊ทธ๋žจ ๊ณผ์ •์—์„œ ๋‹ค์‹œ ์ปดํŒŒ์ผ๋˜๊ณ  ๋™์ ์œผ๋กœ ๋‹ค์‹œ ๋กœ๋“œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ํ•„์š” ์—†์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ, Fix-and-
๊ณ„์† ๊ธฐ๋Šฅ์€ Mac์—์„œ NeXT ๋Ÿฐํƒ€์ž„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
OS X 10.3 ์ด์ƒ.

-fzero-๋งํฌ
NeXT ๋Ÿฐํƒ€์ž„์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ ํ˜ธ์ถœ์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
"objc_getClass("...")"(์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ํด๋ž˜์Šค ์ด๋ฆ„์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ)
๋Ÿฐํƒ€์ž„์„ ๊ฐœ์„ ํ•˜๋Š” ๋กœ๋“œ ์‹œ๊ฐ„์— ์ดˆ๊ธฐํ™”๋˜๋Š” ์ •์  ํด๋ž˜์Šค ์ฐธ์กฐ
์„ฑ๋Šฅ. ์ง€์ • -fzero-๋งํฌ ํ”Œ๋ž˜๊ทธ๋Š” ์ด ๋™์ž‘์„ ์–ต์ œํ•˜๊ณ 
"objc_getClass("...")"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Zero-Link์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ฐœ๋ณ„ ํด๋ž˜์Šค ๊ตฌํ˜„์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ฒ„๊น… ๋ชจ๋“œ
ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘. GNU ๋Ÿฐํƒ€์ž„์€ ํ˜„์žฌ ํ•ญ์ƒ ํ˜ธ์ถœ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
"objc_get_class("...")" ๋ช…๋ น์ค„ ์˜ต์…˜์— ๊ด€๊ณ„์—†์ด.

-fno-local-ivars
๊ธฐ๋ณธ์ ์œผ๋กœ Objective-C์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ๋กœ์ปฌ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์„ ์–ธ๋œ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ๋ณ€์ˆ˜.
์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๋กœ์ปฌ๋กœ ์„ ์–ธ๋œ ๋‹ค๋ฅธ ๋ณ€์ˆ˜ ๊ฐ„์˜ ์„€๋„์ž‰
ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€ ๋˜๋Š” ์ „์—ญ์ ์œผ๋กœ ๋™์ผํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ง€์ • -fno-local-ivars
ํ”Œ๋ž˜๊ทธ๋Š” ์ด ๋™์ž‘์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ณ€์ˆ˜ ์„€๋„์ž‰ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

-fivar-๊ฐ€์‹œ์„ฑ=[๊ณต๊ฐœ|๋ณดํ˜ธ|์‚ฌ์„ค|๊พธ๋Ÿฌ๋ฏธ]
๊ธฐ๋ณธ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ๊ฐ€์‹œ์„ฑ์„ ์ง€์ •๋œ ์˜ต์…˜์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๊ฐ€
์•ก์„ธ์Šค ์ˆ˜์ •์ž ์ง€์‹œ๋ฌธ ๋ฒ”์œ„ ์™ธ๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ
์ง€์ •๋œ ๊ฐ€์‹œ์„ฑ.

-gen-decls
์†Œ์Šค ํŒŒ์ผ์— ์žˆ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์„ ์–ธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์— ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
์†Œ์Šค ์ด๋ฆ„.decl.

-Wassign-์ธํ„ฐ์…‰ํŠธ (Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ Objective-C ํ• ๋‹น์„ ๊ฐ€๋กœ์ฑŒ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-Wno ํ”„๋กœํ† ์ฝœ (Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํด๋ž˜์Šค๊ฐ€ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๋„๋ก ์„ ์–ธ๋œ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค.
ํด๋ž˜์Šค์— ์˜ํ•ด ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ํ”„๋กœํ† ์ฝœ์—์„œ. ๊ธฐ๋ณธ ๋™์ž‘์€
ํด๋ž˜์Šค์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”์„œ๋“œ ๊ตฌํ˜„์€ ์Šˆํผํด๋ž˜์Šค์—์„œ ์ƒ์†๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -Wno ํ”„๋กœํ† ์ฝœ
์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ์ˆ˜ํผ ํด๋ž˜์Šค์—์„œ ์ƒ์†๋œ ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ตฌํ˜„๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-W์„ ํƒ์ž (Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๋™์ผํ•œ ์„ ํƒ๊ธฐ์— ๋Œ€ํ•ด ์œ ํ˜•์ด ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
ํŽธ์ง‘. ๊ฒ€์‚ฌ๋Š” ์ตœ์ข… ๋‹จ๊ณ„์˜ ๋ฉ”์†Œ๋“œ ๋ชฉ๋ก์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘. ๋˜ํ•œ ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฐ ์„ ํƒ๊ธฐ์— ๋Œ€ํ•ด ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
"@selector(...)" ํ‘œํ˜„์‹ ๋ฐ ํ•ด๋‹น ์„ ํƒ๊ธฐ์— ๋Œ€ํ•œ ํ•ด๋‹น ๋ฉ”์†Œ๋“œ๋Š”
์ปดํŒŒ์ผ ์ค‘ ๋ฐœ๊ฒฌ. ์ด๋Ÿฌํ•œ ๊ฒ€์‚ฌ๋Š” ๋งˆ์ง€๋ง‰์—๋งŒ ๋ฉ”์„œ๋“œ ํ…Œ์ด๋ธ”์„ ์Šค์บ”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์ปดํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ปดํŒŒ์ผ ์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๊ฑฐ๋‚˜
-fsyntax ์ „์šฉ ์˜ต์…˜์„ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.

-Wstrict ์„ ํƒ์ž ์ผ์น˜ (Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
์ธ์ˆ˜ ๋ฐ/๋˜๋Š” ๋ฐ˜ํ™˜ ์œ ํ˜•์ด ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ด ์„ ํƒ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์‹ ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ ค๊ณ  ํ•  ๋•Œ ์ฃผ์–ด์ง„ ์„ ํƒ๊ธฐ
"ID" ๋˜๋Š” "ํด๋ž˜์Šค"๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ๊บผ์ ธ ์žˆ์œผ๋ฉด(๊ธฐ๋ณธ ๋™์ž‘),
๋ฐœ๊ฒฌ๋œ ์ฐจ์ด์ ์ด
๊ฐ™์€ ํฌ๊ธฐ์™€ ์ •๋ ฌ.

-Wunddeclared-์„ ํƒ์ž (Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
์„ ์–ธ๋˜์ง€ ์•Š์€ ์„ ํƒ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜๋Š” "@selector(...)" ํ‘œํ˜„์‹์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. NS
ํ•ด๋‹น ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ด์ „์— ์„ ์–ธ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„ ํƒ์ž๋Š” ์„ ์–ธ๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
@interface ๋˜๋Š” @protocol์—์„œ ๋ช…์‹œ์ ์œผ๋กœ "@selector(...)" ํ‘œํ˜„์‹
์„ ์–ธ ๋˜๋Š” ์•”์‹œ์ ์œผ๋กœ @implementation ์„น์…˜์—์„œ. ์ด ์˜ต์…˜์€ ํ•ญ์ƒ
"@selector(...)" ํ‘œํ˜„์‹์ด ๋ฐœ๊ฒฌ๋˜๋Š” ์ฆ‰์‹œ ๊ฒ€์‚ฌํ•˜์ง€๋งŒ, -W์„ ํƒ์ž ๋งŒ
์ปดํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋˜ํ•œ ์ฝ”๋”ฉ์„ ์‹œํ–‰ํ•ฉ๋‹ˆ๋‹ค
๋ฉ”์†Œ๋“œ์™€ ์„ ํƒ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์„ ์–ธํ•ด์•ผ ํ•˜๋Š” ์Šคํƒ€์ผ ๊ทœ์น™.

-print-objc-๋Ÿฐํƒ€์ž„-์ •๋ณด
๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฐ€์žฅ ํฐ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” C ํ—ค๋”๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์žˆ๋Š” ๊ฒฝ์šฐ).

์˜ต์…˜ ์— Control ์ง„๋‹จ ๋ฉ”์‹œ์ง€ ์„œ์‹
์ „ํ†ต์ ์œผ๋กœ ์ง„๋‹จ ๋ฉ”์‹œ์ง€๋Š” ์ถœ๋ ฅ ์žฅ์น˜์˜
์ธก๋ฉด(์˜ˆ: ๋„ˆ๋น„, ...). ์•„๋ž˜์— ์„ค๋ช…๋œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง„๋‹จ ๋ฉ”์‹œ์ง€์˜ ํ˜•์‹ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(์˜ˆ: ์ค„๋‹น ๋ฌธ์ž ์ˆ˜, ๋นˆ๋„)
์†Œ์Šค ์œ„์น˜ ์ •๋ณด๋ฅผ ๋ณด๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์–ธ์–ด ํ”„๋ŸฐํŠธ ์—”๋“œ๋Š”
์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์กด์ค‘ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-f๋ฉ”์‹œ์ง€ ๊ธธ์ด=n
๋‹ค์Œ ์ค„์— ๋งž๋„๋ก ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์˜ ํ˜•์‹์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. n ๋ฌธ์ž. ๋งŒ์•ฝ์— n is
XNUMX์ด๋ฉด ์ค„ ๋ฐ”๊ฟˆ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ํ•œ ์ค„์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋ชจ๋“  ํ”„๋ŸฐํŠธ ์—”๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-fdiagnostics-show-location=ํ•œ๋ฒˆ
์ค„ ๋ฐ”๊ฟˆ ๋ชจ๋“œ์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„๋‹จ ๋ฉ”์‹œ์ง€ ๋ณด๊ณ ์ž์—๊ฒŒ ๋‹ค์Œ์„ ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์†Œ์Šค ์œ„์น˜ ์ •๋ณด ๋ฐฉ์ถœ ์ผ๋‹จ; ์ฆ‰, ๋ฉ”์‹œ์ง€๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
๋‹จ์ผ ๋ฌผ๋ฆฌ์  ๋ผ์ธ์— ์žˆ๊ณ  ๋ž˜ํ•‘๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์†Œ์Šค ์œ„์น˜๊ฐ€ ๋‚ด๋ณด๋‚ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
(์ ‘๋‘์‚ฌ๋กœ) ๋‹ค์‹œ, ๊ณ„์†ํ•ด์„œ, ์ด์–ด์ง€๋Š” ์—ฐ์† ๋ผ์ธ์—์„œ. ์ด๊ฒƒ์ด
๊ธฐ๋ณธ ๋™์ž‘.

-fdiagnostics-show-location=๋ชจ๋“  ์ค„
์ค„ ๋ฐ”๊ฟˆ ๋ชจ๋“œ์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„๋‹จ ๋ฉ”์‹œ์ง€ ๋ณด๊ณ ์ž์—๊ฒŒ ๋‹ค์Œ์„ ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฌผ๋ฆฌ์  ๋ผ์ธ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์†Œ์Šค ์œ„์น˜ ์ •๋ณด(์ ‘๋‘์‚ฌ๋กœ)๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
ํ•œ ์ค„์— ๋‹ด๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๊ธด ๋ฉ”์‹œ์ง€๋ฅผ ๊นจ๋Š” ๊ณผ์ •์—์„œ.

-fdiagnostics-์ƒ‰์ƒ[=WHEN]
-fno-์ง„๋‹จ-์ƒ‰์ƒ
์ง„๋‹จ์— ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. WHEN is ๋ชป, ํ•ญ์ƒ๋ฐ ์ž๋™. ๊ธฐ๋ณธ๊ฐ’์€ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ตฌ์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์œ„์˜ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. WHEN ์˜ต์…˜ ๋˜๋Š” ๋˜ํ•œ
๋ชป if GCC_COLORS ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ํ™˜๊ฒฝ์— ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ž๋™
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด. ์ž๋™ ํ‘œ์ค€์˜ค์ฐจ๊ฐ€ ๋‹จ๋ง์ผ ๋•Œ๋งŒ ์ƒ‰์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. NS
์–‘์‹ -fdiagnostics-์ƒ‰์ƒ ๊ณผ -fno-์ง„๋‹จ-์ƒ‰์ƒ ์— ๋Œ€ํ•œ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค.
-fdiagnostics-color=ํ•ญ์ƒ ๊ณผ -fdiagnostics-color=์ ˆ๋Œ€๊ฐ๊ฐ.

์ƒ‰์ƒ์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์˜ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. GCC_COLORS. ๊ทธ ๊ฐ’์€ ์ฝœ๋ก -
๋ถ„๋ฆฌ๋œ ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋ฐ SGR(๊ทธ๋ž˜ํ”ฝ ๋ณ€ํ™˜ ์„ ํƒ) ํ•˜์œ„ ๋ฌธ์ž์—ด. SGR
๋ช…๋ น์€ ํ„ฐ๋ฏธ๋„ ๋˜๋Š” ํ„ฐ๋ฏธ๋„ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์— ์˜ํ•ด ํ•ด์„๋ฉ๋‹ˆ๋‹ค. (์„น์…˜ ์ฐธ์กฐ
ํ—ˆ์šฉ๋œ ๊ฐ’๊ณผ ๊ทธ ์˜๋ฏธ์— ๋Œ€ํ•œ ํ…์ŠคํŠธ ํ„ฐ๋ฏธ๋„ ๋ฌธ์„œ
๋ฌธ์ž ์†์„ฑ.) ์ด ํ•˜์œ„ ๋ฌธ์ž์—ด ๊ฐ’์€ XNUMX์ง„์ˆ˜ ํ‘œํ˜„์˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐํ•  ๊ณตํ†ต ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 1 for
๊ตต๊ฒŒ, 4 ๋ฐ‘์ค„, 5 ๊นœ๋ฐ•์ž„์„ ์œ„ํ•ด, 7 ์—ญ์˜ ๊ฒฝ์šฐ, 39 ๊ธฐ๋ณธ ์ „๊ฒฝ์ƒ‰์˜ ๊ฒฝ์šฐ 30
์— 37 ์ „๊ฒฝ์ƒ‰์˜ ๊ฒฝ์šฐ 90 ์— 97 16์ƒ‰ ๋ชจ๋“œ ์ „๊ฒฝ์ƒ‰์˜ ๊ฒฝ์šฐ 38, 5, 0 ์—
38, 5, 255 88์ƒ‰ ๋ฐ 256์ƒ‰ ๋ชจ๋“œ ์ „๊ฒฝ์ƒ‰, 49 ๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ
์ƒ‰, 40 ์— 47 ๋ฐฐ๊ฒฝ์ƒ‰์˜ ๊ฒฝ์šฐ, 100 ์— 107 16์ƒ‰ ๋ชจ๋“œ ๋ฐฐ๊ฒฝ์ƒ‰์˜ ๊ฒฝ์šฐ
๊ณผ 48, 5, 0 ์— 48, 5, 255 88์ƒ‰ ๋ฐ 256์ƒ‰ ๋ชจ๋“œ ๋ฐฐ๊ฒฝ์ƒ‰์šฉ.

๊ธฐ๋ณธ๊ฐ’์€ GCC_COLORS is

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

์–ด๋””์— 01; 31 ๋Œ€๋‹ดํ•œ ๋นจ๊ฐ•, 01; 35 ๊ตต์€ ๋งˆ์  ํƒ€์ƒ‰์ด๋ฉฐ, 01; 36 ๊ตต์€ ์ฒญ๋ก์ƒ‰, 01; 32 ๋Œ€๋‹ดํ•˜๋‹ค
๋…น์ƒ‰๊ณผ 01 ๊ตต๋‹ค. ํ™˜๊ฒฝ GCC_COLORS ๋นˆ ๋ฌธ์ž์—ด์€ ์ƒ‰์ƒ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"์˜ค๋ฅ˜="
์˜ค๋ฅ˜์— ๋Œ€ํ•œ SGR ํ•˜์œ„ ๋ฌธ์ž์—ด: ๋งˆ์ปค.

"๊ฒฝ๊ณ ="
๊ฒฝ๊ณ ์— ๋Œ€ํ•œ SGR ํ•˜์œ„ ๋ฌธ์ž์—ด: ๋งˆ์ปค.

"์ฐธ๊ณ ="
์ฐธ๊ณ ์— ๋Œ€ํ•œ SGR ํ•˜์œ„ ๋ฌธ์ž์—ด: ๋งˆ์ปค.

"์บ๋Ÿฟ="
์บ๋Ÿฟ ๋ผ์ธ์— ๋Œ€ํ•œ SGR ํ•˜์œ„ ๋ฌธ์ž์—ด.

"๊ถค์ ="
์œ„์น˜ ์ •๋ณด์— ๋Œ€ํ•œ SGR ํ•˜์œ„ ๋ฌธ์ž์—ด, ํŒŒ์ผ:์„  or ํŒŒ์ผ:์„ :์—ด ๋“ฑ

"์ธ์šฉ="
๋”ฐ์˜ดํ‘œ ์•ˆ์— ์ธ์‡„๋œ ์ •๋ณด์— ๋Œ€ํ•œ SGR ํ•˜์œ„ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

-fno-์ง„๋‹จ-์‡ผ-์˜ต์…˜
๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๊ฐ ์ง„๋‹จ์—๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
์ง„๋‹จ์„ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹(์ด๋Ÿฌํ•œ ์˜ต์…˜์ด ์ง„๋‹จ์— ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ)
๊ธฐ๊ณ„). ์ง€์ • -fno-์ง„๋‹จ-์‡ผ-์˜ต์…˜ ๊นƒ๋ฐœ์€ ๊ทธ๊ฒƒ์„ ์–ต์ œํ•œ๋‹ค
ํ–‰๋™.

-fno-diagnostics-show-caret
๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๊ฐ ์ง„๋‹จ์—๋Š” ์›๋ณธ ์†Œ์Šค ์ค„๊ณผ ์บ๋Ÿฟ '^'์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
์—ด์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ด ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ๋ผ์ธ์€
์ž˜๋ฆฐ n ๋ฌธ์ž์ธ ๊ฒฝ์šฐ -f๋ฉ”์‹œ์ง€-๊ธธ์ด=n ์˜ต์…˜์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ถœ๋ ฅํ•  ๋•Œ
ํ„ฐ๋ฏธ๋„์— ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ ๋„ˆ๋น„๋Š” ๋‹ค์Œ์—์„œ ์ง€์ •ํ•œ ๋„ˆ๋น„๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. COLUMNS
ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋˜๋Š” ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„ ๋„ˆ๋น„.

์˜ต์…˜ ์— ์˜๋ขฐ or ์–ต์ œํ•˜๋‹ค ๊ฒฝ๊ณ 
๊ฒฝ๊ณ ๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ตฌ์„ฑ์„ ๋ณด๊ณ ํ•˜๋Š” ์ง„๋‹จ ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.
์˜ค๋ฅ˜๊ฐ€ ์žˆ์ง€๋งŒ ์œ„ํ—˜ํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ์•”์‹œํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์–ธ์–ด ๋…๋ฆฝ์  ์˜ต์…˜์€ ํŠน์ • ๊ฒฝ๊ณ ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๊ณ  ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
GCC์—์„œ ์ƒ์‚ฐํ•˜๋Š” ์ง„๋‹จ์˜ ์ข…๋ฅ˜.

-fsyntax ์ „์šฉ
์ฝ”๋“œ์—์„œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๋˜ ๊ทธ ์ด์ƒ์€ ์ˆ˜ํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-fmax-์˜ค๋ฅ˜=n
์ตœ๋Œ€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ˆ˜๋ฅผ ๋‹ค์Œ์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. n, ๊ทธ ์‹œ์ ์—์„œ GCC๋Š” ์˜คํžˆ๋ ค ๊ตฌ์ œ ๊ธˆ์œต
์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณ„์† ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋งŒ์•ฝ์— n 0(๊ธฐ๋ณธ๊ฐ’)์ž…๋‹ˆ๋‹ค.
์ƒ์„ฑ๋˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์ˆ˜์—๋Š” ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— -Wfatal-์˜ค๋ฅ˜ ๋˜ํ•œ
์ง€์ •๋œ ๋‹ค์Œ -Wfatal-์˜ค๋ฅ˜ ์ด ์˜ต์…˜๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

-w ๋ชจ๋“  ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.

-์›Œ๋Ÿฌ
๋ชจ๋“  ๊ฒฝ๊ณ ๋ฅผ ์˜ค๋ฅ˜๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

-์˜ค๋ฅ˜=
์ง€์ •๋œ ๊ฒฝ๊ณ ๋ฅผ ์˜ค๋ฅ˜๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ์ง€์ •์ž๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค๋ฉด -Werror=์Šค์œ„์น˜ ์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ๊ฒฝ๊ณ ๋ฅผ ์ผญ๋‹ˆ๋‹ค. -W์Šค์œ„์น˜ ์˜ค๋ฅ˜๋กœ.
์ด ์Šค์œ„์น˜๋Š” ๋ถ€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€์ • ํ˜•ํƒœ๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค. -์›Œ๋Ÿฌ ํŠน์ • ๊ฒฝ๊ณ ์˜ ๊ฒฝ์šฐ
์˜ˆ๋ฅผ ๋“ค๋ฉด -Wno-์˜ค๋ฅ˜=์Šค์œ„์น˜ ๋ธŒ๋žœ๋“œ -W์Šค์œ„์น˜ ๊ฒฝ๊ณ ๋Š” ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. -์›Œ๋Ÿฌ
์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

์ œ์–ด ๊ฐ€๋Šฅํ•œ ๊ฐ ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€์—๋Š” ๋‹ค์Œ์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์˜ต์…˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ . ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น ์˜ต์…˜์„ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์˜ค๋ฅ˜= ๊ณผ - ์˜ค๋ฅ˜ ์—†์Œ= ์„ค๋ช…ํ•œ๋Œ€๋กœ
์œ„์—. (๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€์˜ ์˜ต์…˜ ์ธ์‡„๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-fno-์ง„๋‹จ-์‡ผ-์˜ต์…˜ ๊นƒ๋ฐœ.)

์ง€์ • -์˜ค๋ฅ˜=ํ‘ธ ์ž๋™์œผ๋กœ ์•”์‹œ -Wํ‘ธ. ๊ทธ๋Ÿฌ๋‚˜, - ์˜ค๋ฅ˜ ์—†์Œ=ํ‘ธ
์•„๋ฌด๊ฒƒ๋„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-Wfatal-์˜ค๋ฅ˜
์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ปดํŒŒ์ผ์„ ์ค‘๋‹จํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๊ณ„์†ํ•ด์„œ ์ถ”๊ฐ€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•˜๋Š” ๋Œ€์‹ .

๋‹ค์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŽ์€ ํŠน์ • ๊ฒฝ๊ณ ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -W์˜ˆ๋ฅผ ๋“ค์–ด,
- ์•”๋ฌต์  ์•”์‹œ์  ์„ ์–ธ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ ๊ฒฝ๊ณ ๋Š”
์˜ต์…˜์€ ๋˜ํ•œ ์Œ์ˆ˜ ํ˜•ํƒœ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. -์•„๋‹ˆ- ๊ฒฝ๊ณ ๋ฅผ ๋„๋ ค๋ฉด; ์˜ˆ๋ฅผ ๋“ค์–ด,
-Wno-์•”์‹œ์ . ์ด ๋งค๋‰ด์–ผ์€ ๋‘ ๊ฐ€์ง€ ์–‘์‹ ์ค‘ ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹Œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋งŒ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
์ถ”๊ฐ€ ์–ธ์–ด๋ณ„ ์˜ต์…˜์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. C + + ๋ฐฉ์–ธ ์˜ต์…˜ ๊ณผ ์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C
๊ณผ ๋ชฉํ‘œ-C++ ๋ฐฉ์–ธ ์˜ต์…˜ .

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ์˜ต์…˜ -๋ฒฝ ๊ณผ -์›ฉ์ŠคํŠธ๋ผ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์˜ต์…˜์„ ์ผญ๋‹ˆ๋‹ค. - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€, ๊ทธ
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ์˜ต์…˜์„ ์ผค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๋ฏธ์‚ฌ์šฉ ๊ฐ€์น˜. ๊ธ์ •์ ์ธ ํšจ๊ณผ์™€
๋ถ€์ •์ ์ธ ํ˜•ํƒœ๋Š” ๋” ๊ตฌ์ฒด์ ์ธ ์˜ต์…˜์ด ๋œ ๊ตฌ์ฒด์ ์ธ ์˜ต์…˜๋ณด๋‹ค ์šฐ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ช…๋ น์ค„์—์„œ์˜ ์œ„์น˜์™€ ๋ฌด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ํŠน์ด์„ฑ์„ ๊ฐ€์ง„ ์˜ต์…˜์˜ ๊ฒฝ์šฐ,
๋งˆ์ง€๋ง‰์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. pragma๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”๋œ ์˜ต์…˜์€
๋ช…๋ น์ค„ ๋์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ๊ณ  ์˜ต์…˜์ด ์š”์ฒญ๋˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: -์•Œ ์ˆ˜ ์—†๋Š” ๊ฒฝ๊ณ ), GCC๋Š”
์˜ต์…˜์ด ์ธ์‹๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ง„๋‹จ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ -์•„๋‹ˆ- ํ˜•ํƒœ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ,
๋™์ž‘์ด ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ์ง„๋‹จ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -์•Œ ์ˆ˜ ์—†๋Š” ๊ฒฝ๊ณ 
๋‹ค๋ฅธ ์ง„๋‹จ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ํ•œ. ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด -์•„๋‹ˆ- ์˜ต์…˜
์˜ค๋ž˜๋œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š”
์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

-Wpedantic
-ํŽ˜๋‹จ ํ‹ฑ
์—„๊ฒฉํ•œ ISO C ๋ฐ ISO C++์—์„œ ์š”๊ตฌํ•˜๋Š” ๋ชจ๋“  ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ๊ฑฐ๋ถ€
๊ธˆ์ง€๋œ ํ™•์žฅ ๋ฐ ISO C ๋ฐ ISO๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ๊ธฐํƒ€ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ
C++. ISO C์˜ ๊ฒฝ์šฐ, ๋ชจ๋“  ๊ทœ์ •์—์„œ ์ง€์ •ํ•œ ISO C ํ‘œ์ค€ ๋ฒ„์ „์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. -ํ‘œ์ค€
์‚ฌ์šฉ๋œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์œ ํšจํ•œ ISO C ๋ฐ ISO C++ ํ”„๋กœ๊ทธ๋žจ์€ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ œ๋Œ€๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
(๋“œ๋ฌผ๊ฒŒ ์š”๊ตฌ๋˜์ง€๋งŒ -์•ˆ์‹œ ๋˜๋Š” -ํ‘œ์ค€ ํ•„์š”ํ•œ ๋ฒ„์ „์„ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜
ISO C). ๊ทธ๋Ÿฌ๋‚˜ ์ด ์˜ต์…˜์ด ์—†์œผ๋ฉด ํŠน์ • GNU ํ™•์žฅ ๋ฐ ๊ธฐ์กด C ๋ฐ
C++ ๊ธฐ๋Šฅ๋„ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

-Wpedantic ๋Œ€์ฒด ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋๋‚˜๋Š” ์ด๋ฆ„ __. ์‹์—์„œ Pedantic ๊ฒฝ๊ณ ๋„ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
"__extension__" ๋‹ค์Œ์— ๋‚˜์˜ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ๋งŒ ์ด ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํƒˆ์ถœ ๊ฒฝ๋กœ; ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋ฅผ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉํ•˜๋ ค๊ณ  -Wpedantic ์—„๊ฒฉํ•œ ISO C ์ค€์ˆ˜๋ฅผ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค
๊ณง ๊ทธ๋“ค์ด ์›ํ•˜๋Š” ๋Œ€๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋น„ ISO ๊ด€ํ–‰์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋‘๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ISO C ํ•„์š” ์ง„๋‹จ ๋ฐ ๊ธฐํƒ€
์–ด๋–ค ์ง„๋‹จ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ISO C ์ค€์ˆ˜ ์‹คํŒจ๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ƒ๋‹นํ•œ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋ฉฐ
-Wpedantic. ๊ฐ€๊นŒ์šด ์‹œ์ผ ๋‚ด์— ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•  ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค.

๋กœ ์ง€์ •๋œ ํ‘œ์ค€ -ํ‘œ์ค€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ C์˜ GNU ํ™•์žฅ ๋ฐฉ์–ธ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
gnu90 or gnu99, ํ•ด๋‹นํ•˜๋Š” ๊ธฐ์ง€ ํ‘œ์ค€, ISO C ๋ฒ„์ „
GNU ํ™•์žฅ ๋ฐฉ์–ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  -Wpedantic ๊ทธ๋“ค์ด ์žˆ๋Š” ๊ณณ์— ์ฃผ์–ด์ง„๋‹ค
๊ธฐ๋ณธ ํ‘œ์ค€์— ์˜ํ•ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค. (๊ทธ๋Ÿฐ ๊ฒฝ๊ณ ๋ฅผ ํ•˜๋Š” ๊ฒƒ์€ ๋ง์ด ์•ˆ ๋œ๋‹ค.
์ •์˜์— ์˜ํ•ด GNU์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง€์ •๋œ GNU C ๋ฐฉ์–ธ์— ์—†๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋งŒ
C์˜ ๋ฐฉ์–ธ์—๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฃผ์–ด์ง„ ์˜ต์…˜์œผ๋กœ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ํ•  ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค.)

- ํ˜„ํ•™์  ์˜ค๋ฅ˜
์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ์ง€ ํ‘œ์ค€ (์ฐธ์กฐ -Wpedantic) ์ง„๋‹จ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ํƒ€์ž„์— ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ์žˆ๋Š” ๊ฒฝ์šฐ์™€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ
ํ‘œ์ค€์— ๋”ฐ๋ผ ์œ ํšจํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ปดํŒŒ์ผ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋™๋“ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค -Werror = ํ˜„ํ•™์ , ์ด์— ์˜ํ•ด ํ™œ์„ฑํ™”๋œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ
์˜ต์…˜์ด๋ฉฐ ํ›„์ž๋Š” ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์œผ๋ฉฐ ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

-๋ฒฝ
์ด๊ฒƒ์€ ์ผ๋ถ€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ๋ คํ•˜๋Š” ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒฝ๊ณ ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฒฝ์šฐ์—๋„ ํ”ผํ•˜๊ธฐ(๋˜๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์ •)ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
๋งคํฌ๋กœ์™€ ๊ฒฐํ•ฉ. ์ด๊ฒƒ์€ ๋˜ํ•œ ์„ค๋ช…๋œ ์ผ๋ถ€ ์–ธ์–ด๋ณ„ ๊ฒฝ๊ณ ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
in C + + ๋ฐฉ์–ธ ์˜ต์…˜ ๊ณผ ์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C ๊ณผ ๋ชฉํ‘œ-C++ ๋ฐฉ์–ธ ์˜ต์…˜ .

-๋ฒฝ ๋‹ค์Œ ๊ฒฝ๊ณ  ํ”Œ๋ž˜๊ทธ๋ฅผ ์ผญ๋‹ˆ๋‹ค.

-์›Œ๋“œ๋ ˆ์Šค -์ „์Ÿ ๋ฒ”์œ„=1 (๋งŒ -O2) -Wc++11-ํ˜ธํ™˜ -Wc++14-ํ˜ธํ™˜
-Wchar-์ฒจ์ž -Wenum-๋น„๊ต (C/ObjC์—์„œ, C++์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Œ)
- ์•”๋ฌต์  ์ •์ˆ˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น) -์•”์‹œ์  ํ•จ์ˆ˜ ์„ ์–ธ (C์™€
์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C ์ „์šฉ) -๋Œ“๊ธ€ -Wํฌ๋งท -W๋ฉ”์ธ (C/ObjC์—๋งŒ ํ•ด๋‹นํ•˜๋ฉฐ
-ํ”„๋ฆฌ์Šคํƒ ๋”ฉ) -W์•„๋งˆ๋„ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ -Wmissing-์ค‘๊ด„ํ˜ธ (C/ObjC๋งŒ ํ•ด๋‹น) -Wnonnull
-Wopenmp-simd -๊ด„ํ˜ธ -Wpointer ๊ธฐํ˜ธ - Wreorder -Wreturnํ˜• -W์‹œํ€€์Šค ํฌ์ธํŠธ
-Wsign-๋น„๊ต (C++์—์„œ๋งŒ) -Wstrict-์•จ๋ฆฌ์–ด์‹ฑ -Wstrict-overflow=1 -W์Šค์œ„์น˜
-์ €์„œ -์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ -Wunknown-pragma - ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ -์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ผ๋ฒจ
- ๋ฏธ์‚ฌ์šฉ ๊ฐ€์น˜ - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ -Wํœ˜๋ฐœ์„ฑ ๋ ˆ์ง€์Šคํ„ฐ ๋ณ€์ˆ˜

์ผ๋ถ€ ๊ฒฝ๊ณ  ํ”Œ๋ž˜๊ทธ๋Š” -๋ฒฝ. ๊ทธ๋“ค ์ค‘ ์ผ๋ถ€๋Š” ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜์‹ฌ์Šค๋Ÿฝ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š” ๊ตฌ์„ฑ
๋•Œ๋•Œ๋กœ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๊ฑด์„ค์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ์šฐ์— ๋”ฐ๋ผ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ํ”ผํ•˜๊ธฐ ์–ด๋ ต๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ค‘ ์ผ๋ถ€๋Š” -์›ฉ์ŠคํŠธ๋ผ ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค ์ค‘ ๋งŽ์€
๊ฐœ๋ณ„์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-์›ฉ์ŠคํŠธ๋ผ
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๊ฒฝ๊ณ  ํ”Œ๋ž˜๊ทธ๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ. (์ด ์˜ต์…˜์€
๋ถ€๋ฆ„ -W. ์ด์ „ ์ด๋ฆ„์€ ๊ณ„์† ์ง€์›๋˜์ง€๋งŒ ์ƒˆ ์ด๋ฆ„์€ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.
์„ค๋ช…์ ์ธ.)

-ํด๋กœ๋ฒ„๋“œ - ๋ฉํ•œ ๋ชธ -๋ฌด์‹œ ์˜ˆ์„  -Wmissing-field-initializers
-Wmissing-๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ํ˜• (C๋งŒ) -Wold ์Šคํƒ€์ผ ์„ ์–ธ (C๋งŒ) -Woverride ์ดˆ๊ธฐํ™”
-Wsign-๋น„๊ต -W ์œ ํ˜• ์ œํ•œ -์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ -Wunused-๋งค๊ฐœ๋ณ€์ˆ˜ (๋งŒ - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ or
-๋ฒฝ) -์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์„ค์ • ๋งค๊ฐœ๋ณ€์ˆ˜ (๋งŒ - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ or -๋ฒฝ)

์˜ต์…˜ -์›ฉ์ŠคํŠธ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

* ํฌ์ธํ„ฐ๋Š” "<", "<=", ">" ๋˜๋Š” ">="๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ˆ˜ XNUMX๊ณผ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค.

* (C++๋งŒ ํ•ด๋‹น) ์—ด๊ฑฐ์ž์™€ ๋น„ ์—ด๊ฑฐ์ž๋Š” ๋ชจ๋‘ ์กฐ๊ฑด๋ถ€๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
ํ‘œํ˜„.

* (C++๋งŒ ํ•ด๋‹น) ๋ชจํ˜ธํ•œ ๊ฐ€์ƒ ๊ธฐ๋ฐ˜.

* (C++ ์ „์šฉ) "๋ ˆ์ง€์Šคํ„ฐ"๋กœ ์„ ์–ธ๋œ ๋ฐฐ์—ด์„ ์ฒจ์žํ™”ํ•ฉ๋‹ˆ๋‹ค.

* (C++๋งŒ ํ•ด๋‹น) "๋ ˆ์ง€์Šคํ„ฐ"๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

* (C++ ์ „์šฉ) ๊ธฐ๋ณธ ํด๋ž˜์Šค๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ๋ณต์‚ฌ ์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-Wchar-์ฒจ์ž
๋ฐฐ์—ด ์ฒจ์ž๊ฐ€ "char" ์œ ํ˜•์ด๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ค๋ฅ˜์˜ ์ผ๋ฐ˜์ ์ธ ์›์ธ์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ข…์ข… ์ด ์œ ํ˜•์ด ์ผ๋ถ€ ์‹œ์Šคํ…œ์—์„œ ์„œ๋ช…๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š”
ํ™œ์„ฑํ™” ๋œ -๋ฒฝ.

-๋Œ“๊ธ€
์ฃผ์„ ์‹œ์ž‘ ์‹œํ€€์Šค ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ  /* ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค /* ๋Œ“๊ธ€ ๋˜๋Š” ์–ธ์ œ๋“ ์ง€
๋ฐฑ์Šฌ๋ž˜์‹œ-๊ฐœํ–‰ ๋ฌธ์ž๊ฐ€ // ๋…ผํ‰. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

- Wno-coverage-mismatch
์‚ฌ์šฉ ์‹œ ํ”ผ๋“œ๋ฐฑ ํ”„๋กœํ•„์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๊ณ  -fprofile-์‚ฌ์šฉ ์˜ต์…˜. ๋งŒ์•ฝ
์†Œ์Šค ํŒŒ์ผ์€ ์ปดํŒŒ์ผ ์‚ฌ์ด์— ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. -fprofile-gen ์™€ ํ•จ๊ป˜ -fprofile-์‚ฌ์šฉ,
ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๋Š” ํŒŒ์ผ์€ ์†Œ์Šค ํŒŒ์ผ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ GCC๋Š”
ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๊ฒฝ๊ณ ๋Š” ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ
์˜ค๋ฅ˜๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. - Wno-coverage-mismatch ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜
-Wno-error=๋ฒ”์œ„ ๋ถˆ์ผ์น˜ ์˜ค๋ฅ˜๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋น„ํ™œ์„ฑํ™”
์ด ๊ฒฝ๊ณ ์˜ ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์ตœ์ ํ™”๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ์กด ์ฝ”๋“œ ๊ธฐ๋ฐ˜์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •๊ณผ ๊ฐ™์€ ์•„์ฃผ ์‚ฌ์†Œํ•œ ๋ณ€๊ฒฝ. ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”
๊ฒฝ๊ณ ๋Š” ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-Wno-cpp
(C, Objective-C, C++, Objective-C++ ๋ฐ Fortran๋งŒ ํ•ด๋‹น)

"#warning" ์ง€์‹œ๋ฌธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.

-W๋”๋ธ” ํ”„๋กœ๋ชจ์…˜ (C, C++, Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
"float" ์œ ํ˜•์˜ ๊ฐ’์ด ์•”์‹œ์ ์œผ๋กœ "double"๋กœ ์Šน๊ฒฉ๋˜๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. CPU
32๋น„ํŠธ "๋‹จ์ •๋ฐ€๋„" ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๋กœ ํ•˜๋“œ์›จ์–ด์—์„œ "๋ถ€๋™" ๊ตฌํ˜„,
๊ทธ๋Ÿฌ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ "์ด์ค‘"์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌํ•œ ๊ธฐ๊ณ„์—์„œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
"์ด์ค‘" ๊ฐ’์€ ์†Œํ”„ํŠธ์›จ์–ด์— ํ•„์š”ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ ๋•Œ๋ฌธ์— ํ›จ์”ฌ ๋” ๋น„์Œ‰๋‹ˆ๋‹ค.
์—๋ฎฌ๋ ˆ์ด์…˜.

๋ถ€๋™ ์†Œ์ˆ˜์  ๋•Œ๋ฌธ์— ์‹ค์ˆ˜๋กœ "double"์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
๋ฆฌํ„ฐ๋Ÿด์€ ์•”์‹œ์ ์œผ๋กœ "double" ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

ํ”Œ๋กœํŠธ ๋ฉด์ (ํ”Œ๋กœํŠธ ๋ฐ˜๊ฒฝ)
{
๋ฐ˜ํ™˜ 3.14159 * ๋ฐ˜์ง€๋ฆ„ * ๋ฐ˜์ง€๋ฆ„;
}

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋•Œ๋ฌธ์— "double"๋กœ ์ „์ฒด ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋ฆฌํ„ฐ๋Ÿด์€ "๋”๋ธ”"์ž…๋‹ˆ๋‹ค.

-Wํฌ๋งท
-Wํ˜•์‹=n
"printf" ๋ฐ "scanf" ๋“ฑ์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ํ™•์ธํ•˜์—ฌ ์ œ๊ณต๋œ ์ธ์ˆ˜๊ฐ€
์ง€์ •๋œ ํ˜•์‹ ๋ฌธ์ž์—ด์— ์ ํ•ฉํ•œ ์œ ํ˜•์ด ์žˆ๊ณ  ๋ณ€ํ™˜์ด
ํ˜•์‹ ๋ฌธ์ž์—ด์— ์ง€์ •๋œ ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ‘œ์ค€ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜๋ฉฐ,
"printf", "scanf", "strftime" ๋ฐ
"strfmon"(C ํ‘œ์ค€์ด ์•„๋‹Œ X/Open ํ™•์žฅ) ์ œํ’ˆ๊ตฐ(๋˜๋Š” ๊ธฐํƒ€ ๋Œ€์ƒ-
ํŠน์ • ๊ฐ€์กฑ). ํ˜•์‹ ์†์„ฑ ์—†์ด ๊ฒ€์‚ฌ๋˜๋Š” ๊ธฐ๋Šฅ
์ง€์ •๋œ ํ‘œ์ค€ ๋ฒ„์ „ ๋ฐ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ ๊ฒ€์‚ฌ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์†์„ฑ์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -ํ”„๋ฆฌ์Šคํƒ ๋”ฉ or -fno ๋‚ด์žฅ.

ํ˜•์‹์€ GNU libc ๋ฒ„์ „ 2.2์—์„œ ์ง€์›ํ•˜๋Š” ํ˜•์‹ ๊ธฐ๋Šฅ๊ณผ ๋น„๊ตํ•˜์—ฌ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์—๋Š” ๋ชจ๋“  ISO C90 ๋ฐ C99 ๊ธฐ๋Šฅ๊ณผ Single Unix์˜ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์–‘ ๋ฐ ์ผ๋ถ€ BSD ๋ฐ GNU ํ™•์žฅ. ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌํ˜„์€
์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ๊ทธ ์ด์ƒ์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•œ๊ณ„. ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ -Wpedantic ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค -Wํฌ๋งท,
์„ ํƒํ•œ ํ‘œ์ค€ ๋ฒ„์ „์— ์—†๋Š” ํ˜•์‹ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜
"strfmon" ํ˜•์‹์˜ ๊ฒฝ์šฐ C ํ‘œ์ค€์˜ ์–ด๋–ค ๋ฒ„์ „์—๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-Wํ˜•์‹=1
-Wํฌ๋งท
์„ ํƒ๊ถŒ -Wํฌ๋งท ์— ํ•ด๋‹นํ•˜๋Š” -Wํ˜•์‹=1๋ฐ -Wno ํ˜•์‹ ์— ํ•ด๋‹นํ•˜๋Š”
-Wํ˜•์‹=0. ์ดํ›„ -Wํฌ๋งท ๋˜ํ•œ ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด null ํ˜•์‹ ์ธ์ˆ˜๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ, -Wํฌ๋งท ๋˜ํ•œ ์˜๋ฏธ -Wnonnull. ์ด ์ˆ˜์ค€์˜ ํ˜•์‹์˜ ์ผ๋ถ€ ์ธก๋ฉด
๋‹ค์Œ ์˜ต์…˜์œผ๋กœ ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -Wno-ํฌ๋งท-ํฌํ•จ-nul,
-Wno-format-extra-args๋ฐ -Wno ํ˜•์‹ XNUMX ๊ธธ์ด. -Wํฌ๋งท ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
-๋ฒฝ.

-Wno-ํฌ๋งท-ํฌํ•จ-nul
If -Wํฌ๋งท ์ง€์ •๋œ ๊ฒฝ์šฐ NUL ๋ฐ”์ดํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ํ˜•์‹ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-Wno-format-extra-args
If -Wํฌ๋งท "printf"์— ๋Œ€ํ•œ ์ดˆ๊ณผ ์ธ์ˆ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜
"scanf" ํ˜•์‹ ๊ธฐ๋Šฅ. C ํ‘œ์ค€์€ ๊ทธ๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€
๋ฌด์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ธ์ˆ˜๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์ง€์ •๋œ ์‚ฌ์šฉ๋œ ์ธ์ˆ˜ ์‚ฌ์ด์— ์žˆ๋Š” ๊ฒฝ์šฐ $
ํ”ผ์—ฐ์‚ฐ์ž ๋ฒˆํ˜ธ ์‚ฌ์–‘, ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒฝ๊ณ ๋Š” ์—ฌ์ „ํžˆ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
๊ตฌํ˜„์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•ญ๋ชฉ์„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ ์œ„ํ•ด "va_arg"์— ์ „๋‹ฌํ•  ์œ ํ˜•์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ธ์ˆ˜. ๊ทธ๋Ÿฌ๋‚˜ "scanf" ํ˜•์‹์˜ ๊ฒฝ์šฐ ์ด ์˜ต์…˜์€
Single Unix ์ดํ›„๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ธ์ˆ˜๊ฐ€ ๋ชจ๋‘ ํฌ์ธํ„ฐ์ธ ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
์‚ฌ์–‘์—๋Š” ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ธ์ˆ˜๊ฐ€ ํ—ˆ์šฉ๋œ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

-Wno ํ˜•์‹ XNUMX ๊ธธ์ด
If -Wํฌ๋งท ์ง€์ •๋œ ๊ฒฝ์šฐ ๊ธธ์ด๊ฐ€ XNUMX์ธ ํ˜•์‹์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. C ํ‘œ์ค€
๊ธธ์ด๊ฐ€ XNUMX์ธ ํ˜•์‹์ด ํ—ˆ์šฉ๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-Wํ˜•์‹=2
์‚ฌ์šฉ -Wํฌ๋งท ์ถ”๊ฐ€ ํ˜•์‹ ๊ฒ€์‚ฌ. ํ˜„์žฌ ๋™๋“ฑ -Wํฌ๋งท
-Wformat-๋น„๋ฆฌํ„ฐ๋Ÿด -Wformat ๋ณด์•ˆ -Wformat-y2k.

-Wformat-๋น„๋ฆฌํ„ฐ๋Ÿด
If -Wํฌ๋งท ํ˜•์‹ ๋ฌธ์ž์—ด์ด ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ํ˜•์‹ ํ•จ์ˆ˜๊ฐ€ ํ˜•์‹ ์ธ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ทจํ•˜์ง€ ์•Š๋Š” ํ•œ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
"va_list".

-Wformat ๋ณด์•ˆ
If -Wํฌ๋งท ๊ฐ€ ์ง€์ •๋˜๊ณ  ๋‹ค์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ˜•์‹ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์— ๋Œ€ํ•ด์„œ๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•œ ๋ณด์•ˆ ๋ฌธ์ œ. ํ˜„์žฌ ์ด๊ฒƒ์€ "printf" ํ˜ธ์ถœ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๊ณ 
ํ˜•์‹ ๋ฌธ์ž์—ด์ด ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ด ์•„๋‹ˆ๊ณ  ํ˜•์‹ ๋ฌธ์ž์—ด์ด ์—†๋Š” "scanf" ํ•จ์ˆ˜
"printf (foo);"์—์„œ์™€ ๊ฐ™์ด ํ˜•์‹ ์ธ์ˆ˜. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ณด์•ˆ ๊ตฌ๋ฉ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜•์‹ ๋ฌธ์ž์—ด์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ž…๋ ฅ์—์„œ ์™”์œผ๋ฉฐ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. %n. (์ด๊ฒƒ์€ ํ˜„์žฌ
๋ฌด์—‡์˜ ํ•˜์œ„ ์ง‘ํ•ฉ -Wformat-๋น„๋ฆฌํ„ฐ๋Ÿด ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€๋งŒ ํ–ฅํ›„ ๊ฒฝ๊ณ ๋Š”
์ถ”๊ฐ€ -Wformat ๋ณด์•ˆ ์— ํฌํ•จ๋˜์ง€ ์•Š์€ -Wformat-๋น„๋ฆฌํ„ฐ๋Ÿด.)

-Wformat ์„œ๋ช…
If -Wํฌ๋งท ํ˜•์‹ ๋ฌธ์ž์—ด์— ์„œ๋ช…๋˜์ง€ ์•Š์€ ๋ฌธ์ž์—ด์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜์™€ ์ธ์ˆ˜๊ฐ€ ์„œ๋ช…๋˜๊ณ  ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : Ubuntu 8.10 ์ด์ƒ ๋ฒ„์ „์—์„œ๋Š” ์ด ์˜ต์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ C์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
C++, ObjC, ObjC++. ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. - Wno ํ˜•์‹ ๋ณด์•ˆ, ๋˜๋Š” ๋ชจ๋“  ํ˜•์‹ ๋น„ํ™œ์„ฑํ™”
๊ฒฝ๊ณ  -Wํ˜•์‹=0. ํ˜•์‹ ๋ณด์•ˆ ๊ฒฝ๊ณ ๋ฅผ ์น˜๋ช…์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.
-Werror=ํ˜•์‹ ๋ณด์•ˆ.

-Wformat-y2k
If -Wํฌ๋งท ๊ฐ€ ์ง€์ •๋˜๊ณ  "strftime" ํ˜•์‹์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ์ž๋ฆฌ ์—ฐ๋„.

-Wnonnull
null์ด ์•„๋‹Œ ๊ฐ’์ด ํ•„์š”ํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋œ ์ธ์ˆ˜์— ๋Œ€ํ•ด null ํฌ์ธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"nonnull" ํ•จ์ˆ˜ ์†์„ฑ์— ์˜ํ•ด.

-Wnonnull ์— ํฌํ•จ -๋ฒฝ ๊ณผ -Wํฌ๋งท. ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -Wno-null
์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-์œˆํŠธ์…€ํ”„ (C, C++, Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
์Šค์Šค๋กœ ์ดˆ๊ธฐํ™”๋˜๋Š” ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ํ•˜์„ธ์š”
์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด GCC๋Š” ๋‹ค์Œ ์Šค๋‹ˆํŽซ์—์„œ๋งŒ "i"๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์–ธ์ œ -์œˆํŠธ์…€ํ”„ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

์ •์ˆ˜ f()
{
์ •์ˆ˜ ๋‚˜๋Š” = ๋‚˜๋Š”;
๋ฐ˜ํ™˜ i;
}

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ C ++์—์„œ.

- ์•”๋ฌต์  ์ •์ˆ˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
์„ ์–ธ์—์„œ ์œ ํ˜•์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-์•”์‹œ์  ํ•จ์ˆ˜ ์„ ์–ธ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. C99 ๋ชจ๋“œ์—์„œ
(-ํ‘œ์ค€=c99 or -std=gnu99), ์ด ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ
์˜ค๋ฅ˜ - ํ˜„ํ•™์  ์˜ค๋ฅ˜. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

- ์•”๋ฌต์  (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
๊ณผ ๋™์ผ - ์•”๋ฌต์  ์ •์ˆ˜ ๊ณผ -์•”์‹œ์  ํ•จ์ˆ˜ ์„ ์–ธ. ์ด ๊ฒฝ๊ณ ๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
by -๋ฒฝ.

-๋ฌด์‹œ ์˜ˆ์„  (C ๋ฐ C++๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ์œ ํ˜•์— "const"์™€ ๊ฐ™์€ ์œ ํ˜• ํ•œ์ •์ž๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ISO C์˜ ๊ฒฝ์šฐ
์ด๋Ÿฌํ•œ ์œ ํ˜• ํ•œ์ •์ž๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฐ’์ด
๊ฐ’ C++์˜ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋Š” ์Šค์นผ๋ผ ์œ ํ˜• ๋˜๋Š” "void"์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ISO C
ํ•จ์ˆ˜ ์ •์˜์—์„œ ์ •๊ทœํ™”๋œ "void" ๋ฐ˜ํ™˜ ์œ ํ˜•์„ ๊ธˆ์ง€ํ•˜๋ฏ€๋กœ ๊ทธ๋Ÿฌํ•œ ๋ฐ˜ํ™˜ ์œ ํ˜•
์ด ์˜ต์…˜์ด ์—†์–ด๋„ ํ•ญ์ƒ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -์›ฉ์ŠคํŠธ๋ผ.

-W๋ฉ”์ธ
"main" ์œ ํ˜•์ด ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. "main"์€ ์™ธ๋ถ€ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ, int ๋ฐ˜ํ™˜, XNUMX๊ฐœ์˜ ์ธ์ˆ˜, XNUMX๊ฐœ ๋˜๋Š” XNUMX๊ฐœ์˜ ์ธ์ˆ˜ ์‚ฌ์šฉ
์ ์ ˆํ•œ ์œ ํ˜•. ์ด ๊ฒฝ๊ณ ๋Š” C++์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
-๋ฒฝ or -Wpedantic.

-Wmissing-์ค‘๊ด„ํ˜ธ
์ง‘๊ณ„ ๋˜๋Š” ๊ณต์šฉ์ฒด ์ด๋‹ˆ์…œ๋ผ์ด์ €๊ฐ€ ์™„์ „ํžˆ ๋Œ€๊ด„ํ˜ธ๋กœ ๋ฌถ์ด์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์—์„œ
์˜ˆ๋ฅผ ๋“ค์–ด "a"์— ๋Œ€ํ•œ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ์™„์ „ํžˆ ๋Œ€๊ด„ํ˜ธ๋กœ ๋ฌถ์ด์ง€ ์•Š์•˜์ง€๋งŒ "b"์— ๋Œ€ํ•œ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ์™„์ „ํžˆ
๊ด„ํ˜ธ๋กœ ๋ฌถ์ธ ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ C.

์ •์ˆ˜ a[2][2] = { 0, 1, 2, 3 };
์ •์ˆ˜ b[2][2] = { { 0, 1 }, { 2, 3 } };

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

- ํฌํ•จ ๋””๋ ‰ํ† ๋ฆฌ ๋ˆ„๋ฝ (C, C++, Objective-C ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
์‚ฌ์šฉ์ž ์ œ๊ณต ํฌํ•จ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-๊ด„ํ˜ธ
๊ด„ํ˜ธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ํŠน์ • ์ปจํ…์ŠคํŠธ์—์„œ ๊ด„ํ˜ธ๊ฐ€ ์ƒ๋žต๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ง„๋ฆฌ๊ฐ’์ด ์˜ˆ์ƒ๋˜๋Š” ์ปจํ…์ŠคํŠธ ๋˜๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์ค‘์ฒฉ๋œ ๊ฒฝ์šฐ ํ• ๋‹น
์‚ฌ๋žŒ๋“ค์ด ์ข…์ข… ํ˜ผ๋™ํ•˜๋Š” ์šฐ์„  ์ˆœ์œ„.

๋˜ํ•œ "x<=y<=z"์™€ ๊ฐ™์€ ๋น„๊ต๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "(x<=y ? 1 :
0) <= z", ์ผ๋ฐ˜์ ์ธ ์ˆ˜ํ•™์˜ ํ•ด์„๊ณผ ๋‹ค๋ฅธ ํ•ด์„
ํ‘œ๊ธฐ๋ฒ•.

๋˜ํ•œ "if" ๋ฌธ๊ณผ ํ˜ผ๋™๋  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"else" ๋ถ„๊ธฐ๊ฐ€ ์†ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

{
๋งŒ์•ฝ)
๋งŒ์•ฝ (ใ„ด)
ํ‘ธ();
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
์ˆ ์ง‘ ();
}

C/C++์—์„œ ๋ชจ๋“  "else" ๋ถ„๊ธฐ๋Š” ๊ฐ€์žฅ ์•ˆ์ชฝ์— ์žˆ๋Š” "if" ๋ฌธ์— ์†ํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ˆ์—์„œ๋Š” "if (b)"์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ข…์ข… ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ธฐ๋Œ€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
์œ„์˜ ์˜ˆ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์„ ํƒํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ๋กœ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์žˆ์„ ๋•Œ
์ด๋Ÿฌํ•œ ํ˜ผ๋™์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ GCC๋Š” ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋  ๋•Œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ๊ฐ€์žฅ ์•ˆ์ชฝ์˜ "if" ๋ฌธ ์ฃผ์œ„์— ๋ช…์‹œ์  ์ค‘๊ด„ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ
"else"๊ฐ€ ๋‘˜๋Ÿฌ์‹ธ๋Š” "if"์— ์†ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ :

{
๋งŒ์•ฝ)
{
๋งŒ์•ฝ (ใ„ด)
ํ‘ธ();
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
์ˆ ์ง‘ ();
}
}

์ค‘๊ฐ„ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์ƒ๋žต๋œ "?:"์— ๋Œ€ํ•œ GNU ํ™•์žฅ์˜ ์œ„ํ—˜ํ•œ ์‚ฌ์šฉ์— ๋Œ€ํ•ด์„œ๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"?": ์—ฐ์‚ฐ์ž์˜ ์กฐ๊ฑด์ด ๋ถ€์šธ ํ‘œํ˜„์‹์ธ ๊ฒฝ์šฐ ์ƒ๋žต๋œ ๊ฐ’์€
ํ•ญ์ƒ 1. ์ข…์ข… ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์กฐ๊ฑด๋ถ€ ๋‚ด๋ถ€์—์„œ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์‹  ํ‘œํ˜„.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-W์‹œํ€€์Šค ํฌ์ธํŠธ
์‹œํ€€์Šค ์œ„๋ฐ˜์œผ๋กœ ์ธํ•ด ์˜๋ฏธ๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์€ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
C ๋ฐ C++ ํ‘œ์ค€์˜ ํฌ์ธํŠธ ๊ทœ์น™.

C ๋ฐ C++ ํ‘œ์ค€์€ C/C++ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ‘œํ˜„์‹์˜ ์ˆœ์„œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์˜ ๊ด€์ ์—์„œ ํ‰๊ฐ€ ์ˆœ์„œ ์ „์ฒ ๊ธฐ, ์‚ฌ์ด์˜ ๋ถ€๋ถ„์  ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ๋ถ€๋ถ„์˜ ์‹คํ–‰: ์‹œํ€€์Šค ํฌ์ธํŠธ ์ด์ „์— ์‹คํ–‰๋œ ๋ถ€๋ถ„,
์ดํ›„์— ์‹คํ–‰๋จ. ์ด๊ฒƒ์€ ์™„์ „ํ•œ ํ‘œํ˜„์˜ ํ‰๊ฐ€ ํ›„์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(ํ•˜๋‚˜๋Š”
๋” ํฐ ํ‘œํ˜„์‹์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹˜)์˜ ์ฒซ ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํ‰๊ฐ€ํ•œ ํ›„
"&&", "||", "? :" ๋˜๋Š” ","(์‰ผํ‘œ) ์—ฐ์‚ฐ์ž, ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ „(๊ทธ๋Ÿฌ๋‚˜ ํ›„์—
์ธ์ˆ˜์˜ ํ‰๊ฐ€ ๋ฐ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œํ˜„์‹),
ํŠน์ • ๋‹ค๋ฅธ ์žฅ์†Œ. ์‹œํ€€์Šค ํฌ์ธํŠธ ๊ทœ์น™์œผ๋กœ ํ‘œํ˜„๋œ ๊ฒƒ ์ด์™ธ์˜ ์ˆœ์„œ๋Š”
ํ‘œํ˜„์‹์˜ ํ•˜์œ„ ํ‘œํ˜„์‹ ํ‰๊ฐ€๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ทœ์น™
์˜ˆ๋ฅผ ๋“ค์–ด,
ํ•จ์ˆ˜๋Š” ์‚ฌ์ด์— ์‹œํ€€์Šค ํฌ์ธํŠธ ์—†์ด ํ•˜๋‚˜์˜ ํ‘œํ˜„์‹ ๋‚ด์—์„œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ์„œ๋Š” ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๊ธฐ์ค€
์œ„์›ํšŒ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๊ฒน์น˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œํ€€์Šค ํฌ์ธํŠธ ์‚ฌ์ด์—์„œ ๊ฐ’์ด ์ˆ˜์ •๋  ๋•Œ ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฐœ์ฒด๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ์˜์กดํ•˜๋Š” ๋™์ž‘์„ ๊ฐ–๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
C ๋ฐ C++ ํ‘œ์ค€์€ "์ด์ „ ์‹œํ€€์Šค ํฌ์ธํŠธ์™€ ๋‹ค์Œ ์‹œํ€€์Šค ํฌ์ธํŠธ ์‚ฌ์ด
๊ฐ์ฒด๋Š” ๋‹ค์Œ ํ‰๊ฐ€์— ์˜ํ•ด ์ตœ๋Œ€ ํ•œ ๋ฒˆ ์ˆ˜์ •๋œ ์ €์žฅ๋œ ๊ฐ’์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.
ํ‘œํ˜„. ๋˜ํ•œ ์ด์ „ ๊ฐ’์€ ๋‹ค์Œ ๊ฐ’์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋งŒ ์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ €์žฅ๋ฉ๋‹ˆ๋‹ค." ํ”„๋กœ๊ทธ๋žจ์ด ์ด๋Ÿฌํ•œ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•˜๋ฉด ํŠน์ •
๊ตฌํ˜„์€ ์™„์ „ํžˆ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ์žˆ๋Š” ์ฝ”๋“œ์˜ ์˜ˆ๋Š” "a = a++;", "a[n] = b[n++]" ๋ฐ "a[i++] =
i;". ์ข€ ๋” ๋ณต์žกํ•œ ๊ฒฝ์šฐ๋Š” ์ด ์˜ต์…˜์œผ๋กœ ์ง„๋‹จ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋‹ค์Œ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋” ์œ„์–‘์„ฑ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ๋‹นํžˆ ํšจ๊ณผ์ ์ธ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ‘œ์ค€์€ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ •ํ™•ํ•œ
๋ฏธ๋ฌ˜ํ•œ ๊ฒฝ์šฐ ์‹œํ€€์Šค ํฌ์ธํŠธ ๊ทœ์น™์˜ ์˜๋ฏธ. ํ† ๋ก ์— ๋Œ€ํ•œ ๋งํฌ
์ œ์•ˆ๋œ ํ˜•์‹์  ์ •์˜๋ฅผ ํฌํ•จํ•œ ๋ฌธ์ œ๋Š” GCC ์ฝ๊ธฐ ํŽ˜์ด์ง€์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
...์—์„œhttp://gcc.gnu.org/readings.html>.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ C ๋ฐ C++์šฉ.

-Wno-return-local-addr
๋‹ค์Œ์œผ๋กœ ๊ฐ€๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ(๋˜๋Š” C++์—์„œ๋Š” ์ฐธ์กฐ)๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜๋œ ํ›„ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.

-Wreturnํ˜•
ํ•จ์ˆ˜๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ "int"์ธ ๋ฐ˜ํ™˜ ์œ ํ˜•์œผ๋กœ ์ •์˜๋  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ
๋ฐ˜ํ™˜ ์œ ํ˜•์ด ์žˆ๋Š” ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—†๋Š” "๋ฐ˜ํ™˜" ๋ฌธ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"๋ฌดํšจ"๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค(ํ•จ์ˆ˜ ๋ณธ๋ฌธ์˜ ๋์—์„œ ๋–จ์–ด์ง€๋Š” ๊ฒƒ์€ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
๊ฐ’ ์—†์Œ) ๋ฐ ํ•จ์ˆ˜์˜ ํ‘œํ˜„์‹์ด ์žˆ๋Š” "๋ฐ˜ํ™˜" ๋ฌธ์— ๋Œ€ํ•ด
๋ฐ˜ํ™˜ ์œ ํ˜•์ด "void"์ž…๋‹ˆ๋‹ค.

C++์˜ ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ ์œ ํ˜•์ด ์—†๋Š” ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ์ง„๋‹จ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์–ธ์ œ - ๋…ธ๋ฆฌํ„ดํ˜• ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์˜ˆ์™ธ๋Š” "๋ฉ”์ธ"๊ณผ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ ํ—ค๋”์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-Wshift-count-์Œ์ˆ˜
๊ต๋Œ€ ํšŸ์ˆ˜๊ฐ€ ์Œ์ˆ˜์ด๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-Wshift-count-overflow
์‹œํ”„ํŠธ ํšŸ์ˆ˜ >= ์œ ํ˜• ๋„ˆ๋น„์ธ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-W์Šค์œ„์น˜
"switch" ๋ฌธ์— ์—ด๊ฑฐํ˜• ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๊ณ  "case"๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์—ด๊ฑฐ์˜ ๋ช…๋ช…๋œ ์ฝ”๋“œ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์— ๋Œ€ํ•ด ("๊ธฐ๋ณธ๊ฐ’"์˜ ์กด์žฌ
๋ ˆ์ด๋ธ”์€ ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.) ์—ด๊ฑฐํ˜• ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ "์ผ€์ด์Šค" ๋ ˆ์ด๋ธ”๋„
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฝ๊ณ ๋ฅผ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค("๊ธฐ๋ณธ" ๋ ˆ์ด๋ธ”์ด ์žˆ๋”๋ผ๋„). ์ด๊ฒƒ
๊ฒฝ๊ณ ๊ฐ€ ํ™œ์„ฑํ™”๋จ -๋ฒฝ.

-Wswitch-๊ธฐ๋ณธ๊ฐ’
"switch" ๋ฌธ์— "default" ๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ์—†์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-Wswitch ์—ด๊ฑฐ ํ˜•
"switch" ๋ฌธ์— ์—ด๊ฑฐํ˜• ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๊ณ  "case"๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์—ด๊ฑฐ์˜ ๋ช…๋ช…๋œ ์ฝ”๋“œ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์— ๋Œ€ํ•ด "์ผ€์ด์Šค" ๋ผ๋ฒจ ์™ธ๋ถ€
์—ด๊ฑฐํ˜• ๋ฒ”์œ„๋Š” ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์ฐจ์ด์ 
์‚ฌ์ด์— -W์Šค์œ„์น˜ ์ด ์˜ต์…˜์€ ์ด ์˜ต์…˜์ด ์ƒ๋žต๋œ ๊ฒƒ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
"๊ธฐ๋ณธ" ๋ ˆ์ด๋ธ”์ด ์žˆ๋”๋ผ๋„ ์—ด๊ฑฐ ์ฝ”๋“œ.

-Wswitch-๋ถ€์šธ
"switch" ๋ฌธ์— ๋ถ€์šธ ์œ ํ˜•์˜ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค
์ œ์–ด ํ‘œํ˜„์‹์„ ๋‹ค๋ฅธ ์œ ํ˜•์œผ๋กœ ์บ์ŠคํŒ…ํ•˜์—ฌ ์ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
"๋ณผ". ์˜ˆ๋ฅผ ๋“ค์–ด:

์Šค์œ„์น˜ ((int) (a == 4))
{
...
}

์ด ๊ฒฝ๊ณ ๋Š” C ๋ฐ C++ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-Wsync-๋‚ธ๋“œ (C ๋ฐ C++๋งŒ ํ•ด๋‹น)
"__sync_fetch_and_nand" ๋ฐ "__sync_nand_and_fetch" ๋‚ด์žฅ ํ•จ์ˆ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ ๋œ. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋Š” GCC 4.4์—์„œ ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

-์ €์„œ
ํ”„๋กœ๊ทธ๋žจ์˜ ์˜๋ฏธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” trigraph๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
(์ฝ”๋ฉ˜ํŠธ ๋‚ด์˜ trigraphs๋Š” ๊ฒฝ๊ณ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค). ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์„ค์ • ๋งค๊ฐœ๋ณ€์ˆ˜
ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ• ๋‹น๋˜์—ˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์„ ์–ธ).

์ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด "unused" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์™€ ํ•จ๊ป˜ -์›ฉ์ŠคํŠธ๋ผ.

-์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์„ค์ • ๋ณ€์ˆ˜
์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ํ• ๋‹น๋˜์—ˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์„ ์–ธ). ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

์ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด "unused" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

- ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ
์ •์  ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋˜์—ˆ์ง€๋งŒ ์ •์˜๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ธ๋ผ์ธ์ด ์•„๋‹Œ ์ •์  ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ผ๋ฒจ
๋ ˆ์ด๋ธ”์ด ์„ ์–ธ๋˜์—ˆ์ง€๋งŒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

์ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด "unused" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-Wunused-local-typedefs (C, Objective-C, C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜์— ๋กœ์ปฌ๋กœ ์ •์˜๋œ typedef๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š”
ํ™œ์„ฑํ™” ๋œ -๋ฒฝ.

-Wunused-๋งค๊ฐœ๋ณ€์ˆ˜
ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ ์™ธ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด "unused" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

- ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ ์—†์Œ
"warn_unused_result" ์†์„ฑ์œผ๋กœ ํ‘œ์‹œ๋œ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ž๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ฐ˜ํ™˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’์€ -Wunused-๊ฒฐ๊ณผ.

- ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜
์ง€์—ญ ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ •์  ๋ณ€์ˆ˜๊ฐ€ ๋‹ค์Œ์„ ์ œ์™ธํ•˜๊ณ  ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ์„ ์–ธ. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

์ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด "unused" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

- ๋ฏธ์‚ฌ์šฉ ๊ฐ€์น˜
๋ฌธ์ด ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์–ต์ œํ•˜๋‹ค
์ด ๊ฒฝ๊ณ ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํ‘œํ˜„์‹์„ "void"๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ‘œํ˜„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๊ตฌ๋ฌธ ๋˜๋Š” ๋ถ€์ž‘์šฉ์ด ์—†๋Š” ์‰ผํ‘œ ํ‘œํ˜„์‹์˜ ์™ผ์ชฝ.
์˜ˆ๋ฅผ ๋“ค์–ด "x[i,j]"์™€ ๊ฐ™์€ ํ‘œํ˜„์‹์€ ๊ฒฝ๊ณ ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ฐ˜๋ฉด "x[(void)i,j]"๋Š”
ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

- ์‚ฌ์šฉํ•˜์ง€ ์•Š์€
๋ชจ๋“ ๊ฒƒ ์œ„์— - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์˜ต์…˜์ด ๊ฒฐํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์œผ๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
-์›ฉ์ŠคํŠธ๋ผ - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ (์ฐธ๊ณ  -๋ฒฝ ์˜๋ฏธํ•˜๋‹ค - ์‚ฌ์šฉํ•˜์ง€ ์•Š์€) ๋˜๋Š” ๋ณ„๋„๋กœ ์ง€์ •
-Wunused-๋งค๊ฐœ๋ณ€์ˆ˜.

-์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ
์ž๋™ ๋ณ€์ˆ˜๊ฐ€ ๋จผ์ € ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜ ๋ณ€์ˆ˜๊ฐ€
"setjmp" ํ˜ธ์ถœ์— ์˜ํ•ด ๋ฐฉํ•ด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. C++์—์„œ ๋น„์ •์  ์ฐธ์กฐ ๋˜๋Š” ๋น„์ •์  ์ฐธ์กฐ์ธ ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
์ •์  "const" ๋ฉค๋ฒ„๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š” ํด๋ž˜์Šค์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๋ ค๋ฉด
์ž์ฒด ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ -์œˆํŠธ์…€ํ”„ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋Š” ๊ตฌ์กฐ์˜ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๋ง‰ํžŒ ๊ฐœ๋ณ„ ์š”์†Œ์— ๋Œ€ํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ํด๋กœ๋ฒ„๋œ ๋ณ€์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ†ตํ•ฉ ๋˜๋Š” ๋ฐฐ์—ด ๋ณ€์ˆ˜
์ „์ฒด์ ์œผ๋กœ. "ํœ˜๋ฐœ์„ฑ"์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋‚˜ ์š”์†Œ์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์—
์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋Š” ์ตœ์ ํ™”, ์ •ํ™•ํ•œ ๋ณ€์ˆ˜ ๋˜๋Š” ์š”์†Œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ๋Š” ์ •ํ™•ํ•œ ์ตœ์ ํ™” ์˜ต์…˜๊ณผ ์‚ฌ์šฉ๋œ GCC ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๊ณ„์‚ฐ์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ํ๋ฆ„์— ์˜ํ•ด ์ด๋Ÿฌํ•œ ๊ณ„์‚ฐ์ด ์‚ญ์ œ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ž์ฒด์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ’
๊ฒฝ๊ณ ๊ฐ€ ์ธ์‡„๋˜๊ธฐ ์ „์— ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

-W์•„๋งˆ๋„ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์Œ
์ž๋™ ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ํ•จ์ˆ˜ ํ•ญ๋ชฉ์—์„œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
์ดˆ๊ธฐํ™”๋œ ๋ณ€์ˆ˜์ด์ง€๋งŒ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฆ๋ช…ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ๋กœ๋Š” ๋Ÿฐํƒ€์ž„์— ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.
GCC๋Š” ์ฝ”๋“œ๊ฐ€ ์ •ํ™•ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ด์œ ๋ฅผ ๋ณผ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ๋˜‘๋˜‘ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ. ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{
int x;
์Šค์œ„์น˜(y)
{
๊ฒฝ์šฐ 1: x = 1;
ํ•˜๋‹ค;
๊ฒฝ์šฐ 2: x = 4;
ํ•˜๋‹ค;
๊ฒฝ์šฐ 3: x = 5;
}
ํ‘ธ(x);
}

"y"์˜ ๊ฐ’์ด ํ•ญ์ƒ 1, 2 ๋˜๋Š” 3์ด๋ฉด "x"๋Š” ํ•ญ์ƒ ์ดˆ๊ธฐํ™”๋˜์ง€๋งŒ GCC๋Š”
์ด๊ฒƒ์„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ์ผ€์ด์Šค๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ์–ธํ•˜๋‹ค(0) ๋˜๋Š” ์œ ์‚ฌํ•œ ์ฝ”๋“œ.

์ด ์˜ต์…˜์€ ๋˜ํ•œ ๋น„ํœ˜๋ฐœ์„ฑ ์ž๋™ ๋ณ€์ˆ˜๊ฐ€
"longjmp"๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋Š” ์ตœ์ ํ™”์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” "setjmp"์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋งŒ ๋ด…๋‹ˆ๋‹ค. "longjmp"๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š”; ์‹ค์ œ๋กœ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๊ธฐ๋Š” ์ฝ”๋“œ์˜ ์–ด๋Š ์ง€์ ์—์„œ๋‚˜ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ
๊ฒฐ๊ณผ์ ์œผ๋กœ "longjmp" ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์žฅ์†Œ์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ผ๋ถ€ ๊ฐ€์งœ ๊ฒฝ๊ณ ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"noreturn"์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ or -์›ฉ์ŠคํŠธ๋ผ.

-Wunknown-pragma
GCC์—์„œ ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” "#pragma" ์ง€์‹œ๋ฌธ์„ ๋งŒ๋‚˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ
๋ช…๋ น์ค„ ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜๋ฉด ์‹œ์Šคํ…œ์˜ ์•Œ ์ˆ˜ ์—†๋Š” pragma์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋„ ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค.
ํ—ค๋” ํŒŒ์ผ. ๊ฒฝ๊ณ ๊ฐ€ -๋ฒฝ
๋ช…๋ น์ค„ ์˜ต์…˜.

-Wno-pragma
์ž˜๋ชป๋œ ๋งค๊ฐœ๋ณ€์ˆ˜, ์ž˜๋ชป๋œ ๊ตฌ๋ฌธ ๋˜๋Š”
ํ”„๋ผ๊ทธ๋งˆ ๊ฐ„์˜ ์ถฉ๋Œ. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค -Wunknown-pragma.

-Wstrict-์•จ๋ฆฌ์–ด์‹ฑ
์ด ์˜ต์…˜์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -fstrict-์•จ๋ฆฌ์–ด์‹ฑ ํ™œ์„ฑ. ์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์—„๊ฒฉํ•œ ์•จ๋ฆฌ์–ด์‹ฑ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ๊ฐ€ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํฌ์ฐฉํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋” ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ๋ฅผ ํฌ์ฐฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ •. ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -๋ฒฝ. ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -Wstrict-์•จ๋ฆฌ์–ด์‹ฑ=3

-Wstrict-์•จ๋ฆฌ์–ด์‹ฑ=n
์ด ์˜ต์…˜์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -fstrict-์•จ๋ฆฌ์–ด์‹ฑ ํ™œ์„ฑ. ์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์—„๊ฒฉํ•œ ์•จ๋ฆฌ์–ด์‹ฑ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ˆ˜์ค€์ด ๋†’์„์ˆ˜๋ก ์ •ํ™•๋„๊ฐ€ ๋†’์•„์ง‘๋‹ˆ๋‹ค(์˜คํƒ์ด ์ ์Œ). ๋” ๋†’์€ ์ˆ˜์ค€
๋˜ํ•œ ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋” ๋งŽ์€ ๋…ธ๋ ฅ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. -O ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. -Wstrict-์•จ๋ฆฌ์–ด์‹ฑ is
์— ํ•ด๋‹น -Wstrict-์•จ๋ฆฌ์–ด์‹ฑ=3.

๋ ˆ๋ฒจ 1: ๊ฐ€์žฅ ๊ณต๊ฒฉ์ ์ด๊ณ  ๋น ๋ฅด๋ฉฐ ๊ฐ€์žฅ ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ ˆ๋ฒจ์ด ๋†’์„ ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Œ
๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์ง€๋งŒ -fstrict-์•จ๋ฆฌ์–ด์‹ฑ false๊ฐ€ ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ์ฝ”๋“œ๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.
๋„ค๊ฑฐํ‹ฐ๋ธŒ. ๊ทธ๋Ÿฌ๋‚˜ ๋งŽ์€ ์˜คํƒ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํฌ์ธํ„ฐ ๋ณ€ํ™˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์—ญ์ฐธ์กฐ๋˜์ง€ ์•Š๋”๋ผ๋„ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ์œ ํ˜• ๊ฐ„์—. ์•ž์„ ๋‹ฌ๋ฆฌ๋‹ค
๋๋งŒ.

๋ ˆ๋ฒจ 2: ๊ณต๊ฒฉ์ ์ด๊ณ  ๋น ๋ฅด๋ฉฐ ๋„ˆ๋ฌด ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋งŽ์€ ๊ฐ€์–‘์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์•„์ง
์ˆ˜์ค€ 1๋งŒํผ ๋งŽ์Œ), ๊ฑฐ์ง“ ๋ถ€์ •์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค(ํ•˜์ง€๋งŒ ์ˆ˜์ค€ 1 ์ด์ƒ์ผ ์ˆ˜ ์žˆ์Œ).
๋ ˆ๋ฒจ 1๊ณผ ๋‹ฌ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋งŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆ์™„์ „ํ•œ ์œ ํ˜•์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋ŸฐํŠธ ์—”๋“œ์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ ˆ๋ฒจ 3(๊ธฐ๋ณธ๊ฐ’ -Wstrict-์•จ๋ฆฌ์–ด์‹ฑ): ์˜คํƒ์ด ๊ฑฐ์˜ ์—†๊ณ 
๊ฑฐ์ง“ ๋ถ€์ •. ์ตœ์ ํ™”๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋ ˆ๋ฒจ 1 ๋˜๋Š” 2๋ณด๋‹ค ์•ฝ๊ฐ„ ๋Š๋ฆฝ๋‹ˆ๋‹ค.
ํ”„๋ŸฐํŠธ ์—”๋“œ์—์„œ ์ผ๋ฐ˜์ ์ธ ๋ง์žฅ๋‚œ+์—ญ์ฐธ์กฐ ํŒจํ„ด์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
"*(int*)&some_float". ์ตœ์ ํ™”๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋ฐฑ์—”๋“œ์—์„œ๋„ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
ํ๋ฆ„์— ๋ฏผ๊ฐํ•œ ์ง€์  ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ช…๋ น๋ฌธ ์‚ฌ๋ก€๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๋ณ€ํ™˜๋œ ํฌ์ธํ„ฐ๊ฐ€ ์—ญ์ฐธ์กฐ๋  ๋•Œ๋งŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆ์™„์ „์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Œ
์œ ํ˜•.

-Wstrict ์˜ค๋ฒ„ํ”Œ๋กœ
-Wstrict-์˜ค๋ฒ„ํ”Œ๋กœ=n
์ด ์˜ต์…˜์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -fstrict-์˜ค๋ฒ„ํ”Œ๋กœ ํ™œ์„ฑ. ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ถ€ํ˜ธ ์žˆ๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฐ€์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋ฐœ์ƒํ•˜๋‹ค. ์ฝ”๋“œ๊ฐ€ ์˜ค๋ฒ„ํ”Œ๋กœ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ผ๋ถ€ ์ตœ์ ํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด
๊ฒฝ๊ณ ๋Š” ์ตœ์ ํ™” ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋ถ€ํ˜ธ ์žˆ๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ตœ์ ํ™”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์™„๋ฒฝํ•˜๊ฒŒ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์‹ค์ œ๋กœ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.
๋ฐœ์ƒํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ๊ณ ๋Š” ์‰ฝ๊ฒŒ ๊ฐ€์–‘์„ฑ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ 
๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๋ฌธ์ œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ช‡ ๊ฐ€์ง€ ๊ฒฝ๊ณ 
์ˆ˜์ค€์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์€ ์„œ๋ช…๋œ ์˜ค๋ฒ„ํ”Œ๋กœ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฃจํ”„์— ํ•„์š”ํ•œ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ์ถ”์ •ํ•  ๋•Œ, ํŠนํžˆ ๊ฒฐ์ •ํ•  ๋•Œ
๋ฃจํ”„๊ฐ€ ์ „ํ˜€ ์‹คํ–‰๋˜๋Š”์ง€ ์—ฌ๋ถ€.

-Wstrict-overflow=1
์˜์‹ฌ์Šค๋Ÿฝ๊ณ  ํ”ผํ•˜๊ธฐ ์‰ฌ์šด ์‚ฌ๋ก€์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
-fstrict-์˜ค๋ฒ„ํ”Œ๋กœ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” "x + 1 > x"๋ฅผ 1๋กœ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค.
-Wstrict ์˜ค๋ฒ„ํ”Œ๋กœ ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ; ๋” ๋†’์€ ์ˆ˜์ค€์€ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉฐ ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค.

-Wstrict-overflow=2
๋˜ํ•œ ๋น„๊ต๊ฐ€ ์ƒ์ˆ˜๋กœ ๋‹จ์ˆœํ™”๋œ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ: "abs(x) >= 0". ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -fstrict-์˜ค๋ฒ„ํ”Œ๋กœ ์—
"abs (INT_MIN)"๊ฐ€ XNUMX๋ณด๋‹ค ์ž‘์€ "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
๋˜ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์ˆ˜์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋น„๊ต์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ: "x + 2 > y"๋Š” "x + 1 >= y"๋กœ ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ๋†’์€ ๊ฒฝ๊ณ  ์ˆ˜์ค€์—์„œ๋งŒ ๋ณด๊ณ ๋ฉ๋‹ˆ๋‹ค.
๋งŽ์€ ๋น„๊ต์— ์ ์šฉ๋˜๋ฏ€๋กœ ์ด ๊ฒฝ๊ณ  ์ˆ˜์ค€์€
์˜ค ํƒ์ง€.

-Wsuggest-์†์„ฑ=[์ˆœ์ˆ˜ํ•œ|const๋ฅผ|๋…ธ๋ฆฌํ„ด|์ฒด์žฌ]
์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์†์„ฑ
์ง€์›๋˜๋Š” ๋ชฉ๋ก์€ ์•„๋ž˜์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

-Wsuggest-์†์„ฑ=์ˆœ์ˆ˜
-Wsuggest-์†์„ฑ=const
-Wsuggest-์†์„ฑ=noreturn
"pure", "const" ๋˜๋Š” ์†์„ฑ์˜ ํ›„๋ณด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"๋…ธํ„ด". ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค๋ฅธ ์ปดํŒŒ์ผ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ์œ„ ๋˜๋Š” ("์ˆœ์ˆ˜" ๋ฐ "์ƒ์ˆ˜"์˜ ๊ฒฝ์šฐ) ๊ธฐ๋Šฅ์ด ๋‹ค์Œ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ
์ •์ƒ์ ์œผ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ๋ฌดํ•œ์„ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
๋˜์ง€๊ฑฐ๋‚˜ "์ค‘๋‹จ"์„ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ํŠธ๋ž˜ํ•‘ํ•˜์—ฌ ๋น„์ •์ƒ์ ์œผ๋กœ ๋ฃจํ”„ ๋˜๋Š” ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ถ„์„
์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค -fipa-์ˆœ์ˆ˜-const, ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ์ด์ƒ.
์ตœ์ ํ™” ์ˆ˜์ค€์ด ๋†’์„์ˆ˜๋ก ๋ถ„์„ ์ •ํ™•๋„๊ฐ€ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

-Wsuggest-์†์„ฑ=ํ˜•์‹
-Wmissing ํ˜•์‹ ์†์„ฑ
"ํ˜•์‹" ์†์„ฑ์˜ ํ›„๋ณด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋“ค์€ ๊ฐ€๋Šฅํ•œ ํ›„๋ณด์ผ ๋ฟ ์ ˆ๋Œ€์ ์ธ ํ›„๋ณด๋Š” ์•„๋‹™๋‹ˆ๋‹ค. GCC ์ถ”์ธก
ํ• ๋‹น์— ์‚ฌ์šฉ๋˜๋Š” "ํ˜•์‹" ์†์„ฑ์ด ์žˆ๋Š” ํ•จ์ˆ˜ ํฌ์ธํ„ฐ,
์ดˆ๊ธฐํ™”, ๋งค๊ฐœ๋ณ€์ˆ˜ ์ „๋‹ฌ ๋˜๋Š” ๋ฐ˜ํ™˜ ๋ฌธ์—๋Š” ํ•ด๋‹น ํ•ญ๋ชฉ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ ์œ ํ˜•์˜ "ํ˜•์‹" ์†์„ฑ. ์ฆ‰ ์™ผํŽธ์˜
ํ• ๋‹น ๋˜๋Š” ์ดˆ๊ธฐํ™”, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ณ€์ˆ˜์˜ ์œ ํ˜• ๋˜๋Š” ๋ฐ˜ํ™˜
ํฌํ•จํ•˜๋Š” ํ•จ์ˆ˜์˜ ์œ ํ˜•์—๋Š” ๊ฐ๊ฐ "ํ˜•์‹" ์†์„ฑ๋„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด.

GCC๋Š” "ํ˜•์‹"์˜ ํ›„๋ณด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ ์ •์˜์— ๋Œ€ํ•ด์„œ๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์†์„ฑ. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด๋“ค์€ ๊ฐ€๋Šฅํ•œ ํ›„๋ณด์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. GCC๋Š” "ํ˜•์‹"์„ ์ถ”์ธกํ•ฉ๋‹ˆ๋‹ค.
์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์— ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"vprintf" ๋˜๋Š” "vscanf"์ด์ง€๋งŒ ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ์ผ๋ถ€ ๊ธฐ๋Šฅ์€
"ํ˜•์‹" ์†์„ฑ์ด ์ ์ ˆํ•œ ๊ฒƒ์€ ๊ฐ์ง€๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-Wsuggest-์ตœ์ข… ์œ ํ˜•
์œ ํ˜•์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ฝ”๋“œ ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋˜๋Š” ๊ฐ€์ƒ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ์œ ํ˜•์— ๋Œ€ํ•ด ๊ฒฝ๊ณ 
C++11 "์ตœ์ข…" ์ง€์ •์ž๋กœ ์„ ์–ธ๋˜์—ˆ๊ฑฐ๋‚˜ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ
์ต๋ช…์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ด๋ฅผ ํ†ตํ•ด GCC๋Š” ๋‹คํ˜•์„ฑ์„ ๋ณด๋‹ค ์ ๊ทน์ ์œผ๋กœ ๊ฐ€์ƒํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „ํ™”. ์ด ๊ฒฝ๊ณ ๋Š” ๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™”์—์„œ ๋” ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.
ํด๋ž˜์Šค ๊ณ„์ธต ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋” ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค.

-Wsuggest-์ตœ์ข… ๋ฐฉ๋ฒ•
๋ฉ”์„œ๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ ์ฝ”๋“œ ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋˜๋Š” ๊ฐ€์ƒ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
C++11 "์ตœ์ข…" ์ง€์ •์ž๋กœ ์„ ์–ธ๋˜๊ฑฐ๋‚˜ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์œ ํ˜•์ด ๋‹ค์Œ์—์„œ ์„ ์–ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ต๋ช… ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋˜๋Š” "์ตœ์ข…" ์ง€์ •์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๊ฐ€ ๋” ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.
ํด๋ž˜์Šค ๊ณ„์ธต ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™” ์‚ฌ์šฉ
๋” ์™„์ „ํ•œ. ์˜ ์ œ์•ˆ์„ ๋จผ์ € ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
-Wsuggest-์ตœ์ข… ์œ ํ˜• ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ƒˆ ์ฃผ์„์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

-Wsuggest ์žฌ์ •์˜
override ํ‚ค์›Œ๋“œ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์€ ๊ฐ€์ƒ ๊ธฐ๋Šฅ ์žฌ์ •์˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-์›Œ๋ ˆ์ด ๊ฒฝ๊ณ„
-์›Œ๋ ˆ์ด ๊ฒฝ๊ณ„=n
์ด ์˜ต์…˜์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -fttree-vrp ํ™œ์„ฑ(๊ธฐ๋ณธ๊ฐ’ -O2 ์ด์ƒ). ๊ทธ๊ฒƒ
ํ•ญ์ƒ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๋ฐฐ์—ด์˜ ์ฒจ์ž์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š”
ํ™œ์„ฑํ™” ๋œ -๋ฒฝ.

-์ „์Ÿ ๋ฒ”์œ„=1
์˜ ๊ฒฝ๊ณ  ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. -์›Œ๋ ˆ์ด ๊ฒฝ๊ณ„ ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ; ๋” ๋†’์€ ์ˆ˜์ค€
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉฐ ๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-์ „์Ÿ ๋ฒ”์œ„=2
์ด ๊ฒฝ๊ณ  ์ˆ˜์ค€์€ ๋์—์„œ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์•ก์„ธ์Šค์— ๋Œ€ํ•ด์„œ๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค๋˜๋Š” ๋ฐฐ์—ด ๋ฐ ๊ตฌ์กฐ์ฒด. ์ด ๊ฒฝ๊ณ  ์ˆ˜์ค€์€
๊ฐ€์–‘์„ฑ์ด ๋” ๋งŽ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-Wbool-๋น„๊ต
๋‹ค์Œ๊ณผ ๋‹ค๋ฅธ ์ •์ˆ˜ ๊ฐ’๊ณผ ๋น„๊ตํ•œ ๋ถ€์šธ ํ‘œํ˜„์‹์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"ํ—ˆ์œ„ ์‚ฌ์‹ค". ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋น„๊ต๋Š” ํ•ญ์ƒ ๊ฑฐ์ง“์ž…๋‹ˆ๋‹ค.

์ •์ˆ˜ n = 5;
...
if ((n > 1) == 2) { ... }

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-ํ๊ธฐ๋˜์ง€ ์•Š๋Š” ํ•œ์ •์ž (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํฌ์ธํ„ฐ์˜ ์œ ํ˜• ํ•œ์ •์ž๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ผ๋ฐ˜์ ์œผ๋กœ
์ปดํŒŒ์ผ๋Ÿฌ๋Š” "const char *" ๋ณ€์ˆ˜๊ฐ€ "char
*" ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- Wno-discarded-array-qualifiers (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํฌ์ธํ„ฐ ๋Œ€์ƒ์ธ ๋ฐฐ์—ด์˜ ์œ ํ˜• ํ•œ์ •์ž๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ฒ„๋ ค์ง„. ์ผ๋ฐ˜์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” "const int (*)[]" ๋ณ€์ˆ˜๊ฐ€
"int (*)[]" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๊ฒฝ๊ณ .

-Wno-ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ํฌ์ธํ„ฐ ์œ ํ˜• (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์œ ํ˜•์ด ์žˆ๋Š” ํฌ์ธํ„ฐ ๊ฐ„์— ๋ณ€ํ™˜์ด ์žˆ์„ ๋•Œ ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ด ๊ฒฝ๊ณ ๋Š” ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. -Wno ํฌ์ธํ„ฐ ๊ธฐํ˜ธ, ํฌ์ธํ„ฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ช…์ด ๋‹ค๋ฅธ ์ธ์ˆ˜ ์ „๋‹ฌ ๋˜๋Š” ํ• ๋‹น.

-Wno-int-๋ณ€ํ™˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ •์ˆ˜-ํฌ์ธํ„ฐ ๋ฐ ํฌ์ธํ„ฐ-์ •์ˆ˜ ๋ณ€ํ™˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ด ๊ฒฝ๊ณ ๋Š” ์•”์‹œ์  ๋ณ€ํ™˜์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ช…์‹œ์  ๋ณ€ํ™˜์˜ ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
- ํฌ์ธํ„ฐ ํˆฌ ํฌ์ธํ„ฐ ์บ์ŠคํŠธ ์—†์Œ ๊ณผ - Wno-pointer-to-int-cast ์‚ฌ์šฉ๋  ์ˆ˜์žˆ๋‹ค.

-Wno-div-by-XNUMX
XNUMX์œผ๋กœ ์ปดํŒŒ์ผ ํƒ€์ž„ ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚˜๋ˆ„๊ธฐ
XNUMX์€ ๋ฌดํ•œ๋Œ€๋ฅผ ์–ป๋Š” ํ•ฉ๋ฒ•์ ์ธ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒฝ๊ณ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
NaN.

-Wsystem ํ—ค๋”
์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ์—์„œ ๋ฐœ๊ฒฌ๋œ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ 
์‹œ์Šคํ…œ ํ—ค๋”๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹ค์ œ ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ปดํŒŒ์ผ๋Ÿฌ ์ถœ๋ ฅ์„ ์ฝ๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์‚ฌ์šฉ
์ด ๋ช…๋ น์ค„ ์˜ต์…˜์€ ์‹œ์Šคํ…œ ํ—ค๋”์—์„œ ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ณด๋‚ด๋„๋ก GCC์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž ์ฝ”๋“œ์—์„œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ -๋ฒฝ ์ด ์˜ต์…˜๊ณผ ํ•จ๊ป˜
ํ•˜์ง€ ์ง€์› ์‹œ์Šคํ…œ ํ—ค๋”์˜ ์•Œ ์ˆ˜ ์—†๋Š” pragma์— ๋Œ€ํ•ด ๊ฒฝ๊ณ  --- ์ด๋ฅผ ์œ„ํ•ด, -Wunknown-pragma
๋˜ํ•œ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

- ํŠธ๋žจํด๋ฆฐ
์ค‘์ฒฉ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์— ๋Œ€ํ•ด ์ƒ์„ฑ๋œ ํŠธ๋žจํด๋ฆฐ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋žจํด๋ฆฐ์€
์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์Šคํƒ์—์„œ ๋Ÿฐํƒ€์ž„์— ์ƒ์„ฑ๋˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ๋˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ
์ค‘์ฒฉ๋œ ํ•จ์ˆ˜์˜ ๋ฅผ ๊ฐ€์ ธ์™€ ๊ฐ„์ ‘์ ์œผ๋กœ ์ค‘์ฒฉ๋œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ผ๋ถ€ ๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ํŠน๋ณ„ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ๋Œ€์ƒ์€ ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์Šคํƒ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ ค๋ฉด ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-Wfloat-๊ฐ™์Œ
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์ด ๋™๋“ฑ ๋น„๊ต์— ์‚ฌ์šฉ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ด๋ฉด์˜ ์•„์ด๋””์–ด๋Š” ๋•Œ๋•Œ๋กœ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ) ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์„ ๋ฌดํ•œํžˆ ์ •ํ™•ํ•œ ์‹ค์ˆ˜์— ๋Œ€ํ•œ ๊ทผ์‚ฌ์น˜๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๊ณ„์‚ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ์ผ๋ถ€
๋‹ค๋ฅธ ๋ฐฉ๋ฒ•) ๊ณ„์‚ฐ์ด ๋„์ž…ํ•˜๋Š” ์ตœ๋Œ€ ๋˜๋Š” ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ์˜ค๋ฅ˜, ๋ฐ
๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ(๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•  ๋•Œ ํ—ˆ์šฉํ•˜์ง€๋งŒ ์ด๋Š”
๋‹ค๋ฅธ ๋ฌธ์ œ). ํŠนํžˆ ํ‰๋“ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋Œ€์‹  ๋‹ค์Œ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐ’์— ๊ฒน์น˜๋Š” ๋ฒ”์œ„๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€
๊ด€๊ณ„ ์—ฐ์‚ฐ์ž์ด๋ฏ€๋กœ ๊ฐ™์Œ ๋น„๊ต๊ฐ€ ์ž˜๋ชป๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-์ „ํ†ต์ ์ธ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
๊ธฐ์กด ๋ฐ ISO C์—์„œ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ํŠน์ • ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ
๊ธฐ์กด์˜ C์— ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์ด ์—†๊ฑฐ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ISO C ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ”ผํ•ด์•ผ ํ•  ๊ตฌ์กฐ.

* ๋งคํฌ๋กœ ๋ณธ๋ฌธ์˜ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๋‚ด์— ๋‚˜ํƒ€๋‚˜๋Š” ๋งคํฌ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜. ์—
์ „ํ†ต์ ์ธ C ๋งคํฌ๋กœ ๊ต์ฒด๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜์ง€๋งŒ ISO C์—์„œ๋Š”
๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

* ์ „ํ†ต์ ์ธ C์—์„œ๋Š” ์ผ๋ถ€ ์ „์ฒ˜๋ฆฌ๊ธฐ ์ง€์‹œ๋ฌธ์ด ์กด์žฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ
์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ๋ผ์ธ์„ ์ง€์‹œ๋ฌธ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. # ์นผ๋Ÿผ์— ๋“ฑ์žฅ
1 ๋ผ์ธ์—. ๊ทธ๋Ÿฌ๋ฏ€๋กœ -์ „ํ†ต์ ์ธ ์ „ํ†ต์ ์ธ C
์ดํ•ดํ•˜์ง€๋งŒ ๋ฌด์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— # ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ผ์ธ. ๋˜ํ•œ "#pragma"๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์ง€์‹œ๋ฌธ์„ ์ˆจ๊ธธ ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ†ตํ•ด ์ „ํ†ต์ ์ธ C. ์ผ๋ถ€ ๊ธฐ์กด ๊ตฌํ˜„์€
"#elif"๋ฅผ ์ธ์‹ํ•˜๋ฏ€๋กœ ์ด ์˜ต์…˜์€ ์™„์ „ํžˆ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

* ์ธ์ˆ˜ ์—†์ด ๋‚˜ํƒ€๋‚˜๋Š” ํ•จ์ˆ˜์™€ ๊ฐ™์€ ๋งคํฌ๋กœ์ž…๋‹ˆ๋‹ค.

* ๋‹จํ•ญ ๋”ํ•˜๊ธฐ ์—ฐ์‚ฐ์ž.

* U ์ •์ˆ˜ ์ƒ์ˆ˜ ์ ‘๋ฏธ์‚ฌ ๋˜๋Š” F or L ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์ˆ˜ ์ ‘๋ฏธ์‚ฌ.
(์ „ํ†ต์ ์ธ C๋Š” L ์ •์ˆ˜ ์ƒ์ˆ˜์˜ ์ ‘๋ฏธ์‚ฌ.)
์ ‘๋ฏธ์‚ฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  ์‹œ์Šคํ…œ์˜ ์‹œ์Šคํ…œ ํ—ค๋”์— ์ •์˜๋œ ๋งคํฌ๋กœ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด _MIN/_MAX "์˜ ๋งคํฌ๋กœ ". ์‚ฌ์šฉ์ž ์ฝ”๋“œ์—์„œ ์ด๋Ÿฌํ•œ ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์งœ ๊ฒฝ๊ณ ๋กœ ์ด์–ด์ง€์ง€๋งŒ GCC์˜ ํ†ตํ•ฉ ์ „์ฒ˜๋ฆฌ๊ธฐ๋Š”
์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฅผ ํ”ผํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ์ปจํ…์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

* ํ•œ ๋ธ”๋ก์—์„œ ์™ธ๋ถ€๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜๋Š” ์ข…๋ฃŒ ํ›„ ์‚ฌ์šฉ
๋ธ”๋ก.

* "switch" ๋ฌธ์—๋Š” "long" ์œ ํ˜•์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

* "์ •์ "์ด ์•„๋‹Œ ํ•จ์ˆ˜ ์„ ์–ธ์€ "์ •์ " ํ•จ์ˆ˜ ์„ ์–ธ ๋‹ค์Œ์— ์˜ต๋‹ˆ๋‹ค. ์ด ๊ตฌ์„ฑ์€
์ผ๋ถ€ ์ „ํ†ต์ ์ธ C ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

* ์ •์ˆ˜ ์ƒ์ˆ˜์˜ ISO ์œ ํ˜•์€ ๋„ˆ๋น„ ๋˜๋Š” ๋ถ€ํ˜ธ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ „ํ†ต์ ์ธ ์œ ํ˜•. ์ด ๊ฒฝ๊ณ ๋Š” ์ƒ์ˆ˜์˜ ๋ฐ‘์ด XNUMX์ธ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค.
์ฆ‰, ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„ํŠธ ํŒจํ„ด์„ ๋‚˜ํƒ€๋‚ด๋Š” XNUMX์ง„์ˆ˜ ๋˜๋Š” XNUMX์ง„์ˆ˜ ๊ฐ’์€
์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

* ISO ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์‚ฌ์šฉ์ด ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

* ์ž๋™ ์ง‘๊ณ„์˜ ์ดˆ๊ธฐํ™”.

* ์‹๋ณ„์ž๊ฐ€ ๋ ˆ์ด๋ธ”๊ณผ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ C์—๋Š” ๋ณ„๋„์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋ผ๋ฒจ.

* ์œ ๋‹ˆ์˜จ ์ดˆ๊ธฐํ™”. ์ด๋‹ˆ์…œ๋ผ์ด์ €๊ฐ€ XNUMX์ด๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ์ƒ๋žต๋ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ฝ”๋“œ์— XNUMX ์ดˆ๊ธฐํ™”๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
์ดˆ๊ธฐํ™” ๊ฒฝ๊ณ  ๋ˆ„๋ฝ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ๋ฅผ ๋“ค์–ด "__STDC__"๋ฅผ ์กฐ๊ฑด์œผ๋กœ ํ•˜๊ณ 
์ „ํ†ต์ ์ธ C์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ดˆ๊ธฐํ™”๋Š” XNUMX์ž…๋‹ˆ๋‹ค.

* ๊ณ ์ •/๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’๊ณผ ๊ทธ ๋ฐ˜๋Œ€๋กœ ํ”„๋กœํ† ํƒ€์ž…์— ์˜ํ•œ ๋ณ€ํ™˜. NS
์ „ํ†ต์ ์ธ C๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ ์ด๋Ÿฌํ•œ ํ”„๋กœํ† ํƒ€์ž…์ด ์—†์œผ๋ฉด ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์ œ. ์ด๊ฒƒ์€ ๊ฐ€๋Šฅํ•œ ์ „ํ™˜ ๊ฒฝ๊ณ ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ํ’€ ์„ธํŠธ๋ฅผ ์œ„ํ•ด
์‚ฌ์šฉ -์ „ํ†ต ๋ณ€ํ™˜.

* ISO C ์Šคํƒ€์ผ ๊ธฐ๋Šฅ ์ •์˜ ์‚ฌ์šฉ. ์ด ๊ฒฝ๊ณ ๋Š” ์˜๋„์ ์œผ๋กœ ์ง€์› ๋ฐœํ–‰
์ด๋Ÿฌํ•œ ISO C ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์— ํ”„๋กœํ† ํƒ€์ž… ์„ ์–ธ ๋˜๋Š” ๊ฐ€๋ณ€ ํ•จ์ˆ˜์— ๋Œ€ํ•ด
libiberty์˜ ์ „ํ†ต์ ์ธ C ํ˜ธํ™˜์„ฑ ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฝ”๋“œ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
"PARAMS" ๋ฐ "VPARAMS". ์ด ๊ฒฝ๊ณ ๋Š” ์ค‘์ฒฉ๋œ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋„ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ์ด๋ฏธ GCC ํ™•์žฅ์ด๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.
์ „ํ†ต์ ์ธ C ํ˜ธํ™˜์„ฑ.

-์ „ํ†ต ๋ณ€ํ™˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํ”„๋กœํ† ํƒ€์ž…์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ์œ ํ˜• ๋ณ€ํ™˜์„ ์ผ์œผํ‚ค๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
ํ”„๋กœํ† ํƒ€์ž…์ด ์—†๋Š” ๊ฒฝ์šฐ ๋™์ผํ•œ ์ธ์ˆ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์˜ ์ „ํ™˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๊ณ ์ • ์†Œ์ˆ˜์ ์„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์œผ๋กœ ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋„ˆ๋น„๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜
๊ธฐ๋ณธ ์Šน๊ฒฉ๊ณผ ๋™์ผํ•œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๊ณ ์ • ์†Œ์ˆ˜์  ์ธ์ˆ˜์˜ ๋ถ€ํ˜ธ.

-W์„ ์–ธ ํ›„ ์„ ์–ธ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
๋ธ”๋ก์˜ ๋ช…๋ น๋ฌธ ๋‹ค์Œ์— ์„ ์–ธ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ์ด ๊ตฌ์„ฑ์€
C++์—์„œ ISO C99์™€ ํ•จ๊ป˜ ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ GCC์—์„œ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค
ISO C90์—์„œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-๋ถ„๋ฐํ”„
์ •์˜๋˜์ง€ ์•Š์€ ์‹๋ณ„์ž๊ฐ€ "#if" ์ง€์‹œ๋ฌธ์—์„œ ํ‰๊ฐ€๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-Wno-endif-๋ ˆ์ด๋ธ”
"#else" ๋˜๋Š” "#endif" ๋‹ค์Œ์— ํ…์ŠคํŠธ๊ฐ€ ์˜ฌ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-W์„€๋„์šฐ
์ง€์—ญ ๋ณ€์ˆ˜ ๋˜๋Š” ์œ ํ˜• ์„ ์–ธ์ด ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๊ทธ๋ฆผ์ž๋ฅผ ์ค„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜, ์œ ํ˜•, ํด๋ž˜์Šค ๋ฉค๋ฒ„(C++์˜ ๊ฒฝ์šฐ) ๋˜๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜(Objective-C์˜ ๊ฒฝ์šฐ) ๋˜๋Š”
๋‚ด์žฅ ํ•จ์ˆ˜๊ฐ€ ๊ฐ€๋ ค์งˆ ๋•Œ๋งˆ๋‹ค. C++์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ง€์—ญ ๋ณ€์ˆ˜๋Š” ๋ช…์‹œ์  typedef๋ฅผ ๊ฐ€๋ฆฌ์ง€๋งŒ ๊ตฌ์กฐ์ฒด/ํด๋ž˜์Šค/์—ด๊ฑฐํ˜•์„ ๊ฐ€๋ฆฌ๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-Wno-shadow-ivar (๋ชฉํ‘œ-C๋งŒ ํ•ด๋‹น)
Objective-C์—์„œ ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆด ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ฐฉ๋ฒ•.

-๋ณด๋‹ค ํผ=๋ Œ
๋‹ค์Œ๋ณด๋‹ค ํฐ ๊ฐœ์ฒด๊ฐ€ ์žˆ์„ ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ  ๋ Œ ๋ฐ”์ดํŠธ๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-Wframe-๋ณด๋‹ค ํผ=๋ Œ
ํ•จ์ˆ˜ ํ”„๋ ˆ์ž„์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ๋ณด๋‹ค ํฌ๋ฉด ๊ฒฝ๊ณ  ๋ Œ ๋ฐ”์ดํŠธ. ๊ณ„์‚ฐ ์™„๋ฃŒ
์Šคํƒ ํ”„๋ ˆ์ž„ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๊ทผ์‚ฌ์น˜์ด๋ฉฐ ๋ณด์ˆ˜์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ
์š”๊ตฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๋ณด๋‹ค ๋‹ค์†Œ ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ Œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋”๋ผ๋„. ์—
๋˜ํ•œ "alloca", ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด ๋˜๋Š” ๊ด€๋ จ์„ ํ†ตํ•ด ํ• ๋‹น๋œ ๋ชจ๋“  ๊ณต๊ฐ„
์ƒ์„ฑ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๊ตฌ๋ฌธ์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ .

-Wno-free-nonheap-๊ฐ์ฒด
ํž™์— ํ• ๋‹น๋˜์ง€ ์•Š์€ ๊ฐœ์ฒด๋ฅผ ํ•ด์ œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-Wstack ์‚ฌ์šฉ=๋ Œ
ํ•จ์ˆ˜์˜ ์Šคํƒ ์‚ฌ์šฉ๋Ÿ‰์ด ๋‹ค์Œ๋ณด๋‹ค ํด ์ˆ˜ ์žˆ์Œ์„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋ Œ ๋ฐ”์ดํŠธ. ๊ณ„์‚ฐ
์Šคํƒ ์‚ฌ์šฉ๋Ÿ‰์ด ๋ณด์ˆ˜์ ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. "alloca"๋ฅผ ํ†ตํ•ด ํ• ๋‹น๋œ ๋ชจ๋“  ๊ณต๊ฐ„,
๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด ๋˜๋Š” ๊ด€๋ จ ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์‹œ์ง€๋Š” ์˜ ์ถœ๋ ฅ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. -fstack-์‚ฌ์šฉ.

* ์Šคํƒ ์‚ฌ์šฉ๋Ÿ‰์ด ์™„์ „ํžˆ ์ •์ ์ด์ง€๋งŒ ์ง€์ •๋œ ์–‘์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ์Šคํƒ ์‚ฌ์šฉ๋Ÿ‰์€ 1120๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค.

* ์Šคํƒ ์‚ฌ์šฉ๋Ÿ‰์ด (๋ถ€๋ถ„์ ์œผ๋กœ) ๋™์ ์ด์ง€๋งŒ ์ œํ•œ๋œ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ์Šคํƒ ์‚ฌ์šฉ๋Ÿ‰์€ 1648๋ฐ”์ดํŠธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

* ์Šคํƒ ์‚ฌ์šฉ์ด (๋ถ€๋ถ„์ ์œผ๋กœ) ๋™์ ์ด๊ณ  ์ œํ•œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ์Šคํƒ ์‚ฌ์šฉ๋Ÿ‰์ด ์ œํ•œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-Wunsafe ๋ฃจํ”„ ์ตœ์ ํ™”
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•„๋ฌด ๊ฒƒ๋„ ๊ฐ€์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฃจํ”„๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋ฃจํ”„ ์ธ๋ฑ์Šค์˜ ๊ฒฝ๊ณ„. ์™€ ํ•จ๊ป˜ -ํŽ€์„ธ์ดํ”„ ๋ฃจํ”„ ์ตœ์ ํ™” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
๊ทธ๋Ÿฐ ๊ฐ€์ •์„ ํ•ฉ๋‹ˆ๋‹ค.

-Wno-pedantic-ms-ํ˜•์‹ (MinGW ๋Œ€์ƒ๋งŒ ํ•ด๋‹น)
์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ์‹œ -Wํฌ๋งท ๊ณผ -ํŽ˜๋‹จ ํ‹ฑ GNU ํ™•์žฅ ์—†์ด ์ด๊ฒƒ์€
์˜ต์…˜์€ ๋น„ ISO "printf" / "scanf" ํ˜•์‹ ๋„ˆ๋น„ ์ง€์ •์ž์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
"I32", "I64" ๋ฐ "I"๋Š” MS ๋Ÿฐํƒ€์ž„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” Windows ๋Œ€์ƒ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-Wpointer-arith
ํ•จ์ˆ˜ ์œ ํ˜• ๋˜๋Š” "๋ฌดํšจ"์˜ "ํฌ๊ธฐ"์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. GNU C
"void *"๋ฅผ ์‚ฌ์šฉํ•œ ๊ณ„์‚ฐ์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ํฌ๊ธฐ๋ฅผ 1๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์™€ ํฌ์ธํ„ฐ. C++์—์„œ๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋  ๋•Œ๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"NULL"์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -Wpedantic.

-W ์œ ํ˜• ์ œํ•œ
์ œํ•œ๋œ ๋ฒ”์œ„๋กœ ์ธํ•ด ๋น„๊ต๊ฐ€ ํ•ญ์ƒ ์ฐธ์ธ์ง€ ํ•ญ์ƒ ๊ฑฐ์ง“์ธ์ง€ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์œ ํ˜•์ด์ง€๋งŒ ์ƒ์ˆ˜ ํ‘œํ˜„์‹์— ๋Œ€ํ•ด์„œ๋Š” ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋ช…๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
๋ณ€์ˆ˜๋Š” "<" ๋˜๋Š” ">="๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ XNUMX๊ณผ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
-์›ฉ์ŠคํŠธ๋ผ.

-Wbad ํ•จ์ˆ˜ ์บ์ŠคํŠธ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์œ ํ˜•์œผ๋กœ ์บ์ŠคํŠธ๋  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ „ํ™”๊ฐ€ ์˜ค๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ •์ˆ˜ ์œ ํ˜•์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋Š” ํฌ์ธํ„ฐ ์œ ํ˜•์œผ๋กœ ์บ์ŠคํŠธ๋ฉ๋‹ˆ๋‹ค.

-Wc90-c99-ํ˜ธํ™˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ISO C90์—๋Š” ์—†์ง€๋งŒ ISO C99์—๋Š” ์žˆ๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด์˜ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ , "long long" ์œ ํ˜•, "bool" ์œ ํ˜•, ๋ณตํ•ฉ
๋ฆฌํ„ฐ๋Ÿด, ์ง€์ •๋œ ์ด๋‹ˆ์…œ๋ผ์ด์ € ๋“ฑ. ์ด ์˜ต์…˜์€
ํ‘œ์ค€ ๋ชจ๋“œ. "__extension__" ๋’ค์— ์˜ค๋Š” ํ‘œํ˜„์‹์—์„œ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-Wc99-c11-ํ˜ธํ™˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ISO C99์—๋Š” ์—†์ง€๋งŒ ISO C11์—๋Š” ์žˆ๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
์ต๋ช… ๊ตฌ์กฐ ๋ฐ ๊ณต์šฉ์ฒด ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ , "_Atomic" ์œ ํ˜• ํ•œ์ •์ž,
"_Thread_local" ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค ์ง€์ •์ž, "_Alignas" ์ง€์ •์ž, "Alignof" ์—ฐ์‚ฐ์ž,
"_Generic" ํ‚ค์›Œ๋“œ ๋“ฑ. ์ด ์˜ต์…˜์€ ํ‘œ์ค€ ๋ชจ๋“œ์™€ ๋ฌด๊ด€ํ•ฉ๋‹ˆ๋‹ค.
"__extension__" ๋’ค์— ์˜ค๋Š” ํ‘œํ˜„์‹์—์„œ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-Wc++-ํ˜ธํ™˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ISO C ๋ฐ ISO์˜ ๊ณตํ†ต ํ•˜์œ„ ์ง‘ํ•ฉ ์™ธ๋ถ€์— ์žˆ๋Š” ISO C ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
C++, ์˜ˆ๋ฅผ ๋“ค์–ด "void *"์—์„œ "void"๊ฐ€ ์•„๋‹Œ ํฌ์ธํ„ฐ๋กœ์˜ ์•”์‹œ์  ๋ณ€ํ™˜ ์š”์ฒญ
์œ ํ˜•.

-Wc++11-ํ˜ธํ™˜ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ISO C++ 1998๊ณผ ISO C++ 2011์—์„œ ์˜๋ฏธ๊ฐ€ ๋‹ค๋ฅธ C++ ๊ตฌ๋ฌธ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ: ISO C++ 1998์˜ ํ‚ค์›Œ๋“œ์ธ ISO C++ 2011์˜ ์‹๋ณ„์ž. ์ด ๊ฒฝ๊ณ 
์ผœ๋‹ค - ์ถ•์†Œ ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-Wc++14-ํ˜ธํ™˜ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ISO C++ 2011๊ณผ ISO C++ 2014์—์„œ ์˜๋ฏธ๊ฐ€ ๋‹ค๋ฅธ C++ ๊ตฌ๋ฌธ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-Wcast๊ธ‰
๋Œ€์ƒ ์œ ํ˜•์—์„œ ์œ ํ˜• ํ•œ์ •์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ํฌ์ธํ„ฐ๊ฐ€ ์บ์ŠคํŠธ๋  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด "const char *"๊ฐ€ ์ผ๋ฐ˜ "char *"๋กœ ์บ์ŠคํŒ…๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ฐฉ์‹์œผ๋กœ ํ˜•์‹ ํ•œ์ •์ž๋ฅผ ๋„์ž…ํ•˜๋Š” ์บ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด "char **"๋ฅผ "const char **"๋กœ ์บ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

/* p๋Š” char ** ๊ฐ’์ž…๋‹ˆ๋‹ค. */
const char **q = (const char **) p;
/* ์ฝ๊ธฐ ์ „์šฉ ๋ฌธ์ž์—ด์„ const char *์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ OK์ž…๋‹ˆ๋‹ค. */
*q = "๋ฌธ์ž์—ด";
/* ์ด์ œ char** ํฌ์ธํ„ฐ๊ฐ€ ์ฝ๊ธฐ ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. */
**p = 'b';

-Wcast ์ •๋ ฌ
๋Œ€์ƒ์˜ ํ•„์š”ํ•œ ์ •๋ ฌ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ์ธํ„ฐ๊ฐ€ ์บ์ŠคํŒ…๋  ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ฆ๊ฐ€ํ–ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "char *"๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ "int *"๋กœ ์บ์ŠคํŒ…๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ •์ˆ˜๋Š” XNUMX๋ฐ”์ดํŠธ ๋˜๋Š” XNUMX๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์—์„œ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-๋ฌธ์ž์—ด ์“ฐ๊ธฐ
C๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ ๋ฌธ์ž์—ด ์ƒ์ˆ˜์— "const char[๊ธธ์ด]" ๊ทธ๋ž˜์„œ ๋ณต์‚ฌ
ํ•˜๋‚˜์˜ ์ฃผ์†Œ๋ฅผ "const"๊ฐ€ ์•„๋‹Œ "char *" ํฌ์ธํ„ฐ๋กœ ์ง€์ •ํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค
๊ฒฝ๊ณ ๋Š” ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ๋ฌธ์ž์—ด์— ์“ฐ๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
์ƒ์ˆ˜์ด์ง€๋งŒ ์„ ์–ธ์—์„œ "const"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ธ ๊ฒฝ์šฐ์—๋งŒ
๊ทธ๋ฆฌ๊ณ  ํ”„๋กœํ† ํƒ€์ž…. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๊ท€์ฐฎ์€ ์ผ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์ง€ ์•Š์€ ์ด์œ ์ž…๋‹ˆ๋‹ค -๋ฒฝ
์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฅผ ์š”์ฒญํ•˜์‹ญ์‹œ์˜ค.

C++๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์—์„œ "char
*". ์ด ๊ฒฝ๊ณ ๋Š” C++ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-ํด๋กœ๋ฒ„๋“œ
"longjmp" ๋˜๋Š” "vfork"์— ์˜ํ•ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š”
์— ์˜ํ•ด ํ™œ์„ฑํ™”๋จ -์›ฉ์ŠคํŠธ๋ผ.

- ์กฐ๊ฑด๋ถ€ ์ง€์› (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
์กฐ๊ฑด๋ถ€ ์ง€์›(C++11 [intro.defs]) ๊ตฌ๋ฌธ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-W๋ณ€ํ™˜
๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ์•”์‹œ์  ๋ณ€ํ™˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ „ํ™˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
"x"๊ฐ€ "๋”๋ธ”"์ธ ๊ฒฝ์šฐ "abs (x)"์™€ ๊ฐ™์ด ์‹ค์ˆ˜์™€ ์ •์ˆ˜ ์‚ฌ์ด; ์‚ฌ์ด์˜ ์ „ํ™˜
"unsigned ui = -1"๊ณผ ๊ฐ™์ด ์„œ๋ช…๋œ ๊ฒƒ๊ณผ ์„œ๋ช…๋˜์ง€ ์•Š์€ ๊ฒƒ; ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋” ์ž‘์€ ์œ ํ˜•์œผ๋กœ์˜ ๋ณ€ํ™˜
"sqrtf(M_PI)". "abs ((int) x)" ๋ฐ "ui =
(unsigned) -1" ๋˜๋Š” "abs (2.0)"์™€ ๊ฐ™์ด ๋ณ€ํ™˜์— ์˜ํ•ด ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ.
๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜์™€ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ ๊ฐ„์˜ ๋ณ€ํ™˜์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ -Wno-sign-๋ณ€ํ™˜.

C++์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ •์˜ ๋ณ€ํ™˜์— ๋Œ€ํ•œ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๊ณผ๋ถ€ํ•˜ ํ•ด๊ฒฐ์— ๋Œ€ํ•ด์„œ๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ 
์œ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ€ํ™˜: "void"๋กœ์˜ ๋ณ€ํ™˜, ๋™์ผ
์œ ํ˜•, ๊ธฐ๋ณธ ํด๋ž˜์Šค ๋˜๋Š” ์ฐธ์กฐ. ์„œ๋ช…๋œ ์‚ฌ์ด์˜ ๋ณ€ํ™˜์— ๋Œ€ํ•œ ๊ฒฝ๊ณ 
๋ฐ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜๋Š” C++์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -Wsign ๋ณ€ํ™˜ is
๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-Wno ๋ณ€ํ™˜ null (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
"NULL"๊ณผ ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹Œ ์œ ํ˜• ๊ฐ„์˜ ๋ณ€ํ™˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. -wconversion-null. is
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-Wzero-as-null-ํฌ์ธํ„ฐ ์ƒ์ˆ˜ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๋ฆฌํ„ฐ๋Ÿด '0'์ด ๋„ ํฌ์ธํ„ฐ ์ƒ์ˆ˜๋กœ ์‚ฌ์šฉ๋  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
C++11์—์„œ "nullptr"๋กœ์˜ ๋ณ€ํ™˜์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

-W๋‚ ์งœ-์‹œ๊ฐ„
๋งคํฌ๋กœ "__TIME__", "__DATE__" ๋˜๋Š” "__TIMESTAMP__"๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋น„ํŠธ ๋‹จ์œ„๋กœ ๋™์ผํ•œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ปดํŒŒ์ผ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-W์‚ญ์ œ-๋ถˆ์™„์ „ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
๋ถˆ์™„์ „ํ•œ ์œ ํ˜•์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์‹คํ–‰ ์‹œ๊ฐ„. ์ด ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-์“ธ๋ฐ์—†๋Š” ์บ์ŠคํŒ… (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํ‘œํ˜„์‹์ด ์ž์ฒด ์œ ํ˜•์œผ๋กœ ์บ์ŠคํŠธ๋  ๋•Œ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

- ๋ฉํ•œ ๋ชธ
"if", "else" ๋˜๋Š” "do while" ๋ฌธ์—์„œ ๋นˆ ๋ณธ๋ฌธ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ 
์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -์›ฉ์ŠคํŠธ๋ผ.

-Wenum-๋น„๊ต
๋‹ค๋ฅธ ์—ด๊ฑฐ ์œ ํ˜•์˜ ๊ฐ’ ๊ฐ„์˜ ๋น„๊ต์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. C++ ์—ด๊ฑฐํ˜•์—์„œ
์กฐ๊ฑด์‹์˜ ๋ถˆ์ผ์น˜๋„ ์ง„๋‹จ๋˜๊ณ  ๊ฒฝ๊ณ ๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ. C์—์„œ ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-Wjump-๋ฏธ์Šค-์ดˆ๊ธฐํ™” (C, Objective-C ์ „์šฉ)
"goto" ๋ฌธ ๋˜๋Š” "switch" ๋ฌธ์ด ๊ฐ€๋กœ์งˆ๋Ÿฌ ์•ž์œผ๋กœ ์ ํ”„ํ•˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” ๋˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๋ ˆ์ด๋ธ”๋กœ ๋’ค๋กœ ์ ํ”„
์ดˆ๊ธฐํ™”. ์ด๊ฒƒ์€ ์ดˆ๊ธฐํ™”๋  ๋•Œ ์ดˆ๊ธฐํ™”๋˜๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์„ ์–ธํ–ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” C ๋ฐ Objective-C์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. C++์—์„œ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜
๋ถ„๊ธฐ๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

-Wjump-๋ฏธ์Šค-์ดˆ๊ธฐํ™” ์— ํฌํ•จ -Wc++-ํ˜ธํ™˜. ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-Wno-์ ํ”„ ๋ฏธ์Šค-์ดˆ๊ธฐํ™” ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-Wsign-๋น„๊ต
๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’๊ณผ ๋ถ€ํ˜ธ ์—†๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜๋ฉด ์ž˜๋ชป๋œ ๊ฐ’์ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œ์„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€ํ˜ธ ์žˆ๋Š” ๊ฐ’์ด ๋ถ€ํ˜ธ ์—†๋Š” ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜๋  ๋•Œ์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋„ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
by -์›ฉ์ŠคํŠธ๋ผ; ๋‹ค๋ฅธ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด -์›ฉ์ŠคํŠธ๋ผ ์ด ๊ฒฝ๊ณ  ์—†์ด ์‚ฌ์šฉ -์›ฉ์ŠคํŠธ๋ผ
-Wno-sign-๋น„๊ต.

-Wsign ๋ณ€ํ™˜
๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์ˆ˜ ๊ฐ’์˜ ๋ถ€ํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ์•”์‹œ์  ๋ณ€ํ™˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜ ํ‘œํ˜„์‹์„ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ช…์‹œ์ 
์บ์ŠคํŠธ๋Š” ๊ฒฝ๊ณ ๋ฅผ ์นจ๋ฌต์‹œํ‚ต๋‹ˆ๋‹ค. C์—์„œ ์ด ์˜ต์…˜์€ ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -W๋ณ€ํ™˜.

-Wfloat ๋ณ€ํ™˜
์‹ค์ œ ๊ฐ’์˜ ์ •๋ฐ€๋„๋ฅผ ์ค„์ด๋Š” ์•”์‹œ์  ๋ณ€ํ™˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์‹ค์ˆ˜์—์„œ ์ •์ˆ˜๋กœ์˜ ๋ณ€ํ™˜ ๋ฐ ๋” ๋†’์€ ์ •๋ฐ€๋„์˜ ์‹ค์ˆ˜์—์„œ ๋” ๋‚ฎ์€ ๊ฒƒ์œผ๋กœ์˜ ๋ณ€ํ™˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
์ •ํ™•ํ•œ ์‹ค์ œ ๊ฐ’. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -W๋ณ€ํ™˜.

-ํฌ๊ธฐ ํ• ๋‹น ํ•ด์ œ (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
ํฌ๊ธฐ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ํ• ๋‹น ํ•ด์ œ ํ•จ์ˆ˜์˜ ์ •์˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

void ์—ฐ์‚ฐ์ž ์‚ญ์ œ(void *) noexcept;
๋ฌดํšจ ์—ฐ์‚ฐ์ž delete[] (๋ฌดํšจ *) noexcept;

์ƒ์‘ํ•˜๋Š” ํฌ๊ธฐ์˜ ํ• ๋‹น ํ•ด์ œ ํ•จ์ˆ˜์˜ ์ •์˜ ์—†์ด

void ์—ฐ์‚ฐ์ž ์‚ญ์ œ (void *, std::size_t) noexcept;
void ์—ฐ์‚ฐ์ž delete[] (void *, std::size_t) noexcept;

ํ˜น์€ ๊ทธ ๋ฐ˜๋Œ€๋กœ๋„. ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋จ -์›ฉ์ŠคํŠธ๋ผ ์™€ ํ•จ๊ป˜ -fsize-deallocation.

-Wsizeof-pointer-memaccess
ํŠน์ • ๋ฌธ์ž์—ด ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์žฅ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ธธ์ด ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฒฝ๊ณ 
์ธ์ˆ˜๊ฐ€ "sizeof"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ. ์ด ๊ฒฝ๊ณ ๋Š” "memset(ptr, 0, sizeof
(ptr));" "ptr"์ด ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ ํฌ์ธํ„ฐ์ด๊ณ  ๊ฐ€๋Šฅํ•œ ์ˆ˜์ •์„ ์ œ์•ˆํ•˜๋Š” ๊ฒฝ์šฐ ๋˜๋Š”
"memcpy(&foo, ptr, sizeof(&foo))"์— ๋Œ€ํ•ด. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-Wsizeof-๋ฐฐ์—ด ์ธ์ˆ˜
๋ฐฐ์—ด๋กœ ์„ ์–ธ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜์— "sizeof" ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋  ๋•Œ ๊ฒฝ๊ณ 
ํ•จ์ˆ˜ ์ •์˜์—์„œ. ์ด ๊ฒฝ๊ณ ๋Š” C ๋ฐ C++ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-Wmemset-transposed-args
๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ "memset" ๋‚ด์žฅ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์˜์‹ฌ์Šค๋Ÿฌ์šด ํ˜ธ์ถœ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
XNUMX์ด ์•„๋‹ˆ๊ณ  ์„ธ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” XNUMX์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "memset(buf, sizeof
buf, 0)" ์—ฌ๊ธฐ์„œ ์•„๋งˆ๋„ "memset(buf, 0, sizeof buf)"๋ฅผ ์˜๋ฏธํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ง„๋‹จ์€ ์„ธ ๋ฒˆ์งธ ์ธ์ˆ˜๊ฐ€ ๋ฆฌํ„ฐ๋Ÿด XNUMX์ธ ๊ฒฝ์šฐ์—๋งŒ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ผ๋ถ€๋ผ๋ฉด
XNUMX์œผ๋กœ ์ ‘ํžŒ ํ‘œํ˜„์‹, XNUMX์„ ํŠน์ • ์œ ํ˜•์œผ๋กœ ์บ์ŠคํŠธ ๋“ฑ์€ ํ›จ์”ฌ ์ ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ์ธ์ˆ˜๋ฅผ ๊ตํ™˜ํ–ˆ๊ณ  ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-์›Œ๋“œ๋ ˆ์Šค
๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ์˜์‹ฌ์Šค๋Ÿฌ์šด ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
"void func(void); if(func)"์™€ ๊ฐ™์€ ์กฐ๊ฑด์‹์˜ ํ•จ์ˆ˜ ๋ฐ
"if (x == "abc")"์™€ ๊ฐ™์€ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ๋Œ€ํ•œ ๋น„๊ต.
์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋Š” ํ•ญ์ƒ
true๋กœ ํ‰๊ฐ€๋˜๋ฏ€๋กœ ์กฐ๊ฑด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€
ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ ๊ด„ํ˜ธ๋ฅผ ์žŠ์–ด ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๊ณผ์˜ ๋น„๊ต
์ง€์ •๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•˜๊ณ  C์—์„œ ์ด์‹ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ "strcmp"๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-W๋…ผ๋ฆฌ์  ์—ฐ์‚ฐ
ํ‘œํ˜„์‹์—์„œ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋น„ํŠธ ๋‹จ์œ„ ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ˆ์ƒ๋˜๋Š” ์ปจํ…์ŠคํŠธ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž.

-Wlogical-not-๊ด„ํ˜ธ
๋น„๊ต์˜ ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์— ๋…ผ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ RHS ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ถ€์šธ ์œ ํ˜•์ธ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ชฉ์ ์€
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜์‹ฌ์Šค๋Ÿฌ์šด ์ฝ”๋“œ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ •์ˆ˜
...
๋งŒ์•ฝ (!a > 1) { ... }

LHS๋ฅผ ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

if ((!a) > 1) { ... }

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-Waggregate-๋ฆฌํ„ด
๊ตฌ์กฐ์ฒด ๋˜๋Š” ๊ณต์šฉ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜๊ฑฐ๋‚˜ ํ˜ธ์ถœ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. (์—
๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์ธ ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.)

- Wno-aggressive-loop ์ตœ์ ํ™”
๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ผ์ •ํ•œ ๋ฃจํ”„์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๋ฉด ๊ฒฝ๊ณ 
ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ˜๋ณต ๋™์•ˆ ์ผ๋ถ€ ๋ช…๋ น๋ฌธ์˜ ๋™์ž‘.

-Wno-์†์„ฑ
์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ์†์„ฑ๊ณผ ๊ฐ™์ด ์˜ˆ๊ธฐ์น˜ ์•Š์€ "__attribute__"๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ณ€์ˆ˜ ๋“ฑ์— ์ ์šฉ๋œ ํ•จ์ˆ˜ ์†์„ฑ
์ง€์›๋˜๋Š” ์†์„ฑ์˜ ์ž˜๋ชป๋œ ์‚ฌ์šฉ.

-Wno ๋‚ด์žฅ ๋งคํฌ๋กœ ์žฌ์ •์˜
ํŠน์ • ๋‚ด์žฅ ๋งคํฌ๋กœ๊ฐ€ ์žฌ์ •์˜๋˜๋ฉด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
"__TIMESTAMP__", "__TIME__", "__DATE__", "__FILE__"์˜ ์žฌ์ •์˜ ๋ฐ
"__BASE_FILE__".

-Wstrict ํ”„๋กœํ† ํƒ€์ž… (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
์ธ์ˆ˜ ์œ ํ˜•์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ฑฐ๋‚˜ ์ •์˜๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. (NS
์ด์ „ ์Šคํƒ€์ผ์˜ ํ•จ์ˆ˜ ์ •์˜๊ฐ€ ์•ž์— ์˜ค๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ  ์—†์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜ ์œ ํ˜•์„ ์ง€์ •ํ•˜๋Š” ์„ ์–ธ).

-Wold ์Šคํƒ€์ผ ์„ ์–ธ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
์„ ์–ธ์—์„œ C ํ‘œ์ค€์— ๋”ฐ๋ผ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด "์ •์ "๊ณผ ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค ์ง€์ •์ž๊ฐ€
์„ ์–ธ. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -์›ฉ์ŠคํŠธ๋ผ.

-Wold ์Šคํƒ€์ผ ์ •์˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
๊ตฌ์‹ ํ•จ์ˆ˜ ์ •์˜๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด์ „ ํ”„๋กœํ† ํƒ€์ž….

-Wmissing-๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ํ˜• (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” K&R ์Šคํƒ€์ผ ํ•จ์ˆ˜์—์„œ ์œ ํ˜• ์ง€์ •์ž ์—†์ด ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค.

๋ฌดํšจ foo(๋ง‰๋Œ€) { }

์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด์„œ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -์›ฉ์ŠคํŠธ๋ผ.

-Wmissing-ํ”„๋กœํ† ํƒ€์ž… (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
์ด์ „ ํ”„๋กœํ† ํƒ€์ž… ์„ ์–ธ ์—†์ด ์ „์—ญ ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋œ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ •์˜ ์ž์ฒด๊ฐ€ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ๊ณตํ•˜๋”๋ผ๋„ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉ
์ผ์น˜ํ•˜๋Š” ํ”„๋กœํ† ํƒ€์ž… ์„ ์–ธ์ด ์—†๋Š” ์ „์—ญ ํ•จ์ˆ˜๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด
ํ—ค๋” ํŒŒ์ผ. ๋ชจ๋“  ํ•จ์ˆ˜ ์„ ์–ธ ๋•Œ๋ฌธ์— ์ด ์˜ต์…˜์€ C++์— ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ๊ณตํ•˜๊ณ  ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์„ ์–ธ์€
์ด์ „ ์„ ์–ธ๊ณผ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -Wmissing-์„ ์–ธ ๋ˆ„๋ฝ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด
C++์—์„œ ์„ ์–ธ.

-Wmissing-์„ ์–ธ
์ „์—ญ ํ•จ์ˆ˜๊ฐ€ ์ด์ „ ์„ ์–ธ ์—†์ด ์ •์˜๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ์šฐ์—๋„ ๊ทธ๋ ‡๊ฒŒ ํ•˜์‹ญ์‹œ์˜ค
์ •์˜ ์ž์ฒด๊ฐ€ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์—ญ
ํ—ค๋” ํŒŒ์ผ์— ์„ ์–ธ๋˜์ง€ ์•Š์€ ํ•จ์ˆ˜ C์—์„œ๋Š” ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด์ „์˜ ๋น„ ํ”„๋กœํ† ํƒ€์ž… ์„ ์–ธ์ด ์žˆ๋Š” ํ•จ์ˆ˜; ์‚ฌ์šฉํ•˜๋‹ค -Wmissing-ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ง€
๋ˆ„๋ฝ ๋œ ํ”„๋กœํ†  ํƒ€์ž…. C++์—์„œ๋Š” ํ•จ์ˆ˜ ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ํ•จ์ˆ˜ ๋˜๋Š” ์ต๋ช… ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ํ•จ์ˆ˜์šฉ.

-Wmissing-field-initializers
๊ตฌ์กฐ์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €์— ์ผ๋ถ€ ํ•„๋“œ๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ
"xh"๊ฐ€ ์•”์‹œ์ ์œผ๋กœ XNUMX์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์—์„œ ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ฒด s { int f, g, h; };
๊ตฌ์กฐ์ฒด sx = { 3, 4 };

์ด ์˜ต์…˜์€ ์ง€์ •๋œ ์ด๋‹ˆ์…œ๋ผ์ด์ €์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‹ค์Œ ์ˆ˜์ •
๊ฒฝ๊ณ ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค:

๊ตฌ์กฐ์ฒด s { int f, g, h; };
๊ตฌ์กฐ์ฒด sx = { .f = 3, .g = 4 };

C++์—์„œ ์ด ์˜ต์…˜์€ ๋นˆ { } ์ด๋‹ˆ์…œ๋ผ์ด์ €์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ฒด s { int f, g, h; };
sx = { };

์ด ๊ฒฝ๊ณ ๋Š” -์›ฉ์ŠคํŠธ๋ผ. ๋‹ค๋ฅธ ๊ฒƒ์„ ์–ป์œผ๋ ค๋ฉด -์›ฉ์ŠคํŠธ๋ผ ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ๊ฒฝ๊ณ ,
์‚ฌ์šฉ -์›ฉ์ŠคํŠธ๋ผ -Wno-missing-field-initializers.

-Wno-๋‹ค์ค‘ ๋ฌธ์ž
๋‹ค์ค‘ ๋ฌธ์ž ์ƒ์ˆ˜('ํ‘ธํ”„') ์‚ฌ์šฉ. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋“ค์€ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค
์‚ฌ์šฉ์ž ์ฝ”๋“œ์˜ ์˜คํƒ€๋Š” ๊ตฌํ˜„์— ์ •์˜๋œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
์ด์‹ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

- ์ •๊ทœํ™”[=<์—†์Œ|id|NFC|nfkc>]
ISO C ๋ฐ ISO C++์—์„œ ๋‘ ์‹๋ณ„์ž๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์‹œํ€€์Šค์ธ ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๋ฌธ์ž. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ ๊ธฐ๋ณธ ASCII ๋ฌธ์ž ์ง‘ํ•ฉ ์ด์™ธ์˜ ๋ฌธ์ž๊ฐ€
์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋™์ผํ•˜๊ฒŒ ๋ณด์ด๋Š” ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž ์‹œํ€€์Šค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”ผํ•˜๊ธฐ ์œ„ํ•ด
ํ˜ผ๋ž€, ISO 10646 ํ‘œ์ค€์€ ๋ช‡ ๊ฐ€์ง€ ํ‘œ์ค€ํ™” ๊ทœ์น™ ์ ์šฉํ•  ๋•Œ
๊ฐ™์•„ ๋ณด์ด๋Š” ๋‘ ์‹œํ€€์Šค๊ฐ€ โ€‹โ€‹๋™์ผํ•œ ์‹œํ€€์Šค๋กœ ๋ฐ”๋€Œ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. GCC
์ •๊ทœํ™”๋˜์ง€ ์•Š์€ ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜
ํ•ด๋‹น ๊ฒฝ๊ณ ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

GCC์—์„œ ์ง€์›ํ•˜๋Š” ๊ฒฝ๊ณ ์—๋Š” ๋„ค ๊ฐ€์ง€ ์ˆ˜์ค€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -ํ‘œ์ค€ํ™”=nfc,
ISO 10646 "C" ์ •๊ทœํ™” ํ˜•์‹์ด ์•„๋‹Œ ์‹๋ณ„์ž์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
NFC. NFC๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์šฉ๋„์— ๊ถŒ์žฅ๋˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค - ์ •๊ทœํ™”.

๋ถˆํ–‰ํžˆ๋„ ISO C ๋ฐ ISO C++์—์„œ ์‹๋ณ„์ž์— ํ—ˆ์šฉ๋˜๋Š” ์ผ๋ถ€ ๋ฌธ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
NFC๋กœ ์ „ํ™˜๋˜๋ฉด ์‹๋ณ„์ž์—์„œ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.
ํœด๋Œ€์šฉ ISO C ๋˜๋Š” C++์—์„œ ์ด๋Ÿฌํ•œ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  NFC์— ๋ชจ๋“  ์‹๋ณ„์ž๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
-ํ‘œ์ค€ํ™”=id ์ด ๋ฌธ์ž์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ž˜๊ฐ€ ๊ธฐ๋Œ€๋œ๋‹ค
๊ด€๋ จ๋œ ํ‘œ์ค€ ๋ฒ„์ „์ด ์ด๋ฅผ ์ˆ˜์ •ํ•˜๋ฏ€๋กœ ์ด ์˜ต์…˜์ด
๊ธฐ๋ณธ๊ฐ’.

๋‹ค์Œ์„ ์ž‘์„ฑํ•˜์—ฌ ๋ชจ๋“  ๋ฌธ์ž์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -W์ •๊ทœํ™”=์—†์Œ or
- ์ •๊ทœํ™”๋˜์ง€ ์•Š์Œ. ๋‹ค๋ฅธ ์ •๊ทœํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์Šคํ‚ค๋งˆ(์˜ˆ: "D"), ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๋ฒ„๊ทธ๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ISO 10646์˜ ์ผ๋ถ€ ๋ฌธ์ž๋Š” ๊ณ ์œ ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–์ง€๋งŒ ์ผ๋ถ€ ๊ธ€๊ผด์—์„œ๋Š” ๋™์ผํ•˜๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค.
ํŠนํžˆ ํฌ๋งท์ด ์ ์šฉ๋œ ํ›„์—๋Š” ๋ฐฉ๋ฒ•๋ก ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด
"\u207F", "SUPERSCRIPT LATIN SMALL LETTER N"์€ ์ผ๋ฐ˜ "n"์ฒ˜๋Ÿผ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์œ„ ์ฒจ์ž์— ๋ฐฐ์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ISO 10646์€ ๋‹ค์Œ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. NFKC ์ •๊ทœํ™” ๊ณ„ํš
์ด ๋ชจ๋“  ๊ฒƒ์„ ํ‘œ์ค€ ํ˜•์‹์œผ๋กœ๋„ ๋ณ€ํ™˜ํ•˜๋ฉด GCC์—์„œ ์ฝ”๋“œ๊ฐ€
NFKC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -ํ‘œ์ค€ํ™”=nfkc. ์ด ๊ฒฝ๊ณ ๋Š” ๋ชจ๋“ 
์ˆซ์ž 0๊ณผ ํ˜ผ๋™๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ž O๊ฐ€ ํฌํ•จ๋œ ์‹๋ณ„์ž,
๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ๊ฐ’์€ ์•„๋‹ˆ์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋กœ์ปฌ ์ฝ”๋”ฉ ๊ทœ์น™์œผ๋กœ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ž๋ฅผ ๋šœ๋ ทํ•˜๊ฒŒ ํ‘œ์‹œํ•˜๋„๋ก ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

- ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ
๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-Wno-deprecated-์„ ์–ธ
๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋œ ํ•จ์ˆ˜, ๋ณ€์ˆ˜ ๋ฐ ์œ ํ˜•์˜ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
"deprecated" ์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-Wno ์˜ค๋ฒ„ํ”Œ๋กœ
์ƒ์ˆ˜ ํ‘œํ˜„์‹์—์„œ ์ปดํŒŒ์ผ ํƒ€์ž„ ์˜ค๋ฒ„ํ”Œ๋กœ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-Wno-odr
๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™” ์ค‘ ํ•˜๋‚˜์˜ ์ •์˜ ๊ทœ์น™ ์œ„๋ฐ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”
-flto-odr-์œ ํ˜• ๋ณ‘ํ•ฉ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-Wopenmp-simd
๋ฒกํ„ฐํ™” ๋น„์šฉ ๋ชจ๋ธ์ด OpenMP ๋˜๋Š” Cilk Plus simd ์ง€์‹œ๋ฌธ์„ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ 
์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. NS -fsimd-๋น„์šฉ ๋ชจ๋ธ=๋ฌด์ œํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์šฉ์„ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

-Woverride ์ดˆ๊ธฐํ™” (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
์ง€์ •๋œ ์‚ฌ์šฉ ์‹œ ๋ถ€์ž‘์šฉ์ด ์—†๋Š” ์ดˆ๊ธฐํ™”๋œ ํ•„๋“œ๊ฐ€ ์žฌ์ •์˜๋˜๋ฉด ๊ฒฝ๊ณ 
์ด๋‹ˆ์…œ๋ผ์ด์ €.

์ด ๊ฒฝ๊ณ ๋Š” -์›ฉ์ŠคํŠธ๋ผ. ๋‹ค๋ฅธ ๊ฒƒ์„ ์–ป์œผ๋ ค๋ฉด -์›ฉ์ŠคํŠธ๋ผ ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ๊ฒฝ๊ณ ,
์‚ฌ์šฉ -์›ฉ์ŠคํŠธ๋ผ -Wno-์žฌ์ •์˜-์ดˆ๊ธฐํ™”.

-Wํฌ์žฅ
๊ตฌ์กฐ์— ํŒจํ‚น๋œ ์†์„ฑ์ด ์ง€์ •๋˜์–ด ์žˆ์ง€๋งŒ ํŒจํ‚น๋œ ์†์„ฑ์— ์—†๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์กฐ์˜ ๋ ˆ์ด์•„์›ƒ์ด๋‚˜ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž˜๋ชป ์ •๋ ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž‘์€ ์ด์ต. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ์ฝ”๋“œ์—์„œ "struct bar"์˜ ๋ณ€์ˆ˜ "fx"๋Š”
"struct bar" ์ž์ฒด์— ํŒจํ‚น๋œ ์†์„ฑ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ์ž˜๋ชป ์ •๋ ฌ๋จ:

๊ตฌ์กฐ์ฒด foo {
int x;
๋ฌธ์ž a, b, c, d;
} __attribute __ ((packed));
๊ตฌ์กฐ์ฒด ๋ง‰๋Œ€ {
๋ฌธ์ž Z;
๊ตฌ์กฐ์ฒด foo f;
};

-Wpacked-bitfield-compat
GCC์˜ 4.1, 4.2 ๋ฐ 4.3 ์‹œ๋ฆฌ์ฆˆ๋Š” ๋‹ค์Œ ์œ ํ˜•์˜ ๋น„ํŠธ ํ•„๋“œ์—์„œ "packed" ์†์„ฑ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
"์ˆฏ". ์ด๊ฒƒ์€ GCC 4.4์—์„œ ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด
๊ตฌ์กฐ ๋ ˆ์ด์•„์›ƒ. GCC์—์„œ ์ด๋Ÿฌํ•œ ํ•„๋“œ์˜ ์˜คํ”„์…‹์ด ๋ณ€๊ฒฝ๋˜๋ฉด GCC์—์„œ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
4.4. ์˜ˆ๋ฅผ ๋“ค์–ด "a" ํ•„๋“œ์™€ "b" ํ•„๋“œ ์‚ฌ์ด์— ๋” ์ด์ƒ 4๋น„ํŠธ ํŒจ๋”ฉ์ด ์—†์Šต๋‹ˆ๋‹ค.
๊ตฌ์กฐ:

๊ตฌ์กฐ foo
{
๋ฌธ์ž a:4;
๋ฌธ์ž b:8;
} __attribute__ ((ํฌ์žฅ));

์ด ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -Wno-packed-bitfield-compat ์ด๊ฒƒ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
๊ฒฝ๊ณ .

-WํŒจ๋”ฉ
ํŒจ๋”ฉ์ด ๊ตฌ์กฐ์ฒด์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์กฐ ๋˜๋Š” ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋” ์ด๋Ÿฐ ์ผ์ด ์žˆ์„ ๋•Œ ๊ฐ€๋Šฅํ•˜๋‹ค
ํŒจ๋”ฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ตฌ์กฐ์˜ ํ•„๋“œ๋ฅผ ์žฌ์ •๋ ฌํ•˜๊ณ 
๋” ์ž‘์€ ๊ตฌ์กฐ.

- Wredundant-decls
๋™์ผํ•œ ๋ฒ”์œ„์—์„œ ๋‘ ๋ฒˆ ์ด์ƒ ์„ ์–ธ๋œ ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์ค‘ ์„ ์–ธ์€ ์œ ํšจํ•˜๋ฉฐ ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-Wnested-externs (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํ•จ์ˆ˜ ๋‚ด์—์„œ "extern" ์„ ์–ธ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-Wno-์ƒ์†๋œ-variadic-ctor
๊ธฐ๋ณธ ํด๋ž˜์Šค์ธ ๊ฒฝ์šฐ C++11 ์ƒ์† ์ƒ์„ฑ์ž ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ํ‘œ์‹œ ์•ˆ ํ•จ
์—์„œ ์ƒ์†๋œ C variadic ์ƒ์„ฑ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
์ค„์ž„ํ‘œ๋Š” ์ƒ์†๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์œˆ๋ผ์ธ
์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์œผ๋กœ๋„
์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์— ์„ ์–ธ๋œ ์ธ๋ผ์ธ ํ•จ์ˆ˜ ์‹คํŒจ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ ํ—ค๋”.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์  ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๋ผ์ธํ•  ๊ฒƒ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•จ์ˆ˜์˜ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ๋ฐ ํ˜„์žฌ ํ•จ์ˆ˜์—์„œ ์ด๋ฏธ ์ˆ˜ํ–‰๋œ ์ธ๋ผ์ธ ์–‘์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฒ‰๋ณด๊ธฐ์— ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๊ฒฝ๊ณ  -์œˆ๋ผ์ธ ๋‚˜ํƒ€๋‚˜๊ฑฐ๋‚˜ ์‚ฌ๋ผ์ง€๋‹ค.

-Wno-invalid-offsetof (C++ ๋ฐ Objective-C++๋งŒ ํ•ด๋‹น)
"offsetof" ๋งคํฌ๋กœ๋ฅผ POD๊ฐ€ ์•„๋‹Œ ์œ ํ˜•์— ์ ์šฉํ•˜๋Š” ๊ฒฝ๊ณ ๋ฅผ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค. ์— ๋”ฐ๋ฅด๋ฉด
2014 ISO C++ ํ‘œ์ค€์—์„œ "offsetof"๋ฅผ ๋น„ํ‘œ์ค€ ๋ ˆ์ด์•„์›ƒ ์œ ํ˜•์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€
์ฐพ์œผ์‹œ๋Š” ์ฃผ์†Œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ์กด C++ ๊ตฌํ˜„์—์„œ "offsetof"๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์˜๋ฏธ ์žˆ๋Š” ๊ฒฐ๊ณผ. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์ž์‹ ์ด ์“ฐ๊ณ  ์žˆ์Œ์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด์‹ํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ์™€ ์ด์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์˜๋„์ ์œผ๋กœ ๋ฌด์‹œํ•˜๊ธฐ๋กœ ์„ ํƒํ•œ ์‚ฌ์šฉ์ž.

"offsetof"์— ๋Œ€ํ•œ ์ œํ•œ์€ C++ ํ‘œ์ค€์˜ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ์™„ํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ํฌ์ธํ„ฐ ํˆฌ ํฌ์ธํ„ฐ ์บ์ŠคํŠธ ์—†์Œ
ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ์ •์ˆ˜์˜ ํฌ์ธํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์บ์ŠคํŠธ์—์„œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—
C++์—์„œ ๋” ์ž‘์€ ํฌ๊ธฐ์˜ ํฌ์ธํ„ฐ ์œ ํ˜•์œผ๋กœ ์บ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. Wint-to-pointer ์บ์ŠคํŠธ is
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

- Wno-pointer-to-int-cast (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํฌ์ธํ„ฐ์—์„œ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ์ •์ˆ˜ ์œ ํ˜•์œผ๋กœ์˜ ์บ์ŠคํŠธ ๊ฒฝ๊ณ ๋ฅผ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.

-Winvalid-pch
๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”๊ฐ€ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— ์žˆ์ง€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-๋กฑ๋กฑ
"long long" ์œ ํ˜•์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -Wpedantic or
-์ „ํ†ต์ ์ธ ISO C90 ๋ฐ C++98 ๋ชจ๋“œ์—์„œ. ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๊ธˆ์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
-์˜ค๋กฑ๋กฑ.

-Wvariadic ๋งคํฌ๋กœ
๊ฐ€๋ณ€ ๋งคํฌ๋กœ๊ฐ€ ISO C90 ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜ GNU ๋Œ€์ฒด ๊ตฌ๋ฌธ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ISO C99 ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -Wpedantic or -์ „ํ†ต์ ์ธ. ์—
๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ๊ธˆ์ง€, ์‚ฌ์šฉ -Wno-variadic-๋งคํฌ๋กœ.

-Wvarargs
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณ€์ˆ˜ ์ธ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋งคํฌ๋กœ์˜ ์˜์‹ฌ์Šค๋Ÿฌ์šด ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
"va_start". ์ด๊ฒƒ์€ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๊ธˆ์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. -Wno-๋ณ€์ˆ˜.

-W๋ฒกํ„ฐ ์ž‘์—… ์„ฑ๋Šฅ
์•„ํ‚คํ…์ฒ˜์˜ SIMD ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฒกํ„ฐ ์ž‘์—…์ด ๊ตฌํ˜„๋˜์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ฃผ๋กœ ์„ฑ๋Šฅ ์กฐ์ •์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฒกํ„ฐ ์—ฐ์‚ฐ ๊ตฌํ˜„ ๊ฐ€๋Šฅ
"์กฐ๊ฐ๋ณ„", ์ด๋Š” ์Šค์นผ๋ผ ์—ฐ์‚ฐ์ด ๋ชจ๋“  ๋ฒกํ„ฐ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์š”์†Œ; "๋ณ‘๋ ฌ๋กœ", ์ด๋Š” ๋ฒกํ„ฐ ์—ฐ์‚ฐ์ด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ๋” ์„ฑ๋Šฅ ํšจ์œจ์ ์ธ ๋” ๋„“์€ ์œ ํ˜•์˜ ์Šค์นผ๋ผ; ๊ทธ๋ฆฌ๊ณ  "์‹ฑ๊ธ€๋กœ
์Šค์นผ๋ผ", ์ด๋Š” ๋ฒกํ„ฐ๊ฐ€ ์Šค์นผ๋ผ ์œ ํ˜•์— ๋งž๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

-Wno-๊ฐ€์ƒ ์ด๋™ ํ• ๋‹น
์‚ฌ์†Œํ•œ C++11 ์ด๋™์œผ๋กœ ๊ฐ€์ƒ ๊ธฐ๋ฐ˜์—์„œ ์ƒ์†์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ํ‘œ์‹œ ์•ˆ ํ•จ
ํ• ๋‹น ์—ฐ์‚ฐ์ž. ๊ฐ€์ƒ ๊ธฐ์ง€๊ฐ€
๊ฒฝ๋กœ๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋ฒˆ ์ด๋™ํ•˜๋ฏ€๋กœ ๋‘ ๊ฐœ์ฒด๊ฐ€ ๋ชจ๋‘
์ด์‚ฌํ•œ ์ƒํƒœ. ์ด๋™ ํ• ๋‹น ์—ฐ์‚ฐ์ž๊ฐ€ ์—์„œ ์ด๋™ํ•˜์ง€ ์•Š๋„๋ก ์ž‘์„ฑ๋œ ๊ฒฝ์šฐ
์ด๋™ํ•œ ๊ฐœ์ฒด์—์„œ ์ด ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ๋ธ”๋ผ
์ฝ”๋“œ์— ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด์ด ์‚ฌ์šฉ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. -์šฐ๋…ธ๋ธ”๋ผ ๋ฐฉ์ง€ -Wpedantic
๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด์˜ ๊ฒฝ๊ณ .

-Wํœ˜๋ฐœ์„ฑ ๋ ˆ์ง€์Šคํ„ฐ ๋ณ€์ˆ˜
๋ ˆ์ง€์Šคํ„ฐ ๋ณ€์ˆ˜๊ฐ€ ํœ˜๋ฐœ์„ฑ์œผ๋กœ ์„ ์–ธ๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ํœ˜๋ฐœ์„ฑ ์ˆ˜์ •์ž๋Š”
๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๋ฐ/๋˜๋Š” ์“ฐ๊ธฐ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ตœ์ ํ™” ๊ธˆ์ง€
๋ณ€์ˆ˜. ์ด ๊ฒฝ๊ณ ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -๋ฒฝ.

-Wdisabled-์ตœ์ ํ™”
์š”์ฒญํ•œ ์ตœ์ ํ™” ๋‹จ๊ณ„๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๊ณ ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ
์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ GCC์˜
์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์€ ์ฝ”๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ข…์ข… ๋ฌธ์ œ๋Š”
์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ํฌ๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ์ตœ์ ํ™”ํ•  ๋•Œ ํ”„๋กœ๊ทธ๋žจ ์ตœ์ ํ™”๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.
์ž์ฒด์ ์œผ๋กœ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋งŽ์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-Wpointer ๊ธฐํ˜ธ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
ํฌ์ธํ„ฐ ์ธ์ˆ˜ ์ „๋‹ฌ ๋˜๋Š” ๋ถ€ํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ํ• ๋‹น์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ C ๋ฐ Objective-C์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์— ์˜ํ•ด ์•”์‹œ๋œ๋‹ค -๋ฒฝ ๊ณผ ๋ณ„
-Wpedantic๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -Wno ํฌ์ธํ„ฐ ๊ธฐํ˜ธ.

-Wstack ๋ณดํ˜ธ๊ธฐ
์ด ์˜ต์…˜์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -fstack ๋ณดํ˜ธ๊ธฐ ํ™œ์„ฑ. ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์Šคํƒ ์Šค๋งค์‹ฑ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-Woverlength-๋ฌธ์ž์—ด
"์ตœ์†Œ ์ตœ๋Œ€" ๊ธธ์ด๋ณด๋‹ค ๊ธด ๋ฌธ์ž์—ด ์ƒ์ˆ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ 
C ํ‘œ์ค€์— ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด ์ƒ์ˆ˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ‘œ์ค€์˜ ์ตœ์†Œ ์ œํ•œ๋ณด๋‹ค ํ›จ์”ฌ ๊ธธ์ง€๋งŒ ์ด์‹์„ฑ์ด ๋›ฐ์–ด๋‚œ ํ”„๋กœ๊ทธ๋žจ์€
๋” ๊ธด ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

ํ•œ๋„ ์ ์šฉ ์‹œ๊ฐ„ ๋‚ด์— ๋ฌธ์ž์—ด ์ƒ์ˆ˜ ์—ฐ๊ฒฐ, ํ›„ํ–‰์€ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Œ
๋ฌดํšจ. C90์—์„œ ์ œํ•œ์€ 509์ž์˜€์Šต๋‹ˆ๋‹ค. C99์—์„œ๋Š” 4095๋กœ ์˜ฌ๋ผ๊ฐ”์Šต๋‹ˆ๋‹ค. C++98์€
ํ‘œ์ค€ ์ตœ์†Œ ์ตœ๋Œ€๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ธธ์ด๊ฐ€ ์ดˆ๊ณผ๋œ ๋ฌธ์ž์—ด์€ ์ง„๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
C ++.

์ด ์˜ต์…˜์€ -Wpedantic๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-Wno-overlength-๋ฌธ์ž์—ด.

-Wunsuffixed ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์ˆ˜ (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
์ ‘๋ฏธ์‚ฌ๊ฐ€ ์—†๋Š” ๋ถ€๋™ ์ƒ์ˆ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์‹œ
์™€ ํ•จ๊ป˜ -Wsystem ํ—ค๋” ์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ์—์„œ ์ด๋Ÿฌํ•œ ์ƒ์ˆ˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ "FLOAT_CONST_DECIMAL64" pragma์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋ฅผ ์ค€๋น„ํ•  ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
99์ง„ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ™•์žฅ์—์„œ CXNUMX๋กœ.

-Wno ์ง€์ • ์ดˆ๊ธฐํ™” (C ๋ฐ Objective-C๋งŒ ํ•ด๋‹น)
์œ„์น˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
"designated_init" ์†์„ฑ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ต์…˜ for ๋””๋ฒ„๊น… ๋„ˆ์˜ ํ”„๋กœ๊ทธ๋žจ or GCC
GCC์—๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ GCC๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค์–‘ํ•œ ํŠน์ˆ˜ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

-g ์šด์˜ ์ฒด์ œ์˜ ๊ธฐ๋ณธ ํ˜•์‹(stabs, COFF,
XCOFF ๋˜๋Š” DWARF 2). GDB๋Š” ์ด ๋””๋ฒ„๊น… ์ •๋ณด๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

stabs ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์—์„œ -g ์ถ”๊ฐ€ ๋””๋ฒ„๊น… ์ •๋ณด ์‚ฌ์šฉ ๊ฐ€๋Šฅ
GDB๋งŒ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ; ์ด ์ถ”๊ฐ€ ์ •๋ณด๋Š” GDB์—์„œ ๋””๋ฒ„๊น… ์ž‘์—…์„ ๋” ์ž˜ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ
๋‹ค๋ฅธ ๋””๋ฒ„๊ฑฐ๊ฐ€ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ ์ฝ๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒฝ์šฐ
์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ• ์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์ œ์–ด, ์‚ฌ์šฉ -gstabs +, -gstabs,
-gxcoff+, -gxcoff๋ฐ -gvms (์•„๋ž˜ ์ฐธ์กฐ).

GCC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด -g ๊ณผ -O. ์ตœ์ ํ™”๋œ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์ถ•ํ‚ค๋Š”
๋•Œ๋•Œ๋กœ ๋†€๋ผ์šด ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์„ ์–ธํ•œ ์ผ๋ถ€ ๋ณ€์ˆ˜๋Š” ์— ์กด์žฌํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋‘; ํ†ต์ œ์˜ ํ๋ฆ„์ด ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๊ณณ์œผ๋กœ ์ž ์‹œ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ง„์ˆ ์€
์ƒ์ˆ˜ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ๊ฐ’์ด ์ด๋ฏธ ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์†; ์ผ๋ถ€ ๋ช…๋ น๋ฌธ์€ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์˜ฎ๊ฒจ์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฃจํ”„์˜.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ตœ์ ํ™”๋œ ์ถœ๋ ฅ์„ ๋””๋ฒ„๊ทธํ•  ์ˆ˜ ์žˆ์Œ์ด ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋งŒ๋“ ๋‹ค.
๋ฒ„๊ทธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์€ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ GCC๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ•˜๋‚˜ ์ด์ƒ์˜ ๋””๋ฒ„๊น… ํ˜•์‹.

-gsplit-dwarf
๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๋“œ์›Œํ”„ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ๋ณ„๋„์˜ ์ถœ๋ ฅ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜์‹ญ์‹œ์˜ค.
ํ™•์žฅ์ž๊ฐ€ .dwo์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ ์—ฐ๊ฒฐ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ ์ •๋ณด์™€ ํ•จ๊ป˜. ์œ ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋””๋ฒ„๊ฑฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
.dwo ํŒŒ์ผ ์ฝ๊ธฐ.

-ggdb
GDB์—์„œ ์‚ฌ์šฉํ•  ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฐ€์žฅ ํ‘œํ˜„๋ ฅ์ด
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜•์‹(DWARF 2, ์ฐŒ๋ฅด๊ธฐ ๋˜๋Š” ๋‘˜ ๋‹ค ์—†๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ ํ˜•์‹
์ง€์›๋จ) ๊ฐ€๋Šฅํ•˜๋ฉด GDB ํ™•์žฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

-gpub์ด๋ฆ„
dwarf .debug_pubnames ๋ฐ .debug_pubtypes ์„น์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-ggnu-pubnames
์— ์ ํ•ฉํ•œ ํ˜•์‹์œผ๋กœ .debug_pubnames ๋ฐ .debug_pubtypes ์„น์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
GDB ์ธ๋ฑ์Šค๋กœ ๋ณ€ํ™˜. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ง์ปค์—์„œ๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
GDB ์ธ๋ฑ์Šค ๋ฒ„์ „ 7์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-gstabs
GDB ์—†์ด ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ stabs ํ˜•์‹(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ)์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ™•์žฅ. ์ด๊ฒƒ์€ ๋Œ€๋ถ€๋ถ„์˜ BSD ์‹œ์Šคํ…œ์—์„œ DBX๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค. MIPS, ์•ŒํŒŒ ๋ฐ
System V ๋ฆด๋ฆฌ์Šค 4 ์‹œ์Šคํ…œ ์ด ์˜ต์…˜์€ stabs ๋””๋ฒ„๊น… ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
DBX ๋˜๋Š” SDB์—์„œ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. System V ๋ฆด๋ฆฌ์Šค 4 ์‹œ์Šคํ…œ์—์„œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GNU๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋Ÿฌ.

-feliminate-unused-debug-๊ธฐํ˜ธ
๊ธฐํ˜ธ์— ๋Œ€ํ•ด์„œ๋งŒ stabs ํ˜•์‹(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ)์˜ ๋””๋ฒ„๊น… ์ •๋ณด ์ƒ์„ฑ
์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-femit-class-debug-ํ•ญ์ƒ
ํ•˜๋‚˜์˜ ๊ฐœ์ฒด ํŒŒ์ผ์—์„œ๋งŒ C++ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๋Œ€์‹ ,
ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฐ์ฒด ํŒŒ์ผ์—์„œ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
GCC๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ์‹์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๋””๋ฒ„๊ฑฐ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋””๋ฒ„๊น… ์ •๋ณด์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
XNUMX๋ฐฐ๋งŒํผ.

-fdebug-types-์„น์…˜
DWARF ๋ฒ„์ „ 4 ์ด์ƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์œ ํ˜• DIE๋ฅผ ์ž์ฒด์ ์œผ๋กœ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
".debug_info" ์„น์…˜์˜ ์ผ๋ถ€๋กœ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ".debug_types" ์„น์…˜. ๊ทธ๊ฒƒ
๋ง์ปค๊ฐ€ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ comdat ์„น์…˜์— ๋„ฃ๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ 
์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  DWARF ์†Œ๋น„์ž๊ฐ€ ์•„์ง ".debug_types" ์„น์…˜์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
์ผ๋ถ€ ๊ฐœ์ฒด์—์„œ ".debug_types"๋Š” ๋” ์ž‘์€ ๋””๋ฒ„๊น… ๋Œ€์‹  ๋” ํฌ๊ฒŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ •๋ณด.

-gstabs +
GNU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ stabs ํ˜•์‹(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ)์œผ๋กœ ๋””๋ฒ„๊น… ์ •๋ณด ์ƒ์„ฑ
GNU ๋””๋ฒ„๊ฑฐ(GDB)์—์„œ๋งŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™•์žฅ์˜ ์‚ฌ์šฉ์€
๋‹ค๋ฅธ ๋””๋ฒ„๊ฑฐ๊ฐ€ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ ์ฝ๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

-gcoff
COFF ํ˜•์‹์œผ๋กœ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ). ์ด๊ฒƒ์ด
System V ๋ฆด๋ฆฌ์Šค 4 ์ด์ „์˜ ๋Œ€๋ถ€๋ถ„์˜ System V ์‹œ์Šคํ…œ์—์„œ SDB๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

-gxcoff
XCOFF ํ˜•์‹์œผ๋กœ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ). ์ด๊ฒƒ์ด
IBM RS/6000 ์‹œ์Šคํ…œ์˜ DBX ๋””๋ฒ„๊ฑฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

-gxcoff+
GNU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ XCOFF ํ˜•์‹(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ)์œผ๋กœ ๋””๋ฒ„๊น… ์ •๋ณด ์ƒ์„ฑ
GNU ๋””๋ฒ„๊ฑฐ(GDB)์—์„œ๋งŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™•์žฅ์˜ ์‚ฌ์šฉ์€
๋‹ค๋ฅธ ๋””๋ฒ„๊ฑฐ๊ฐ€ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ ์ฝ๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฉฐ
GNU ์–ด์…ˆ๋ธ”๋Ÿฌ(GAS) ์ด์™ธ์˜ ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

-๊ทธ๋“œ์›Œํ”„-๋ฒ„์ „
DWARF ํ˜•์‹์œผ๋กœ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ). ์˜ ๊ฐ€์น˜
๋ฒ„์ „ 2, 3, 4 ๋˜๋Š” 5์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋Œ€์ƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ฒ„์ „์€ 4์ž…๋‹ˆ๋‹ค. DWARF
๋ฒ„์ „ 5๋Š” ์‹คํ—˜์ ์ž…๋‹ˆ๋‹ค.

DWARF ๋ฒ„์ „ 2์—์„œ๋Š” ์ผ๋ถ€ ํฌํŠธ๊ฐ€ ์ถฉ๋Œํ•˜์ง€ ์•Š๋Š” ์ผ๋ถ€ ํฌํŠธ๋ฅผ ํ•„์š”๋กœ ํ•˜๊ณ  ํ•ญ์ƒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ•ด์ œ ํ…Œ์ด๋ธ”์˜ DWARF 3 ํ™•์žฅ.

๋ฒ„์ „ 4์—๋Š” GDB 7.0 ๋ฐ -fvar-์ถ”์  ํ• ๋‹น ์ตœ๋Œ€ ์ด์ต์„ ์œ„ํ•ด.

-grecord-gcc-์Šค์œ„์น˜
์ด ์Šค์œ„์น˜๋กœ ์ธํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์ด
DWARF์˜ DW_AT_producer ์†์„ฑ์— ์ถ”๊ฐ€๋  ์ฝ”๋“œ ์ƒ์„ฑ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.
๋””๋ฒ„๊น… ์ •๋ณด. ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ตฌ๋ถ„๋˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
์„œ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „์—์„œ. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค -frecord-gcc-์Šค์œ„์น˜ ๋‹ค๋ฅธ์ด๋ฅผ ์œ„ํ•ด
์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜์„ ๊ฐœ์ฒด ํŒŒ์ผ์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-gno-record-gcc-์Šค์œ„์น˜
DWARF์˜ DW_AT_producer ์†์„ฑ์— ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊น… ์ •๋ณด.

-gstrict-dwarf
์—์„œ ์„ ํƒํ•œ ๊ฒƒ๋ณด๋‹ค ์ตœ์‹  DWARF ํ‘œ์ค€ ๋ฒ„์ „์˜ ํ™•์žฅ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
-๊ทธ๋“œ์›Œํ”„-๋ฒ„์ „. ์ดํ›„์˜ ์ถฉ๋Œํ•˜์ง€ ์•Š๋Š” DWARF ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋Œ€์ƒ์—์„œ
ํ‘œ์ค€ ๋ฒ„์ „์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

-gno-strict-dwarf
์„ ํƒํ•œ ๊ฒƒ๋ณด๋‹ค ์ตœ์‹  DWARF ํ‘œ์ค€ ๋ฒ„์ „์˜ ํ™•์žฅ ์‚ฌ์šฉ ํ—ˆ์šฉ
-๊ทธ๋“œ์›Œํ”„-๋ฒ„์ „.

-gz[=์œ ํ˜•]
์ง€์›๋˜๋Š” ๊ฒฝ์šฐ DWARF ํ˜•์‹์œผ๋กœ ์••์ถ•๋œ ๋””๋ฒ„๊ทธ ์„น์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ์œ ํ˜• is
์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์œ ํ˜•์€ ์–ด์…ˆ๋ธ”๋Ÿฌ ๋ฐ ๋ง์ปค์˜ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ต์ˆ™ํ•œ. ์œ ํ˜• ์ค‘ ํ•˜๋‚˜ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์—†์Œ (๋””๋ฒ„๊ทธ ์„น์…˜์„ ์••์ถ•ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค), ZLIB (zlib ์‚ฌ์šฉ
ELF gABI ํ˜•์‹์˜ ์••์ถ•), ๋˜๋Š” zlib-gnu (๊ธฐ์กด GNU์—์„œ zlib ์••์ถ• ์‚ฌ์šฉ
์ฒด์žฌ). ๋ง์ปค๊ฐ€ ์••์ถ•๋œ ๋””๋ฒ„๊ทธ ์„น์…˜ ์ž‘์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์˜ต์…˜
๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๊ณ  ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด -gz ์กฐ์šฉํžˆ
๊ฐœ์ฒด ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋•Œ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

-gvms
Alpha/VMS ๋””๋ฒ„๊ทธ ํ˜•์‹์œผ๋กœ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์ง€์›๋˜๋Š” ๊ฒฝ์šฐ). ์ด๊ฒƒ
Alpha/VMS ์‹œ์Šคํ…œ์˜ DEBUG์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

-g์ˆ˜ํ‰
-ggdb์ˆ˜ํ‰
-gstabs์ˆ˜ํ‰
-gcoff์ˆ˜ํ‰
-gxcoff์ˆ˜ํ‰
-gvms์ˆ˜ํ‰
๋””๋ฒ„๊น… ์ •๋ณด ์š”์ฒญ ๋ฐ ์‚ฌ์šฉ ์ˆ˜ํ‰ ์ •๋ณด์˜ ์–‘์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ ๋ ˆ๋ฒจ์€ 2์ž…๋‹ˆ๋‹ค.

๋ ˆ๋ฒจ 0์€ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ „ํ˜€ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, -g0 ๋ถ€์ •ํ•˜๋‹ค -g.

๋ ˆ๋ฒจ 1์€ ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ผ๋ถ€๋ฅผ ์—ญ์ถ”์ ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธํ•  ๊ณ„ํš์ด ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ. ์—ฌ๊ธฐ์—๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ
์™ธ๋ถ€ ๋ณ€์ˆ˜ ๋ฐ ํ–‰ ๋ฒˆํ˜ธ ํ…Œ์ด๋ธ”์€ ์žˆ์ง€๋งŒ ์ง€์—ญ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋ ˆ๋ฒจ 3์—๋Š” ํŒŒ์ผ์— ์žˆ๋Š” ๋ชจ๋“  ๋งคํฌ๋กœ ์ •์˜์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ. ์ผ๋ถ€ ๋””๋ฒ„๊ฑฐ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋งคํฌ๋กœ ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. -g3.

-gdwarf-2 GCC๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ๊ฒฐ๋œ ๋””๋ฒ„๊ทธ ์ˆ˜์ค€์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์„ ํƒ๊ถŒ -gdwarf ์ด๋Š” DWARF ๋ฒ„์ „ 1์—์„œ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
ํ˜•์‹(๋ฒ„์ „ 2์™€ ๋งค์šฐ ๋‹ค๋ฆ„)์ด๋ฉฐ ๋„ˆ๋ฌด ํ˜ผ๋ž€์Šค๋Ÿฌ์› ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ•ด๋‹น ๋””๋ฒ„๊ทธ ํ˜•์‹์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ ์ง€๊ธˆ์€ ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์‚ฌ์šฉ
์ถ”๊ฐ€์˜ -g์ˆ˜ํ‰ DWARF์˜ ๋””๋ฒ„๊ทธ ์ˆ˜์ค€์„ ๋ณ€๊ฒฝํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

-gttoggle
์ด ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋ฉด ๋””๋ฒ„๊ทธ ์ •๋ณด ์ƒ์„ฑ์„ ๋„๊ฑฐ๋‚˜ ๋„์‹ญ์‹œ์˜ค.
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ ˆ๋ฒจ 2์—์„œ ์ผœ์ง‘๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์—์„œ ์ด ์ธ์ˆ˜์˜ ์œ„์น˜๋Š”
๋ฌธ์ œ; ๋‹ค๋ฅธ ๋ชจ๋“  ์˜ต์…˜์ด ์ฒ˜๋ฆฌ๋œ ํ›„์— ์ ์šฉ๋˜๋ฉฐ,
๋ช‡ ๋ฒˆ์„ ์ฃผ์–ด๋„ ํ•œ ๋ฒˆ. ์ด๊ฒƒ์€ ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
-fcompare-๋””๋ฒ„๊ทธ.

-fsanitize=์ฃผ์†Œ
๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฅ˜ ๊ฐ์ง€๊ธฐ์ธ AddressSanitizer๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ๋ช…๋ น์€
out-of-bounds ๋ฐ use-after-free ๋ฒ„๊ทธ๋ฅผ ๊ฐ์ง€ํ•˜๋„๋ก ๊ณ„์ธก๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค
<https://github.com/google/sanitizers/wiki/AddressSanitizer> ์ž์„ธํ•œ ๋‚ด์šฉ์€. NS
๋Ÿฐํƒ€์ž„ ๋™์ž‘์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ASAN_OPTIONS ํ™˜๊ฒฝ ๋ณ€์ˆ˜. ์–ธ์ œ
"help=1"๋กœ ์„ค์ •ํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ด ๊ธฐ๊ธฐ ์‹œ์ž‘ ์‹œ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ. ๋ณด๋‹ค
<https://github.com/google/sanitizers/wiki/AddressSanitizerFlags#run-time-flags> ์œ„ํ•ด
์ง€์›๋˜๋Š” ์˜ต์…˜ ๋ชฉ๋ก.

-fsanitize=์ปค๋„ ์ฃผ์†Œ
Linux ์ปค๋„์šฉ AddressSanitizer๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹คhttps://github.com/google/kasan/wiki>
์ž์„ธํ•œ ๋‚ด์šฉ์€.

-fsanitize=์“ฐ๋ ˆ๋“œ
๋น ๋ฅธ ๋ฐ์ดํ„ฐ ๊ฒฝํ•ฉ ๊ฐ์ง€๊ธฐ์ธ ThreadSanitizer๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ๋ช…๋ น์€
๋ฐ์ดํ„ฐ ๊ฒฝ์Ÿ ๋ฒ„๊ทธ๋ฅผ ๊ฐ์ง€ํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค
<https://github.com/google/sanitizers/wiki#threadsanitizer> ์ž์„ธํ•œ ๋‚ด์šฉ์€. ์งˆ์ฃผ-
์‹œ๊ฐ„ ํ–‰๋™์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TSAN_OPTIONS ํ™˜๊ฒฝ ๋ณ€์ˆ˜; ๋ณด๋‹ค
<https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags> ๋ชฉ๋ก์˜ ๊ฒฝ์šฐ
์ง€์›๋˜๋Š” ์˜ต์…˜.

-fsanitize=๋ˆ„์ถœ
๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๊ฐ์ง€๊ธฐ์ธ LeakSanitizer๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
์‹คํ–‰ ํŒŒ์ผ๊ณผ ๋‘˜ ๋‹ค ์—†๋Š” ๊ฒฝ์šฐ -fsanitize=์ฃผ์†Œ ...๋„ ์•„๋‹ˆ๋‹ค -fsanitize=์“ฐ๋ ˆ๋“œ ์‚ฌ์šฉ. ๊ทธ ์•ˆ์—
์‹คํ–‰ ํŒŒ์ผ์ด "malloc" ๋ฐ ๊ธฐํƒ€๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ๋งํฌ๋œ ๊ฒฝ์šฐ
ํ• ๋‹น์ž ๊ธฐ๋Šฅ. ๋ณด๋‹ค
<https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer> ๋”
์„ธ๋ถ€. ๋Ÿฐํƒ€์ž„ ๋™์ž‘์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LSAN_OPTIONS ํ™˜๊ฒฝ
๋ณ€ํ•˜๊ธฐ ์‰ฌ์šด.

-fsanitize=์ •์˜๋˜์ง€ ์•Š์Œ
๋น ๋ฅธ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘ ๊ฐ์ง€๊ธฐ์ธ UndefinedBehaviorSanitizer๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ
๊ณ„์‚ฐ์€ ๋Ÿฐํƒ€์ž„์— ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์„ ๊ฐ์ง€ํ•˜๋„๋ก ๊ณ„์ธก๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ์˜
ํ•˜์œ„ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

-fsanitize=์‹œํ”„ํŠธ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œํ”„ํŠธ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๊ฐ€
์ฐพ์œผ์‹œ๋Š” ์ฃผ์†Œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
C์™€ C++ ์‚ฌ์ด, ISO C90๊ณผ C99 ์‚ฌ์ด ๋“ฑ

-fsanitize=XNUMX์œผ๋กœ ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ
"INT_MIN / -1" ๋‚˜๋ˆ—์…ˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ XNUMX์œผ๋กœ ์ •์ˆ˜ ๋‚˜๋ˆ—์…ˆ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

-fsanitize=์—ฐ๊ฒฐ ๋ถˆ๊ฐ€
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” "__builtin_unreachable" ํ˜ธ์ถœ์„
๋Œ€์‹  ์ง„๋‹จ ๋ฉ”์‹œ์ง€ ํ˜ธ์ถœ. "__builtin_unreachable" ํ˜ธ์ถœ์— ๋„๋‹ฌํ•˜๋ฉด,
๋™์ž‘์€ ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fsanitize=vla ๋ฐ”์ธ๋”ฉ
์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ€๋ณ€ ๊ธธ์ด์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐ์—ด์€ ์–‘์ˆ˜์ž…๋‹ˆ๋‹ค.

-fsanitize=๋„
์ด ์˜ต์…˜์€ ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ,
์ด ์˜ต์…˜์„ ์ผœ๋ฉด ์—ญ์ฐธ์กฐ๋ฅผ ์‹œ๋„ํ•  ๋•Œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
NULL ํฌ์ธํ„ฐ ๋˜๋Š” ์ฐธ์กฐ(rvalue ์ฐธ์กฐ)๊ฐ€ NULL์— ๋ฐ”์ธ๋”ฉ๋œ ๊ฒฝ์šฐ
ํฌ์ธํ„ฐ ๋˜๋Š” NULL ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐœ์ฒด์—์„œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ.

-fsanitize=๋ฐ˜ํ™˜
์ด ์˜ต์…˜์€ return ๋ฌธ ๊ฒ€์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ ๋นŒ๋“œ๋œ ํ”„๋กœ๊ทธ๋žจ
์ผœ์ ธ ์žˆ์œผ๋ฉด ๋ฌดํšจ๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜์˜ ๋์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ  ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ C++์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-fsanitize=๋ถ€ํ˜ธ-์ •์ˆ˜-์˜ค๋ฒ„ํ”Œ๋กœ
์ด ์˜ต์…˜์€ ๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฒ€์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
"+", "*" ๋ฐ ๋‹จํ•ญ ๋ฐ ์ด์ง„ "-"๋Š” ๋ถ€ํ˜ธ ์žˆ๋Š” ํ˜•์‹์—์„œ ์˜ค๋ฒ„ํ”Œ๋กœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‚ฐ์ˆ . ์ •์ˆ˜ ์Šน๊ฒฉ ๊ทœ์น™์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑด,
๋‹ค์Œ์€ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋ถ€ํ˜ธ ์žˆ๋Š” char a = SCHAR_MAX;
++;

-fsanitize=๊ฒฝ๊ณ„
์ด ์˜ต์…˜์€ ๋ฐฐ์—ด ๊ฒฝ๊ณ„์˜ ๊ณ„์ธก์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๋‹ค์–‘ํ•œ
์•ก์„ธ์Šค๊ฐ€ ๊ฐ์ง€๋ฉ๋‹ˆ๋‹ค. ์œ ์—ฐํ•œ ๋ฐฐ์—ด ๊ตฌ์„ฑ์›, ์œ ์—ฐํ•œ ๋ฐฐ์—ด ๊ตฌ์„ฑ์›๊ณผ ์œ ์‚ฌํ•œ ๋ฐฐ์—ด,
์ •์  ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋Š” ๋ณ€์ˆ˜์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ๊ณ„์ธก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fsanitize=์ •๋ ฌ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํฌ์ธํ„ฐ๊ฐ€ ์—ญ์ฐธ์กฐ๋  ๋•Œ ์ •๋ ฌ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜๋Š” ์ฐธ์กฐ๊ฐ€ ๋ถˆ์ถฉ๋ถ„ํ•˜๊ฒŒ ์ •๋ ฌ๋œ ๋Œ€์ƒ์— ๋ฐ”์ธ๋”ฉ๋œ ๊ฒฝ์šฐ ๋˜๋Š” ๋ฐฉ๋ฒ• ๋˜๋Š”
์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฐœ์ฒด์—์„œ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

-fsanitize=๊ฐ์ฒด ํฌ๊ธฐ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๋ฅผ ๊ณ„์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"__builtin_object_size" ํ•จ์ˆ˜. ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๋‹ค์–‘ํ•œ ํฌ์ธํ„ฐ ์•ก์„ธ์Šค๋Š”
๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-fsanitize=XNUMX์œผ๋กœ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚˜๋ˆ„๊ธฐ
XNUMX์œผ๋กœ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚˜๋ˆ„๊ธฐ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ์˜ต์…˜๊ณผ ๋‹ฌ๋ฆฌ,
-fsanitize=XNUMX์œผ๋กœ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚˜๋ˆ„๊ธฐ ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Œ -fsanitize=์ •์˜๋˜์ง€ ์•Š์Œ์ดํ›„
XNUMX์œผ๋กœ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚˜๋ˆ„๊ธฐ๋Š” ๋ฌดํ•œ๋Œ€๋ฅผ ์–ป๋Š” ํ•ฉ๋ฒ•์ ์ธ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ NaN.

-fsanitize=float-cast-overflow
์ด ์˜ต์…˜์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์œ ํ˜•์—์„œ ์ •์ˆ˜๋กœ์˜ ๋ณ€ํ™˜ ๊ฒ€์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ™•์ธ
๋ณ€ํ™˜ ๊ฒฐ๊ณผ๊ฐ€ ์˜ค๋ฒ„ํ”Œ๋กœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์œ ์‚ฌํ’ˆ๊ณผ ๋‹ฌ๋ฆฌ
์˜ต์…˜ -fsanitize=float-cast-overflow ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Œ -fsanitize=์ •์˜๋˜์ง€ ์•Š์Œ.
์ด ์˜ต์…˜์€ "FE_INVALID" ์˜ˆ์™ธ๊ฐ€ ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fsanitize=null์ด ์•„๋‹Œ ์†์„ฑ
์ด ์˜ต์…˜์€ ํ˜ธ์ถœ ๊ณ„์ธก์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ null ๊ฐ’์ด
"nonnull" ํ•จ์ˆ˜์— ์˜ํ•ด null์ด ์•„๋‹Œ ๊ฐ’์ด ํ•„์š”ํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋œ ์ธ์ˆ˜์— ์ „๋‹ฌ๋จ
์†์„ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-fsanitize=null์ด ์•„๋‹Œ ์†์„ฑ์„ ๋ฐ˜ํ™˜
์ด ์˜ต์…˜์€
"returns_nonnull" ํ•จ์ˆ˜ ์†์„ฑ, ์ด๋Ÿฌํ•œ ๊ฐ’์—์„œ null ๊ฐ’ ๋ฐ˜ํ™˜ ๊ฐ์ง€
๊ธฐ๋Šฅ.

-fsanitize=๋ถ€์šธ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด bool์—์„œ ๋กœ๋“œ๋ฅผ ๊ณ„์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 0/1 ์ด์™ธ์˜ ๊ฐ’์ธ ๊ฒฝ์šฐ
๋กœ๋“œ๋˜๋ฉด ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

-fsanitize=์—ด๊ฑฐ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ด๊ฑฐํ˜•์—์„œ ๋กœ๋“œ๋ฅผ ๊ณ„์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด
enum ์œ ํ˜•์˜ ๊ฐ’ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜ ๋กœ๋“œ๋˜๋ฉด ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋ฐœํ–‰ ๋œ.

-fsanitize=vptr
์ด ์˜ต์…˜์€ C++ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๋ฉค๋ฒ„ ์•ก์„ธ์Šค์˜ ๊ณ„์ธก์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ํด๋ž˜์Šค์™€ ํŒŒ์ƒ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ๊ฐ„์˜ ์ผ๋ถ€ ๋ณ€ํ™˜์„ ํ†ตํ•ด
์ฐธ์กฐ๋œ ๊ฐœ์ฒด์— ์˜ฌ๋ฐ”๋ฅธ ๋™์  ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

DaVinci์—๋Š” -ftrapv. ์„œ๋ช…๋œ ์˜ค๋ฒ„ํ”Œ๋กœ์— ๋Œ€ํ•œ ํŠธ๋žฉ์ด ๋ฐฉ์ถœ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. -fsanitize=์ •์˜๋˜์ง€ ์•Š์Œ
์ง„๋‹จ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ C ์–ธ์–ด ๊ณ„์—ด์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-fno-sanitize=๋ชจ๋‘
์ด ์˜ต์…˜์€ ์ด์ „์— ํ™œ์„ฑํ™”๋œ ๋ชจ๋“  ์ƒˆ๋‹ˆํƒ€์ด์ €๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -fsanitize=๋ชจ๋‘ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์ผ๋ถ€ ์‚ด๊ท ์ œ๋Š” ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

-fasan-๊ทธ๋ฆผ์ž ์˜คํ”„์…‹=๋ฒˆํ˜ธ
์ด ์˜ต์…˜์€ GCC๊ฐ€ AddressSanitizer ๊ฒ€์‚ฌ์—์„œ ์ปค์Šคํ…€ ์„€๋„์šฐ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€์ด๋‹ค
์ปค๋„์—์„œ ๋‹ค๋ฅธ ์„€๋„์šฐ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ์„ ์‹คํ—˜ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์†Œ์„ธ๋‹ˆํƒ€์ด์ €.

-fsanitize-๋ณต๊ตฌ[=์„ ํƒํ•˜์ง€ ์•Š๋Š”]
-fsanitize-๋ณต๊ตฌ= ์‰ผํ‘œ์— ์–ธ๊ธ‰๋œ ์ƒˆ๋‹ˆํƒ€์ด์ €์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ๋ณต๊ตฌ ๋ชจ๋“œ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋ถ„๋ฆฌ ๋œ ๋ชฉ๋ก ์„ ํƒํ•˜์ง€ ์•Š๋Š”. ์‚ด๊ท ์ œ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด
์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋žจ์„ ๊ณ„์† ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์—ฌ๋Ÿฌ
๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋Š” ๋‹จ์ผ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์œผ๋กœ ๋ณด๊ณ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ข…๋ฃŒ ์ฝ”๋“œ๋Š”
ํ”„๋กœ๊ทธ๋žจ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ณด๊ณ ๋œ ๊ฒฝ์šฐ์—๋„ ์„ฑ๊ณต์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NS
-fno-์œ„์ƒ-๋ณต๊ตฌ= ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋™์ž‘์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์ง€๋œ ์˜ค๋ฅ˜๊ฐ€ ๋ณด๊ณ ๋˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด XNUMX์ด ์•„๋‹Œ ์ข…๋ฃŒ ์ฝ”๋“œ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ด ๊ธฐ๋Šฅ์€ ๋‹ค์Œ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. -fsanitize=์ •์˜๋˜์ง€ ์•Š์Œ (๋ฐ ๋‹ค์Œ์„ ์ œ์™ธํ•œ ํ•˜์œ„ ์˜ต์…˜
for -fsanitize=์—ฐ๊ฒฐ ๋ถˆ๊ฐ€ ๊ณผ -fsanitize=๋ฐ˜ํ™˜), -fsanitize=float-cast-overflow,
-fsanitize=XNUMX์œผ๋กœ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚˜๋ˆ„๊ธฐ ๊ณผ -fsanitize=์ปค๋„ ์ฃผ์†Œ. ์ด๋Ÿฌํ•œ ์‚ด๊ท ์ œ์— ๋Œ€ํ•ด
์˜ค๋ฅ˜ ๋ณต๊ตฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. -fsanitize-recover=๋ชจ๋‘ ๊ณผ
-fno-sanitize-recover=๋ชจ๋‘ ์ „์ž๋Š” ๋ชจ๋‘์— ๋Œ€ํ•œ ๋ณต๊ตฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
์ง€์›ํ•˜๋Š” ์‚ด๊ท ์ œ, ํ›„์ž๋Š” ๋‹ค์Œ์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์‚ด๊ท ์ œ์— ๋Œ€ํ•œ ๋ณต๊ตฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์„ ์ง€์›ํ•˜์‹ญ์‹œ์˜ค.

๋ช…์‹œ์ ์ด์ง€ ์•Š์€ ๊ตฌ๋ฌธ ์„ ํƒํ•˜์ง€ ์•Š๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค

-fsanitize-recover=์ •์˜๋˜์ง€ ์•Š์Œ, float-cast-overflow, float-divide-by-zero

๋น„์Šทํ•˜๊ฒŒ -fno-์œ„์ƒ-๋ณต๊ตฌ ์— ํ•ด๋‹นํ•˜๋Š”

-fno-sanitize-recover=์ •์˜๋˜์ง€ ์•Š์Œ,float-cast-overflow,float-divide-XNUMX์œผ๋กœ

-fsanitize-์ •์˜๋˜์ง€ ์•Š์€-ํŠธ๋žฉ-์˜ค๋ฅ˜
ใ€€ -fsanitize-์ •์˜๋˜์ง€ ์•Š์€-ํŠธ๋žฉ-์˜ค๋ฅ˜ ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ๋ณด๊ณ ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
"libubsan" ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฃจํ‹ด ๋Œ€์‹  "__builtin_trap"์„ ์‚ฌ์šฉํ•˜๋Š” ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘.
์ด๊ฒƒ์˜ ์žฅ์ ์€ "libubsan" ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ๋งํฌ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์— ์žˆ์œผ๋ฏ€๋กœ ๋…๋ฆฝ ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-fcheck ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ ๊ณ„์ธก์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ€ ๊ณ„์ธก๋ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ๊ฒฝ๊ณ„์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค์— ์‚ฌ์šฉ๋˜๋Š” ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ
๋ฐ”๋Š˜.

ํ˜„์žฌ Intel MPX์— ๋Œ€ํ•œ ๊ตฌํ˜„๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ x86 ๋Œ€์ƒ ๋ฐ
-mmpx ์ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. MPX ๊ธฐ๋ฐ˜ ๊ณ„์ธก์—๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜๋“œ์›จ์–ด์—์„œ MPX๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ฒฝ๊ณ„ ์œ„๋ฐ˜ ์‹ ํ˜ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์— ์˜ํ•ด
๊ธฐ๋ณธ๊ฐ’ -fcheck ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ณผ -mmpx ์˜ต์…˜์€ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ,
GCC ๋“œ๋ผ์ด๋ฒ„ ๋งํฌ libmpx ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ libmpx ๋ž˜ํผ ๋„์„œ๊ด€. ๊ทธ๊ฒƒ
๋˜ํ•œ ์ด ์˜ต์…˜์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋ง์ปค์— '-z bndplt'๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค(์„ ํƒ
libmpx ๊ตฌ์„ฑ์—์„œ). ์ด์ „ ๋ฒ„์ „์˜ ๋ง์ปค๋Š” ์˜ต์…˜์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธˆ
๋ง์ปค๋Š” '-z bndplt' ์˜ต์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ง์ปค์—์„œ '-z bndplt' ์ง€์› ์—†์Œ
๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ํ˜ธ์ถœ์€ ์ „๋‹ฌ๋œ ๊ฒฝ๊ณ„๋ฅผ ์žƒ์–ด ์ „์ฒด ๋ณดํ˜ธ ์ˆ˜์ค€์„ ์ค„์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์˜
'-z bndplt' ์ง€์›๊ณผ ํ•จ๊ป˜ ๋ง์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ง์ปค๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ
ํ•ญ์ƒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. -์ •์ -libmpxwrappers ๋” ๋‚˜์€ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด
๋ ˆ๋ฒจ ๋˜๋Š” ์‚ฌ์šฉ -๊ณต์ „ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ํ˜ธ์ถœ์„ ์™„์ „ํžˆ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด. MPX-
๊ธฐ๋ฐ˜ ๊ณ„์ธก์€ ๋””๋ฒ„๊น…์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ”„๋กœ๋•์…˜์— ํฌํ•จ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋Š” ์ฝ”๋“œ. ์šฉ๋„์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ. MPX ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ˜„์žฌ ๋ฒ„์ „
๋””๋ฒ„๊น… ๋„๊ตฌ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. MPX ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
-lpthread. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค -์ •์ -libmpx. ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋™์ž‘์ด ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์–‘ํ•œ ์‚ฌ์šฉ CHKP_RT_* ํ™˜๊ฒฝ ๋ณ€์ˆ˜. ๋ณด๋‹ค
<https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler> ๋”
์„ธ๋ถ€.

์ƒ์„ฑ๋œ ๊ณ„์ธก์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -fchkp-* ์˜ต์…˜๊ณผ
"bnd_variable_size" ๊ตฌ์กฐ ํ•„๋“œ ์†์„ฑ ๋ฐ "bnd_legacy" ๋ฐ "bnd_instrument"
๊ธฐ๋Šฅ ์†์„ฑ. GCC๋Š” ๋˜ํ•œ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ.

-fchkp-๊ฒ€์‚ฌ-๋ถˆ์™„์ „ ์œ ํ˜•
๋ถˆ์™„์ „ํ•œ ์œ ํ˜•์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋จ
ํƒœ๋งŒ.

-fchkp-์ข์€ ๊ฒฝ๊ณ„
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ๊ฐœ์ฒด ํ•„๋“œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๊ณ„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
์ถ•์†Œ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ํ•„๋“œ ๊ฒฝ๊ณ„๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฐ์ฒด ๊ฒฝ๊ณ„๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ฐธ์กฐ -fchkp-์ข์€ ๋ฐฐ์—ด๋ถ€ํ„ฐ ๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฐฐ์—ด ๊ณผ -fchkp-first-field-has-own-bounds.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-fchkp-first-field-has-own-bounds
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์ฃผ์†Œ์— ๋Œ€ํ•ด ์ข์€ ๊ฒฝ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์กฐ์˜ ํ•„๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ํ•„๋“œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋Š” ๋™์ผํ•œ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
์ „์ฒด ๊ตฌ์กฐ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋กœ.

-fchkp-์ข์€ ๋ฐฐ์—ด๋ถ€ํ„ฐ ๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฐฐ์—ด
์ค‘์ฒฉ๋œ ๊ฒฝ์šฐ ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฐฐ์—ด์˜ ๊ฒฝ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์ •์  ๋ฐฐ์—ด ์•ก์„ธ์Šค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์˜ต์…˜์€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ
๋ฐฐ์—ด์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-fchkp-์ตœ์ ํ™”
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ํ™” ์‹œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ
๋ ˆ๋ฒจ -O, -O2, -O3.

-fchkp-use-fast-string-functions
ํฌ์ธํ„ฐ๋กœ *_nobnd ๋ฒ„์ „์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜(๊ฒฝ๊ณ„ ๋ณต์‚ฌ ์•ˆ ํ•จ)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fchkp-use-nochk-๋ฌธ์ž์—ด ๊ธฐ๋Šฅ
ํฌ์ธํ„ฐ๋กœ *_nochk ๋ฒ„์ „์˜ ๋ฌธ์ž์—ด ํ•จ์ˆ˜(๊ฒฝ๊ณ„ ํ™•์ธ ์•ˆ ํ•จ)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fchkp-์‚ฌ์šฉ-์ •์ -๊ฒฝ๊ณ„
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์ •์  ๊ฒฝ๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋Š” ์ •์  ๊ฒฝ๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ—ˆ์šฉ
๋ณ€์ˆ˜. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fchkp-use-static-const-bounds
์ƒ์ˆ˜ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ๊ฐ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹  ์ •์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ๊ฒฝ๊ณ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋“ค์ด ํ•„์š”ํ•œ ์‹œ๊ฐ„. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ -fchkp-์‚ฌ์šฉ-์ •์ -๊ฒฝ๊ณ„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-fchkp-XNUMX-๋™์  ํฌ๊ธฐ๋ฅผ ๋ฌดํ•œ๋Œ€๋กœ ์ฒ˜๋ฆฌ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ ์œผ๋กœ ํš๋“ํ•œ ํฌ๊ธฐ๊ฐ€ XNUMX์ธ ๋ถˆ์™„์ „ํ•œ ์œ ํ˜•์˜ ๊ฐ์ฒด
Pointer Bounds Checker ๋Œ€์‹  ๋ฌดํ•œ ํฌ๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜
ํ”„๋กœ๊ทธ๋žจ์ด ์ผ๋ถ€์— ๋Œ€ํ•œ ํฌ๊ธฐ ์ •๋ณด๊ฐ€ ๋ˆ„๋ฝ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐํ˜ธ. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fchkp-์ฒดํฌ-์ฝ๊ธฐ
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฝ๊ธฐ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-fchkp-์ฒดํฌ-์“ฐ๊ธฐ
๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ๋ชจ๋“  ์“ฐ๊ธฐ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-fchkp-์ €์žฅ-๊ฒฝ๊ณ„
ํฌ์ธํ„ฐ ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ฒฝ๊ณ„ ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-fchkp-๊ณ„์ธก๊ธฐ ํ˜ธ์ถœ
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ํ˜ธ์ถœ์— ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„๋ฅผ ์ „๋‹ฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fchkp-๊ธฐ๊ธฐ ํ‘œ์‹œ ์ „์šฉ
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ์— ๋‹ค์Œ์œผ๋กœ ํ‘œ์‹œ๋œ ๊ธฐ๋Šฅ๋งŒ ๊ณ„์ธกํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
"bnd_instrument" ์†์„ฑ. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fchkp-use-๋ž˜ํผ
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ๋‚ด์žฅ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„
๋ž˜ํผ ํ•จ์ˆ˜. ์–ธ์ œ -fchkp-use-๋ž˜ํผ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” GCC ๋“œ๋ผ์ด๋ฒ„
์ž๋™์œผ๋กœ ๋งํฌ libmpx ๋ž˜ํผ. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค -์ •์ -libmpxwrappers. ํ™œ์„ฑํ™”๋จ
๊ธฐ๋ณธ์ ์œผ๋กœ

-fdump-์ตœ์ข…-insns[=ํŒŒ์ผ]
์ตœ์ข… ๋‚ด๋ถ€ ํ‘œํ˜„(RTL)์„ ๋‹ค์Œ์œผ๋กœ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ. ์„ ํƒ์  ์ธ์ˆ˜์ธ ๊ฒฝ์šฐ
์ƒ๋žต๋œ ๊ฒฝ์šฐ(๋˜๋Š” ํŒŒ์ผ "."), ๋คํ”„ ํŒŒ์ผ์˜ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
".gkd"๋ฅผ ์ปดํŒŒ์ผ ์ถœ๋ ฅ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

-fcompare-๋””๋ฒ„๊ทธ[=์„ ํƒํ•˜์ง€ ์•Š๋Š”]
์ปดํŒŒ์ผํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋‘ ๋ฒˆ์งธ๋กœ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•˜์ง€ ์•Š๋Š” ๊ณผ
-f๋น„๊ต-๋””๋ฒ„๊ทธ-์ดˆ ๋‘ ๋ฒˆ์งธ ์ปดํŒŒ์ผ์— ์ „๋‹ฌ๋œ ์ธ์ˆ˜์— ๋คํ”„
๋‘ ์ปดํŒŒ์ผ ๋ชจ๋‘์—์„œ ์ตœ์ข… ๋‚ด๋ถ€ ํ‘œํ˜„์ด๋ฉฐ, ๋‹ค๋ฅด๋ฉด ์˜ค๋ฅ˜๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

๋“ฑํ˜ธ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’ -gttoggle ์‚ฌ์šฉ.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ GCC_COMPARE_DEBUG, ์ •์˜๋œ ๊ฒฝ์šฐ ๋น„์–ด ์žˆ์ง€ ์•Š๊ณ  XNUMX์ด ์•„๋‹™๋‹ˆ๋‹ค.
์•”์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™” -fcompare-๋””๋ฒ„๊ทธ. ๋ฉด GCC_COMPARE_DEBUG ๋ฌธ์ž์—ด๋กœ ์ •์˜
๋Œ€์‹œ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ๋‹ค์Œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•˜์ง€ ์•Š๋Š”, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’ -gttoggle is
์ต์ˆ™ํ•œ.

-fcompare-๋””๋ฒ„๊ทธ=, ๋“ฑํ˜ธ๋Š” ์žˆ์ง€๋งŒ ์ œ์™ธ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
-fno-๋น„๊ต-๋””๋ฒ„๊ทธ, ์ตœ์ข… ํ‘œํ˜„์˜ ๋คํ•‘์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ 
๋‘ ๋ฒˆ์งธ ์ปดํŒŒ์ผ, ์‹ฌ์ง€์–ด ๋ฐฉ์ง€ GCC_COMPARE_DEBUG ๋ถ€ํ„ฐ.

๊ธฐ๊ฐ„ ๋™์•ˆ ์ „์ฒด ์ ์šฉ ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด -fcompare-๋””๋ฒ„๊ทธ ํ…Œ์ŠคํŠธ, ์„ค์ • GCC_COMPARE_DEBUG to say
-fcompare-debug-์žฌ์ •์˜๋˜์ง€ ์•Š์Œ, GCC๋Š” ์‹ค์ œ
์ปดํŒŒ์ผ(์ „์ฒ˜๋ฆฌ, ์–ด์…ˆ๋ธ”๋ฆฌ ๋˜๋Š” ์—ฐ๊ฒฐ ๋Œ€์‹ ). ๊ฒฝ๊ณ ๋งŒ ๋ฐ›์œผ๋ ค๋ฉด
์„ค์ • GCC_COMPARE_DEBUG ์— -w%n-f๋น„๊ต ๋””๋ฒ„๊ทธ ์ง€์› ์žฌ์ •์˜ ํ•  ๊ฒƒ์ด๋‹ค.

-f๋น„๊ต-๋””๋ฒ„๊ทธ-์ดˆ
์ด ์˜ต์…˜์€ ์š”์ฒญ๋œ ๋‘ ๋ฒˆ์งธ ์ปดํŒŒ์ผ์— ๋Œ€ํ•ด ์•”์‹œ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
by -fcompare-๋””๋ฒ„๊ทธ, ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์Œ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋Š” ์˜ต์…˜๊ณผ ํ•จ๊ป˜
ํŒŒ์ผ ๋˜๋Š” ํ‘œ์ค€ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ๋ถ€์ž‘์šฉ ์ปดํŒŒ์ผ๋Ÿฌ ์ถœ๋ ฅ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋คํ”„ ํŒŒ์ผ ๋ฐ ๋ณด์กด๋œ ์ž„์‹œ ํŒŒ์ผ์€ ".gk"๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
๋ฎ์–ด์“ฐ์ง€ ์•Š๋„๋ก ๋‘ ๋ฒˆ์งธ ์ปดํŒŒ์ผ ์ค‘ ์ถ”๊ฐ€ ํ™•์žฅ
์ฒซ ๋ฒˆ์งธ์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์ด ์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„์— ์ „๋‹ฌ๋˜๋ฉด ๋จผ์ € ์ปดํŒŒ์ผ
์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ๊ฑฐ์˜ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-felimate-dwarf2-dups
์— ๋Œ€ํ•œ ์ค‘๋ณต ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ DWARF 2 ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ์••์ถ•ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ๊ธฐํ˜ธ. ์ด ์˜ต์…˜์€ DWARF 2 ๋””๋ฒ„๊น…์„ ์ƒ์„ฑํ•  ๋•Œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ •๋ณด -gdwarf-2.

-femit-struct-debug-baseonly
๊ธฐ๋ณธ ์ด๋ฆ„์ด
์ปดํŒŒ์ผ ์†Œ์Šค ํŒŒ์ผ์€ ๊ตฌ์กฐ์ฒด๊ฐ€ ์ •์˜๋œ ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๋””๋ฒ„๊น… ์ •๋ณด์˜ ํฌ๊ธฐ๋ฅผ ์ƒ๋‹นํžˆ ์ค„์—ฌ์ฃผ์ง€๋งŒ,
๋””๋ฒ„๊ฑฐ์— ๋Œ€ํ•œ ์œ ํ˜• ์ •๋ณด์˜ ์ƒ๋‹นํ•œ ์ž ์žฌ์  ์†์‹ค. ๋ณด๋‹ค
-femit-struct-debug-reduced ๋œ ๊ณต๊ฒฉ์ ์ธ ์˜ต์…˜์„ ์œ„ํ•ด. ๋ณด๋‹ค
-femit-struct-debug-detailed ๋” ์ž์„ธํ•œ ์ œ์–ด๋ฅผ ์œ„ํ•ด.

์ด ์˜ต์…˜์€ DWARF 2์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-femit-struct-debug-reduced
๊ธฐ๋ณธ ์ด๋ฆ„์ด
์ปดํŒŒ์ผ ์†Œ์Šค ํŒŒ์ผ์€ ์œ ํ˜•์ด ์ •์˜๋œ ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์กฐ์ฒด๊ฐ€ ํ…œํ”Œ๋ฆฟ์ด๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ ํ—ค๋”์— ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๋Š” ํ•œ.

์ด ์˜ต์…˜์€ ๋””๋ฒ„๊น… ์ •๋ณด์˜ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ์ค„์ž…๋‹ˆ๋‹ค.
๋””๋ฒ„๊ฑฐ์— ๋Œ€ํ•œ ์œ ํ˜• ์ •๋ณด์˜ ์ž ์žฌ์  ์†์‹ค. ๋ณด๋‹ค -femit-struct-debug-baseonly
๋” ๊ณต๊ฒฉ์ ์ธ ์˜ต์…˜์„ ์œ„ํ•ด. ๋ณด๋‹ค -femit-struct-debug-detailed ๋” ์ž์„ธํ•œ
์ œ์–ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ DWARF 2์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-femit-struct-debug-detailed[=์‚ฌ์–‘ ๋ชฉ๋ก]
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ ์œ ํ˜•์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. NS
๋ชฉ์ ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ์ฒด ํŒŒ์ผ ๊ฐ„์˜ ์ค‘๋ณต ๊ตฌ์กฐ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ.

์ด ์˜ต์…˜์€ -femit-struct-debug-reduced ๊ณผ
-femit-struct-debug-baseonly, ๋Œ€๋ถ€๋ถ„์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์–‘์—๋Š” ๊ตฌ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค[๊ตญ์žฅ :|์ธ:][์ฃผ๋ฌธ:|์žฅ๋ฅด :](์–ด๋–ค|sys|๊ธฐ์ง€|์—†์Œ)

์„ ํƒ์ ์ธ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๋Š” ์ง์ ‘ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์กฐ์ฒด๋กœ ์‚ฌ์–‘์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
(๊ตญ์žฅ :) ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ ์‚ฌ์šฉ(์ธ:). ๊ตฌ์กฐ์ฒด ์œ ํ˜•์€ ์œ ํ˜•์ผ ๋•Œ ์ง์ ‘ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜, ๋ฉค๋ฒ„. ๊ฐ„์ ‘ ์‚ฌ์šฉ์€ ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑด,
๋ถˆ์™„์ „ํ•œ ๊ตฌ์กฐ์ฒด์˜ ์‚ฌ์šฉ์ด ์œ ํšจํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์€ ๊ฐ„์ ‘์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋Š” ๊ตฌ์กฐ์ฒด
ํ•œ ์ง์ ‘; ๊ตฌ์กฐ์ฒด ๋‘ * ๊ฐ„์ ‘;.

์„ ํƒ์  ๋‘ ๋ฒˆ์งธ ๋‹จ์–ด๋Š” ์‚ฌ์–‘์„ ์ผ๋ฐ˜ ๊ตฌ์กฐ์ฒด(์ฃผ๋ฌธ:) ๋˜๋Š”
์ผ๋ฐ˜ ๊ตฌ์กฐ์ฒด(์žฅ๋ฅด :). ์ผ๋ฐ˜ ๊ตฌ์กฐ์ฒด๋Š” ์„ค๋ช…ํ•˜๊ธฐ๊ฐ€ ์•ฝ๊ฐ„ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. C++์˜ ๊ฒฝ์šฐ,
์ด๋“ค์€ ํ…œํ”Œ๋ฆฟ ํด๋ž˜์Šค ๋˜๋Š” ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹Œ ํด๋ž˜์Šค์˜ ๋น„๋ช…์‹œ์  ์ „๋ฌธํ™”์ž…๋‹ˆ๋‹ค.
์œ„์˜ ๋ฒ”์œ„ ๋‚ด์—์„œ. ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—๋Š” ์ œ๋„ค๋ฆญ์ด ์žˆ์ง€๋งŒ
-femit-struct-debug-detailed ์•„์ง ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ ๋‹จ์–ด๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•ด๋‹น ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ์†Œ์Šค ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์น˜ ์—†์Œ ๊ณผ ์–ด๋–ค ์ •์ƒ์ ์ธ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. NS
๊ฐ€์น˜ ๊ธฐ์ง€ ํ˜•์‹ ์„ ์–ธ์ด ์žˆ๋Š” ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธฐ์ค€์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
ํ‘œ์‹œ๋Š” ๊ธฐ๋ณธ ์ปดํŒŒ์ผ ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธฐ์ค€๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ,
์ด๊ฒƒ์€ ์ปดํŒŒ์ผ ํ•  ๋•Œ foo.c, ์œ ํ˜•์— ๋Œ€ํ•œ ๋””๋ฒ„๊ทธ ์ •๋ณด๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ํŒŒ์ผ์—์„œ ์„ ์–ธํ•˜๊ณ  ํ‘ธ.h, ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ํ—ค๋” ํŒŒ์ผ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ€์น˜ sys ๋ฐฉ๋ฒ•
๋งŒ์กฑ์Šค๋Ÿฌ์šด ์œ ํ˜• ๊ธฐ์ง€ ๋˜๋Š” ์‹œ์Šคํ…œ ๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ํ—ค๋”์—์„œ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค.

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์„ค์ •์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ—˜ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -femit-struct-debug-detailed=๋ชจ๋‘.

์ด ์˜ต์…˜์€ DWARF 2์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-fno-๋ณ‘ํ•ฉ-๋””๋ฒ„๊ทธ-๋ฌธ์ž์—ด
๋””๋ฒ„๊น… ์ •๋ณด์˜ ๋ฌธ์ž์—ด์„ ๋ณ‘ํ•ฉํ•˜์ง€ ์•Š๋„๋ก ๋ง์ปค์— ์ง€์‹œํ•˜์‹ญ์‹œ์˜ค.
๋‹ค๋ฅธ ๊ฐœ์ฒด ํŒŒ์ผ์—์„œ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉ์€ ๋ชจ๋“  ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ ์ง€์›๋˜์ง€ ์•Š๊ฑฐ๋‚˜
๋ง์ปค. ๋ณ‘ํ•ฉํ•˜๋ฉด ์ถœ๋ ฅ ํŒŒ์ผ์˜ ๋””๋ฒ„๊ทธ ์ •๋ณด ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.
๋งํฌ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ฆ๊ฐ€ ๋น„์šฉ. ๋ณ‘ํ•ฉ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fdebug-์ ‘๋‘์‚ฌ-๋งต=๋‚ก์€=
๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ๋‚ก์€, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•˜๋Š” ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
in ๋Œ€์‹ .

-fno-dwarf2-cfi-asm
DWARF 2 ํ•ด์ œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑํ•œ ".eh_frame" ์„น์…˜์œผ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
GAS ".cfi_*" ์ง€์‹œ๋ฌธ.

-p ๋ถ„์„ ํ”„๋กœ๊ทธ๋žจ์— ์ ํ•ฉํ•œ ํ”„๋กœํŒŒ์ผ ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์ฝ”๋“œ ์ƒ์„ฑ
๊ต์ˆ˜. ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š” ์†Œ์Šค ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋งํฌํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-ํŽ˜์ด์ง€ ๋ถ„์„ ํ”„๋กœ๊ทธ๋žจ์— ์ ํ•ฉํ•œ ํ”„๋กœํŒŒ์ผ ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์ฝ”๋“œ ์ƒ์„ฑ
gprof. ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š” ์†Œ์Šค ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋งํฌํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-Q ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ปดํŒŒ์ผ๋  ๋•Œ ๊ฐ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๊ณ  ์ผ๋ถ€๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์™„๋ฃŒ ์‹œ ๊ฐ ํŒจ์Šค์— ๋Œ€ํ•œ ํ†ต๊ณ„์ž…๋‹ˆ๋‹ค.

-ftime-๋ณด๊ณ 
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ ํŒจ์Šค์—์„œ ์†Œ๋น„ํ•œ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ์ธ์‡„ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋งˆ๋ฌด๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

-fmem ๋ณด๊ณ ์„œ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์— ๋Œ€ํ•œ ์ผ๋ถ€ ํ†ต๊ณ„๋ฅผ ์ธ์‡„ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋งˆ๋ฌด๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

-fmem-๋ณด๊ณ ์„œ-wpa
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ WPA์— ๋Œ€ํ•œ ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์— ๋Œ€ํ•œ ์ผ๋ถ€ ํ†ต๊ณ„๋ฅผ ์ธ์‡„ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ๊ณ„๋งŒ.

-fpre-ipa-mem-๋ณด๊ณ ์„œ
-fpost-ipa-mem-๋ณด๊ณ ์„œ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์˜๊ตฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์— ๋Œ€ํ•œ ์ผ๋ถ€ ํ†ต๊ณ„๋ฅผ ์ธ์‡„ํ•˜๊ฑฐ๋‚˜
์ ˆ์ฐจ ๊ฐ„ ์ตœ์ ํ™” ํ›„.

-fprofile-๋ณด๊ณ 
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ (์ถ”์ •๋œ) ํ”„๋กœํ•„์˜ ์ผ๊ด€์„ฑ์— ๋Œ€ํ•œ ์ผ๋ถ€ ํ†ต๊ณ„๋ฅผ ์ธ์‡„ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ ๊ฐœ๋ณ„ ํŒจ์Šค์˜ ํšจ๊ณผ.

-fstack-์‚ฌ์šฉ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•จ์ˆ˜๋ณ„๋กœ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์Šคํƒ ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ์ดˆ. ๋คํ”„์˜ ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ญ๋‹ˆ๋‹ค. .su ~๋กœ ๋ณด์กฐ ์ด๋ฆ„. ๋ณด์กฐ ์ด๋ฆ„ is
๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋˜๊ณ  ํŒŒ์ผ์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ถœ๋ ฅ ํŒŒ์ผ์˜ ์ด๋ฆ„์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์†Œ์Šค ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์„ธ ํ•„๋“œ:

* ํ•จ์ˆ˜์˜ ์ด๋ฆ„.

* ๋ฐ”์ดํŠธ ์ˆ˜.

* ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•œ์ •์ž: "์ •์ ", "๋™์ ", "์ œํ•œ์ ".

ํ•œ์ •์ž "์ •์ "์€ ํ•จ์ˆ˜๊ฐ€ ์Šคํƒ์„ ์ •์ ์œผ๋กœ ์กฐ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๊ณ ์ •๋œ ์ˆ˜์˜ ๋ฐ”์ดํŠธ๊ฐ€ ํ•จ์ˆ˜ ์ง„์ž… ์‹œ ํ”„๋ ˆ์ž„์— ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ์ข…๋ฃŒ; ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•จ์ˆ˜์—์„œ ์Šคํƒ ์กฐ์ •์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘๋ฒˆ์งธ
ํ•„๋“œ๋Š” ์ด ๊ณ ์ •๋œ ๋ฐ”์ดํŠธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

ํ•œ์ •์ž "๋™์ "์€ ํ•จ์ˆ˜๊ฐ€ ์Šคํƒ์„ ๋™์ ์œผ๋กœ ์กฐ์ž‘ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์œ„์—์„œ ์„ค๋ช…ํ•œ ์ •์  ํ• ๋‹น ์™ธ์—๋„ ์Šคํƒ ์กฐ์ •์€
์˜ˆ๋ฅผ ๋“ค์–ด ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ฃผ์œ„์— ์ธ์ˆ˜๋ฅผ ํ‘ธ์‹œ/ํŒํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜์˜ ๋ณธ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ
ํ•œ์ •์ž "bounded"๋„ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์กฐ์ •์˜ ์–‘์€ ๋‹ค์Œ์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด๊ณ  ๋‘ ๋ฒˆ์งธ ํ•„๋“œ๋Š” ์‚ฌ์šฉ๋œ ์ด ์Šคํƒ ์–‘์˜ ์ƒํ•œ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์œผ๋กœ. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์กฐ์ •์˜ ์–‘์€ ์ œํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ํƒ€์ž„์— ๋‘ ๋ฒˆ์งธ ํ•„๋“œ๋Š” ์ œํ•œ๋œ ๋ถ€๋ถ„๋งŒ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

-fprofile-ํ˜ธ
ํ”„๋กœ๊ทธ๋žจ์ด ํ๋ฅผ ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ ์ถ”๊ฐ€ ํ˜ธ ๊ณ„์ธก๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ
๊ฐ ๋ถ„๊ธฐ ๋ฐ ํ˜ธ์ถœ์ด ์‹คํ–‰๋œ ํšŸ์ˆ˜์™€ ์ˆ˜ํ–‰๋œ ํšŸ์ˆ˜๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
๋˜๋Š” ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๋ฉด ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ผ๋Š” ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
auxname.gcda ๊ฐ ์†Œ์Šค ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ๋Š” ํ”„๋กœํ•„ ์ง€์‹œ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™”(-f๋ถ„๊ธฐ ํ™•๋ฅ ) ๋˜๋Š” ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ถ„์„์šฉ
(-์ตœํ›„ ๋ฒ”์œ„). ๊ฐ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์˜ ๋ณด์กฐ ์ด๋ฆ„ ์˜ ์ด๋ฆ„์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋˜๊ณ  ์ตœ์ข… ์‹คํ–‰ ํŒŒ์ผ์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ถœ๋ ฅ ํŒŒ์ผ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
์†Œ์Šค ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์ ‘๋ฏธ์‚ฌ๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค(์˜ˆ:
foo.gcda ์ž…๋ ฅ ํŒŒ์ผ์šฉ ๋””๋ ‰ํ† ๋ฆฌ/foo.c๋ฐ ๋””๋ ‰ํ† ๋ฆฌ/foo.gcda ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ •๋œ ์ถœ๋ ฅ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ -o
dir/foo.o).

--์ ์šฉ ๋ฒ”์œ„
์ด ์˜ต์…˜์€ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ถ„์„์„ ์œ„ํ•ด ๊ณ„์ธก๋œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ๋งํฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. NS
์˜ต์…˜์€ ๋™์˜์–ด์ž…๋‹ˆ๋‹ค. -fprofile-ํ˜ธ -์ตœํ›„ ๋ฒ”์œ„ (์ปดํŒŒ์ผํ•  ๋•Œ) ๊ทธ๋ฆฌ๊ณ  -lgcov
(๋งํฌํ•  ๋•Œ). ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ์˜ต์…˜์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

* ์†Œ์Šค ํŒŒ์ผ์„ ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผ -fprofile-ํ˜ธ ํ”Œ๋Ÿฌ์Šค ์ตœ์ ํ™” ๋ฐ ์ฝ”๋“œ ์ƒ์„ฑ
์˜ต์…˜. ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ถ„์„์„ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ -์ตœํ›„ ๋ฒ”์œ„ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ์„ ํ”„๋กœํŒŒ์ผ๋งํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

* ๊ฐœ์ฒด ํŒŒ์ผ์„ ๋‹ค์Œ๊ณผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. -lgcov or -fprofile-ํ˜ธ (ํ›„์ž๋Š” ์˜๋ฏธํ•œ๋‹ค.
์ด์ „์˜).

* ๋Œ€ํ‘œ์ ์ธ ์›Œํฌ๋กœ๋“œ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜์—ฌ ์•„ํฌ ํ”„๋กœํŒŒ์ผ ์ƒ์„ฑ
์ •๋ณด. ์ด๊ฒƒ์€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค์™€ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์ž ๊ธˆ์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ
๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ "ํฌํฌ" ํ˜ธ์ถœ์ด ๊ฐ์ง€๋˜๊ณ 
์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค(์ด์ค‘ ๊ณ„์‚ฐ์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ).

* ํ”„๋กœํ•„ ์ง€ํ–ฅ ์ตœ์ ํ™”์˜ ๊ฒฝ์šฐ ๋™์ผํ•œ ํŒŒ์ผ๋กœ ์†Œ์Šค ํŒŒ์ผ์„ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์‹ญ์‹œ์˜ค.
์ตœ์ ํ™” ๋ฐ ์ฝ”๋“œ ์ƒ์„ฑ ์˜ต์…˜ ํ”Œ๋Ÿฌ์Šค -f๋ถ„๊ธฐ ํ™•๋ฅ .

* ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ถ„์„์„ ์œ„ํ•ด ์‚ฌ์šฉ gcov ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด
์ „์—, .gcno ๊ณผ .gcda ํŒŒ์ผ. ์ฐธ์กฐ gcov ์ถ”๊ฐ€ ๋ฌธ์„œ
์ •๋ณด.

์™€ -fprofile-ํ˜ธ, ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด GCC๋Š” ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์— ์—†๋Š” ํ˜ธ๋งŒ
์ŠคํŒจ๋‹ ํŠธ๋ฆฌ๋ฅผ ๊ณ„์ธกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š”
์ด ํ˜ธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ˜ธ๊ฐ€ ์œ ์ผํ•œ ์ถœ๊ตฌ ๋˜๋Š” ์œ ์ผํ•œ ์ž…๊ตฌ์ผ ๋•Œ
๋ธ”๋ก, ๊ณ„์ธก ์ฝ”๋“œ๋ฅผ ๋ธ”๋ก์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ƒˆ๋กœ์šด ๊ธฐ๋ณธ
๊ณ„์ธก ์ฝ”๋“œ๋ฅผ ๋ณด๊ด€ํ•˜๋ ค๋ฉด ๋ธ”๋ก์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-์ตœํ›„ ๋ฒ”์œ„
๋ฉ”๋ชจ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค. gcov ์ฝ”๋“œ ์ ์šฉ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ ์šฉ ๋ฒ”์œ„. ๊ฐ ์†Œ์Šค ํŒŒ์ผ์˜ ๋ฉ”๋ชจ ํŒŒ์ผ์€ auxname.gcno. ์ž์„ธํ•œ ๋‚ด์šฉ์€
-fprofile-ํ˜ธ ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์œ„์˜ ์˜ต์…˜ ๋ณด์กฐ ์ด๋ฆ„ ๋ฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ
ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ ์šฉ ๋ฒ”์œ„ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์†Œ์Šค ํŒŒ์ผ๊ณผ ๋” ๊ฐ€๊น๊ฒŒ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ์ตœ์ ํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fdbg-cnt-๋ชฉ๋ก
๋ชจ๋“  ๋””๋ฒ„๊ทธ ์นด์šดํ„ฐ์˜ ์ด๋ฆ„๊ณผ ์นด์šดํ„ฐ ์ƒํ•œ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

-fdbg-cnt=๋ฐ˜๋Œ€ ๊ฐ€์น˜ ๋ชฉ๋ก
๋‚ด๋ถ€ ๋””๋ฒ„๊ทธ ์นด์šดํ„ฐ ์ƒํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€ ๊ฐ€์น˜ ๋ชฉ๋ก ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ
๋ชฉ๋ก name:๊ฐ€์น˜ ๊ฐ ๋””๋ฒ„๊ทธ ์นด์šดํ„ฐ์˜ ์ƒํ•œ์„ ์„ค์ •ํ•˜๋Š” ์Œ name ์—
๊ฐ€์น˜. ๋ชจ๋“  ๋””๋ฒ„๊ทธ ์นด์šดํ„ฐ์˜ ์ดˆ๊ธฐ ์ƒํ•œ์„ ์€ "UINT_MAX"์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "dbg_cnt"
์ด ์˜ต์…˜์œผ๋กœ ์ƒํ•œ์„ ์„ค์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ ํ•ญ์ƒ true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
-fdbg-cnt=dce:10,tail_call:0, "dbg_cnt(dce)"๋Š” ์ฒ˜์Œ 10๊ฐœ์— ๋Œ€ํ•ด์„œ๋งŒ true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
ํ˜ธ์ถœ.

-ํ•ฉ๋ฆฌ์ ์ธ-์ข…๋ฅ˜-ํŒจ์Šค
-fdisable-์ข…๋ฅ˜-ํŒจ์Šค=๋ฒ”์œ„ ๋ชฉ๋ก
์ด๊ฒƒ์€ ์ตœ์ ํ™”๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”/ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜ ์„ธํŠธ์ž…๋‹ˆ๋‹ค.
ํ†ต๊ณผ. ์ด๋Ÿฌํ•œ ์˜ต์…˜์€ GCC ๋””๋ฒ„๊น…์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ ์‚ฌ์šฉ์ž๋Š”
๋Œ€์‹  ํŒจ์Šค๋ฅผ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์ผ๋ฐ˜ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-fdisable-ipa-ํŒจ์Šค
IPA ํŒจ์Šค ๋น„ํ™œ์„ฑํ™” ํŒจ์Šค. ํŒจ์Šค ๋Š” ํŒจ์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ํŒจ์Šค๊ฐ€ ์ •์ ์œผ๋กœ
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ๋˜๋ฉด ํŒจ์Šค ์ด๋ฆ„์—
1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ผ๋ จ๋ฒˆํ˜ธ.

-fdisable-rtl-ํŒจ์Šค
-fdisable-rtl-ํŒจ์Šค=๋ฒ”์œ„ ๋ชฉ๋ก
RTL ํŒจ์Šค ๋น„ํ™œ์„ฑํ™” ํŒจ์Šค. ํŒจ์Šค ๋Š” ํŒจ์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ํŒจ์Šค๊ฐ€ ์ •์ ์œผ๋กœ
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ๋˜๋ฉด ํŒจ์Šค ์ด๋ฆ„์—
1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ผ๋ จ๋ฒˆํ˜ธ. ๋ฒ”์œ„ ๋ชฉ๋ก ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ๋ฒ”์œ„ ๋˜๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ ์ด๋ฆ„. ๊ฐ ๋ฒ”์œ„๋Š” ๋‹ค์Œ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ˆซ์ž ์Œ์ž…๋‹ˆ๋‹ค.
์ฝœ๋ก . ๋ฒ”์œ„๋Š” ์–‘์ชฝ ๋์„ ๋ชจ๋‘ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„๊ฐ€ ์‚ฌ์†Œํ•œ ๊ฒฝ์šฐ ์ˆซ์ž
์Œ์„ ๋‹จ์ผ ์ˆซ์ž๋กœ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ๊ทธ๋ž˜ํ”„ ๋…ธ๋“œ๊ฐ€
UID ์ง€์ •๋œ ๋ฒ”์œ„ ์ค‘ ํ•˜๋‚˜์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ํŒจ์Šค ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค
ํ•จ์ˆ˜. ๊ทธ๋งŒํผ UID ๋คํ”„ ํŒŒ์ผ์˜ ํ•จ์ˆ˜ ํ—ค๋”์— ํ‘œ์‹œ๋˜๊ณ  ํŒจ์Šค
์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฆ„์„ ๋คํ”„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -fdump-pass.

-fdisable-ํŠธ๋ฆฌ-ํŒจ์Šค
-fdisable-ํŠธ๋ฆฌ-ํŒจ์Šค=๋ฒ”์œ„ ๋ชฉ๋ก
ํŠธ๋ฆฌ ํŒจ์Šค ๋น„ํ™œ์„ฑํ™” ํŒจ์Šค. ์ฐธ์กฐ -fdisable-rtl ์˜ต์…˜ ์„ค๋ช…์„ ์œ„ํ•ด
์ธ์ˆ˜.

-fenable-ipa-ํŒจ์Šค
IPA ํŒจ์Šค ์‚ฌ์šฉ ํŒจ์Šค. ํŒจ์Šค ๋Š” ํŒจ์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ํŒจ์Šค๊ฐ€ ์ •์ ์œผ๋กœ
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ๋˜๋ฉด ํŒจ์Šค ์ด๋ฆ„์—
1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ผ๋ จ๋ฒˆํ˜ธ.

-๊ฐ€๋Šฅ-rtl-ํŒจ์Šค
-๊ฐ€๋Šฅ-rtl-ํŒจ์Šค=๋ฒ”์œ„ ๋ชฉ๋ก
RTL ํŒจ์Šค ํ™œ์„ฑํ™” ํŒจ์Šค. ์ฐธ์กฐ -fdisable-rtl ์˜ต์…˜ ์ธ์ˆ˜ ์„ค๋ช… ๋ฐ
์˜ˆ.

-๊ฐ€๋Š” ๋‚˜๋ฌด-ํŒจ์Šค
-๊ฐ€๋Š” ๋‚˜๋ฌด-ํŒจ์Šค=๋ฒ”์œ„ ๋ชฉ๋ก
ํŠธ๋ฆฌ ํŒจ์Šค ์‚ฌ์šฉ ํŒจ์Šค. ์ฐธ์กฐ -fdisable-rtl ์˜ต์…˜ ์ธ์ˆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ด๋Ÿฌํ•œ ์˜ต์…˜์˜ ์‚ฌ์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

# ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ccp1 ๋น„ํ™œ์„ฑํ™”
-fdisable-tree-ccp1
# cgraph ๋…ธ๋“œ uid๊ฐ€ 1์ธ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์™„์ „ํ•œ ์–ธ๋กค์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
-fenable-tree-cunroll=1
# ๋‹ค์Œ ๋ฒ”์œ„ [2]์—์„œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด gcse1,1๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
# [300,400] ๋ฐ [400,1000]
# foo ๋ฐ foo2 ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด gcse2 ๋น„ํ™œ์„ฑํ™”
-fdisable-rtl-gcse2=ํ‘ธ,ํ‘ธ2
# ์ดˆ๊ธฐ ์ธ๋ผ์ธ ๋น„ํ™œ์„ฑํ™”
-fdisable-tree-einline
# ipa ์ธ๋ผ์ด๋‹ ๋น„ํ™œ์„ฑํ™”
-fdisable-ipa-inline.
# ํŠธ๋ฆฌ ์ „์ฒด ์–ธ๋กค ํ™œ์„ฑํ™”
-fenable-ํŠธ๋ฆฌ-ํŽผ์น˜๊ธฐ

-dํŽธ์ง€
-fdump-rtl-ํŒจ์Šค
-fdump-rtl-ํŒจ์Šค=ํŒŒ์ผ ์ด๋ฆ„
๋‹ค์Œ์—์„œ ์ง€์ •ํ•œ ์‹œ๊ฐ„์— ์ปดํŒŒ์ผํ•˜๋Š” ๋™์•ˆ ๋””๋ฒ„๊น… ๋คํ”„๋ฅผ ๋งŒ๋“ค๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ํŽธ์ง€. ์ด
์ปดํŒŒ์ผ๋Ÿฌ์˜ RTL ๊ธฐ๋ฐ˜ ํŒจ์Šค๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํŒŒ์ผ ์ด๋ฆ„
๋คํ”„๋Š” ํŒจ์Šค ๋ฒˆํ˜ธ์™€ ๋‹จ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ๋คํ”„ ์ด๋ฆ„๋ฐ
ํŒŒ์ผ์€ ์ถœ๋ ฅ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์˜ ๊ฒฝ์šฐ =ํŒŒ์ผ ์ด๋ฆ„ ์„ ํƒ๊ถŒ,
๋คํ”„๋Š” ํŒจ์Šค ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„ ๋คํ”„ ํŒŒ์ผ ๋Œ€์‹  ์ง€์ •๋œ ํŒŒ์ผ์—์„œ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ
ํŒจ์Šค๊ฐ€ ํŒจ์Šค์— ๋“ฑ๋ก๋  ๋•Œ ํŒจ์Šค ๋ฒˆํ˜ธ๊ฐ€ ์ •์ ์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
๊ด€๋ฆฌ์ž. ๋”ฐ๋ผ์„œ ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ๋Š” ๋™์  ์‹คํ–‰ ์ˆœ์„œ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.
ํ†ต๊ณผ. ํŠนํžˆ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜ํ•ด ์„ค์น˜๋œ ํŒจ์Šค๋Š” 200๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์ด ์•„์ฃผ ์ผ์ฐ ์‹คํ–‰๋œ๋‹ค๋ฉด. ๋คํ”„ ์ด๋ฆ„ ์ถœ๋ ฅ ํŒŒ์ผ์˜ ์ด๋ฆ„์—์„œ ์ƒ์„ฑ๋˜๋ฉฐ,
๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋˜๊ณ  ์‹คํ–‰ ํŒŒ์ผ์ด ์•„๋‹Œ ๊ฒฝ์šฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
์†Œ์Šค ํŒŒ์ผ. ์ด๋Ÿฌํ•œ ์Šค์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํšจ๊ณผ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -E ~์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ.

๋””๋ฒ„๊ทธ ๋คํ”„๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -fdump-rtl ์Šค์œ„์น˜ ๋˜๋Š” ์ผ๋ถ€ -d ์„ ํƒ๊ถŒ ํŽธ์ง€. ์ด๋ฆฌ
์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž๋Š” ํŒจ์Šค ๊ณผ ํŽธ์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์˜๋ฏธ:

-fdump-rtl-์ •๋ ฌ
๋ถ„๊ธฐ ์ •๋ ฌ์ด ๊ณ„์‚ฐ๋œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-asmcons
in/out ์ œ์•ฝ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€ ์•Š์€ rtl ๋ฌธ์„ ์ˆ˜์ •ํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-auto_inc_dec
auto-inc-dec ๊ฒ€์ƒ‰ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•„ํ‚คํ…์ฒ˜์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
auto inc ๋˜๋Š” auto dec ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fdump-rtl-์žฅ๋ฒฝ
๋ฐฐ๋ฆฌ์–ด ์ง€์นจ์„ ์ •๋ฆฌํ•œ ํ›„ ๋คํ”„ํ•˜์‹ญ์‹œ์˜ค.

-fdump-rtl-bbpart
ํ•ซ ๋ฐ ์ฝœ๋“œ ๊ธฐ๋ณธ ๋ธ”๋ก์„ ๋ถ„ํ• ํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-bbro
๋ธ”๋ก ์žฌ์ •๋ ฌ ํ›„ ๋คํ”„.

-fdump-rtl-btl1
-fdump-rtl-btl2
-fdump-rtl-btl1 ๊ณผ -fdump-rtl-btl2 ๋‘ ๋ถ„๊ธฐ ๋Œ€์ƒ ๋’ค์— ๋คํ•‘ ํ™œ์„ฑํ™”
๋กœ๋“œ ์ตœ์ ํ™”๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-๋ฐ”์ดํŒจ์Šค
์ ํ”„ ์šฐํšŒ ๋ฐ ์ œ์–ด ํ๋ฆ„ ์ตœ์ ํ™” ํ›„ ๋คํ”„.

-fdump-rtl-๊ฒฐํ•ฉ
RTL ๋ช…๋ น์–ด ์กฐํ•ฉ ํ†ต๊ณผ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-compgotos
๊ณ„์‚ฐ๋œ goto๋ฅผ ๋ณต์ œํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-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
์Šคํƒ ์กฐ์ •์„ ๊ฒฐํ•ฉํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-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
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 ์ „์—ญ ๊ณตํ†ต ํ›„ ๋คํ•‘ ํ™œ์„ฑํ™”
ํ•˜์œ„ ํ‘œํ˜„ ์ œ๊ฑฐ.

-fdump-rtl-init-regs
๋ ˆ์ง€์Šคํ„ฐ ์ดˆ๊ธฐํ™” ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-์ดˆ๊ธฐํ™”
์ดˆ๊ธฐ ๊ฐ’ ์„ธํŠธ ๊ณ„์‚ฐ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-into_cfglayout
cfglayout ๋ชจ๋“œ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-ira
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ๋ฐ˜๋ณตํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-์ ํ”„
๋‘ ๋ฒˆ์งธ ์ ํ”„ ์ตœ์ ํ™” ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-loop2
-fdump-rtl-loop2 rtl ๋ฃจํ”„ ์ตœ์ ํ™”๊ฐ€ ํ†ต๊ณผํ•œ ํ›„ ๋คํ•‘์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-๋งˆํ•˜
์‹œ์Šคํ…œ ์ข…์† ์žฌ๊ตฌ์„ฑ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ๋คํ”„(ํ•ด๋‹น ํŒจ์Šค์ธ ๊ฒฝ์šฐ)
์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-mode_sw
์ค‘๋ณต ๋ชจ๋“œ ์Šค์œ„์น˜๋ฅผ ์ œ๊ฑฐํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-rnreg
๋ ˆ์ง€์Šคํ„ฐ ๋ฒˆํ˜ธ ๋‹ค์‹œ ๋งค๊ธฐ๊ธฐ ํ›„ ๋คํ”„.

-fdump-rtl-outof_cfglayout
cfglayout ๋ชจ๋“œ์—์„œ ๋ณ€ํ™˜ํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-peephole2
์—ฟ๋ณด๋Š” ๊ตฌ๋ฉ ํ†ต๊ณผ ํ›„ ๋คํ”„.

-fdump-rtl-postreload
๋‹ค์‹œ ๋กœ๋“œ ํ›„ ์ตœ์ ํ™” ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-pro_and_epilogue
ํ•จ์ˆ˜ ํ”„๋กค๋กœ๊ทธ ๋ฐ ์—ํ•„๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-sched1
-fdump-rtl-sched2
-fdump-rtl-sched1 ๊ณผ -fdump-rtl-sched2 ๊ธฐ๋ณธ ๋ธ”๋ก ์ดํ›„์— ๋คํ•‘ ํ™œ์„ฑํ™”
์ผ์ • ํŒจ์Šค.

-fdump-rtl-๋ฆฌ
๋ถ€ํ˜ธ/์ œ๋กœ ํ™•์žฅ ์ œ๊ฑฐ ํ›„ ๋คํ”„.

-fdump-rtl-seqabstr
๊ณตํ†ต ์‹œํ€€์Šค ๊ฒ€์ƒ‰ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-๋‹จ์ถ•
๊ฐ€์ง€๋ฅผ ์ค„์ธ ํ›„ ๋คํ”„ํ•˜์‹ญ์‹œ์˜ค.

-fdump-rtl-ํ˜•์ œ
ํ˜•์ œ ํ˜ธ์ถœ ์ตœ์ ํ™” ํ›„ ๋คํ”„.

-fdump-rtl-split1
-fdump-rtl-split2
-fdump-rtl-split3
-fdump-rtl-split4
-fdump-rtl-split5
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด XNUMX๋ฒˆ์˜ ๋ช…๋ น์–ด ๋ถ„ํ•  ํ›„ ๋คํ•‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-sms
๋ชจ๋“ˆ๋กœ ์Šค์ผ€์ค„๋ง ํ›„ ๋คํ”„. ์ด ํŒจ์Šค๋Š” ์ผ๋ถ€ ์•„ํ‚คํ…์ฒ˜์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

-fdump-rtl-์Šคํƒ
GCC์˜ "ํ”Œ๋žซ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ" ๋ ˆ์ง€์Šคํ„ฐ์—์„œ x87 ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ณ€ํ™˜ ํ›„ ๋คํ”„
์Šคํƒํ˜• ๋ ˆ์ง€์Šคํ„ฐ ์ด ํŒจ์Šค๋Š” x86 ๋ณ€ํ˜•์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

-fdump-rtl-subreg1
-fdump-rtl-subreg2
-fdump-rtl-subreg1 ๊ณผ -fdump-rtl-subreg2 ๋‘ ํ•˜์œ„ ๋“ฑ๋ก ๋’ค์— ๋คํ•‘ ํ™œ์„ฑํ™”
ํ™•์žฅ ํŒจ์Šค.

-fdump-rtl-๊ณต์œ  ํ•ด์ œ
๋ชจ๋“  rtl์ด ๊ณต์œ  ํ•ด์ œ๋œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-vartrack
๋ณ€์ˆ˜ ์ถ”์  ํ›„ ๋คํ”„.

-fdump-rtl-vregs
๊ฐ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ•˜๋“œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.

-fdump-rtl-์›น
๋ผ์ด๋ธŒ ๋ฒ”์œ„ ๋ถ„ํ•  ํ›„ ๋คํ”„.

-fdump-rtl-regclass
-fdump-rtl-subregs_of_mode_init
-fdump-rtl-subregs_of_mode_finish
-fdump-rtl-dfinit
-fdump-rtl-dfinish
์ด๋Ÿฌํ•œ ๋คํ”„๋Š” ์ •์˜๋˜์ง€๋งŒ ํ•ญ์ƒ ๋นˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-in
-fdump-rtl-๋ชจ๋‘
์œ„์— ๋‚˜์—ด๋œ ๋ชจ๋“  ๋คํ”„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-dA ๊ธฐํƒ€ ๋””๋ฒ„๊น… ์ •๋ณด๋กœ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ถœ๋ ฅ์— ์ฃผ์„์„ ๋‹ต๋‹ˆ๋‹ค.

-dD ์ „์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚  ๋•Œ ์ผ๋ฐ˜์ ์ธ ๋งคํฌ๋กœ ์ •์˜ ์™ธ์— ๋ชจ๋“  ๋งคํฌ๋กœ ์ •์˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
์ถœ๋ ฅ.

-dH ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ฝ”์–ด ๋คํ”„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-dp ์–ด์…ˆ๋ธ”๋Ÿฌ ์ถœ๋ ฅ์— ์–ด๋–ค ํŒจํ„ด๊ณผ
๋Œ€์•ˆ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ช…๋ น์˜ ๊ธธ์ด๋„ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

-dP ๊ฐ ๋ช…๋ น์–ด ์•ž์— ์ฃผ์„์œผ๋กœ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ถœ๋ ฅ์˜ RTL์„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ
์ผœ๋‹ค -dp ์ฃผ์„.

-dx ์ปดํŒŒ์ผํ•˜๋Š” ๋Œ€์‹  ํ•จ์ˆ˜์— ๋Œ€ํ•œ RTL์„ ์ƒ์„ฑํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ๊ป˜ ์‚ฌ์šฉ
-fdump-rtl-ํ™•์žฅ.

-fdump-noaddr
๋””๋ฒ„๊น… ๋คํ”„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ฃผ์†Œ ์ถœ๋ ฅ์„ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณด๋‹ค ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ
๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํŒŒ์ผ๋Ÿฌ ํ˜ธ์ถœ์„ ์œ„ํ•œ ๋””๋ฒ„๊น… ๋คํ”„์— diff ์‚ฌ์šฉ
๋ฐ/๋˜๋Š” ๋‹ค๋ฅธ ํ…์ŠคํŠธ/bss/๋ฐ์ดํ„ฐ/ํž™/์Šคํƒ/dso ์‹œ์ž‘ ์œ„์น˜.

-freport-๋ฒ„๊ทธ
C/C++ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ICE์ธ ๊ฒฝ์šฐ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์ž„์‹œ ํŒŒ์ผ์— ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

-fdump-๋ฒˆํ˜ธ ์—†์Œ
๋””๋ฒ„๊น… ๋คํ”„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ช…๋ น ๋ฒˆํ˜ธ์™€ ์ฃผ์†Œ ์ถœ๋ ฅ์„ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ปดํŒŒ์ผ๋Ÿฌ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๋””๋ฒ„๊น… ๋คํ”„์—์„œ diff๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
ํŠนํžˆ ์œ ๋ฌด์— ๊ด€๊ณ„์—†์ด ๋‹ค์–‘ํ•œ ์˜ต์…˜ -g.

-fdump-unnumbered-๋งํฌ
๋””๋ฒ„๊น… ๋คํ”„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ(์ฐธ์กฐ -d ์œ„์˜ ์˜ต์…˜)์— ๋Œ€ํ•œ ๋ช…๋ น ๋ฒˆํ˜ธ๋ฅผ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.
์‹œํ€€์Šค์˜ ์ด์ „ ๋ฐ ๋‹ค์Œ ๋ช…๋ น์— ๋Œ€ํ•œ ๋งํฌ์ž…๋‹ˆ๋‹ค.

-fdump-๋ฒˆ์—ญ-๋‹จ์œ„ (C++๋งŒ ํ•ด๋‹น)
-fdump-๋ฒˆ์—ญ-๋‹จ์œ„-์˜ต์…˜ (C++๋งŒ ํ•ด๋‹น)
์ „์ฒด ๋ฒˆ์—ญ ๋‹จ์œ„์— ๋Œ€ํ•œ ํŠธ๋ฆฌ ๊ตฌ์กฐ ํ‘œํ˜„์„ ํŒŒ์ผ๋กœ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .tu ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ, ํŒŒ์ผ์€
์ถœ๋ ฅ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ -์˜ต์…˜ ํ˜•ํƒœ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ,
์˜ต์…˜ ์— ๋Œ€ํ•ด ์„ค๋ช…๋œ ๋Œ€๋กœ ๋คํ”„์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. -fdump-ํŠธ๋ฆฌ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-fdump-ํด๋ž˜์Šค-๊ณ„์ธต ๊ตฌ์กฐ (C++๋งŒ ํ•ด๋‹น)
-fdump-ํด๋ž˜์Šค-๊ณ„์ธต ๊ตฌ์กฐ-์˜ต์…˜ (C++๋งŒ ํ•ด๋‹น)
๊ฐ ํด๋ž˜์Šค์˜ ๊ณ„์ธต ๊ตฌ์กฐ ๋ฐ ๊ฐ€์ƒ ๊ธฐ๋Šฅ ํ…Œ์ด๋ธ” ๋ ˆ์ด์•„์›ƒ์˜ ํ‘œํ˜„์„ ๋‹ค์Œ์œผ๋กœ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .์ˆ˜์—… ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ ํŒŒ์ผ
์ถœ๋ ฅ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ -์˜ต์…˜ ํ˜•ํƒœ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ,
์˜ต์…˜ ์— ๋Œ€ํ•ด ์„ค๋ช…๋œ ๋Œ€๋กœ ๋คํ”„์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. -fdump-ํŠธ๋ฆฌ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-fdump-ipa-์Šค์œ„์น˜
์ ˆ์ฐจ๊ฐ„ ๋ถ„์„ ์–ธ์–ด ํŠธ๋ฆฌ์˜ ๋‹ค์–‘ํ•œ ๋‹จ๊ณ„์—์„œ ๋คํ•‘์„ ์ œ์–ดํ•˜์—ฌ
ํŒŒ์ผ. ํŒŒ์ผ ์ด๋ฆ„์€ ์†Œ์Šค์— ์Šค์œ„์น˜ ํŠน์ • ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ํŒŒ์ผ์€ ์ถœ๋ ฅ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. NS
๋‹ค์Œ ๋คํ”„๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ชจ๋“  ์ ˆ์ฐจ ๊ฐ„ ๋ถ„์„ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

c๊ทธ๋ž˜ํ”„
ํ˜ธ์ถœ ๊ทธ๋ž˜ํ”„ ์ตœ์ ํ™”, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜ ์ œ๊ฑฐ ๋ฐ
์ธ๋ผ์ธ ๊ฒฐ์ •.

์ธ๋ผ์ธ
ํ•จ์ˆ˜ ์ธ๋ผ์ด๋‹ ํ›„ ๋คํ”„.

-fdump-pass
ํ˜„์žฌ ์„ค์ • ๋ฐ ํ•ด์ œ๋œ ์ตœ์ ํ™” ํŒจ์Šค ๋ชฉ๋ก์„ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค.
๋ช…๋ น์ค„ ์˜ต์…˜.

-fdump-ํ†ต๊ณ„-์„ ํƒ๊ถŒ
๋ณ„๋„์˜ ํŒŒ์ผ์—์„œ ํ†ต๊ณผ ํ†ต๊ณ„ ๋คํ•‘์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
๋กœ ๋๋‚˜๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒ์„ฑ .ํ†ต๊ณ„ ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์—
ํŒŒ์ผ์€ ์ถœ๋ ฅ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ -์„ ํƒ๊ถŒ ํ˜•ํƒœ๋Š”
์ต์ˆ™ํ•œ, -ํ†ต๊ณ„ ์นด์šดํ„ฐ๊ฐ€ ์ „์ฒด ์ปดํŒŒ์ผ ๋‹จ์œ„์— ๋Œ€ํ•ด ํ•ฉ์‚ฐ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
-์„ธ๋ถ€ ํŒจ์Šค๊ฐ€ ์ƒ์„ฑํ•  ๋•Œ ๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์ด ์—†๋Š” ๊ธฐ๋ณธ๊ฐ’์€
์ปดํŒŒ์ผ๋œ ๊ฐ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์นด์šดํ„ฐ๋ฅผ ํ•ฉ์‚ฐํ•ฉ๋‹ˆ๋‹ค.

-fdump-ํŠธ๋ฆฌ-์Šค์œ„์น˜
-fdump-ํŠธ๋ฆฌ-์Šค์œ„์น˜-์˜ต์…˜
-fdump-ํŠธ๋ฆฌ-์Šค์œ„์น˜-์˜ต์…˜=ํŒŒ์ผ ์ด๋ฆ„
์ค‘๊ฐ„ ์–ธ์–ด ํŠธ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋‹จ๊ณ„์—์„œ ๋คํ•‘์„ ์ œ์–ดํ•˜์—ฌ
ํŒŒ์ผ. ํŒŒ์ผ ์ด๋ฆ„์€ ์Šค์œ„์น˜๋ณ„ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์ด๊ณ  ํŒŒ์ผ์€ ์ถœ๋ ฅ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์—
~์˜ ๊ฒฝ์šฐ =ํŒŒ์ผ ์ด๋ฆ„ ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ์ž๋™ ๋Œ€์‹  ์ง€์ •๋œ ํŒŒ์ผ์— ๋คํ”„๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
๋ช…๋ช…๋œ ๋คํ”„ ํŒŒ์ผ. ๋งŒ์•ฝ -์˜ต์…˜ ํ˜•ํƒœ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ, ์˜ต์…˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค - ๊ตฌ๋ถ„
๋คํ”„์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์˜ต์…˜. ๋ชจ๋“  ์˜ต์…˜์ด ๋ชจ๋“  ์˜ต์…˜์— ์ ์šฉ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
์šฐ์šธ; ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์†Œ
๊ฐ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ์ถœ๋ ฅํ•˜์‹ญ์‹œ์˜ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์€ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ ๋ฐ ์†Œ์Šค ํŒŒ์ผ์— ๋”ฐ๋ผ. ์ฃผ์š” ์šฉ๋„๋Š” ๋ฌถ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ ํ™˜๊ฒฝ์ด ์žˆ๋Š” ๋คํ”„ ํŒŒ์ผ.

์ด๋ฆ„
์ง€์ •๋œ Decl์— ๋Œ€ํ•ด "DECL_ASSEMBLER_NAME"์ด ์„ค์ •๋œ ๊ฒฝ์šฐ ๋คํ”„์—์„œ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
"DECL_NAME" ๋Œ€์‹ . ์ฃผ์š” ์šฉ๋„๋Š”
์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์˜ ๋งน๊ธ€๋ง๋œ ์ด๋ฆ„.

๋‚ ์”ฌํ•œ
ํ”„๋ก ํŠธ์—”๋“œ ์ค‘๊ฐ„ ํ‘œํ˜„์„ ๋คํ•‘ํ•  ๋•Œ ๋ฉค๋ฒ„์˜ ๋คํ•‘์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋ฒ”์œ„์— ๋„๋‹ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜์˜ ๋ฒ”์œ„ ๋˜๋Š” ๋ณธ๋ฌธ. ์˜ค์ง
๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ง์ ‘ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์„ ๋คํ”„ํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ์˜๊ฒŒ ์ธ์‡„๋œ ๋‚˜๋ฌด๋ฅผ ๋คํ•‘ํ•  ๋•Œ ์ด ์˜ต์…˜์€ ๋‚˜๋ฌด์˜ ๋ชธ์ฒด๋ฅผ ๋คํ•‘ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ œ์–ด ๊ตฌ์กฐ.

RTL์„ ๋คํ•‘ํ•  ๋•Œ RTL์„ ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹Œ ์Šฌ๋ฆผ(์ถ•์•ฝ) ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ
LISP์™€ ์œ ์‚ฌํ•œ ํ‘œํ˜„.

์‚ด๊ฐ—์ด ๋ฒ—์–ด ์ง„ ๋‚˜๋ฌด์˜ ์›์‹œ ํ‘œํ˜„์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚˜๋ฌด๋Š” ์˜ˆ์˜๊ฒŒ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.
C์™€ ๊ฐ™์€ ํ‘œํ˜„.

์„ธ๋ถ€์„ค๋ช…
๋” ์ž์„ธํ•œ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋“  ๋คํ”„ ์˜ต์…˜์—์„œ ์ ์šฉ๋˜์ง€ ์•Š์Œ). ๋˜ํ•œ ํฌํ•จ
์ตœ์ ํ™” ํŒจ์Šค์˜ ์ •๋ณด์ž…๋‹ˆ๋‹ค.

ํ†ต๊ณ„
ํŒจ์Šค์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ํ†ต๊ณ„ ๋คํ•‘ ํ™œ์„ฑํ™”(๋ชจ๋“  ๋คํ”„์—์„œ ์ ์šฉ๋˜์ง€ ์•Š์Œ
์„ ํƒ๊ถŒ).

๋ธ”๋ก
๊ธฐ๋ณธ ๋ธ”๋ก ๊ฒฝ๊ณ„ ํ‘œ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(์›์‹œ ๋คํ”„์—์„œ๋Š” ๋น„ํ™œ์„ฑํ™”๋จ).

๊ทธ๋ž˜ํ”„
ํ‘œ์‹œ๋œ ๋‹ค๋ฅธ ๋คํ”„ ํŒŒ์ผ ๊ฐ๊ฐ์— ๋Œ€ํ•ด(-fdump-rtl-ํŒจ์Šค), ๋คํ”„
GraphViz๋กœ ๋ณด๊ธฐ์— ์ ํ•ฉํ•œ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„
ํŒŒ์ผ.passid.pass.dot. ํŒŒ์ผ์˜ ๊ฐ ๊ธฐ๋Šฅ์€ ํ•˜์œ„ ๊ทธ๋ž˜ํ”„๋กœ ์˜ˆ์˜๊ฒŒ ์ธ์‡„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
GraphViz๊ฐ€ ๋‹จ์ผ ํ”Œ๋กฏ์—์„œ ๋ชจ๋‘ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ํ˜„์žฌ RTL ๋คํ”„์—๋งŒ ์ž‘๋™ํ•˜๋ฉฐ RTL์€ ํ•ญ์ƒ ๋‹ค์Œ ์œ„์น˜์— ๋คํ”„๋ฉ๋‹ˆ๋‹ค.
์Šฌ๋ฆผํ•œ ํ˜•ํƒœ.

๋ฐฅ
๋ชจ๋“  ๋ช…๋ น๋ฌธ์— ๋Œ€ํ•ด ๊ฐ€์ƒ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋…ธ
๋ช…๋ น๋ฌธ์˜ ์ค„ ๋ฒˆํ˜ธ ํ‘œ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

UID ๊ฐ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๊ณ ์œ  ID("DECL_UID") ํ‘œ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋ง ์ˆ˜๊ฐ€ ๋งŽ์€
๊ฐ ๋ฌธ์— ๋Œ€ํ•œ ํŠธ๋ฆฌ ๋คํ”„ ํ‘œ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

eh ๊ฐ ๋ฌธ์„ ํฌํ•จํ•˜๋Š” EH ์ง€์—ญ ๋ฒˆํ˜ธ๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

scev
์Šค์นผ๋ผ ์ง„ํ™” ๋ถ„์„ ์„ธ๋ถ€ ์ •๋ณด ํ‘œ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ ํ™”
์ตœ์ ํ™” ์ •๋ณด ํ‘œ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(ํŠน์ • ํŒจ์Šค์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ).

๋†“์นœ
๋ˆ„๋ฝ๋œ ์ตœ์ ํ™” ์ •๋ณด ํ‘œ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(ํŠน์ • ํŒจ์Šค์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ).

์ฃผ์˜
๊ธฐํƒ€ ์„ธ๋ถ€ ์ตœ์ ํ™” ์ •๋ณด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(ํŠน์ • ํŒจ์Šค์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ).

=ํŒŒ์ผ ์ด๋ฆ„
์ž๋™ ๋ช…๋ช…๋œ ๋คํ”„ ํŒŒ์ผ ๋Œ€์‹  ์ง€์ •๋œ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ
์ด๋ฆ„ ํ‘œ์ค€ ์ถœ๋ ฅ ๊ณผ ํ‘œ์ค€ ์˜ค๋ฅ˜ ํŠน๋ณ„ํžˆ ์ทจ๊ธ‰๋˜๋ฉฐ ์ด๋ฏธ ์—ด๋ฆฐ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ. ์˜ˆ๋ฅผ ๋“ค์–ด,

gcc -O2 -ftree-Vectorize -fdump-tree-vect-blocks=foo.dump
-fdump-tree-pre=stderr ํŒŒ์ผ.c

๋ฒกํ„ฐ๋ผ์ด์ € ๋คํ”„๋ฅผ ์ถœ๋ ฅ ํ‘ธ.๋คํ”„, PRE ๋คํ”„๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๋™์•ˆ ํ‘œ์ค€ ์˜ค๋ฅ˜.
๋™์ผํ•œ ํŒจ์Šค์— ๋Œ€ํ•ด ์ถฉ๋Œํ•˜๋Š” ๋‘ ๊ฐœ์˜ ๋คํ”„ ํŒŒ์ผ ์ด๋ฆ„์ด ์ œ๊ณต๋œ ๊ฒฝ์šฐ ํ›„์ž๋Š”
์˜ต์…˜์€ ์ด์ „ ์˜ต์…˜๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋‹ค์Œ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์˜ต์…˜์„ ์ผญ๋‹ˆ๋‹ค. ์‚ด๊ฐ—์ด ๋ฒ—์–ด ์ง„, ๋‚ ์”ฌํ•œ, ๋ง ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ณผ ๋ฆฌ๋…ธ.

์˜ตํƒˆ
๋ชจ๋“  ์ตœ์ ํ™” ์˜ต์…˜์„ ์ผญ๋‹ˆ๋‹ค. ์ฆ‰, ์ตœ์ ํ™”, ๋†“์นœ๋ฐ ์ฃผ์˜.

๋‹ค์Œ ํŠธ๋ฆฌ ๋คํ”„๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์‹ค๋ฌผ
ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” ์ „์— ๋คํ”„, ํŒŒ์ผ.์›๋ณธ.

์ตœ์ ํ™”
๋ชจ๋“  ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” ํ›„ ๋คํ”„, ํŒŒ์ผ ์ตœ์ ํ™”.

๊น€ํ”„
gimplification์ด ํŒŒ์ผ๋กœ ์ „๋‹ฌ๋˜๊ธฐ ์ „ํ›„์— ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ
์ด๋ฆ„์€ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .gimple ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

cfg ๊ฐ ํ•จ์ˆ˜์˜ ์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„๋ฅผ ํŒŒ์ผ๋กœ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ฒจ๋ถ€ .cfg ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

ch ๋ฃจํ”„ ํ—ค๋”๋ฅผ ๋ณต์‚ฌํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
.ch ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

SSA ํŒŒ์ผ์— SSA ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .ssa
์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

๋ณ„๋ช…
๊ฐ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋ณ„์นญ ์ •๋ณด๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
.๋ณ„๋ช… ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

ccp CCP ํ›„์— ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•˜์‹ญ์‹œ์˜ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .ccp ~๋กœ
์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„.

storeccp
STORE-CCP ํ›„์— ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•˜์‹ญ์‹œ์˜ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .storeccp
์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

์‚ฌ์ „ ๋ถ€๋ถ„ ์ค‘๋ณต ์ œ๊ฑฐ ํ›„ ํŠธ๋ฆฌ๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ฒจ๋ถ€ .pre ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

fre ์™„์ „ํ•œ ์ค‘๋ณต ์ œ๊ฑฐ ํ›„ ๋‚˜๋ฌด๋ฅผ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
.fre ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

์นดํ”ผํ”„๋กญ
๋ณต์‚ฌ ์ „ํŒŒ ํ›„ ํŠธ๋ฆฌ๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .copyprop
์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

store_copyprop
์ €์žฅ์†Œ ๋ณต์‚ฌ ์ „ํŒŒ ํ›„ ํŠธ๋ฆฌ๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
.store_copyprop ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

๋””์‹œ ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ฒจ๋ถ€ .dce ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

๋ฏธ์Šคํ„ฐ / Ms ์ง‘๊ณ„์˜ ์Šค์นผ๋ผ ๊ต์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ
์ด๋ฆ„์€ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .sra ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

์‹ฑํฌ๋Œ€
์ฝ”๋“œ ์‹ฑํ‚น์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ฒจ๋ถ€ .์‹ฑํฌ๋Œ€ ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

DOM ๋„๋ฏธ๋„ค์ดํ„ฐ ํŠธ๋ฆฌ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“  .๋” ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

๋งํ•˜๋‹ค ๋ฐ๋“œ ์Šคํ† ์–ด ์ œ๊ฑฐ๋ฅผ ์ ์šฉํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ๋ช…์ด ๋งŒ๋“ค์–ด์ง„๋‹ค
์ถ”๊ฐ€ํ•˜์—ฌ .dse ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

ํ”ผ์˜ตํŠธ
PHI ๋…ธ๋“œ๋ฅผ ์ง์„  ์ฝ”๋“œ๋กœ ์ตœ์ ํ™”ํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ
์ด๋ฆ„์€ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .phiopt ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

์ „์ง„
๋‹จ์ผ ์‚ฌ์šฉ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„
์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค .forwprop ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

์นดํ”ผ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
๋ณต์‚ฌ๋ณธ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“  .์นดํ”ผ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

nrv ์ œ๋„ค๋ฆญ์— ๋ช…๋ช…๋œ ๋ฐ˜ํ™˜ ๊ฐ’ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜ ๋คํ”„
๋‚˜๋ฌด. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. .nrv ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

๋ฒกํ„ฐ
๋ฃจํ”„์˜ ๋ฒกํ„ฐํ™”๋ฅผ ์ ์šฉํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ๋ช…์ด ๋งŒ๋“ค์–ด์ง„๋‹ค
์ถ”๊ฐ€ํ•˜์—ฌ .๋ฒกํŠธ ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

์Šฌ๋žฉ ๊ธฐ๋ณธ ๋ธ”๋ก์˜ ๋ฒกํ„ฐํ™”๋ฅผ ์ ์šฉํ•œ ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ถ”๊ฐ€ํ•˜์—ฌ ๋งŒ๋“  .SLP ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

VRP ๊ฐ’ ๋ฒ”์œ„ ์ „ํŒŒ(VRP) ํ›„ ๊ฐ ํ•จ์ˆ˜๋ฅผ ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€
์ฒจ๋ถ€ .vrp ์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ.

๋ชจ๋“  ์ด ์˜ต์…˜์— ์ œ๊ณต๋œ ํ”Œ๋ž˜๊ทธ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํŠธ๋ฆฌ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-fopt-์ •๋ณด
-fopt-์ •๋ณด-์˜ต์…˜
-fopt-์ •๋ณด-์˜ต์…˜=ํŒŒ์ผ ์ด๋ฆ„
๋‹ค์–‘ํ•œ ์ตœ์ ํ™” ๋‹จ๊ณ„์—์„œ ์ตœ์ ํ™” ๋คํ”„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ -์˜ต์…˜ ํ˜•ํƒœ๋Š”
์ต์ˆ™ํ•œ, ์˜ต์…˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค - ๋คํ”„ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์„ ํƒํ•˜๊ณ 
์ตœ์ ํ™”.

ใ€€ ์˜ต์…˜ ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ์˜ต์…˜
๋คํ”„ ๋ฐ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋Š” ์ตœ์ ํ™”๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์˜ต์…˜. ์˜ ์˜ต์…˜
๋‘ ๊ทธ๋ฃน์€ ๊ฒน์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž์œ ๋กญ๊ฒŒ ํ˜ผํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋‹ค์Œ์˜ ๊ฒฝ์šฐ
์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ดํ›„ ์˜ต์…˜์ด ๋ช…๋ น์ค„์˜ ์ด์ „ ์˜ต์…˜๋ณด๋‹ค ์šฐ์„  ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์€ ๋คํ”„ ์ƒ์„ธ๋„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ ํ™”
์ตœ์ ํ™”๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ ์šฉ๋˜๋ฉด ์ •๋ณด๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ํ•ฉ๊ฒฉ๊นŒ์ง€์ž…๋‹ˆ๋‹ค
์–ด๋–ค ์ •๋ณด๊ฐ€ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒกํ„ฐ๋ผ์ด์ €๋Š” ์ธ์‡„๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
์„ฑ๊ณต์ ์œผ๋กœ ๋ฒกํ„ฐํ™”๋œ ๋ฃจํ”„์˜ ์†Œ์Šค โ€‹โ€‹์œ„์น˜.

๋†“์นœ
๋†“์นœ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ํŒจ์Šค ์ œ์–ด
์ถœ๋ ฅ์— ํฌํ•จํ•  ์ •๋ณด์ž…๋‹ˆ๋‹ค.

์ฃผ์˜
ํŠน์ • ๋ณ€ํ™˜๊ณผ ๊ฐ™์€ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ์ • ๋“ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋ฉ”์‹œ์ง€

๋ชจ๋“  ์ž์„ธํ•œ ์ตœ์ ํ™” ์ •๋ณด๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ตœ์ ํ™”, ๋†“์นœ๋ฐ
์ฃผ์˜.

๋‹ค์Œ ์˜ต์…˜ ํ‚ค์›Œ๋“œ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™”:

IPA ๋ชจ๋“  ์ ˆ์ฐจ ๊ฐ„ ์ตœ์ ํ™”์—์„œ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๋ฆฌ
๋ชจ๋“  ๋ฃจํ”„ ์ตœ์ ํ™”์—์„œ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ธ๋ผ์ธ
๋ชจ๋“  ์ธ๋ผ์ธ ์ตœ์ ํ™”์—์„œ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

VEC ๋ชจ๋“  ๋ฒกํ„ฐํ™” ์ตœ์ ํ™”์—์„œ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์˜ตํƒˆ
๋ชจ๋“  ์ตœ์ ํ™”์—์„œ ๋คํ”„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ตœ์ ํ™” ๊ทธ๋ฃน์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.
์œ„์— ๋‚˜์—ด๋œ.

If ์˜ต์…˜ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์ ํ™”๋œ ๊ด‘ํ•™, ์ด๋Š” ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋คํ”„ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ํŒจ์Šค์—์„œ ์„ฑ๊ณต์ ์ธ ์ตœ์ ํ™”์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ์šฐ ํŒŒ์ผ ์ด๋ฆ„ ์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ตœ์ ํ™”์˜ ๋คํ”„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์— ์—ฐ๊ฒฐ ํŒŒ์ผ ์ด๋ฆ„. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋คํ”„๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์˜ค๋ฅ˜. ๊ทธ๋ž˜๋„
์—ฌ๋Ÿฌ -fopt-์ •๋ณด ์˜ต์…˜์ด ํ—ˆ์šฉ๋˜๋ฉฐ ๊ทธ ์ค‘ ํ•˜๋‚˜๋งŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„. ๋ฉด
๋‹ค๋ฅธ ํŒŒ์ผ ์ด๋ฆ„์ด ์ œ๊ณต๋˜๋ฉด ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์˜ต์…˜์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ์ถœ๋ ฅ ํŒŒ์ผ ์ด๋ฆ„ ๋ฒˆ์—ญ ๋‹จ์œ„๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ๋ฎ์–ด์”๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
์—ฌ๋Ÿฌ ๋ฒˆ์—ญ ๋‹จ์œ„์˜ ๊ฒฐํ•ฉ๋œ ์ถœ๋ ฅ์ด ํ•„์š”ํ•˜๋ฉฐ, ํ‘œ์ค€ ์˜ค๋ฅ˜ ์‚ฌ์šฉ๋˜์–ด์•ผํ•œ๋‹ค
๋Œ€์‹ .

๋‹ค์Œ ์˜ˆ์—์„œ ์ตœ์ ํ™” ์ •๋ณด๋Š” ๋‹ค์Œ์œผ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์˜ค๋ฅ˜:

gcc -O3 -fopt-์ •๋ณด

์ด ์˜ˆ:

gcc -O3 -fopt-info-missed=missed.all

๋ชจ๋“  ํŒจ์Šค์—์„œ ๋ˆ„๋ฝ๋œ ์ตœ์ ํ™” ๋ณด๊ณ ์„œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋†“์ณค๋‹ค.๋ชจ๋‘, ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ:

gcc -O2 -ftree-๋ฒกํ„ฐํ™” -fopt-info-vec-missed

๋ฒกํ„ฐํ™” ํŒจ์Šค์—์„œ ๋†“์นœ ์ตœ์ ํ™” ๊ธฐํšŒ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
on ํ‘œ์ค€ ์˜ค๋ฅ˜. ๊ทธ ์ฃผ -fopt-์ •๋ณด-vec-๋†“์นœ ์— ํ•ด๋‹นํ•˜๋Š” -fopt-์ •๋ณด-๋†“์นœ-vec.

๋˜ ๋‹ค๋ฅธ ์˜ˆ๋กœ,

gcc -O3 -fopt-info-inline-optimized-missed=inline.txt

๋ˆ„๋ฝ๋œ ์ตœ์ ํ™” ๋ฐ ๋ชจ๋“  ์ตœ์ ํ™”๋œ ์œ„์น˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ผ์ด๋‹์€ ๋‹ค์Œ์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ธ๋ผ์ธ.txt.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹ค์Œ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

gcc -fopt-info-vec-missed=vec.miss -fopt-info-loop-optimized=loop.opt

์—ฌ๊ธฐ์— ๋‘ ๊ฐœ์˜ ์ถœ๋ ฅ ํŒŒ์ผ ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒก.๋ฏธ์Šค ๊ณผ ๋ฃจํ”„.์˜ต์…˜ ํ•˜๋‚˜๋ฟ์ด๋ฏ€๋กœ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.
์ถœ๋ ฅ ํŒŒ์ผ์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜๋งŒ ์ ์šฉ๋˜๊ณ 
ํ›„์† ์˜ต์…˜์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งŒ ๋ฒก.๋ฏธ์Šค ๋คํ”„๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์‚ฐ
๋†“์นœ ๊ธฐํšŒ์— ๋Œ€ํ•œ ๋ฒกํ„ฐ๋ผ์ด์ €์—์„œ.

-์ž„์˜์˜ ์‹œ๋“œ=๋ฒˆํ˜ธ
์ด ์˜ต์…˜์€ GCC๊ฐ€ ์ƒ์„ฑํ•  ๋•Œ ๋‚œ์ˆ˜ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ์‹œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์—์„œ ๋‹ฌ๋ผ์•ผ ํ•˜๋Š” ํŠน์ • ๊ธฐํ˜ธ ์ด๋ฆ„. ๊ทธ๊ฒƒ์€ ๋˜ํ•œ
์ ์šฉ ๋ฒ”์œ„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๋ฐ ์ƒ์„ฑํ•˜๋Š” ๊ฐœ์ฒด ํŒŒ์ผ์— ๊ณ ์œ ํ•œ ์Šคํƒฌํ”„๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
๊ทธ๋“ค์„. ๋‹น์‹ ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -์ž„์˜์˜ ์ข…์ž ์žฌํ˜„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋™์ผํ•œ ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ต์…˜
ํŒŒ์ผ.

ใ€€ ๋ฒˆํ˜ธ ์ปดํŒŒ์ผํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•ด ๋‹ฌ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-fsched-์ƒ์„ธ=n
๋ช…๋ น ์Šค์ผ€์ค„๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์ƒ์—์„œ ์ด ์˜ต์…˜์€
์Šค์ผ€์ฅด๋Ÿฌ๊ฐ€ ์ถœ๋ ฅํ•˜๋Š” ๋””๋ฒ„๊น… ์ถœ๋ ฅ. ์ด ์ •๋ณด๋Š” ํ‘œ์ค€ ์˜ค๋ฅ˜์— ๊ธฐ๋ก๋˜๋ฉฐ,
...์„ ์ œ์™ธํ•˜๋ฉด -fdump-rtl-sched1 or -fdump-rtl-sched2 ์ง€์ •๋œ ๊ฒฝ์šฐ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์ธ ๋คํ”„ ๋ชฉ๋ก ํŒŒ์ผ์— .sched1 or .sched2 ๊ฐ๊ธฐ. ๊ทธ๋Ÿฌ๋‚˜ n
XNUMX๋ณด๋‹ค ํฌ๋ฉด ์ถœ๋ ฅ์€ ํ•ญ์ƒ ํ‘œ์ค€ ์˜ค๋ฅ˜๋กœ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

๋Ÿญ์…”๋ฆฌ n XNUMX๋ณด๋‹ค ํฐ, -fsched-verbose ์™€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์ถœ๋ ฅ
-fdump-rtl-sched1 ๊ณผ -fdump-rtl-sched2. ์šฉ n XNUMX๋ณด๋‹ค ํฌ๋ฉด ๊ธฐ๋ณธ๋„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
๋ธ”๋ก ํ™•๋ฅ , ์ž์„ธํ•œ ์ค€๋น„ ๋ชฉ๋ก ์ •๋ณด ๋ฐ ์œ ๋‹›/์ˆ™์†Œ ์ •๋ณด. ์„์œ„ํ•œ n
XNUMX๋ณด๋‹ค ํฌ๋ฉด ์ค‘๋‹จ ์ง€์ ์˜ RTL, ์ œ์–ด ํ๋ฆ„ ๋ฐ ์˜์—ญ ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ 
for n XNUMX๊ฐœ ์ด์ƒ, -fsched-verbose ์ข…์†์„ฑ ์ •๋ณด๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

- ์ž„์‹œ ์ €์žฅ
- ์ž„์‹œ ์ €์žฅ = cwd
์ผ๋ฐ˜์ ์ธ "์ž„์‹œ" ์ค‘๊ฐ„ ํŒŒ์ผ์„ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ์— ๋ฐฐ์น˜
๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์†Œ์Šค ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ foo.c ๊ณผ -c
- ์ž„์‹œ ์ €์žฅ ํŒŒ์ผ์„ ์ƒ์„ฑ ํ‘ธ์•„์ด ๊ณผ ํ‘ธ.์—์Šค, ๋งŒํผ ์ž˜ ํ‘ธ.์˜ค. ์ด๊ฒƒ์€
์ „์ฒ˜๋ฆฌ ํ‘ธ์•„์ด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด์ œ ์ผ๋ฐ˜์ ์œผ๋กœ
ํ†ตํ•ฉ ์ „์ฒ˜๋ฆฌ๊ธฐ.

์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ์‹œ -x ๋ช…๋ น์ค„ ์˜ต์…˜, - ์ž„์‹œ ์ €์žฅ ํ˜„๋ช…ํ•˜๋‹ค
ํ™•์žฅ์ž๊ฐ€ ๋™์ผํ•œ ์ž…๋ ฅ ์†Œ์Šค ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
์ค‘๊ฐ„ ํŒŒ์ผ. ํ•ด๋‹น ์ค‘๊ฐ„ ํŒŒ์ผ์€ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์†Œ์Šค ํŒŒ์ผ - ์ž„์‹œ ์ €์žฅ.

GCC๋ฅผ ๋ณ‘๋ ฌ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ๊ณต์œ ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์†Œ์Šค ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ณตํ†ต ๊ธฐ๋ณธ ์ด๋ฆ„ ๋˜๋Š” ๋‹ค์Œ์„ ์œ„ํ•ด ์ปดํŒŒ์ผ๋œ ๋™์ผํ•œ ์†Œ์Šค ํŒŒ์ผ
์—ฌ๋Ÿฌ ์ถœ๋ ฅ ๋Œ€์ƒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋ณ‘๋ ฌ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
์„œ๋กœ ๊ฐ„์„ญํ•˜๊ณ  ์ž„์‹œ ํŒŒ์ผ์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

gcc -save-temps -o outdir1/foo.o indir1/foo.c&
gcc -save-temps -o outdir2/foo.o indir2/foo.c&

๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ํ‘ธ์•„์ด ๊ณผ ํ‘ธ.์˜ค ๋‘ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋™์‹œ์— ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

- ์ž„์‹œ ์ €์žฅ = obj
์ผ๋ฐ˜์ ์ธ "์ž„์‹œ" ์ค‘๊ฐ„ ํŒŒ์ผ์„ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ -o ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ณ ,
์ž„์‹œ ํŒŒ์ผ์€ ๊ฐœ์ฒด ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ -o ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
- ์ž„์‹œ ์ €์žฅ = obj ์Šค์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. - ์ž„์‹œ ์ €์žฅ.

์˜ˆ :

gcc -save-temps=obj -c foo.c
gcc -save-temps=obj -c bar.c -o ๋””๋ ‰ํ† ๋ฆฌ/xbar.o
gcc -save-temps=obj foobar.c -o dir2/yfoobar

์ƒ์„ฑ ํ‘ธ์•„์ด, ํ‘ธ.์—์Šค, ๋””๋ ‰ํ† ๋ฆฌ/xbar.i, ๋””๋ ‰ํ† ๋ฆฌ/xbar.s, dir2/yfoobar.i, dir2/yfoobar.s๋ฐ
dir2/yfoobar.o.

-์‹œ๊ฐ[=ํŒŒ์ผ]
์ปดํŒŒ์ผ ์ˆœ์„œ์—์„œ ๊ฐ ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์†Œ์š”ํ•œ CPU ์‹œ๊ฐ„์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. C์˜ ๊ฒฝ์šฐ
์†Œ์Šค ํŒŒ์ผ, ์ด๊ฒƒ์€ ์ ์ ˆํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ์–ด์…ˆ๋ธ”๋Ÿฌ์ž…๋‹ˆ๋‹ค(๋งํฌ๊ฐ€
์™„๋ฃŒ).

์ถœ๋ ฅ ํŒŒ์ผ์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

# CC1 0.12 0.01
# 0.00 0.01

๊ฐ ์ค„์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋Š” "์‚ฌ์šฉ์ž ์‹œ๊ฐ„", ์ฆ‰ ์‹คํ–‰์— ์†Œ์š”๋œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด. ๋‘ ๋ฒˆ์งธ ์ˆซ์ž๋Š” "์‹œ์Šคํ…œ ์‹œ๊ฐ„"์œผ๋กœ ์šด์˜ ์‹คํ–‰์— ์†Œ์š”๋œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ๋Œ€์‹  ์‹œ์Šคํ…œ ๋ฃจํ‹ด. ๋‘ ์ˆซ์ž ๋ชจ๋‘ ์ดˆ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

์ถœ๋ ฅ ํŒŒ์ผ์˜ ์ง€์ •์œผ๋กœ ์ถœ๋ ฅ์€ ๋ช…๋ช…๋œ ํŒŒ์ผ์— ์ถ”๊ฐ€๋˜๊ณ ,
๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค :

0.12 0.01cc1
0.00 0.01 ๊ทธ๋Œ€๋กœ

"์‚ฌ์šฉ์ž ์‹œ๊ฐ„"๊ณผ "์‹œ์Šคํ…œ ์‹œ๊ฐ„"์€ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„ ์•ž์— ์ด๋™ํ•˜๊ณ 
ํ”„๋กœ๊ทธ๋žจ์— ์ „๋‹ฌ๋œ ์˜ต์…˜์ด ํ‘œ์‹œ๋˜๋ฏ€๋กœ ๋‚˜์ค‘์— ํŒŒ์ผ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ์ค‘์ด๋ฉฐ ์–ด๋–ค ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-fvar ์ถ”์ 
๋ณ€์ˆ˜ ์ถ”์  ํŒจ์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์œ„์น˜์—์„œ ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ์—์„œ. ๊ทธ๋Ÿฌ๋ฉด ๋” ๋‚˜์€ ๋””๋ฒ„๊น… ์ •๋ณด๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค(๋””๋ฒ„๊น… ์ •๋ณด๊ฐ€
ํ˜•์‹์ด ์ด ์ •๋ณด๋ฅผ ์ง€์›ํ•จ).

์ตœ์ ํ™”(- ์˜ค์Šค, -O, -O2, ...),
๋””๋ฒ„๊น… ์ •๋ณด(-g) ๋””๋ฒ„๊ทธ ์ •๋ณด ํ˜•์‹์ด ์ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-fvar-์ถ”์  ํ• ๋‹น
์ปดํŒŒ์ผ ์ดˆ๊ธฐ์— ์‚ฌ์šฉ์ž ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ฃผ์„์„ ๋‹ฌ๊ณ  ์ˆ˜ํ–‰์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์‹œ๋„์—์„œ ๋๊นŒ์ง€ ์ปดํŒŒ์ผ ์ „์ฒด์— ๊ฑธ์ณ ์ฃผ์„
์ตœ์ ํ™”ํ•˜๋Š” ๋™์•ˆ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ -gdwarf-4 ํ•จ๊ป˜ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค
๊ทธ๊ฒƒ์—.

var-tracking์ด ๋น„ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์—๋„ ํ™œ์„ฑํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฃผ์„์€
์ƒ์„ฑ ๋ฐ ์œ ์ง€๋˜์ง€๋งŒ ๊ฒฐ๊ตญ ํ๊ธฐ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ํ”Œ๋ž˜๊ทธ๋Š” ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์™€ ํ•จ๊ป˜ -fvar ์ถ”์ , ์„ ํƒ์  ์Šค์ผ€์ค„๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ .

-fvar-์ถ”์ -ํ• ๋‹น-์ „ํ™˜
์ „ํ™˜ -fvar-์ถ”์  ํ• ๋‹น๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ -gttoggle ํ† ๊ธ€ํ•˜๋‹ค -g.

-์ธ์‡„ ํŒŒ์ผ ์ด๋ฆ„=๋„์„œ๊ด€
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์˜ ์ „์ฒด ์ ˆ๋Œ€ ์ด๋ฆ„ ์ธ์‡„ ๋„์„œ๊ด€ ๊ทธ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
์—ฐ๊ฒฐ --- ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ๋งํฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์•„๋ฌด๊ฒƒ; ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ํŒŒ์ผ ์ด๋ฆ„์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

- ์ธ์‡„ ๋‹ค์ค‘ ๋””๋ ‰ํ† ๋ฆฌ
๋‹ค๋ฅธ ์Šค์œ„์น˜์—์„œ ์„ ํƒํ•œ multilib์— ํ•ด๋‹นํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
๋ช…๋ น์ค„์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹ค์Œ ์œ„์น˜์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GCC_EXEC_PREFIX.

-print-multi-lib
multilib ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์—์„œ ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ์Šค์œ„์น˜๋กœ์˜ ๋งคํ•‘์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์€ ๋‹ค์Œ์œผ๋กœ ์Šค์œ„์น˜์™€ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ;, ๊ฐ ์Šค์œ„์น˜๋Š”
@ ๋Œ€์‹ ์— -, ์—ฌ๋Ÿฌ ์Šค์œ„์น˜ ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
์‰˜ ์ฒ˜๋ฆฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

-print-multi-os-๋””๋ ‰ํ† ๋ฆฌ
์ผ๋ถ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ ํƒํ•œ multilib์— ๋Œ€ํ•œ OS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. lib
ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ. OS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ lib ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ๋‹ค์ค‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์Œ
์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ƒฅ ., OS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์— ์žˆ๋Š” ๊ฒฝ์šฐ libsuffix ํ˜•์ œ
์˜ˆ๋ฅผ ๋“ค์–ด ์ธ์‡„ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ../lib64, ../ lib or ../lib32, ๋˜๋Š” OS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€
์— ์กด์žฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์˜ˆ๋ฅผ ๋“ค์–ด ์ธ์‡„ํ•˜๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ amd64, ์ŠคํŒŒํฌv9 or ev6.

-์ธ์‡„ ๋ฉ€ํ‹ฐ์•„ํฌ
์ผ๋ถ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ ํƒํ•œ ๋ฉ€ํ‹ฐ์•„ํฌ์˜ OS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. lib
ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ.

-์ธ์‡„ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„=ํ”„๋กœ๊ทธ๋žจ
์ฒ˜๋Ÿผ -์ธ์‡„ ํŒŒ์ผ ์ด๋ฆ„, ํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. CPP.

-print-libgcc-ํŒŒ์ผ ์ด๋ฆ„
๊ณผ ๋™์ผ -์ธ์‡„ ํŒŒ์ผ ์ด๋ฆ„=libgcc.a.

์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. -nostdlib or -nodefaultlibs ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ์–ด
libgcc.a. ๋„Œ ํ•  ์ˆ˜์žˆ์–ด:

gcc -nostdlib ... `gcc -print-libgcc-ํŒŒ์ผ ์ด๋ฆ„`

-์ธ์‡„-๊ฒ€์ƒ‰-๋””๋ ‰ํ† ๋ฆฌ
๊ตฌ์„ฑ๋œ ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ด๋ฆ„๊ณผ ํ”„๋กœ๊ทธ๋žจ ๋ชฉ๋ก์„ ์ธ์‡„ํ•˜๊ณ 
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋””๋ ‰ํ† ๋ฆฌ GCC ๊ฒ€์ƒ‰ --- ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. GCC ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค ์„ค์น˜ ๋ฌธ์ œ, ์ž„์›
cpp0: ์•„๋‹ˆ ์ด๋Ÿฌํ•œ ํŒŒ์ผ or ์˜ˆ๋ฐฐ ๊ทœ์น™์„œ. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. cpp0 ๊ทธ๋ฆฌ๊ณ 
๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ GCC ์ฐพ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๊ฑฐ๋‚˜ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ ๋ณ€์ˆ˜ GCC_EXEC_PREFIX ์„ค์น˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งˆ
ํ›„ํ–‰์„ ์žŠ์–ด /.

-์ธ์‡„-sysroot
์ปดํŒŒ์ผ ์ค‘์— ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์ƒ sysroot ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด
๊ตฌ์„ฑ ์‹œ ๋˜๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ๋Œ€์ƒ sysroot --sysroot ์„ ํƒ๊ถŒ,
์ปดํŒŒ์ผ ์˜ต์…˜์— ๋”ฐ๋ผ ์ถ”๊ฐ€ ์ ‘๋ฏธ์‚ฌ๊ฐ€ ๋ถ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์ƒ์ด ์—†๋Š” ๊ฒฝ์šฐ
sysroot๊ฐ€ ์ง€์ •๋˜๋ฉด ์˜ต์…˜์€ ์•„๋ฌด ๊ฒƒ๋„ ์ธ์‡„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์ธ์‡„-sysroot-ํ—ค๋”-์ ‘๋ฏธ์‚ฌ
ํ—ค๋”๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ๋Œ€์ƒ sysroot์— ์ถ”๊ฐ€๋œ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ธ์‡„ํ•˜๊ฑฐ๋‚˜
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๋Ÿฌํ•œ ์ ‘๋ฏธ์‚ฌ๋กœ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฐ–์—.

- ๋คํ”„ ๋จธ์‹ 
์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋Œ€์ƒ ๋จธ์‹ ์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: i686-pc-๋ฆฌ๋ˆ…์Šค-gnu) ---ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค
๋‹ค๋ฅธ ๊ฒƒ.

-๋คํ”„ ๋ฒ„์ „
์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „(์˜ˆ: 3.0)์„ ์ธ์‡„ํ•˜๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์€ ์ˆ˜ํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-๋คํ”„ ์‚ฌ์–‘
์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋‚ด์žฅ ์‚ฌ์–‘์„ ์ธ์‡„ํ•˜๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์€ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. (์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
GCC ์ž์ฒด๊ฐ€ ๊ตฌ์ถ• ์ค‘์ž…๋‹ˆ๋‹ค.)

-fno-์ œ๊ฑฐ-unused-debug-types
์ผ๋ฐ˜์ ์œผ๋กœ DWARF 2 ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•  ๋•Œ GCC๋Š” ๋””๋ฒ„๊ทธ ๊ธฐํ˜ธ ์ถœ๋ ฅ ์ƒ์„ฑ์„ ํ”ผํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋˜๋Š” ์†Œ์Šค ํŒŒ์ผ์—์„œ ์–ด๋””์—๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์œ ํ˜•. ๊ฐ€๋”์€ ์œ ์šฉํ•˜๋‹ค
GCC๊ฐ€ ์ปดํŒŒ์ผ ๋‹จ์œ„์— ์„ ์–ธ๋œ ๋ชจ๋“  ์œ ํ˜•์— ๋Œ€ํ•œ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋‚ด๋„๋ก ํ•˜๋ ค๋ฉด,
ํ•ด๋‹น ์ปดํŒŒ์ผ ๋‹จ์œ„์—์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด
์˜ˆ๋ฅผ ๋“ค์–ด ๋””๋ฒ„๊ฑฐ์—์„œ ์‹ค์ œ๋กœ๋Š” ์•„๋‹Œ ์œ ํ˜•์œผ๋กœ ๊ฐ’์„ ์บ์ŠคํŠธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ
ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์„ ์–ธ๋จ). ๊ทธ๋Ÿฌ๋‚˜ ๋” ์ž์ฃผ ์ด๋กœ ์ธํ•ด
์ƒ๋‹นํ•œ ์–‘์˜ ๋‚ญ๋น„๋˜๋Š” ๊ณต๊ฐ„.

์˜ต์…˜ ๊ทธ Control ์ตœ์ ํ™”
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ตœ์ ํ™”๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ ํ™” ์˜ต์…˜์ด ์—†์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋ชฉํ‘œ๋Š” ์ปดํŒŒ์ผ ๋น„์šฉ์„ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋””๋ฒ„๊น…์„ ํ†ตํ•ด ์˜ˆ์ƒํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น๋ฌธ์€ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.
๋ช…๋ น๋ฌธ ์‚ฌ์ด์— ์ค‘๋‹จ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ค‘์ง€ํ•œ ๋‹ค์Œ ์ƒˆ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž„์˜์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋ฅผ ํ•จ์ˆ˜์˜ ๋‹ค๋ฅธ ๋ช…๋ น๋ฌธ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ 
์†Œ์Šค ์ฝ”๋“œ์—์„œ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒฐ๊ณผ์™€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ผœ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์„ฑ๋Šฅ ๋ฐ/๋˜๋Š”
์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ๋””๋ฒ„๊ทธ ๊ธฐ๋Šฅ์„ ํฌ์ƒํ•˜๋Š” ์ฝ”๋“œ ํฌ๊ธฐ
ํ”„๋กœ๊ทธ๋žจ)

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์ง€์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ๋‹จ์ผ ์ถœ๋ ฅ ํŒŒ์ผ ๋ชจ๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ๋ชจ๋“  ํŒŒ์ผ์—์„œ ์–ป์€ ์ •๋ณด.

๋ชจ๋“  ์ตœ์ ํ™”๊ฐ€ ํ”Œ๋ž˜๊ทธ์— ์˜ํ•ด ์ง์ ‘ ์ œ์–ด๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‹ค์Œ์ด ์žˆ๋Š” ์ตœ์ ํ™”๋งŒ
ํ”Œ๋ž˜๊ทธ๋Š” ์ด ์„น์…˜์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์ตœ์ ํ™”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -O ๋ ˆ๋ฒจ์€ ๋ช…๋ น์ค„์—์„œ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
๊ฐœ๋ณ„ ์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ์—๋„ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

๋Œ€์ƒ ๋ฐ GCC ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ง‘ํ•ฉ
์ตœ์ ํ™”๋Š” ๊ฐ๊ฐ์—์„œ ํ™œ์„ฑํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -O ์—ฌ๊ธฐ์— ๋‚˜์—ด๋œ ๊ฒƒ๋ณด๋‹ค ์ˆ˜์ค€์ด ๋†’์Šต๋‹ˆ๋‹ค. GCC๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ณผ -Q --help=์ตœ์ ํ™”๊ธฐ ํ™œ์„ฑํ™”๋œ ์ •ํ™•ํ•œ ์ตœ์ ํ™” ์„ธํŠธ๋ฅผ ์ฐพ์œผ๋ ค๋ฉด
๊ฐ ์ˆ˜์ค€.

-O
-O1 ์ตœ์ ํ™” ์ปดํŒŒ์ผ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋” ๋งŽ์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
ํฐ ๊ธฐ๋Šฅ.

์™€ -O, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ ํฌ๊ธฐ์™€ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ค„์ด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ์ตœ์ ํ™”.

-O ๋‹ค์Œ ์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ผญ๋‹ˆ๋‹ค.

-fauto-inc-dec -fbranch-count-reg -fcombin-stack-adjustments -f๋น„๊ต-์ œ๊ฑฐ
-fcprop ๋ ˆ์ง€์Šคํ„ฐ -fdce -fdefer-ํŒ -fdelayed-๋ถ„๊ธฐ -fdse -์•ž์œผ๋กœ ์ „ํŒŒ
-fguess-๋ถ„๊ธฐ ํ™•๋ฅ  -fi-๋ณ€ํ™˜2 -fif ๋ณ€ํ™˜
-finline-functions-call-once -fipa-์ˆœ์ˆ˜-const -fipa ํ”„๋กœํ•„ -fipa-์ฐธ์กฐ
-fmerge-์ƒ์ˆ˜ -fmove-loop-๋ถˆ๋ณ€ -fshrink-wrap -fsplit-์™€์ด๋“œ ์œ ํ˜•
-ftree-bit-ccp -fttree-ccp -fssa-phiopt -fttree-ch -ftree ๋ณต์‚ฌ ์†Œํ’ˆ -ftree-copy์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
-fttree-dce -ftree-์ง€๋ฐฐ์ž-opts -fttree-dse -fttree-forwprop -fttree-fre -fttree-phiprop
-ftree-์‹ฑํฌ๋Œ€ -fttree-slsr -fttree-sra -fttree-pta -fttree-ter -ํ•œ ๋ฒˆ์— ๋‹จ์œ„

-O ๋„ ์ผœ์ง‘๋‹ˆ๋‹ค -fomit ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐฉํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๊ธฐ๊ณ„์—์„œ
๋””๋ฒ„๊น…๊ณผ ํ•จ๊ป˜.

-O2 ๋”์šฑ ์ตœ์ ํ™”ํ•˜์‹ญ์‹œ์˜ค. GCC๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๊ณต๊ฐ„ ์†๋„ ์ ˆ์ถฉ์•ˆ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ตํ•˜์ž๋ฉด -O, ์ด ์˜ต์…˜์€
์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์˜ ์„ฑ๋Šฅ.

-O2 ์— ์˜ํ•ด ์ง€์ •๋œ ๋ชจ๋“  ์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ผญ๋‹ˆ๋‹ค. -O. ๋˜ํ•œ ๋‹ค์Œ์„ ์ผญ๋‹ˆ๋‹ค.
์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ: -fthread ์ ํ”„ -falign-ํ•จ์ˆ˜ -์ •๋ ฌ ์ ํ”„ -์ •๋ ฌ ๋ฃจํ”„
-falign-๋ผ๋ฒจ -fcaller ์ €์žฅ -ํฌ๋กœ์Šค์ ํ”„ -fcse-์ถ”์ข…-์ ํ”„ -fcse-skip-blocks.
-fdelete-null-ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ -f๋น„๊ฐ€์ƒํ™” -fdevirtualize-์ถ”์ธก์ ์œผ๋กœ
-๋น„์‹ผ ์ตœ์ ํ™” -fgcse -fgcse-lm -fhoist-์ธ์ ‘ ํ•˜์ค‘
-finline-์ž‘์€ ๊ธฐ๋Šฅ -findirect ์ธ๋ผ์ธ -fipa-cp -fipa-cp-์ •๋ ฌ -ํ”ผํŒŒ-์Šค๋ผ
-fipa-icf -๋ถ„๋ฆฌ-์˜ค๋ฅ˜-๊ฒฝ๋กœ-์—ญ์ฐธ์กฐ -fla-remat -foptimize-ํ˜•์ œ ํ˜ธ์ถœ
-foptimize-strlen -f๋ถ€๋ถ„ ์ธ๋ผ์ธ -fpeephole2 -freorder-๋ธ”๋ก
-freeorder-blocks-and-partition -freorder-ํ•จ์ˆ˜ -frerun-cse-ํ›„-๋ฃจํ”„
-fsched-์ธํ„ฐ๋ธ”๋ก -fsched-spec -fschedule-insns -fschedule-insns2 -fstrict-์•จ๋ฆฌ์–ด์‹ฑ
-fstrict-์˜ค๋ฒ„ํ”Œ๋กœ -ftree-๋‚ด์žฅ ํ˜ธ์ถœ-dce -ftree ์Šค์œ„์น˜ ๋ณ€ํ™˜ -fttree-tail-merge
-fttree-pre -fttree-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-ํ•จ์ˆ˜, -ํŽ€์Šค์œ„์น˜ ๋ฃจํ”„, -f์˜ˆ์ธก-๊ณตํ†ต, -fgcse-์žฌ๋กœ๋“œ ํ›„,
-ftree ๋ฃจํ”„ ๋ฒกํ„ฐํ™”, -ftree-๋ฃจํ”„-๋ฐฐํฌ-ํŒจํ„ด, -ftree-slp-๋ฒกํ„ฐํ™”,
-fvect-๋น„์šฉ ๋ชจ๋ธ, -ftree-๋ถ€๋ถ„ ์‚ฌ์ „ ๊ณผ -fipa-cp-ํด๋ก  ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-O0 ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ์˜ˆ์ƒํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด
ํƒœ๋งŒ.

- ์˜ค์Šค ํฌ๊ธฐ์— ์ตœ์ ํ™”ํ•˜์‹ญ์‹œ์˜ค. - ์˜ค์Šค ๋ชจ๋‘ ํ™œ์„ฑํ™” -O2 ์ผ๋ฐ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š” ์ตœ์ ํ™”
์ฝ”๋“œ ํฌ๊ธฐ. ๋˜ํ•œ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ์ถ”๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

- ์˜ค์Šค ๋‹ค์Œ ์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -falign-ํ•จ์ˆ˜ -์ •๋ ฌ ์ ํ”„
-์ •๋ ฌ ๋ฃจํ”„ -falign-๋ผ๋ฒจ -freorder-๋ธ”๋ก -freeorder-blocks-and-partition
-fprefetch ๋ฃจํ”„ ๋ฐฐ์—ด

-์˜คํŒŒ์ŠคํŠธ
์—„๊ฒฉํ•œ ํ‘œ์ค€ ์ค€์ˆ˜๋ฅผ ๋ฌด์‹œํ•˜์‹ญ์‹œ์˜ค. -์˜คํŒŒ์ŠคํŠธ ๋ชจ๋‘ ํ™œ์„ฑํ™” -O3 ์ตœ์ ํ™”. ๋˜ํ•œ
๋ชจ๋“  ํ‘œ์ค€ ํ˜ธํ™˜ ํ”„๋กœ๊ทธ๋žจ์— ์œ ํšจํ•˜์ง€ ์•Š์€ ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ
์ผœ๋‹ค -๋น ๋ฅธ ์ˆ˜ํ•™ ๊ทธ๋ฆฌ๊ณ  ํฌํŠธ๋ž€ ์ „์šฉ -fno ๋ณดํ˜ธ ๊ด„ํ˜ธ ๊ณผ -fstack-๋ฐฐ์—ด.

-์˜ค๊ทธ ๋””๋ฒ„๊น… ๊ฒฝํ—˜์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. -์˜ค๊ทธ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋Š” ์ตœ์ ํ™”๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
๋””๋ฒ„๊น…. ํ‘œ์ค€ ํŽธ์ง‘์„ ์œ„ํ•ด ์„ ํƒํ•œ ์ตœ์ ํ™” ์ˆ˜์ค€์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์œ ์ง€ํ•˜๋ฉด์„œ ํ•ฉ๋ฆฌ์ ์ธ ์ˆ˜์ค€์˜ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ปดํŒŒ์ผ-๋””๋ฒ„๊ทธ ์ฃผ๊ธฐ
๋น ๋ฅธ ์ปดํŒŒ์ผ๊ณผ ์ข‹์€ ๋””๋ฒ„๊น… ๊ฒฝํ—˜.

์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -O ์˜ต์…˜, ๋ ˆ๋ฒจ ๋ฒˆํ˜ธ ์œ ๋ฌด์— ๊ด€๊ณ„์—†์ด ๋งˆ์ง€๋ง‰ ์˜ต์…˜์€
ํšจ๊ณผ์ ์ธ ๊ฒƒ.

์–‘์‹์˜ ์˜ต์…˜ -fํ”Œ๋ž˜๊ทธ ๊ธฐ๊ณ„ ๋…๋ฆฝ์  ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”Œ๋ž˜๊ทธ์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ๋ชจ๋‘ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธ์ •์ ์ด๊ณ  ๋ถ€์ •์ ์ธ ํ˜•ํƒœ; ์˜ ๋ถ€์ •์ ์ธ ํ˜•ํƒœ - ํ‘ธํ‘ธ is -fno-foo. ์•„๋ž˜ ํ‘œ์—์„œ,
์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์–‘์‹ ์ค‘ ํ•˜๋‚˜๋งŒ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋‹ค๋ฅธ ๊ฒƒ์„ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์ œ๊ฑฐํ•˜์—ฌ ํ˜•์„ฑ ์•„๋‹ˆ - ๋˜๋Š” ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์€ ํŠน์ • ์ตœ์ ํ™”๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -O
์˜ต์…˜ ๋˜๋Š” ํ•ด๋‹น ์˜ต์…˜๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๊ท€ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ˆ˜ํ–‰ํ•  ์ตœ์ ํ™”์˜ "๋ฏธ์„ธ ์กฐ์ •"์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ.

-fno-์ง€์—ฐ-ํŒ
ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” ์ฆ‰์‹œ ๊ฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ธ์ˆ˜๋ฅผ ํ•ญ์ƒ ํŒ์—…ํ•ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„ ์ธ์ˆ˜๋ฅผ ํŒํ•ด์•ผ ํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ์Šคํƒ์— ๋ˆ„์ ๋˜์–ด ๋ชจ๋‘ ๋‹ค์Œ ์œ„์น˜์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ผ๋‹จ.

์ˆ˜์ค€์—์„œ ๋น„ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-์•ž์œผ๋กœ ์ „ํŒŒ
RTL์—์„œ ์ˆœ๋ฐฉํ–ฅ ์ „ํŒŒ ์ „๋‹ฌ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํŒจ์Šค๋Š” ๋‘ ๊ฐ€์ง€ ๋ช…๋ น์„ ๊ฒฐํ•ฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋ฅผ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฃจํ”„ ์–ธ๋กค๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ XNUMXํšŒ ํ†ต๊ณผ
์ˆ˜ํ–‰๋˜๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ๋ฃจํ”„ ์–ธ๋กค๋ง ํ›„์— ์˜ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O, -O2, -O3, - ์˜ค์Šค.

-ffp-๊ณ„์•ฝ=์Šคํƒ€์ผ
-ffp-๊ณ„์•ฝ=ํ•ด์ œ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ‘œํ˜„์‹ ์ถ•์†Œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -ffp-๊ณ„์•ฝ=๋น ๋ฅธ
fused multi-add์˜ ํ˜•์„ฑ๊ณผ ๊ฐ™์€ ๋ถ€๋™์†Œ์ˆ˜์  ํ‘œํ˜„ ์ถ•์•ฝ ๊ฐ€๋Šฅ
๋Œ€์ƒ์— ๊ธฐ๋ณธ ์ง€์›์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ž‘์—…. -ffp-๊ณ„์•ฝ=์ผœ๊ธฐ ์ˆ˜
์–ธ์–ด ํ‘œ์ค€์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ‘œํ˜„์‹ ์ถ•์†Œ. ์ด๊ฒƒ์€
ํ˜„์žฌ ๊ตฌํ˜„๋˜์ง€ ์•Š๊ณ  ๋™๋“ฑํ•˜๊ฒŒ ์ทจ๊ธ‰๋จ -ffp-๊ณ„์•ฝ=ํ•ด์ œ.

๋””ํดํŠธ๋Š” -ffp-๊ณ„์•ฝ=๋น ๋ฅธ.

-fomit ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ
ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ•จ์ˆ˜์˜ ๋ ˆ์ง€์Šคํ„ฐ์— ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ
ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅ, ์„ค์ • ๋ฐ ๋ณต์›ํ•˜๋ผ๋Š” ์ง€์‹œ๋ฅผ ํ”ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋˜ํ•œ ๋งŒ๋“ ๋‹ค
๋งŽ์€ ๊ธฐ๋Šฅ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ. It ๋˜ํ•œ ๋ธŒ๋žœ๋“œ ๋””๋ฒ„๊น… ๋ถˆ๊ฐ€๋Šฅํ•œ on
์ผ๋ถ€ ๊ธฐ๊ณ„.

VAX์™€ ๊ฐ™์€ ์ผ๋ถ€ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ˜ธ์ถœ ์‹œํ€€์Šค๋Š” ์ž๋™์œผ๋กœ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์•„๋ฌด ๊ฒƒ๋„ ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ฒ™. ๊ธฐ๊ณ„ ์„ค๋ช… ๋งคํฌ๋กœ "FRAME_POINTER_REQUIRED"
๋Œ€์ƒ ๋จธ์‹ ์ด ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์›ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

32๋น„ํŠธ GNU/Linux x86 ๋ฐ 32๋น„ํŠธ์˜ ๊ธฐ๋ณธ ์„ค์ •(ํฌ๊ธฐ ์ตœ์ ํ™”๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ)
๋‹ค์œˆ x86 ํƒ€๊ฒŸ์€ -fomit ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ GCC๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
--enable-ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•˜์—ฌ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-foptimize-ํ˜•์ œ ํ˜ธ์ถœ
ํ˜•์ œ ๋ฐ ๊ผฌ๋ฆฌ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-foptimize-strlen
๋‹ค์–‘ํ•œ ํ‘œ์ค€ C ๋ฌธ์ž์—ด ๊ธฐ๋Šฅ(์˜ˆ: "strlen", "strchr" ๋˜๋Š” "strcpy")์„ ์ตœ์ ํ™”ํ•˜๊ณ 
๋” ๋น ๋ฅธ ๋Œ€์•ˆ์œผ๋กœ "_FORTIFY_SOURCE" ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3.

-fno ์ธ๋ผ์ธ
"always_inline"์œผ๋กœ ํ‘œ์‹œ๋œ ๊ธฐ๋Šฅ ์™ธ์— ์ธ๋ผ์ธ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๊ธฐ์ธํ•˜๋‹ค. ์ตœ์ ํ™”ํ•˜์ง€ ์•Š์„ ๋•Œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

๋‹จ์ผ ํ•จ์ˆ˜๋Š” "noinline"์œผ๋กœ ํ‘œ์‹œํ•˜์—ฌ ์ธ๋ผ์ธ์—์„œ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์†์„ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-finline-์ž‘์€ ๊ธฐ๋Šฅ
๋ณธ๋ฌธ์ด ์˜ˆ์ƒ๋ณด๋‹ค ์ž‘์„ ๋•Œ ํ˜ธ์ถœ์ž์— ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ฝ”๋“œ(๊ทธ๋ž˜์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์ฒด ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง). ์ปดํŒŒ์ผ๋Ÿฌ
ํ†ตํ•ฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ๋งŒํผ ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์„ ๋ฐœ๊ฒฌ์ ์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฐฉ๋ฒ•. ์ด ์ธ๋ผ์ธ์€ ์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋˜์ง€ ์•Š์€ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ํ•จ์ˆ˜์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2.

-findirect ์ธ๋ผ์ธ
์ธ๋ผ์ธ์€ ๋˜ํ•œ ๋‹ค์Œ ๋•๋ถ„์— ์ปดํŒŒ์ผ ํƒ€์ž„์— ์•Œ๋ ค์ง„ ๊ฐ„์ ‘ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค.
์ด์ „ ์ธ๋ผ์ด๋‹. ์ด ์˜ต์…˜์€ ์ธ๋ผ์ธ ์ž์ฒด๊ฐ€ ์ผœ์ ธ ์žˆ์„ ๋•Œ๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋กœ -finline-ํ•จ์ˆ˜ or -finline-์ž‘์€ ๊ธฐ๋Šฅ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2.

-finline-ํ•จ์ˆ˜
์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. NS
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ†ตํ•ฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฒฝํ—˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋ชจ๋“  ํ˜ธ์ถœ์ด ํ†ตํ•ฉ๋˜๊ณ  ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๊ฒฝ์šฐ
"์ •์ "์ธ ๊ฒฝ์šฐ ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ž์ฒด์ ์œผ๋กœ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O3.

-finline-functions-call-once
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ํ˜ธ์ถœ์ž์— ์ธ๋ผ์ธํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ ํ˜ธ์ถœ๋œ ๋ชจ๋“  "์ •์ " ํ•จ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.
"์ธ๋ผ์ธ"์œผ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ํ†ตํ•ฉ๋˜๋ฉด
ํ•จ์ˆ˜๋Š” ์ž์ฒด์ ์œผ๋กœ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O1, -O2, -O3 ๊ณผ - ์˜ค์Šค.

-๋‘๋ ค์šด ์ธ๋ผ์ธ
"always_inline"์œผ๋กœ ํ‘œ์‹œ๋œ ์ธ๋ผ์ธ ํ•จ์ˆ˜ ๋ฐ ๋ณธ๋ฌธ์ด ๋‹ค์Œ๋ณด๋‹ค ์ž‘๊ฒŒ ๋ณด์ด๋Š” ํ•จ์ˆ˜
ํ•˜๊ธฐ ์ „์— ์ผ์ฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์˜ค๋ฒ„ํ—ค๋“œ -fprofile ์ƒ์„ฑ ๊ณ„์ธก ๋ฐ
์‹ค์ œ ์ธ๋ผ์ธ ํŒจ์Šค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”„๋กœํŒŒ์ผ๋ง์ด ์ƒ๋‹นํžˆ ์ €๋ ดํ•ด์ง€๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ
์ค‘์ฒฉ๋œ ๋ž˜ํผ ํ•จ์ˆ˜์˜ ํฐ ์ฒด์ธ์ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋” ๋น ๋ฅด๊ฒŒ ์ธ๋ผ์ธํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-ํ”ผํŒŒ-์Šค๋ผ
์ง‘๊ณ„์˜ ์ ˆ์ฐจ ๊ฐ„ ์Šค์นผ๋ผ ๊ต์ฒด ์ˆ˜ํ–‰, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ์ œ๊ฑฐ
์ฐธ์กฐ๋กœ ์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3 ๊ณผ - ์˜ค์Šค.

-finline-ํ•œ๊ณ„=n
๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ์ธ๋ผ์ธ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์˜ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š”
์ด ํ•œ๊ณ„์˜ ๊ฑฐ์นœ ์ œ์–ด. n ์ธ๋ผ์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์˜ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.
์˜์‚ฌ ๋ช…๋ น์–ด์˜ ์ˆ˜.

์ธ๋ผ์ธ์€ ์‹ค์ œ๋กœ ์ง€์ •๋  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์˜ํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ณ„์ ์œผ๋กœ --๋งค๊ฐœ๋ณ€์ˆ˜ name=๊ฐ€์น˜. ๊ทธ๋งŒํผ -finline-ํ•œ๊ณ„=n ์˜ต์…˜์€ ์ผ๋ถ€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-๋‹จ์ผ
๊ฐ€ n/ 2.

์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-์ž๋™
๊ฐ€ n/ 2.

์ธ๋ผ์ธ์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ฐœ๋ณ„ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ฌธ์„œ๋Š” ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ด๋Ÿฌํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์— ๋Œ€ํ•ด

์ฐธ๊ณ  : ๊ฐ€์น˜๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -finline-ํ•œ๊ณ„ ๊ธฐ๋ณธ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  : ์˜์‚ฌ ๋ช…๋ น์–ด๋Š” ์ด ํŠน์ • ์ปจํ…์ŠคํŠธ์—์„œ ์ถ”์ƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์˜ ํฌ๊ธฐ ์ธก์ •. ์–ด๋–ค ์‹์œผ๋กœ๋“  ์–ด์…ˆ๋ธ”๋ฆฌ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ง€์นจ์ด ์žˆ์œผ๋ฏ€๋กœ ์ •ํ™•ํ•œ ์˜๋ฏธ๋Š” ๋ฆด๋ฆฌ์Šค๋งˆ๋‹ค ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ ๋‹ค๋ฅธ.

-fno-keep-inline-dllexport
๋” ์„ธ๋ถ„ํ™”๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. -fkeep ์ธ๋ผ์ธ ํ•จ์ˆ˜์—๋งŒ ์ ์šฉ๋˜๋Š”
"dllexport" ์†์„ฑ ๋˜๋Š” declspec์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋œ ํ•จ์ˆ˜

-fkeep ์ธ๋ผ์ธ ํ•จ์ˆ˜
C์—์„œ "์ธ๋ผ์ธ"์œผ๋กœ ์„ ์–ธ๋œ "์ •์ " ํ•จ์ˆ˜๋ฅผ ๊ฐœ์ฒด ํŒŒ์ผ์— ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๋Š” ๋ชจ๋“  ํ˜ธ์ถœ์ž์— ์ธ๋ผ์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
GNU C90์—์„œ "extern inline" ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ. C++์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ํ•จ์ˆ˜๋ฅผ ๊ฐœ์ฒด ํŒŒ์ผ์— ๋„ฃ์Šต๋‹ˆ๋‹ค.

-fkeep-static-const
์ตœ์ ํ™”๊ฐ€ ์ผœ์ ธ ์žˆ์ง€ ์•Š์œผ๋ฉด "์ •์  const"๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๋Š” ์ฐธ์กฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ•์ œ๋กœ ํ™•์ธํ•˜๋„๋ก ํ•˜๋ ค๋ฉด
์ตœ์ ํ™”๊ฐ€ ์ผœ์ ธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค.
์ „์—, -fno-keep-static-consts ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-fmerge-์ƒ์ˆ˜
๋™์ผํ•œ ์ƒ์ˆ˜(๋ฌธ์ž์—ด ์ƒ์ˆ˜ ๋ฐ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์ˆ˜) ๋ณ‘ํ•ฉ ์‹œ๋„
์ปดํŒŒ์ผ ๋‹จ์œ„์— ๊ฑธ์ณ.

์ด ์˜ต์…˜์€ ์–ด์…ˆ๋ธ”๋Ÿฌ์™€ ๋ง์ปค๊ฐ€
๊ทธ๊ฒƒ์„ ์ง€์›ํ•˜์‹ญ์‹œ์˜ค. ์‚ฌ์šฉํ•˜๋‹ค -fno-merge-์ƒ์ˆ˜ ์ด ํ–‰๋™์„ ์–ต์ œํ•˜๊ธฐ ์œ„ํ•ด.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-fmerge-all-์ƒ์ˆ˜
๋™์ผํ•œ ์ƒ์ˆ˜์™€ ๋™์ผํ•œ ๋ณ€์ˆ˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ -fmerge-์ƒ์ˆ˜. ์ด์™ธ์— -fmerge-์ƒ์ˆ˜ ์ด
์˜ˆ๋ฅผ ๋“ค์–ด ์ƒ์ˆ˜ ์ดˆ๊ธฐํ™” ๋ฐฐ์—ด ๋˜๋Š” ์ดˆ๊ธฐํ™” ์ƒ์ˆ˜ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
์ •์ˆ˜ ๋˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ์œ ํ˜•. C ๋˜๋Š” C++์™€ ๊ฐ™์€ ์–ธ์–ด์—๋Š” ๊ฐ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์žฌ๊ท€ ํ˜ธ์ถœ์— ๋™์ผํ•œ ๋ณ€์ˆ˜์˜ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ณ ์œ ํ•œ
๋”ฐ๋ผ์„œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ถ€์ ํ•ฉํ•œ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

-fmodulo-sched
์ฒซ ๋ฒˆ์งธ ์Šค์ผ€์ค„๋ง ํŒจ์Šค ์ง์ „์— ์Šค์œ™ ๋ชจ๋“ˆ๋กœ ์Šค์ผ€์ค„๋ง์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
pass๋Š” ๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฃจํ”„๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ๋ฃจํ”„๋ฅผ ๊ฒน์ณ์„œ ๋ช…๋ น์„ ์žฌ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋ณต.

-fmodulo-sched-allow-regmoves
๋ ˆ์ง€์Šคํ„ฐ ์ด๋™์ด ํ—ˆ์šฉ๋˜๋Š” ๋ณด๋‹ค ์ ๊ทน์ ์ธ SMS ๊ธฐ๋ฐ˜ ๋ชจ๋“ˆ๋กœ ์Šค์ผ€์ค„๋ง์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์— ์˜ํ•ด
์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•˜๋ฉด ํŠน์ • ๋ฐ˜์˜์กด์„ฑ ์—์ง€๊ฐ€ ์‚ญ์ œ๋˜์–ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
์ˆ˜๋ช… ๋ฒ”์œ„ ๋ถ„์„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” reg-moves ์ƒ์„ฑ. ์ด ์˜ต์…˜์€ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค
~ ๋งŒ -fmodulo-sched ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-fno-๋ธŒ๋žœ์น˜-์นด์šดํŠธ-reg
์นด์šดํŠธ ๋ ˆ์ง€์Šคํ„ฐ์— "๊ฐ์†Œ ๋ฐ ๋ถ„๊ธฐ" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ๋Œ€์‹ 
๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ์†Œ์‹œํ‚ค๋Š” ์ผ๋ จ์˜ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋น„๊ต
XNUMX์ด๊ณ  ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ถ„๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
x86, PowerPC, IA-64 ๋ฐ
S/390.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O1 ์ด์ƒ.

๋””ํดํŠธ๋Š” -fbranch-count-reg.

-fno-๊ธฐ๋Šฅ-cse
๋ ˆ์ง€์Šคํ„ฐ์— ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ˜ธ์ถœํ•˜๋Š” ๊ฐ ๋ช…๋ น์„
์ƒ์ˆ˜ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง€์ง€๋งŒ
์–ด์…ˆ๋ธ”๋Ÿฌ ์ถœ๋ ฅ์€ ์ด ์˜ต์…˜์ด ์žˆ์„ ๋•Œ ์ˆ˜ํ–‰๋˜๋Š” ์ตœ์ ํ™”๋กœ ์ธํ•ด ํ˜ผ๋™๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -fํ•จ์ˆ˜-cse

-fno-zero-initialized-in-bss
๋Œ€์ƒ์ด BSS ์„น์…˜์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.
BSS์— XNUMX์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฒฐ๊ณผ ์ฝ”๋“œ์˜ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์€ ๋ช…์‹œ์ ์œผ๋กœ ๋ณ€์ˆ˜์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์˜ต์…˜์€ ์ด ๋™์ž‘์„ ๋•๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์„น์…˜์œผ๋กœ ์ด๋™ --- ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒฐ๊ณผ ์‹คํ–‰ ํŒŒ์ผ์ด ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก
ํ•ด๋‹น ์„น์…˜์˜ ์‹œ์ž‘ ๋ถ€๋ถ„ ๋ฐ/๋˜๋Š” ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -fzero-์ดˆ๊ธฐํ™”-BSS.

-fthread ์ ํ”„
์ ํ”„๊ฐ€ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ๋ถ„๊ธฐ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ๋กœ ํฌํ•จ๋œ ๋น„๊ต๊ฐ€ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ๋ถ„๊ธฐ๋Š” ๋‹ค์Œ์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ๋ถ„๊ธฐ์˜ ๋ชฉ์ ์ง€ ๋˜๋Š” ๋ฐ”๋กœ ๋‹ค์Œ ์ง€์ ,
์กฐ๊ฑด์ด ์ฐธ์ธ์ง€ ๊ฑฐ์ง“์ธ์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fsplit-์™€์ด๋“œ ์œ ํ˜•
32๋น„ํŠธ์—์„œ "long long"๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
์‹œ์Šคํ…œ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ
์ด๋Ÿฌํ•œ ์œ ํ˜•์— ๋Œ€ํ•ด ๋” ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ ๋””๋ฒ„๊น…์„ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-fcse-์ถ”์ข…-์ ํ”„
CSE(๊ณตํ†ต ๋ถ€๋ถ„์‹ ์ œ๊ฑฐ)์—์„œ ์ ํ”„ ๋ช…๋ น์–ด๋ฅผ ์Šค์บ”ํ•˜๋ฉด
์ ํ”„์˜ ๋ชฉํ‘œ๋Š” ๋‹ค๋ฅธ ๊ฒฝ๋กœ์— ์˜ํ•ด ๋„๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด CSE๊ฐ€
"else" ์ ˆ์ด ์žˆ๋Š” "if" ๋ฌธ, CSE๋Š” ์กฐ๊ฑด์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ์ ํ”„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธํ•œ ๊ฒƒ์€ ๊ฑฐ์ง“์ž…๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fcse-skip-blocks.
์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. -fcse-์ถ”์ข…-์ ํ”„, ๊ทธ๋Ÿฌ๋‚˜ CSE๊ฐ€ ๋‹ค์Œ ์ ํ”„๋ฅผ ๋”ฐ๋ฅด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์กฐ๊ฑด๋ถ€๋กœ ๋ธ”๋ก์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. CSE๊ฐ€ ์—†๋Š” ๋‹จ์ˆœํ•œ "if" ๋ฌธ์„ ๋งŒ๋‚˜๋ฉด
else ์ ˆ, -fcse-skip-blocks. CSE๋Š” ๋ชธ ์ฃผ์œ„์˜ ์ ํ”„๋ฅผ ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค.
"๋งŒ์•ฝ".

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-frerun-cse-ํ›„-๋ฃจํ”„
๋ฃจํ”„ ์ตœ์ ํ™”๊ฐ€ ์ˆ˜ํ–‰๋œ ํ›„ ๊ณตํ†ต ํ•˜์œ„ ํ‘œํ˜„์‹ ์ œ๊ฑฐ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fgcse
์ „์—ญ ๊ณตํ†ต ๋ถ€๋ถ„์‹ ์ œ๊ฑฐ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ „์—ญ ์ƒ์ˆ˜ ๋ฐ ๋ณต์‚ฌ ์ „ํŒŒ.

์ฐธ๊ณ  : GCC ํ™•์žฅ์ธ ๊ณ„์‚ฐ๋œ gotos๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ๋‹ค์Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „์—ญ ๊ณตํ†ต ํ•˜์œ„ ํ‘œํ˜„์‹ ์ œ๊ฑฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ ํ–ฅ์ƒ
์ถ”๊ฐ€ํ•˜์—ฌ ํ†ต๊ณผ -FNO-GCSE ๋ช…๋ น ์ค„์—.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fgcse-lm
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -fgcse-lm ํ™œ์„ฑํ™”๋˜๋ฉด ์ „์—ญ ๊ณตํ†ต ํ•˜์œ„ ํ‘œํ˜„์‹ ์ œ๊ฑฐ๊ฐ€ ์ด๋™ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์ƒ์ ์— ์˜ํ•ด์„œ๋งŒ ์ฃฝ์ž„์„ ๋‹นํ•˜๋Š” ๋ถ€ํ•˜. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ๋ฃจํ”„๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ฃจํ”„ ์™ธ๋ถ€์˜ ๋กœ๋“œ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๋กœ๋“œ/์ €์žฅ ์‹œํ€€์Šค ๋ฐ ๋ฃจํ”„ ๋‚ด ๋ณต์‚ฌ/์ €์žฅ
๋ฃจํ”„.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fgcse ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-fgcse-sm
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -fgcse-sm ํ™œ์„ฑํ™”๋˜๋ฉด ์ „์—ญ ๊ณตํ†ต ์ดํ›„์— ์Šคํ† ์–ด ๋ชจ์…˜ ํŒจ์Šค๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
ํ•˜์œ„ ํ‘œํ˜„ ์ œ๊ฑฐ. ์ด ํŒจ์Šค๋Š” ์ €์žฅ์†Œ๋ฅผ ๋ฃจํ”„ ๋ฐ–์œผ๋กœ ์ด๋™ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์‹œ
์™€ ํ•จ๊ป˜ -fgcse-lm, ๋กœ๋“œ/์ €์žฅ ์‹œํ€€์Šค๊ฐ€ โ€‹โ€‹ํฌํ•จ๋œ ๋ฃจํ”„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฃจํ”„ ์ด์ „์— ๋กœ๋“œํ•˜๊ณ  ๋ฃจํ”„ ์ดํ›„์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ๋„ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fgcse-las
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -fgcse-las ํ™œ์„ฑํ™”๋˜๋ฉด ์ „์—ญ ๊ณตํ†ต ํ•˜์œ„ ํ‘œํ˜„์‹ ์ œ๊ฑฐ ํŒจ์Šค
๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜(๋‘˜ ๋‹ค
๋ถ€๋ถ„ ๋ฐ ์ „์ฒด ์ค‘๋ณต).

์–ด๋–ค ์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ๋„ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fgcse-์žฌ๋กœ๋“œ ํ›„
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -fgcse-์žฌ๋กœ๋“œ ํ›„ ํ™œ์„ฑํ™”๋˜๋ฉด ์ค‘๋ณต ๋กœ๋“œ ์ œ๊ฑฐ ํŒจ์Šค๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
์žฌ์žฅ์ „ ํ›„. ์ด ํŒจ์Šค์˜ ๋ชฉ์ ์€ ์ค‘๋ณต ์œ ์ถœ์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

- faggressive-loop-optimizations
์ด ์˜ต์…˜์€ ๋ฃจํ”„ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์–ธ์–ด ์ œ์•ฝ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ
๋ฃจํ”„์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜. ์ด๊ฒƒ์€ ๋ฃจํ”„ ์ฝ”๋“œ๊ฐ€
์˜ˆ๋ฅผ ๋“ค์–ด ๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ ๋˜๋Š” ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘
๋ฐฐ์—ด ์•ก์„ธ์Šค. ๋ฃจํ”„์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜์— ๋Œ€ํ•œ ๊ฒฝ๊ณ„๋Š” ๋‹ค์Œ์„ ์•ˆ๋‚ดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ฃจํ”„ ํ’€๊ธฐ ๋ฐ ํ•„๋ง ๋ฐ ๋ฃจํ”„ ์ข…๋ฃŒ ํ…Œ์ŠคํŠธ ์ตœ์ ํ™”. ์ด ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๊ธฐ๋ณธ์ ์œผ๋กœ

-ํŽ€์„ธ์ดํ”„ ๋ฃจํ”„ ์ตœ์ ํ™”
์ด ์˜ต์…˜์€ ๋ฃจํ”„ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ๋ฃจํ”„ ์ธ๋ฑ์Šค๊ฐ€ ์˜ค๋ฒ„ํ”Œ๋กœ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ 
์ค‘์š”ํ•˜์ง€ ์•Š์€ ์ข…๋ฃŒ ์กฐ๊ฑด์ด ์žˆ๋Š” ๋ฃจํ”„๋Š” ๋ฌดํ•œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋” ๋„“์€
๋ฃจํ”„ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด๊ฐ€ ๋‹ค์Œ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๋ฃจํ”„ ์ตœ์ ํ™” ๋ฒ”์œ„
๊ฐ€์ •์ด ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -Wunsafe ๋ฃจํ”„ ์ตœ์ ํ™”, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฃจํ”„๋ฅผ ์ฐพ์œผ๋ฉด.

-ํฌ๋กœ์Šค์ ํ”„
ํฌ๋กœ์Šค ์ ํ”„ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€ํ™˜์€ ๋™๋“ฑํ•œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ฉํ•˜๊ณ 
์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ๊ต์ฐจ๊ฐ€ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์ผ ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ ํ”„.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fauto-inc-dec
๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค์™€ ์ฃผ์†Œ์˜ ์ฆ๊ฐ€ ๋˜๋Š” ๊ฐ์†Œ๋ฅผ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š”
์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์นจ์ด ์—†๋Š” ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ํ•ญ์ƒ ๊ฑด๋„ˆ๋›ฐ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ์ง€์›ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜์—์„œ ๋” ๋†’์Šต๋‹ˆ๋‹ค.

-fdce
RTL์—์„œ ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ(DCE)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ์ด์ƒ.

-fdse
RTL์—์„œ ๋ฐ๋“œ ์Šคํ† ์–ด ์ œ๊ฑฐ(DSE)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ์ด์ƒ.

-fif ๋ณ€ํ™˜
์กฐ๊ฑด๋ถ€ ์ ํ”„๋ฅผ ๋ถ„๊ธฐ๊ฐ€ ์—†๋Š” ๋“ฑ๊ฐ€๋ฌผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
์กฐ๊ฑด๋ถ€ ์ด๋™, ์ตœ์†Œ, ์ตœ๋Œ€, ํ”Œ๋ž˜๊ทธ ๋ฐ ๋ณต๊ทผ ์„ค์ • ์ง€์นจ ๋ฐ ๋ช‡ ๊ฐ€์ง€ ํŠธ๋ฆญ ์‚ฌ์šฉ
ํ‘œ์ค€ ์‚ฐ์ˆ ๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นฉ์—์„œ ์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ์‚ฌ์šฉ
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ œ์–ด -fi-๋ณ€ํ™˜2.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-fi-๋ณ€ํ™˜2
์กฐ๊ฑด๋ถ€ ์‹คํ–‰(์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ)์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด๋ถ€ ์ ํ”„๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€์ง€๊ฐ€ ์—†๋Š” ๋“ฑ๊ฐ€๋ฌผ.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-fdeclone-ctor-dtor
C++ ABI์—๋Š” ์ƒ์„ฑ์ž์™€ ์†Œ๋ฉธ์ž์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์ง„์ž…์ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ํ•˜์œ„ ๊ฐœ์ฒด, ํ•˜๋‚˜๋Š” ์™„์ „ํ•œ ๊ฐœ์ฒด์šฉ์ด๊ณ  ํ•˜๋‚˜๋Š” ํ˜ธ์ถœํ•˜๋Š” ๊ฐ€์ƒ ์†Œ๋ฉธ์ž์šฉ์ž…๋‹ˆ๋‹ค.
์—ฐ์‚ฐ์ž๋Š” ๋‚˜์ค‘์— ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๊ธฐ๋ฐ˜์ด ์žˆ๋Š” ๊ณ„์ธต์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๋ฐ ์ „์ฒด
๋ณ€ํ˜•์€ ๊ธฐ๋Šฅ์˜ ๋‘ ๋ณต์‚ฌ๋ณธ์„ ์˜๋ฏธํ•˜๋Š” ํด๋ก ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด
๊ธฐ๋ณธ ๋ฐ ์ „์ฒด ๋ณ€ํ˜•์€ ๊ณตํ†ต ๊ตฌํ˜„์„ ํ˜ธ์ถœํ•˜๋Š” ์ฝํฌ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

์— ์˜ํ•ด ํ™œ์„ฑํ™”๋จ - ์˜ค์Šค.

-fdelete-null-ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ
ํ”„๋กœ๊ทธ๋žจ์ด ๋„ ํฌ์ธํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์—ญ์ฐธ์กฐํ•  ์ˆ˜ ์—†๊ณ  ์ฝ”๋“œ๋‚˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์š”์†Œ๊ฐ€ ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•œ ์ผ์ •ํ•œ ์ ‘๊ธฐ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ตœ์ ํ™” ์ˆ˜์ค€. ๋˜ํ•œ GCC์˜ ๋‹ค๋ฅธ ์ตœ์ ํ™” ๋‹จ๊ณ„์—์„œ๋Š” ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
๋„ ํฌ์ธํ„ฐ์— ๋Œ€ํ•œ ๋ถˆํ•„์š”ํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์ „์—ญ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ถ„์„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ํฌ์ธํ„ฐ๊ฐ€ ์ด๋ฏธ ์—ญ์ฐธ์กฐ๋œ ํ›„์— ๊ฒ€์‚ฌ๋˜๋ฉด
null์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ํ™˜๊ฒฝ์—์„œ๋Š” ์ด ๊ฐ€์ •์ด ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค
-fno-delete-null-ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ์ด ์ตœ์ ํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
๊ทธ ํ–‰๋™์—.

์ผ๋ถ€ ๋Œ€์ƒ, ํŠนํžˆ ํฌํ•จ๋œ ๋Œ€์ƒ์€ ๋ชจ๋“  ์ˆ˜์ค€์—์„œ ์ด ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
๋ชจ๋“  ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -O0, -O1, -O2, -O3, - ์˜ค์Šค. ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจ์Šค
๋‹ค๋ฅธ ์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-f๋น„๊ฐ€์ƒํ™”
๊ฐ€์ƒ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ง์ ‘ ํ˜ธ์ถœ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‘˜ ๋‹ค ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค
์ ˆ์ฐจ ๋‚ด์—์„œ ๊ฐ„์ ‘ ์ธ๋ผ์ธ์˜ ์ผ๋ถ€๋กœ ์ ˆ์ฐจ ๊ฐ„
(-findirect ์ธ๋ผ์ธ) ๋ฐ ์ ˆ์ฐจ ๊ฐ„ ์ƒ์ˆ˜ ์ „ํŒŒ(-fipa-cp). ํ™œ์„ฑํ™” ์‹œ๊ฐ„
๋ ˆ๋ฒจ -O2, -O3, - ์˜ค์Šค.

-fdevirtualize-์ถ”์ธก์ ์œผ๋กœ
๊ฐ€์ƒ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ํˆฌ๊ธฐ์  ์ง์ ‘ ํ˜ธ์ถœ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ฐ˜์œผ๋กœ
์œ ํ˜• ์ƒ์† ๊ทธ๋ž˜ํ”„์˜ ๋ถ„์„, ์ฃผ์–ด์ง„ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ง‘ํ•ฉ ๊ฒฐ์ •
๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ํ‘œ์ . ์ง‘ํ•ฉ์ด ์ž‘์€ ๊ฒฝ์šฐ, ๋ฐ”๋žŒ์งํ•˜๊ฒŒ๋Š” ํฌ๊ธฐ๊ฐ€ 1์ธ ๊ฒฝ์šฐ ํ˜ธ์ถœ์„ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
์ง์ ‘ ๋ฐ ๊ฐ„์ ‘ ํ˜ธ์ถœ ์‚ฌ์ด์˜ ์กฐ๊ฑด๋ถ€ ๊ฒฐ์ •. ํˆฌ๊ธฐ์  ํ˜ธ์ถœ์€
์ธ๋ผ์ธ๊ณผ ๊ฐ™์€ ๋” ๋งŽ์€ ์ตœ์ ํ™”. ๊ทธ๋“ค์ด ๋” ์ด์ƒ ์“ธ๋ชจ ์—†์–ด ๋ณด์ผ ๋•Œ
์ตœ์ ํ™”, ๊ทธ๋“ค์€ ์›๋ž˜ ํ˜•ํƒœ๋กœ ๋‹ค์‹œ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

-fdevirtualize-at-ltrans
๋งํฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ ๊ทน์ ์ธ ํƒˆ๊ฐ€์ƒํ™”์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜์‹ญ์‹œ์˜ค.
๋กœ์ปฌ ๋ณ€ํ™˜ ๋ชจ๋“œ์˜ ์‹œ๊ฐ„ ์ตœ์ ํ™”๊ธฐ. ์ด ์˜ต์…˜์€ ๋” ๋งŽ์€
๊ทธ๋Ÿฌ๋‚˜ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด
๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-๋น„์‹ผ ์ตœ์ ํ™”
๋น„๊ต์  ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‚ฌ์†Œํ•œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-๋น„์–ด ์žˆ๋Š”
์ค‘๋ณต ํ™•์žฅ ๋ช…๋ น์„ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŠนํžˆ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
x86-64 ์•„ํ‚คํ…์ฒ˜, 64๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ์•”์‹œ์ ์œผ๋กœ XNUMX ํ™•์žฅ
ํ•˜์œ„ 32๋น„ํŠธ ์ ˆ๋ฐ˜์— ์“ฐ๊ธฐ.

๋ ˆ๋ฒจ์—์„œ Alpha, AArch64 ๋ฐ x86์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fno-์ˆ˜๋ช…-dse
C++์—์„œ ๊ฐœ์ฒด์˜ ๊ฐ’์€ ์ˆ˜๋ช… ๋‚ด ๋ณ€๊ฒฝ์— ์˜ํ•ด์„œ๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
์ƒ์„ฑ์ž๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ๊ฐ์ฒด๊ฐ€ ๋ถˆํ™•์‹คํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ
๊ฐ์ฒด์˜ ์ˆ˜๋ช…์€ ๊ฐ์ฒด๊ฐ€ ํŒŒ๊ดด๋  ๋•Œ ์ฃฝ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ์ฃฝ์€ ๊ฐ€๊ฒŒ
์ œ๊ฑฐ๋Š” ์ด๊ฒƒ์„ ์ด์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ ๊ฐ’์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ
๊ฐ์ฒด์˜ ์ˆ˜๋ช… ์ดํ›„์—๋„ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์ง€์†๋˜๋Š” ๊ฒฝ์šฐ ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
์ด ์ตœ์ ํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค.

- ํ”Œ๋ผ์ด ๋ ˆ์ธ์ง€ ์ˆ˜์ถ•
๋ ˆ์ง€์Šคํ„ฐ ๋ผ์ด๋ธŒ ๋ฒ”์œ„ ์ถ•์†Œ๋ฅผ โ€‹โ€‹ํ†ตํ•ด ๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ์„ ์ค„์ด๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
์ž‘๊ฑฐ๋‚˜ ์ค‘๊ฐ„ ํฌ๊ธฐ์˜ ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๊ฐ€ ์žˆ๋Š” ๊ณ ์† ํ”„๋กœ์„ธ์„œ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

-ํ”ผ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜=์—ฐ์‚ฐ
ํ†ตํ•ฉ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž์— ๋Œ€ํ•ด ์ง€์ •๋œ ์ƒ‰์ƒ ์ง€์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. NS
์—ฐ์‚ฐ ์ฃผ์žฅ์€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์šฐ์„ , Chow์˜ ์šฐ์„  ์ˆœ์œ„ ์ƒ‰์ƒ ์ง€์ •, ๋˜๋Š” CB,
Chaitin-Briggs ์ฐฉ์ƒ‰์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Chaitin-Briggs ์ฐฉ์ƒ‰์ด ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ง€์›ํ•˜์ง€๋งŒ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-ํ”ผ๋ผ ์ง€์—ญ=์ง€๋ฐฉ
ํ†ตํ•ฉ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž์— ๋Œ€ํ•ด ์ง€์ •๋œ ์˜์—ญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. NS ์ง€๋ฐฉ ๋…ผ์˜
๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ชจ๋“  ๋ฃจํ”„๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ์˜์—ญ์œผ๋กœ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ตœ๊ณ ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์ž‘๊ฑฐ๋‚˜ ๋ถˆ๊ทœ์น™ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๊ฐ€ ์žˆ๋Š” ๊ธฐ๊ณ„.

ํ˜ผํ•ฉ ๋œ
์˜์—ญ์œผ๋กœ ๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ์ด ์ž‘์€ ๋ฃจํ”„๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๊ฐ’์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„์˜ ์•„ํ‚คํ…์ฒ˜์—์„œ ์ตœ์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์†๋„ ์ตœ์ ํ™”(-O, -O2, ...).

ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋‹จ์ผ ์˜์—ญ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ์ž‘์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํฌ๊ธฐ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. - ์˜ค์Šค or -O0.

-ํ”ผ๋ผ-ํ˜ธ์ด์ŠคํŠธ-์••๋ ฅ
IRA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ด์ŠคํŠธ ๊ฒฐ์ •์„ ์œ„ํ•œ ์ฝ”๋“œ ํ˜ธ์ด์ŠคํŒ… ํŒจ์Šค์˜ ๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ ํ‰๊ฐ€
ํ‘œํ˜„. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์ž‘์•„์ง€์ง€๋งŒ ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ ๋‹ค์šด.

์ด ์˜ต์…˜์€ ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. - ์˜ค์Šค ๋ชจ๋“  ๋Œ€์ƒ์— ๋Œ€ํ•ด.

-ํ”ผ๋ผ ๋ฃจํ”„ ์••๋ ฅ
IRA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฃจํ”„ ๋ถˆ๋ณ€๋Ÿ‰์„ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฐ์ •์— ๋Œ€ํ•œ ๋ฃจํ”„์˜ ๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ๋” ๋น ๋ฅด๊ณ  ๋” ์ž‘์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํฐ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ(>= 32 ๋ ˆ์ง€์Šคํ„ฐ)์ด์ง€๋งŒ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -O3 ์ผ๋ถ€ ๋Œ€์ƒ์— ๋Œ€ํ•ด.

-fno-ira-๊ณต์œ -์ €์žฅ-์Šฌ๋กฏ
ํ˜ธ์ถœ ์‚ฌ์šฉ ํ•˜๋“œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์Šคํƒ ์Šฌ๋กฏ ๊ณต์œ  ๋น„ํ™œ์„ฑํ™”
์ „ํ™”. ๊ฐ ํ•˜๋“œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ณ„๋„์˜ ์Šคํƒ ์Šฌ๋กฏ์„ ๊ฐ€์ง€๋ฉฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•จ์ˆ˜ ์Šคํƒ
ํ”„๋ ˆ์ž„์ด ๋” ํฝ๋‹ˆ๋‹ค.

-fno-ira-share-spill-slots
์˜์‚ฌ ๋ ˆ์ง€์Šคํ„ฐ์— ํ• ๋‹น๋œ ์Šคํƒ ์Šฌ๋กฏ์˜ ๊ณต์œ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์˜์‚ฌ ๋ ˆ์ง€์Šคํ„ฐ
ํ•˜๋“œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์–ป์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ๋ณ„๋„์˜ ์Šคํƒ ์Šฌ๋กฏ์„ ๊ฐ€์ ธ์˜ค๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•จ์ˆ˜
์Šคํƒ ํ”„๋ ˆ์ž„์ด ๋” ํฝ๋‹ˆ๋‹ค.

-Fira-์žฅํ™ฉํ•œ=n
ํ†ตํ•ฉ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž์— ๋Œ€ํ•œ ๋คํ”„ ํŒŒ์ผ์˜ ์ž์„ธํ•œ ์ •๋„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 5์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด n 10๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ๋คํ”„ ์ถœ๋ ฅ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
์™€ ๊ฐ™์€ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ stderr๋กœ n ๋งˆ์ด๋„ˆ์Šค 10.

-fla-remat
LRA์—์„œ CFG์— ๋ฏผ๊ฐํ•œ ์žฌ๊ตฌ์ฒดํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์œ ์ถœ๋œ ๊ฐ’์„ ๋กœ๋“œํ•˜๋Š” ๋Œ€์‹ 
์˜์‚ฌ, LRA๋Š” ์ˆ˜์ต์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ’์„ ์žฌ๊ตฌํ˜„(์žฌ๊ณ„์‚ฐ)ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fdelayed-๋ถ„๊ธฐ
๋Œ€์ƒ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ ์•…์šฉํ•  ๋ช…๋ น์„ ์žฌ์ •๋ ฌํ•˜์‹ญ์‹œ์˜ค.
์ง€์—ฐ ๋ถ„๊ธฐ ๋ช…๋ น ์ดํ›„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น ์Šฌ๋กฏ.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-fschedule-insns
๋Œ€์ƒ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ ๋ช…๋ น์„ ์žฌ์ •๋ ฌํ•˜์—ฌ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.
ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๊ณ„๋ฅผ ๋•์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ ํ—ˆ์šฉํ•˜์—ฌ ๋Š๋ฆฐ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋“œ ๋ช…๋ น์–ด๋ฅผ
๋กœ๋“œ ๋˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๊นŒ์ง€ ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3.

-fschedule-insns2
์œ ์‚ฌํ•˜๊ฒŒ -fschedule-insns, ๊ทธ๋Ÿฌ๋‚˜ ๋ช…๋ น ์Šค์ผ€์ค„๋ง์˜ ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ด ์™„๋ฃŒ๋œ ํ›„. ์ด๊ฒƒ์€ ํŠนํžˆ ๋‹ค์Œ์ด ์žˆ๋Š” ๊ธฐ๊ณ„์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ ์ˆ˜์˜ ๋ ˆ์ง€์Šคํ„ฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋“œ ๋ช…๋ น์ด
ํ•œ ์‚ฌ์ดํด.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fno-sched-์ธํ„ฐ๋ธ”๋ก
๊ธฐ๋ณธ ๋ธ”๋ก ์ „์ฒด์— ์ง€์นจ์„ ์˜ˆ์•ฝํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ์ „์— ์Šค์ผ€์ค„๋งํ•  ๋•Œ, ์ฆ‰ -fschedule-insns ๋˜๋Š”์—์„œ -O2 or
๋” ๋†’์€.

-fno-sched-spec
๋ฌด๋ถ€ํ•˜ ๋ช…๋ น์–ด์˜ ํˆฌ๊ธฐ์  ์›€์ง์ž„์„ ํ—ˆ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ์ „์— ์Šค์ผ€์ค„๋งํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’, ์ฆ‰ -fschedule-insns ๋˜๋Š”์—์„œ
-O2 ์ด์ƒ.

-fsched-์••๋ ฅ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ์ „์— ๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ ๊ฐ์ง€ ์ˆ™์†Œ ์˜ˆ์•ฝ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ด ํ™œ์„ฑํ™”๋˜๊ธฐ ์ „์— ์Šค์ผ€์ค„๋งํ•  ๋•Œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
-fschedule-insns ๋˜๋Š”์—์„œ -O2 ๋˜๋Š” ๋” ๋†’๊ฒŒ. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์„ฑ๋œ
๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ์ด ์ˆซ์ž ์ด์ƒ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ํฌ๊ธฐ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์˜ ํ›„์† ์œ ์ถœ.

-fsched-์‚ฌ์–‘-๋กœ๋“œ
์ผ๋ถ€ ๋กœ๋“œ ๋ช…๋ น์˜ ์ถ”์ธก ๋ชจ์…˜์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ์ „์— ์Šค์ผ€์ค„๋ง, ์ฆ‰ -fschedule-insns ๋˜๋Š”์—์„œ -O2 ์ด์ƒ.

-fsched-spec-load-์œ„ํ—˜ํ•œ
๋” ๋งŽ์€ ๋กœ๋“œ ๋ช…๋ น์˜ ์ถ”์ธก ๋ชจ์…˜์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ์ „์— ์Šค์ผ€์ค„๋ง, ์ฆ‰ -fschedule-insns ๋˜๋Š”์—์„œ -O2 ์ด์ƒ.

-fsched-staled-insns
-fsched-stalled-insns=n
์ง€์—ฐ ๋Œ€๊ธฐ์—ด์—์„œ ์กฐ๊ธฐ์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ™๋ฐ• ์‹œ์„ค(์žˆ๋Š” ๊ฒฝ์šฐ)์˜ ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ์Šค์ผ€์ค„๋ง ๋‹จ๊ณ„์—์„œ ์ค€๋น„ ๋ชฉ๋ก์— insns๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. -fno-sched-staled-insns
์–ด๋–ค ์—ฌ๊ด€๋„ ์กฐ๊ธฐ์— ์ด๋™๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•˜๋ฉฐ, -fsched-stalled-insns=0 ์—†์Œ์„ ์˜๋ฏธ
์กฐ๊ธฐ์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๊ธฐ ์ค‘์ธ ์ธ์˜ ์ˆ˜์— ๋Œ€ํ•œ ์ œํ•œ. -fsched-staled-insns
๊ฐ’์ด ์—†๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -fsched-stalled-insns=1.

-fsched-stalled-insns-dep
-fsched-stalled-insns-dep=n
์ค‘๋‹จ๋œ ์‹œ์„ค์— ๋Œ€ํ•œ ์ข…์†์„ฑ์— ๋Œ€ํ•ด ๊ฒ€์‚ฌํ•˜๋Š” ์ˆ™๋ฐ• ์‹œ์„ค ๊ทธ๋ฃน(์ฃผ๊ธฐ)์˜ ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” ์ง€์—ฐ๋œ ์—ฌ๊ด€ ๋Œ€๊ธฐ์—ด์—์„œ ์กฐ๊ธฐ ์ œ๊ฑฐ ํ›„๋ณด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค
๋‘ ๋ฒˆ์งธ ์Šค์ผ€์ฅด๋ง ํŒจ์Šค ๋™์•ˆ์—๋งŒ ํšจ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. -fsched-staled-insns is
์ต์ˆ™ํ•œ. -fno-sched-stalled-insns-dep ์— ํ•ด๋‹นํ•˜๋Š” -fsched-stalled-insns-dep=0.
-fsched-stalled-insns-dep ๊ฐ’์ด ์—†๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
-fsched-stalled-insns-dep=1.

-fsched2-use-์ˆ˜ํผ๋ธ”๋ก
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ํ›„ ์Šค์ผ€์ค„๋งํ•  ๋•Œ ์ˆ˜ํผ๋ธ”๋ก ์Šค์ผ€์ค„๋ง์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ํ—ˆ์šฉ
๊ธฐ๋ณธ ๋ธ”๋ก ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด ๋” ๋น ๋ฅธ ์ผ์ •์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
GCC์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๊ณ„ ์„ค๋ช…์ด CPU๋ฅผ ์ถฉ๋ถ„ํžˆ ๊ฐ€๊น๊ฒŒ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ—˜์ ์ž…๋‹ˆ๋‹ค.
์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฐ๊ณผ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด.

์ด๊ฒƒ์€ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ํ›„ ์Šค์ผ€์ค„๋งํ•  ๋•Œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
-fschedule-insns2 ๋˜๋Š”์—์„œ -O2 ์ด์ƒ.

-fsched-group-ํœด๋ฆฌ์Šคํ‹ฑ
์Šค์ผ€์ค„๋Ÿฌ์—์„œ ๊ทธ๋ฃน ํœด๋ฆฌ์Šคํ‹ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํœด๋ฆฌ์Šคํ‹ฑ์€ ๋ช…๋ น์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
์ผ์ • ๊ทธ๋ฃน์— ์†ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์ •์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
ํ™œ์„ฑํ™”, ์ฆ‰ -fschedule-insns or -fschedule-insns2 ๋˜๋Š”์—์„œ -O2 ์ด์ƒ.

-fsched-critical-path-ํœด๋ฆฌ์Šคํ‹ฑ
์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ž„๊ณ„ ๊ฒฝ๋กœ ํœด๋ฆฌ์Šคํ‹ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํœด๋ฆฌ์Šคํ‹ฑ ํ˜ธ์˜
์ค‘์š”ํ•œ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ง€์นจ. ์ผ์ •์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
ํ™œ์„ฑํ™”, ์ฆ‰ -fschedule-insns or -fschedule-insns2 ๋˜๋Š”์—์„œ -O2 ์ด์ƒ.

-fsched-spec-insn-ํœด๋ฆฌ์Šคํ‹ฑ
์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ถ”๋ก ์  ๋ช…๋ น์–ด ํœด๋ฆฌ์Šคํ‹ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํœด๋ฆฌ์Šคํ‹ฑ ํ˜ธ์˜
์˜์กด์„ฑ์ด ๋” ํฐ ํˆฌ๊ธฐ์  ๋ช…๋ น. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์Šค์ผ€์ค„๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ, ์ฆ‰ -fschedule-insns or -fschedule-insns2 ๋˜๋Š”์—์„œ -O2
์ด์ƒ.

-fsched-rank-ํœด๋ฆฌ์Šคํ‹ฑ
์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ˆœ์œ„ ํœด๋ฆฌ์Šคํ‹ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํœด๋ฆฌ์Šคํ‹ฑ์€ ๋ช…๋ น์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
ํฌ๊ธฐ๋‚˜ ๋นˆ๋„๊ฐ€ ๋” ํฐ ๊ธฐ๋ณธ ๋ธ”๋ก์— ์†ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์Šค์ผ€์ค„๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ, ์ฆ‰ -fschedule-insns or -fschedule-insns2 ๋˜๋Š”์—์„œ -O2
์ด์ƒ.

-fsched-last-insn-ํœด๋ฆฌ์Šคํ‹ฑ
์Šค์ผ€์ค„๋Ÿฌ์—์„œ ๋งˆ์ง€๋ง‰ ๋ช…๋ น ํœด๋ฆฌ์Šคํ‹ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํœด๋ฆฌ์Šคํ‹ฑ์€
์˜ˆ์ •๋œ ๋งˆ์ง€๋ง‰ ๋ช…๋ น์— ๋œ ์˜์กดํ•˜๋Š” ๋ช…๋ น. ์ด๊ฒƒ์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค
์˜ˆ์•ฝ์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ -fschedule-insns or -fschedule-insns2
๋˜๋Š”์—์„œ -O2 ์ด์ƒ.

-fsched-dep-count-ํœด๋ฆฌ์Šคํ‹ฑ
์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ข…์† ๊ณ„์ˆ˜ ํœด๋ฆฌ์Šคํ‹ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํœด๋ฆฌ์Šคํ‹ฑ์€
๊ทธ์— ๋”ฐ๋ผ ๋” ๋งŽ์€ ์ง€์นจ์ด ์žˆ๋Š” ์ง€์นจ. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์Šค์ผ€์ค„๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ, ์ฆ‰ -fschedule-insns or -fschedule-insns2 ๋˜๋Š”์—์„œ -O2
์ด์ƒ.

-freschedule-modulo-scheduled-loops
๋ชจ๋“ˆ๋กœ ์Šค์ผ€์ค„๋ง์€ ๊ธฐ์กด ์Šค์ผ€์ค„๋ง๋ณด๋‹ค ๋จผ์ € ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฃจํ”„๊ฐ€ ๋ชจ๋“ˆ๋กœ์ธ ๊ฒฝ์šฐ
์˜ˆ์ •๋œ, ์ดํ›„์˜ ์˜ˆ์•ฝ ํŒจ์Šค๋Š” ์ผ์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ
๊ทธ ํ–‰๋™์„ ํ†ต์ œํ•˜์‹ญ์‹œ์˜ค.

-f์„ ํƒ์  ์Šค์ผ€์ค„๋ง
์„ ํƒ์  ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์„ ์Šค์ผ€์ค„๋งํ•˜์‹ญ์‹œ์˜ค. ์„ ํƒ์  ์Šค์ผ€์ค„๋ง ์‹คํ–‰
์ฒซ ๋ฒˆ์งธ ์Šค์ผ€์ค„๋Ÿฌ ํŒจ์Šค ๋Œ€์‹ .

-f์„ ํƒ์ -์Šค์ผ€์ค„๋ง2
์„ ํƒ์  ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์„ ์Šค์ผ€์ค„๋งํ•˜์‹ญ์‹œ์˜ค. ์„ ํƒ์  ์Šค์ผ€์ค„๋ง ์‹คํ–‰
๋‘ ๋ฒˆ์งธ ์Šค์ผ€์ค„๋Ÿฌ ํŒจ์Šค ๋Œ€์‹ .

-fsel-sched-ํŒŒ์ดํ”„๋ผ์ด๋‹
์„ ํƒ์  ์Šค์ผ€์ค„๋ง ์ค‘์— ๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฃจํ”„์˜ ์†Œํ”„ํŠธ์›จ์–ด ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์•„๋‹Œ ํ•œ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. -f์„ ํƒ์  ์Šค์ผ€์ค„๋ง or -f์„ ํƒ์ -์Šค์ผ€์ค„๋ง2
์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-fsel-sched-ํŒŒ์ดํ”„๋ผ์ธ-์™ธ๋ถ€ ๋ฃจํ”„
์„ ํƒ์  ์Šค์ผ€์ค„๋ง ์ค‘์— ๋ฃจํ”„๋ฅผ ํŒŒ์ดํ”„๋ผ์ด๋‹ํ•  ๋•Œ ์™ธ๋ถ€ ๋ฃจํ”„๋„ ํŒŒ์ดํ”„๋ผ์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ๋‹ค์Œ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. -fsel-sched-ํŒŒ์ดํ”„๋ผ์ด๋‹ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-์˜๋ฏธ๋ก ์  ์‚ฝ์ž…
ELF์™€ ๊ฐ™์€ ์ผ๋ถ€ ๊ฐœ์ฒด ํ˜•์‹์€ ๋™์  ๋ง์ปค์— ์˜ํ•œ ๊ธฐํ˜ธ ์‚ฝ์ž…์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” DSO์—์„œ ๋‚ด๋ณด๋‚ธ ๊ธฐํ˜ธ์˜ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ ˆ์ฐจ ๊ฐ„ ์ „ํŒŒ, ์ธ๋ผ์ธ ๋ฐ ๊ธฐํƒ€ ์ตœ์ ํ™”
ํ•ด๋‹น ๊ธฐ๋Šฅ์ด๋‚˜ ๋ณ€์ˆ˜๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์œ ์šฉํ•˜์ง€๋งŒ
์˜ˆ๋ฅผ ๋“ค์–ด ๋””๋ฒ„๊น… ๊ตฌํ˜„์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ ค๋ฉด
์ฝ”๋“œ ํ’ˆ์งˆ ๋ฉด์—์„œ ๋น„์‹ธ๋‹ค. ์™€ ํ•จ๊ป˜ -fno-์˜๋ฏธ๋ก ์ -๊ฐœ์žฌ ์ปดํŒŒ์ผ๋Ÿฌ
ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์‚ฝ์ž…์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฎ์–ด์“ฐ๊ธฐ ํ•จ์ˆ˜๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •ํ™•ํžˆ ๋™์ผํ•œ ์˜๋ฏธ(๋ฐ ๋ถ€์ž‘์šฉ). ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ฝ์ž…์ด ๋ฐœ์ƒํ•˜๋ฉด
๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜์˜ ์ƒ์„ฑ์ž๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊นƒ๋ฐœ์€ ์—†๋‹ค
๋ช…์‹œ์ ์œผ๋กœ ์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํšจ๊ณผ(์ ˆ๋Œ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
์˜๋ฏธ ๋ณ€๊ฒฝ์„ ์œ„ํ•œ ์‚ฝ์ž…) ๋ฐ ๋ช…์‹œ์ ์œผ๋กœ ์•ฝํ•˜๋‹ค๊ณ  ์„ ์–ธ๋œ ๊ธฐํ˜ธ์— ๋Œ€ํ•ด.

-fshrink-wrap
ํ•จ์ˆ˜ ํ”„๋กค๋กœ๊ทธ๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์•„๋‹ˆ๋ผ ํ•จ์ˆ˜์˜ ์ผ๋ถ€ ์ „์—๋งŒ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์˜ ์ƒ๋‹จ. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ์ด์ƒ.

-fcaller ์ €์žฅ
ํ•จ์ˆ˜ ํ˜ธ์ถœ์— ์˜ํ•ด ์ฐจ๋‹จ๋œ ๋ ˆ์ง€์Šคํ„ฐ์— ๊ฐ’ ํ• ๋‹น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ํ˜ธ์ถœ ์ฃผ๋ณ€์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๋ช…๋ น์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ
ํ• ๋‹น์€ ๋” ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ๋•Œ๋งŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์ด ์žˆ๋Š” ํŠน์ • ์‹œ์Šคํ…œ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ญ์ƒ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋Œ€์‹  ์‚ฌ์šฉํ•  ํ˜ธ์ถœ ๋ณด์กด ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fcombin-stack-adjustments
์Šคํƒ ์กฐ์ •(ํ‘ธ์‹œ ๋ฐ ํŒ) ๋ฐ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๋ฅผ ์ถ”์ ํ•œ ๋‹ค์Œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ๋“ค์„ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์œ„ํ•ด.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O1 ์ด์ƒ.

-ํ”ผํŒŒ๋ผ
ํ˜ธ์ถœ์ž ์ €์žฅ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ํ˜ธ์ถœ๋œ ์–ด๋–ค ๋ ˆ์ง€์Šคํ„ฐ์—์„œ๋„ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ• ๋‹น์„ ์œ„ํ•ด ํ˜ธ์ถœ์ž ์ €์žฅ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ. ์ด ๊ฒฝ์šฐ ํ†ตํ™” ์ฃผ๋ณ€์— ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ํ˜„์žฌ์™€ ๋™์ผํ•œ ์ปดํŒŒ์ผ ๋‹จ์œ„์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์™€ ๊ทธ๊ฒƒ๋“ค์€ ๊ทธ ์ „์— ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fconserve-์Šคํƒ
์Šคํƒ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋” ์ ์€ ์Šคํƒ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์ด ๋Š๋ ค์ง€๋Š” ๊ฒฝ์šฐ. ์ด ์˜ต์…˜์€ ์„ค์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค ๋Œ€ํ˜• ์Šคํƒ ํ”„๋ ˆ์ž„
๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ 100์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๋Œ€ํ˜• ์Šคํƒ ํ”„๋ ˆ์ž„ ์„ฑ์žฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ 400์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-fttree-์žฌ์—ฐ๊ฒฐ
๋‚˜๋ฌด์—์„œ ์žฌ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ์ด์ƒ.

-fttree-pre
ํŠธ๋ฆฌ์—์„œ ๋ถ€๋ถ„ ์ค‘๋ณต ์ œ๊ฑฐ(PRE)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’ -O2 ๊ณผ -O3.

-ftree-๋ถ€๋ถ„ ์‚ฌ์ „
๋ถ€๋ถ„ ์ค‘๋ณต ์ œ๊ฑฐ(PRE)๋ฅผ ๋ณด๋‹ค ์ ๊ทน์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’ -O3.

-fttree-forwprop
ํŠธ๋ฆฌ์—์„œ ์ˆœ๋ฐฉํ–ฅ ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ๊ณผ
๋” ๋†’์€.

-fttree-fre
ํŠธ๋ฆฌ์—์„œ ์ „์ฒด ์ค‘๋ณต ์ œ๊ฑฐ(FRE)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. FRE์™€ FRE์˜ ์ฐจ์ด์ 
PRE๋Š” FRE๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์ด์–ด์ง€๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ์—์„œ ๊ณ„์‚ฐ๋œ ํ‘œํ˜„์‹๋งŒ ๊ณ ๋ คํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ค‘๋ณต ๊ณ„์‚ฐ. ์ด ๋ถ„์„์€ PRE๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ ๋…ธ์ถœ ํšŸ์ˆ˜๋Š” ์ ์Šต๋‹ˆ๋‹ค.
์ค‘๋ณต. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ์ด์ƒ.

-fttree-phiprop
๋‚˜๋ฌด์˜ ์กฐ๊ฑด๋ถ€ ํฌ์ธํ„ฐ์—์„œ ๋ถ€ํ•˜๋ฅผ ๋Œ์–ด์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’ -O ์ด์ƒ.

-fhoist-์ธ์ ‘ ํ•˜์ค‘
๋ถ€ํ•˜๊ฐ€
๋™์ผํ•œ ๊ตฌ์กฐ์˜ ์ธ์ ‘ ์œ„์น˜์™€ ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์—๋Š” ์กฐ๊ฑด๋ถ€
์ด๋™ ์ง€์‹œ. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O2 ์ด์ƒ.

-ftree ๋ณต์‚ฌ ์†Œํ’ˆ
ํŠธ๋ฆฌ์—์„œ ๋ณต์‚ฌ ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š” ๋ถˆํ•„์š”ํ•œ ๋ณต์‚ฌ ์ž‘์—…์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ์ด์ƒ.

-fipa-์ˆœ์ˆ˜-const
์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ์ˆœ์ˆ˜ํ•˜๊ฑฐ๋‚˜ ์ƒ์ˆ˜์ธ์ง€ ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ์ด์ƒ.

-fipa-์ฐธ์กฐ
์ปดํŒŒ์ผ ๋‹จ์œ„๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š” ์ •์  ๋ณ€์ˆ˜๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค. ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋จ
๊ธฐ๋ณธ๊ฐ’ -O ์ด์ƒ.

-fipa-pta
์ ˆ์ฐจ ๊ฐ„ ํฌ์ธํ„ฐ ๋ถ„์„ ๋ฐ ์ ˆ์ฐจ ๊ฐ„ ์ˆ˜์ •์„ ์ˆ˜ํ–‰ํ•˜๊ณ 
์ฐธ์กฐ ๋ถ„์„. ์ด ์˜ต์…˜์€ ๊ณผ๋„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ปดํŒŒ์ผ ์‹œ๊ฐ„ ์‚ฌ์šฉ์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํฐ ์ปดํŒŒ์ผ ๋‹จ์œ„. ์–ด๋–ค ์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fipa ํ”„๋กœํ•„
์ ˆ์ฐจ ๊ฐ„ ํ”„๋กœํŒŒ์ผ ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Cold์—์„œ๋งŒ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
๊ธฐ๋Šฅ์€ ์ฝœ๋“œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•œ ๋ฒˆ ์‹คํ–‰๋œ ๊ธฐ๋Šฅ(์˜ˆ: "์ฝœ๋“œ",
"noreturn", ์ •์  ์ƒ์„ฑ์ž ๋˜๋Š” ์†Œ๋ฉธ์ž)๊ฐ€ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค. ์ฝœ๋“œ ๊ธฐ๋Šฅ ๋ฐ
ํ•œ ๋ฒˆ ์‹คํ–‰๋œ ํ•จ์ˆ˜์˜ ๋ฃจํ”„๊ฐ€ ์ ์€ ๋ถ€๋ถ„์€ ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ตœ์ ํ™”๋ฉ๋‹ˆ๋‹ค. ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋จ
๊ธฐ๋ณธ๊ฐ’ -O ์ด์ƒ.

-fipa-cp
์ ˆ์ฐจ๊ฐ„ ์ƒ์ˆ˜ ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ตœ์ ํ™”๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค
ํ•จ์ˆ˜์— ์ „๋‹ฌ๋œ ๊ฐ’์ด ์ƒ์ˆ˜์ธ์ง€ ํ™•์ธํ•œ ๋‹ค์Œ ์ตœ์ ํ™”
๋”ฐ๋ผ์„œ. ์ด ์ตœ์ ํ™”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ํ•จ์ˆ˜์— ์ „๋‹ฌ๋œ ์ƒ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
-O2, - ์˜ค์Šค ๊ณผ -O3.

-fipa-cp-ํด๋ก 
ํ”„๋กœ์‹œ์ € ๊ฐ„ ์ƒ์ˆ˜ ์ „ํŒŒ๋ฅผ ๋” ๊ฐ•ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜ ๋ณต์ œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ
ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ์ ˆ์ฐจ ๊ฐ„ ์ƒ์ˆ˜ ์ „ํŒŒ๊ฐ€ ๊ธฐ๋Šฅ ๋ณต์ œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋Š” ์ƒ์ˆ˜ ์ธ์ˆ˜๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฑด
์ตœ์ ํ™”๋Š” ๊ธฐ๋Šฅ์˜ ์—ฌ๋Ÿฌ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ ํฌ๊ธฐ(์ฐธ์กฐ --๋งค๊ฐœ๋ณ€์ˆ˜ ipcp ๋‹จ์œ„ ์„ฑ์žฅ =๊ฐ€์น˜). ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
-O3.

-fipa-cp-์ •๋ ฌ
ํ™œ์„ฑํ™”๋˜๋ฉด ์ด ์ตœ์ ํ™”๋Š” ๋‹ค์Œ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ •๋ ฌ์„ ์ „ํŒŒํ•ฉ๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ๋ฒกํ„ฐํ™” ๋ฐ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ.

์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O2 ๊ณผ - ์˜ค์Šค. ๊ทธ๊ฒƒ์€ ๊ทธ๊ฒƒ์„ ์š”๊ตฌํ•œ๋‹ค -fipa-cp ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-fipa-icf
ํ•จ์ˆ˜ ๋ฐ ์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ฝ”๋“œ ์ ‘๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. NS
์ตœ์ ํ™”๋Š” ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ํ•จ์ˆ˜๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ ํ•ด์ œ ์Šคํƒ์„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋™๋“ฑํ•œ ๊ฒƒ์œผ๋กœ. ์ตœ์ ํ™”๋Š” ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ๋” ํšจ๊ณผ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™”๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋™์ž‘์€ Gold Linker ICF ์ตœ์ ํ™”์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ GCC ICF๋Š”
๋ ˆ๋ฒจ์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์ตœ์ ํ™”๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
GCC์—์„œ๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋“ฑ๊ฐ€๋ฌผ์€ Gold์—์„œ๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O2 ๊ณผ - ์˜ค์Šค.

-๋ถ„๋ฆฌ-์˜ค๋ฅ˜-๊ฒฝ๋กœ-์—ญ์ฐธ์กฐ
null ์—ญ์ฐธ์กฐ๋กœ ์ธํ•ด ์ž˜๋ชป๋˜๊ฑฐ๋‚˜ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์„ ์œ ๋ฐœํ•˜๋Š” ๊ฒฝ๋กœ ๊ฐ์ง€
๋ฐ”๋Š˜. ์ฃผ ์ œ์–ด ํ๋ฆ„์—์„œ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น๋ฌธ์„ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
ํŠธ๋žฉ์— ์ž˜๋ชป๋œ ๋˜๋Š” ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O2
์ด์ƒ.

-๋ถ„๋ฆฌ-์˜ค๋ฅ˜-๊ฒฝ๋กœ-์†์„ฑ
null ๊ฐ’ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•ด ์ž˜๋ชป๋˜๊ฑฐ๋‚˜ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์„ ์œ ๋ฐœํ•˜๋Š” ๊ฒฝ๋กœ ๊ฐ์ง€
"returns_nonnull" ๋˜๋Š” "nonnull" ์†์„ฑ์— ์˜ํ•ด ๊ธˆ์ง€๋œ ๋ฐฉ์‹์œผ๋กœ. ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ๊ฒฉ๋ฆฌ
์ฃผ ์ œ์–ด ํ๋ฆ„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์œผ๋กœ ๋ช…๋ น๋ฌธ์„ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ •์—. ์ด๊ฒƒ์€ ํ˜„์žฌ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -O2 ์—์„œ ๊ท€ํ•˜๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-ftree-์‹ฑํฌ๋Œ€
๋‚˜๋ฌด์—์„œ ์•ž์œผ๋กœ ์ €์žฅ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ๊ณผ
๋” ๋†’์€.

-ftree-bit-ccp
ํŠธ๋ฆฌ์—์„œ ํฌ์†Œ ์กฐ๊ฑด๋ถ€ ๋น„ํŠธ ์ƒ์ˆ˜ ์ „ํŒŒ ์ˆ˜ํ–‰ ๋ฐ ํฌ์ธํ„ฐ ์ „ํŒŒ
์–ผ๋ผ์ธ๋จผํŠธ ์ •๋ณด. ์ด ํŒจ์Šค๋Š” ๋กœ์ปฌ ์Šค์นผ๋ผ ๋ณ€์ˆ˜์—์„œ๋งŒ ์ž‘๋™ํ•˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ๊ทธ๋ฆฌ๊ณ  ๋” ๋†’์€. ๊ทธ๊ฒƒ์€ ๊ทธ๊ฒƒ์„ ์š”๊ตฌํ•œ๋‹ค -fttree-ccp ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-fttree-ccp
ํŠธ๋ฆฌ์—์„œ ํฌ์†Œ ์กฐ๊ฑด๋ถ€ ์ƒ์ˆ˜ ์ „ํŒŒ(CCP)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋งŒ
๋กœ์ปฌ ์Šค์นผ๋ผ ๋ณ€์ˆ˜์—์„œ ์ž‘๋™ํ•˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -O ์ด์ƒ.

-fssa-phiopt
์กฐ๊ฑด๋ถ€ ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด SSA PHI ๋…ธ๋“œ์—์„œ ํŒจํ„ด ์ผ์น˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š”
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ์ด์ƒ.

-ftree ์Šค์œ„์น˜ ๋ณ€ํ™˜
์Šค์œ„์น˜์—์„œ ๋‹จ์ˆœ ์ดˆ๊ธฐํ™”๋ฅผ a์—์„œ ์ดˆ๊ธฐํ™”๋กœ ๋ณ€ํ™˜
์Šค์นผ๋ผ ๋ฐฐ์—ด. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O2 ์ด์ƒ.

-fttree-tail-merge
๋™์ผํ•œ ์ฝ”๋“œ ์‹œํ€€์Šค๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋ฐœ๊ฒฌ๋˜๋ฉด ํ•˜๋‚˜๋ฅผ ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ์ ํ”„๋กœ ๊ต์ฒดํ•˜์‹ญ์‹œ์˜ค.
์ด ์ตœ์ ํ™”๋ฅผ ๊ผฌ๋ฆฌ ๋ณ‘ํ•ฉ ๋˜๋Š” ๊ต์ฐจ ์ ํ”„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’ -O2 ๊ทธ๋ฆฌ๊ณ  ๋” ๋†’์€. ์ด ํŒจ์Šค์˜ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ๋Œ€ ๊ผฌ๋ฆฌ ๋ณ‘ํ•ฉ ๋น„๊ต ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ฐ ์ตœ๋Œ€ ๊ผฌ๋ฆฌ ๋ณ‘ํ•ฉ ๋ฐ˜๋ณต ๋งค๊ฐœ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

-fttree-dce
ํŠธ๋ฆฌ์—์„œ ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ(DCE)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O
์ด์ƒ.

-ftree-๋‚ด์žฅ ํ˜ธ์ถœ-dce
๋‚ด์žฅ ํ•จ์ˆ˜ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ์กฐ๊ฑด๋ถ€ ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ(DCE)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
"errno"๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ถ€์ž‘์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
at -O2 ๊ทธ๋ฆฌ๊ณ  ๋” ๋†’์€ ๊ฒฝ์šฐ - ์˜ค์Šค ๋„ ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-ftree-์ง€๋ฐฐ์ž-opts
๋‹ค์–‘ํ•œ ๋‹จ์ˆœ ์Šค์นผ๋ผ ์ •๋ฆฌ ์ˆ˜ํ–‰(์ƒ์ˆ˜/๋ณต์‚ฌ ์ „ํŒŒ, ์ด์ค‘ํ™”
๋„๋ฏธ๋„ค์ดํ„ฐ ๊ธฐ๋ฐ˜ ์ œ๊ฑฐ, ๋ฒ”์œ„ ์ „ํŒŒ ๋ฐ ํ‘œํ˜„ ๋‹จ์ˆœํ™”)
ํŠธ๋ฆฌ ์ˆœํšŒ. ์ด๊ฒƒ์€ ๋˜ํ•œ ์ ํ”„ ์Šค๋ ˆ๋”ฉ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค(์ ํ”„์— ๋Œ€ํ•œ ์ ํ”„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด). ์ด๊ฒƒ
ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ์ด์ƒ.

-fttree-dse
๋‚˜๋ฌด์—์„œ ์ฃฝ์€ ์ €์žฅ์†Œ ์ œ๊ฑฐ(DSE)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฃฝ์€ ๊ฐ€๊ฒŒ๋Š” ์ถ”์–ต์˜ ๊ฐ€๊ฒŒ๋‹ค
์ค‘๊ฐ„ ๋กœ๋“œ ์—†์ด ๋‚˜์ค‘์— ๋‹ค๋ฅธ ์ €์žฅ์†Œ์—์„œ ๋ฎ์–ด์“ฐ๋Š” ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์—
์ด ๊ฒฝ์šฐ ์ด์ „ ์ €์žฅ์†Œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ๊ณผ
๋” ๋†’์€.

-fttree-ch
ํŠธ๋ฆฌ์—์„œ ๋ฃจํ”„ ํ—ค๋” ๋ณต์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ ๋ชจ์…˜ ์ตœ์ ํ™”์˜ ํšจ์œจ์„ฑ. ๊ทธ๊ฒƒ์€ ๋˜ํ•œ ํ•œ ์ ํ”„๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๊นƒ๋ฐœ์€
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ๊ทธ๋ฆฌ๊ณ  ๋” ๋†’์€. ์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - ์˜ค์Šค, ์ผ๋ฐ˜์ ์œผ๋กœ
์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

-ftree ๋ฃจํ”„ ์ตœ์ ํ™”
ํŠธ๋ฆฌ์—์„œ ๋ฃจํ”„ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ๊ณผ
๋” ๋†’์€.

-ftree ๋ฃจํ”„ ์„ ํ˜•
ํŠธ๋ฆฌ์—์„œ ๋ฃจํ”„ ๊ตํ™˜ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์™€ ๋™์ผ - ๋ฃจํ”„ ๊ตํ™˜. ์“ฐ๋‹ค
์ด ์ฝ”๋“œ ๋ณ€ํ™˜์—์„œ GCC๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --isl๊ณผ ํ•จ๊ป˜ ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด
ํ‘์—ฐ ๋ฃจํ”„ ๋ณ€ํ™˜ ์ธํ”„๋ผ.

- ๋ฃจํ”„ ๊ตํ™˜
๋ฃจํ”„์—์„œ ๋ฃจํ”„ ๊ตํ™˜ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ์ค‘์ฒฉ ๋ฃจํ”„ ๊ตํ™˜
๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ๋ฃจํ”„๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฃจํ”„๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

DO J = 1, M
๋‚ด๊ฐ€ = 1, N
A(J, I) = A(J, I) * C
์—”๋„
์—”๋„

๋ฃจํ”„ ๊ตํ™˜์€ ๋ฃจํ”„๋ฅผ ์ž‘์„ฑ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ = 1, N
DO J = 1, M
A(J, I) = A(J, I) * C
์—”๋„
์—”๋„

Fortran์—์„œ๋Š” "N"์ด ์บ์‹œ๋ณด๋‹ค ํด ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐฐ์—ด์˜ ์š”์†Œ๋Š” ์—ด๋ณ„๋กœ ์—ฐ์†์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋ฉฐ ์›๋ณธ
๋ฃจํ”„๋Š” ํ–‰์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์•ก์„ธ์Šคํ•  ๋•Œ๋งˆ๋‹ค ์ž ์žฌ์ ์œผ๋กœ ์บ์‹œ ๋ˆ„๋ฝ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ตœ์ ํ™”๋Š” GCC์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด์— ์ ์šฉ๋˜๋ฉฐ ์ด์— ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํฌํŠธ๋ž€. ์ด ์ฝ”๋“œ ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GCC๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --isl๊ณผ ํ•จ๊ป˜ ์—
Graphite ๋ฃจํ”„ ๋ณ€ํ™˜ ์ธํ”„๋ผ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-floop-์ŠคํŠธ๋ฆฝ-๊ด‘์‚ฐ
๋ฃจํ”„์—์„œ ๋ฃจํ”„ ์ŠคํŠธ๋ฆฝ ๋งˆ์ด๋‹ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆฝ ๋งˆ์ด๋‹์€ ๋ฃจํ”„๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐœ์˜ ์ค‘์ฒฉ ๋ฃจํ”„. ์™ธ๋ถ€ ๋ฃจํ”„๋Š” ์ŠคํŠธ๋ฆฝ ํฌ๊ธฐ์™€ ๋™์ผํ•œ ๋ณดํญ์„ ๊ฐ€์ง€๋ฉฐ ๋‚ด๋ถ€ ๋ฃจํ”„๋Š”
๋ฃจํ”„์—๋Š” ์ŠคํŠธ๋ฆฝ ๋‚ด์—์„œ ์›๋ž˜ ๋ฃจํ”„์˜ ์ŠคํŠธ๋ผ์ด๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆฝ ๊ธธ์ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฃจํ”„ ๋ธ”๋ก ํƒ€์ผ ํฌ๊ธฐ ๋งค๊ฐœ๋ณ€์ˆ˜. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฃจํ”„๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ = 1, N
A(I) = A(I) + C
์—”๋„

๋ฃจํ”„ ์ŠคํŠธ๋ฆฝ ๋งˆ์ด๋‹์€ ๋ฃจํ”„๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

DO II = 1, N, 51
DO I = II, ์ตœ์†Œ(II + 50, N)
A(I) = A(I) + C
์—”๋„
์—”๋„

์ด ์ตœ์ ํ™”๋Š” GCC์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด์— ์ ์šฉ๋˜๋ฉฐ ์ด์— ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํฌํŠธ๋ž€. ์ด ์ฝ”๋“œ ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GCC๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --isl๊ณผ ํ•จ๊ป˜ ์—
Graphite ๋ฃจํ”„ ๋ณ€ํ™˜ ์ธํ”„๋ผ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-floop-๋ธ”๋ก
๋ฃจํ”„์—์„œ ๋ฃจํ”„ ์ฐจ๋‹จ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ธ”๋กœํ‚น ์ŠคํŠธ๋ฆฝ์€ ๊ฐ ๋ฃจํ”„๋ฅผ ์ฑ„๊ตดํ•ฉ๋‹ˆ๋‹ค.
์š”์†Œ ๋ฃจํ”„์˜ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ์บ์‹œ ๋‚ด๋ถ€์— ๋งž๋„๋ก ๋ฃจํ”„ ์ค‘์ฒฉ. NS
์ŠคํŠธ๋ฆฝ ๊ธธ์ด๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํ”„ ๋ธ”๋ก ํƒ€์ผ ํฌ๊ธฐ ๋งค๊ฐœ๋ณ€์ˆ˜. ์˜ˆ๋ฅผ ๋“ค์–ด,
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฃจํ”„๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ = 1, N
DO J = 1, M
A(J, I) = B(I) + C(J)
์—”๋„
์—”๋„

๋ฃจํ”„ ์ฐจ๋‹จ์€ ๋ฃจํ”„๋ฅผ ์ž‘์„ฑ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

DO II = 1, N, 51
DO JJ = 1, M, 51
DO I = II, ์ตœ์†Œ(II + 50, N)
DO J = JJ, ์ตœ์†Œ(JJ + 50, M)
A(J, I) = B(I) + C(J)
์—”๋„
์—”๋„
์—”๋„
์—”๋„

"M"์ด ์บ์‹œ๋ณด๋‹ค ํด ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์บ์‹œ์— ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋Š” ๋” ์ ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ตœ์ ํ™”๋Š” GCC์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด์— ์ ์šฉ๋˜๋ฉฐ ์ด์— ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํฌํŠธ๋ž€. ์ด ์ฝ”๋“œ ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด GCC๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --isl๊ณผ ํ•จ๊ป˜ ์—
Graphite ๋ฃจํ”„ ๋ณ€ํ™˜ ์ธํ”„๋ผ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-fgraphite-์ •์ฒด์„ฑ
ํ‘์—ฐ์— ๋Œ€ํ•œ ID ๋ณ€ํ™˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  SCoP์— ๋Œ€ํ•ด
๋‹ค๋ฉด์ฒด ํ‘œํ˜„์„ ๋‹ค์‹œ gimple๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ -fgraphite-์ •์ฒด์„ฑ
GIMPLE -> GRAPHITE -> GIMPLE ๋ณ€ํ™˜์˜ ๋น„์šฉ ๋˜๋Š” ์ด์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
index์™€ ๊ฐ™์€ ์ผ๋ถ€ ์ตœ์†Œ ์ตœ์ ํ™”๋Š” ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ ISL์—์„œ๋„ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
๋ฃจํ”„์—์„œ ๋ถ„ํ•  ๋ฐ ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ.

-floop-nest-์ตœ์ ํ™”
ISL ๊ธฐ๋ฐ˜ ๋ฃจํ”„ ๋„ค์ŠคํŠธ ์˜ตํ‹ฐ๋งˆ์ด์ €๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ๋ฃจํ”„ ๋„ค์ŠคํŠธ ์˜ตํ‹ฐ๋งˆ์ด์ € ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค.
๋ช…์™•์„ฑ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์—. ์— ์ตœ์ ํ™”๋œ ๋ฃจํ”„ ๊ตฌ์กฐ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์ง€์—ญ์„ฑ๊ณผ ๋ณ‘๋ ฌ์„ฑ. ์ด ์˜ต์…˜์€ ์‹คํ—˜์ ์ž…๋‹ˆ๋‹ค.

-ํ”Œ๋ฃจํ”„ ํ’€๊ธฐ ๋ฐ ๊ฑธ๋ฆผ
ISL ๊ธฐ๋ฐ˜ ๋ฃจํ”„ ๋„ค์ŠคํŠธ ์˜ตํ‹ฐ๋งˆ์ด์ €์— ๋Œ€ํ•ด ํ’€๊ธฐ ๋ฐ ๊ฑธ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์–ธ๋กค ํŒฉํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ๋ฃจํ”„ ํ’€๊ธฐ ๊ฑธ๋ฆผ ํฌ๊ธฐ ๋งค๊ฐœ๋ณ€์ˆ˜. ํŽผ์ณ์ง„ ์ฐจ์›(๊ณ„์‚ฐ
๊ฐ€์žฅ ์•ˆ์ชฝ์—์„œ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํ”„ ํ’€๊ธฐ ๊ฑธ๋ฆผ ๊นŠ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
.

-floop-๋ณ‘๋ ฌํ™”-๋ชจ๋‘
ํ‘์—ฐ ๋ฐ์ดํ„ฐ ์ข…์†์„ฑ ๋ถ„์„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฃจํ”„๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
๋ฃจํ”„ ์ „๋‹ฌ ์ข…์†์„ฑ์„ ํฌํ•จํ•˜์ง€ ์•Š๋„๋ก ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฃจํ”„๋ฅผ ๋ณ‘๋ ฌํ™”
๋ฃจํ”„๋ฅผ ๋ณ‘๋ ฌํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ˆ˜์ต์„ฑ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์ง€ ์•Š๊ณ .

-fcheck-๋ฐ์ดํ„ฐ-deps
์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ข…์†์„ฑ ๋ถ„์„๊ธฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์˜์กด์„ฑ ๋ถ„์„๊ธฐ ๋””๋ฒ„๊น….

-ftree-loop-if-๋ณ€ํ™˜
๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฃจํ”„์—์„œ ์กฐ๊ฑด๋ถ€ ์ ํ”„๋ฅผ ๋ถ„๊ธฐ ์—†๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€ํ™˜ ์‹œ๋„
๋“ฑ๊ฐ€๋ฌผ. ์˜๋„๋Š” ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฃจํ”„์—์„œ ์ œ์–ด ํ๋ฆ„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ฃจํ”„๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฒกํ„ฐํ™” ํŒจ์Šค์˜ ๊ธฐ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋ฒกํ„ฐํ™”๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-ftree-loop-if-convert-stores
๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ๋ฅผ ํฌํ•จํ•˜๋Š” if-convert ์กฐ๊ฑด๋ถ€ ์ ํ”„๋„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋ณ€ํ™˜์€ ์กฐ๊ฑด๋ถ€๋ฅผ ๋ณ€ํ™˜ํ•˜๋ฏ€๋กœ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ์— ์•ˆ์ „ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌด์กฐ๊ฑด ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ. ์˜ˆ๋ฅผ ๋“ค์–ด,

(i = 0, i < N, i++)
๋งŒ์•ฝ (์กฐ๊ฑด)
A[i] = expr;

๋กœ ๋ณ€ํ˜•๋ฉ๋‹ˆ๋‹ค

(i = 0, i < N, i++)
A[i] = ์กฐ๊ฑด ? expr : A[i];

์ž ์žฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-ftree-loop-๋ถ„ํฌ
๋ฃจํ”„ ๋ถ„๋ฐฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ํฐ ๋ฃจํ”„ ๋ณธ๋ฌธ์—์„œ ์บ์‹œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณ‘๋ ฌํ™” ๋˜๋Š” ๋ฒกํ„ฐํ™”์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ๋ฃจํ”„ ์ตœ์ ํ™”๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
์žฅ์†Œ. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฃจํ”„

๋‚ด๊ฐ€ = 1, N
A(I) = B(I) + C
D(I) = E(I) * F
์—”๋„

๋กœ ๋ณ€ํ˜•๋ฉ๋‹ˆ๋‹ค

๋‚ด๊ฐ€ = 1, N
A(I) = B(I) + C
์—”๋„
๋‚ด๊ฐ€ = 1, N
D(I) = E(I) * F
์—”๋„

-ftree-๋ฃจํ”„-๋ฐฐํฌ-ํŒจํ„ด
์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋กœ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด์˜ ๋ฃจํ”„ ๋ฐฐํฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋„์„œ๊ด€. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O3.

์ด ํŒจ์Šค๋Š” ์ดˆ๊ธฐํ™” ๋ฃจํ”„๋ฅผ ๋ถ„์‚ฐํ•˜๊ณ  memset XNUMX์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฃจํ”„

๋‚ด๊ฐ€ = 1, N
A(I) = 0
B(I) = A(I) + ๋‚˜
์—”๋„

๋กœ ๋ณ€ํ˜•๋ฉ๋‹ˆ๋‹ค

๋‚ด๊ฐ€ = 1, N
A(I) = 0
์—”๋„
๋‚ด๊ฐ€ = 1, N
B(I) = A(I) + ๋‚˜
์—”๋„

์ดˆ๊ธฐํ™” ๋ฃจํ”„๋Š” memset XNUMX์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

-ftree-๋ฃจํ”„-im
๋‚˜๋ฌด์—์„œ ๋ฃจํ”„ ๋ถˆ๋ณ€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š” ํ•˜๋“œ ๋ถˆ๋ณ€๋Ÿ‰๋งŒ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
RTL ์ˆ˜์ค€์—์„œ ์ฒ˜๋ฆฌ(ํ•จ์ˆ˜ ํ˜ธ์ถœ, ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์‹œํ€€์Šค๋กœ ํ™•์žฅ๋˜๋Š” ์ž‘์—…
์—ฌ๊ด€). ์™€ ํ•จ๊ป˜ -ํŽ€์Šค์œ„์น˜ ๋ฃจํ”„ ๋˜ํ•œ ๋‹ค์Œ ์กฐ๊ฑด์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
๋ฃจํ”„ ์™ธ๋ถ€์—์„œ ๋ถˆ๋ณ€ํ•˜๋ฏ€๋กœ ๋‹ค์Œ์—์„œ ์‚ฌ์†Œํ•œ ๋ถˆ๋ณ€์„ฑ ๋ถ„์„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฃจํ”„ ํ•ด์ œ. ํŒจ์Šค์—๋Š” ์Šคํ† ์–ด ๋ชจ์…˜๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

-ftree-๋ฃจํ”„-ivcanon
๊ฒฐ์ •ํ•˜๋Š” ๋ฃจํ”„์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜์— ๋Œ€ํ•œ ํ‘œ์ค€ ์นด์šดํ„ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” ๋ณต์žกํ•œ ๋ถ„์„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ์ตœ์ ํ™”๋Š”
์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ๊ฒฐ์ •ํ•˜์‹ญ์‹œ์˜ค. ํŠนํžˆ ์–ธ๋กค๋ง๊ณผ ๊ด€๋ จํ•˜์—ฌ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

-fivopts
์œ ๋„ ๋ณ€์ˆ˜ ์ตœ์ ํ™” ์ˆ˜ํ–‰(๊ฐ•๋„ ๊ฐ์†Œ, ์œ ๋„ ๋ณ€์ˆ˜
๋ณ‘ํ•ฉ ๋ฐ ์œ ๋„ ๋ณ€์ˆ˜ ์ œ๊ฑฐ).

-ftree ๋ณ‘๋ ฌํ™” ๋ฃจํ”„=n
๋ฃจํ”„๋ฅผ ๋ณ‘๋ ฌํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ˜๋ณต ๊ณต๊ฐ„์„ ๋ถ„ํ• ํ•˜์—ฌ n๊ฐœ์˜ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋ฐ˜๋ณต์ด ๋…๋ฆฝ์ ์ด๊ณ  ์ž„์˜๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๋ฃจํ”„์—์„œ๋งŒ ๊ฐ€๋Šฅ
์žฌ์ •๋ ฌ. ์ตœ์ ํ™”๋Š” ๋ฃจํ”„์— ๋Œ€ํ•œ ๋‹ค์ค‘ ํ”„๋กœ์„ธ์„œ ์‹œ์Šคํ…œ์—์„œ๋งŒ ์ˆ˜์ต์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์— ์˜ํ•ด ์ œ์•ฝ์„ ๋ฐ›๊ธฐ๋ณด๋‹ค๋Š” CPU ์ง‘์•ฝ์ ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜
์˜๋ฏธํ•˜๋‹ค -pthread, ๋”ฐ๋ผ์„œ ๋‹ค์Œ์„ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
-pthread.

-fttree-pta
๋‚˜๋ฌด์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ๋กœ์ปฌ ์ง€์  ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
at -O ์ด์ƒ.

-fttree-sra
์ง‘๊ณ„์˜ ์Šค์นผ๋ผ ๊ต์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š” ๊ตฌ์กฐ ์ฐธ์กฐ๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์กฐ๋ฅผ ๋„ˆ๋ฌด ์ผ์ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ปค๋ฐ‹ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์Šค์นผ๋ผ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊นƒ๋ฐœ์€
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -O ์ด์ƒ.

-ftree-copy์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
๋‚˜๋ฌด์— ๋ณต์‚ฌ๋ณธ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ์ž„์‹œ ์ด๋ฆ„์„ ๋‹ค์Œ์œผ๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
๋ณต์‚ฌ ์œ„์น˜์— ์žˆ๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜, ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋งŽ์€ ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์›๋ž˜ ๋ณ€์ˆ˜์™€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ๊ณผ
๋” ๋†’์€.

-ftree-coalesce-inlined-vars
copyrename ํŒจ์Šค๋ฅผ ์•Œ๋ ค์ฃผ์„ธ์š”(์ฐธ์กฐ -ftree-copy์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ) ์†Œ๊ทœ๋ชจ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒฐํ•ฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์ •์˜๋œ ๋ณ€์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ํ•จ์ˆ˜์—์„œ ์ธ๋ผ์ธ๋œ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋ณด๋‹ค ์ œํ•œ๋œ ํ˜•ํƒœ์˜ -ftree-coalesce-vars. ์ด๊ฒƒ์€ ๊ทธ๋Ÿฌํ•œ ๋””๋ฒ„๊ทธ ์ •๋ณด์— ํ•ด๋ฅผ ๋ผ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ๋ผ์ธ๋œ ๋ณ€์ˆ˜์ด์ง€๋งŒ ์ธ๋ผ์ธ๋œ ํ•จ์ˆ˜์˜ ๋ณ€์ˆ˜๋ฅผ ๊ฐ ๋ณ€์ˆ˜์™€ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๋””๋ฒ„๊น…์—์„œ ์˜ˆ์ƒ ๊ฐ’์„ ํฌํ•จํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’์€ ๊ธฐํƒ€
์„ธ์…˜.

-ftree-coalesce-vars
copyrename ํŒจ์Šค๋ฅผ ์•Œ๋ ค์ฃผ์„ธ์š”(์ฐธ์กฐ -ftree-copy์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ) ์†Œ๊ทœ๋ชจ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒฐํ•ฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ ์ž„์‹œ ๋Œ€์‹  ์ •์˜๋œ ๋ณ€์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹ฌ๊ฐํ•˜๊ฒŒ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์ตœ์ ํ™”๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋””๋ฒ„๊ทธํ•˜๋Š” ๊ธฐ๋Šฅ -fno-var-์ถ”์ -ํ• ๋‹น.
๋ถ€์ • ํ˜•์‹์—์„œ ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•œ ์‚ฌ์šฉ์ž ๋ณ€์ˆ˜์˜ SSA ๋ณ‘ํ•ฉ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ๋œ ๊ฒƒ. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fttree-ter
SSA->์ •์ƒ ๋‹จ๊ณ„์—์„œ ์ž„์‹œ ํ‘œํ˜„์‹ ๊ต์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜
use/single def ์ž„์‹œ๋Š” ์‚ฌ์šฉ ์œ„์น˜์—์„œ ์ •์˜๋œ ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
ํ‘œํ˜„. ์ด๋Š” GIMPLE ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€๋งŒ ํ™•์žฅ์ž์—๊ฒŒ ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ฒƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๋‚˜์€ RTL ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’ -O ์ด์ƒ.

-fttree-slsr
๋‚˜๋ฌด์— ์ง์„  ๊ฐ•๋„ ๊ฐ์†Œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ด€๋ จ๋œ
๊ณฑ์…ˆ์„ ํฌํ•จํ•˜๋Š” ํ‘œํ˜„์‹์„ ๋” ์ €๋ ดํ•œ ๊ณ„์‚ฐ์œผ๋กœ ๋Œ€์ฒด
๊ฐ€๋Šฅํ•  ๋•Œ. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O ์ด์ƒ.

-ftree ๋ฒกํ„ฐํ™”
๋‚˜๋ฌด์—์„œ ๋ฒกํ„ฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” -ftree ๋ฃจํ”„ ๋ฒกํ„ฐํ™” ๊ณผ
-ftree-slp-๋ฒกํ„ฐํ™” ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ.

-ftree ๋ฃจํ”„ ๋ฒกํ„ฐํ™”
ํŠธ๋ฆฌ์—์„œ ๋ฃจํ”„ ๋ฒกํ„ฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O3 ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ
-ftree ๋ฒกํ„ฐํ™” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-ftree-slp-๋ฒกํ„ฐํ™”
๋‚˜๋ฌด์—์„œ ๊ธฐ๋ณธ ๋ธ”๋ก ๋ฒกํ„ฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O3 ๊ณผ
์–ธ์ œ -ftree ๋ฒกํ„ฐํ™” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-fvect-๋น„์šฉ ๋ชจ๋ธ=๋ชจ๋ธ
๋ฒกํ„ฐํ™”์— ์‚ฌ์šฉ๋˜๋Š” ๋น„์šฉ ๋ชจ๋ธ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. NS ๋ชจ๋ธ ์ธ์ˆ˜๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฌด์ œํ•œ, ๋™์  or ์‹ผ. ์™€ ๋”๋ถˆ์–ด ๋ฌด์ œํ•œ ๋ฒกํ„ฐํ™”๋œ ์ฝ”๋“œ ๊ฒฝ๋กœ ๋ชจ๋ธ
๋™์•ˆ ์ˆ˜์ต์„ฑ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ • ๋™์  ๋Ÿฐํƒ€์ž„ ๊ฒ€์‚ฌ๊ฐ€ ๋ณดํ˜ธํ•˜๋Š” ๋ชจ๋ธ๋ง
์‹คํ–‰ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ฐ˜๋ณต ํšŸ์ˆ˜์— ๋Œ€ํ•ด์„œ๋งŒ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฒกํ„ฐํ™”๋œ ์ฝ”๋“œ ๊ฒฝ๋กœ
์›๋ž˜ ์Šค์นผ๋ผ ๋ฃจํ”„๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค. NS ์‹ผ ๋ชจ๋ธ ๋น„ํ™œ์„ฑํ™”
์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์œผ๋กœ ์ธํ•ด ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ๋ฃจํ”„์˜ ๋ฒกํ„ฐํ™”
๋ฐ์ดํ„ฐ ์ข…์†์„ฑ ๋˜๋Š” ์ •๋ ฌ์— ๋Œ€ํ•œ ํ•„์ˆ˜ ๋Ÿฐํƒ€์ž„ ๊ฒ€์‚ฌ์ด์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋™์  ๋ชจ๋ธ. ๊ธฐ๋ณธ ๋น„์šฉ ๋ชจ๋ธ์€ ๋‹ค๋ฅธ ์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ค‘ ๋™์  or ์‹ผ.

-fsimd-๋น„์šฉ ๋ชจ๋ธ=๋ชจ๋ธ
OpenMP ๋˜๋Š” Cilk๋กœ ํ‘œ์‹œ๋œ ๋ฃจํ”„์˜ ๋ฒกํ„ฐํ™”์— ์‚ฌ์šฉ๋˜๋Š” ๋น„์šฉ ๋ชจ๋ธ ๋ณ€๊ฒฝ
ํ”Œ๋Ÿฌ์Šค simd ์ง€์‹œ๋ฌธ. NS ๋ชจ๋ธ ์ธ์ˆ˜๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์ œํ•œ, ๋™์ , ์‹ผ.
์˜ ๋ชจ๋“  ๊ฐ’ ๋ชจ๋ธ ์— ์„ค๋ช…๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. -fvect-๋น„์šฉ ๋ชจ๋ธ ๊ณผ ๋ณ„
๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ •์˜๋œ ๋น„์šฉ ๋ชจ๋ธ -fvect-๋น„์šฉ ๋ชจ๋ธ ์‚ฌ์šฉ.

-fttree-vrp
ํŠธ๋ฆฌ์—์„œ ๊ฐ’ ๋ฒ”์œ„ ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ์ •ํ•œ ์ „ํŒŒ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ „๋‹ฌํ•˜์ง€๋งŒ ๊ฐ’ ๋Œ€์‹  ๊ฐ’ ๋ฒ”์œ„๊ฐ€ ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ—ˆ์šฉ
๋ฐฐ์—ด ๋ฐ”์šด๋“œ ๊ฒ€์‚ฌ ๋ฐ ๋„ ํฌ์ธํ„ฐ์™€ ๊ฐ™์€ ๋ถˆํ•„์š”ํ•œ ๋ฒ”์œ„ ๊ฒ€์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์˜ตํ‹ฐ๋งˆ์ด์ €
์ฒดํฌ ๋ฌด๋Šฌ. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O2 ๊ทธ๋ฆฌ๊ณ  ๋” ๋†’์€. ๋„ ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ ์ œ๊ฑฐ
๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค -fdelete-null-ํฌ์ธํ„ฐ ๊ฒ€์‚ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-fsplit-ivs-in-unroller
์ดํ›„์˜ ๋ฐ˜๋ณต์—์„œ ์œ ๋„ ๋ณ€์ˆ˜ ๊ฐ’์˜ ํ‘œํ˜„์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽผ์ณ์ง„ ๋ฃจํ”„. ์ด๊ฒƒ์€ ๊ธด ์˜์กด์„ฑ์„ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์Šค์ผ€์ค„๋ง ํŒจ์Šค์˜ ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์กฐํ•ฉ -fweb CSE๋Š” ์ข…์ข… ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ์–ป๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ฃจํ”„ ๋ณธ์ฒด๊ฐ€ ๋ณด๋‹ค ๋ณต์žกํ•œ ๊ฒฝ์šฐ์—๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋‹จ์ผ ๊ธฐ๋ณธ ๋ธ”๋ก. ๋˜ํ•œ ์ผ๋ถ€ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ๋‹ค์Œ์œผ๋กœ ์ธํ•ด ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
CSE ํ†ต๊ณผ ์ œํ•œ.

์ด ์ตœ์ ํ™”๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-f๋ณ€์ˆ˜ ํ™•์žฅ-์–ธ๋กค๋Ÿฌ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ผ๋ถ€ ๋กœ์ปฌ ๋ณ€์ˆ˜์˜ ์—ฌ๋Ÿฌ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋ฃจํ”„๋ฅผ ํ’€์–ด์„œ ์šฐ์ˆ˜ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-f๋ถ€๋ถ„ ์ธ๋ผ์ธ
ํ•จ์ˆ˜์˜ ์ธ๋ผ์ธ ๋ถ€๋ถ„. ์ด ์˜ต์…˜์€ ์ž์‹ ์„ ์ธ๋ผ์ธํ•  ๋•Œ๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์— ์˜ํ•ด ์ผœ์กŒ๋‹ค -finline-ํ•จ์ˆ˜ or -finline-์ž‘์€ ๊ธฐ๋Šฅ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2.

-f์˜ˆ์ธก-๊ณตํ†ต
์˜ˆ์ธก ์ปค๋จธ๋‹ ์ตœ์ ํ™”, ์ฆ‰ ๊ณ„์‚ฐ ์žฌ์‚ฌ์šฉ(ํŠนํžˆ
๋ฉ”๋ชจ๋ฆฌ ๋กœ๋“œ ๋ฐ ์ €์žฅ) ๋ฃจํ”„์˜ ์ด์ „ ๋ฐ˜๋ณต์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -O3.

-fprefetch ๋ฃจํ”„ ๋ฐฐ์—ด
๋Œ€์ƒ ๋จธ์‹ ์—์„œ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ”„๋ฆฌํŽ˜์น˜ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํฐ ๋ฐฐ์—ด์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฃจํ”„์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๋” ์ข‹๊ฑฐ๋‚˜ ๋” ๋‚˜์œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์— ํฌ๊ฒŒ ์˜์กด
์†Œ์Šค ์ฝ”๋“œ ๋‚ด์˜ ๋ฃจํ”„ ๊ตฌ์กฐ.

์ˆ˜์ค€์—์„œ ๋น„ํ™œ์„ฑํ™”๋จ - ์˜ค์Šค.

-fno ์—ฟ๋ณด๊ธฐ
-fno-๊ตฌ๋ฉ2
๋จธ์‹ ๋ณ„ ์—ฟ๋ณด๊ธฐ ๊ตฌ๋ฉ ์ตœ์ ํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์ 
-fno ์—ฟ๋ณด๊ธฐ ๊ณผ -fno-๊ตฌ๋ฉ2 ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๊ตฌํ˜„๋˜๋Š” ๋ฐฉ์‹์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€
๋Œ€์ƒ์€ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ผ๋ถ€๋Š” ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ผ๋ถ€๋Š” ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-f๊ตฌ๋ฉ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -fpeephole2 ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fno-์ถ”์ธก-๋ถ„๊ธฐ-ํ™•๋ฅ 
ํœด๋ฆฌ์Šคํ‹ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„๊ธฐ ํ™•๋ฅ ์„ ์ถ”์ธกํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

GCC๋Š” ๋ถ„๊ธฐ ํ™•๋ฅ ์ด ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฐœ๊ฒฌ์  ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„๊ธฐ ํ™•๋ฅ ์„ ์ถ”์ธกํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœํŒŒ์ผ๋ง ํ”ผ๋“œ๋ฐฑ(-fprofile-ํ˜ธ). ์ด๋Ÿฌํ•œ ํœด๋ฆฌ์Šคํ‹ฑ์€ ์ œ์–ด ํ๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜ํ”„. ์ผ๋ถ€ ๋ถ„๊ธฐ ํ™•๋ฅ ์ด "__builtin_expect"๋กœ ์ง€์ •๋˜๋ฉด
ํœด๋ฆฌ์Šคํ‹ฑ์€ ๋‚˜๋จธ์ง€ ์ œ์–ด ํ๋ฆ„์— ๋Œ€ํ•œ ๋ถ„๊ธฐ ํ™•๋ฅ ์„ ์ถ”์ธกํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜ํ”„์—์„œ "__builtin_expect" ์ •๋ณด๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ด์˜ ์ƒํ˜ธ ์ž‘์šฉ
ํœด๋ฆฌ์Šคํ‹ฑ ๋ฐ "__builtin_expect"๋Š” ๋ณต์žกํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"__builtin_expect"์˜ ํšจ๊ณผ๊ฐ€ ๋” ์‰ฝ๋„๋ก ํœด๋ฆฌ์Šคํ‹ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์•Œ๋‹ค.

๋””ํดํŠธ๋Š” -fguess-๋ถ„๊ธฐ ํ™•๋ฅ  ์ˆ˜์ค€์—์„œ -O, -O2, -O3, - ์˜ค์Šค.

-freorder-๋ธ”๋ก
์ทจํ•˜๋Š” ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜์—์„œ ๊ธฐ๋ณธ ๋ธ”๋ก์„ ์žฌ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
๋ถ„๊ธฐํ•˜๊ณ  ์ฝ”๋“œ ์ง€์—ญ์„ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3.

-freeorder-blocks-and-partition
์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜์—์„œ ๊ธฐ๋ณธ ๋ธ”๋ก์„ ์žฌ์ •๋ ฌํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„
์ทจํ•œ ๋ถ„๊ธฐ์˜ ์ˆ˜, ํ•ซ ๋ฐ ์ฝœ๋“œ ๊ธฐ๋ณธ ๋ธ”๋ก์„ ๋ณ„๋„์˜ ์„น์…˜์œผ๋กœ ๋ถ„ํ• 
์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ .o ํŒŒ์ผ์˜ ํŽ˜์ด์ง• ๋ฐ ์บ์‹œ ์ง€์—ญ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์ด ์ตœ์ ํ™”๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค.
linkonce ์„น์…˜, ์‚ฌ์šฉ์ž ์ •์˜ ์„น์…˜ ์†์„ฑ์ด ์žˆ๋Š” ํ•จ์ˆ˜ ๋ฐ ๋ชจ๋“ 
๋ช…๋ช…๋œ ์„น์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์•„ํ‚คํ…์ฒ˜

์ˆ˜์ค€์—์„œ x86์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋จ -O2, -O3.

-freorder-ํ•จ์ˆ˜
์ฝ”๋“œ ์ง€์—ญ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ์ฒด ํŒŒ์ผ์—์„œ ํ•จ์ˆ˜๋ฅผ ์žฌ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๊ฐ€์žฅ ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ํŠน์ˆ˜ ํ•˜์œ„ ์„น์…˜ ".text.hot"์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„
๊ธฐ๋Šฅ ๋ฐ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ".text.unlikely". ์žฌ์ •๋ ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
๋ง์ปค๋Š” ๊ฐœ์ฒด ํŒŒ์ผ ํ˜•์‹์ด ๋ช…๋ช…๋œ ์„น์…˜์„ ์ง€์›ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ง์ปค๋Š”
ํ•ฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ.

๋˜ํ•œ ์ด ์˜ต์…˜์„ ์ ์šฉํ•˜๋ ค๋ฉด ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค
-fprofile-ํ˜ธ ์ž์„ธํ•œ ๋‚ด์šฉ์€.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fstrict-์•จ๋ฆฌ์–ด์‹ฑ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์–ธ์–ด์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์—„๊ฒฉํ•œ ์•จ๋ฆฌ์–ด์‹ฑ ๊ทœ์น™์„ ๊ฐ€์ •ํ•˜๋„๋ก ํ—ˆ์šฉ
์ปดํŒŒ์ผ ์ค‘์ž…๋‹ˆ๋‹ค. C(๋ฐ C++)์˜ ๊ฒฝ์šฐ ์œ ํ˜•์— ๋”ฐ๋ผ ์ตœ์ ํ™”๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
ํ‘œํ˜„. ํŠนํžˆ, ํ•œ ์œ ํ˜•์˜ ๊ฐ์ฒด๋Š” ์ ˆ๋Œ€
์œ ํ˜•์ด ๊ฑฐ์˜ ๋™์ผํ•˜์ง€ ์•Š๋Š” ํ•œ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๊ฐ์ฒด์™€ ๋™์ผํ•œ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, "unsigned int"๋Š” "int"์˜ ๋ณ„์นญ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ "void*" ๋˜๋Š” "double"์€ ๋ณ„์นญ์„ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. NS
๋ฌธ์ž ์œ ํ˜•์€ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๋ณ„์นญ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ์— ํŠนํžˆ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค.

๋…ธ๋™์กฐํ•ฉ {
int i;
๋”๋ธ” d;
};

์ •์ˆ˜ f() {
์—ฐํ•ฉ a_union t;
td = 3.0;
๋ฐ˜ํ™˜ ํ‹ฐ;
}

๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์กฐํ•ฉ์›๊ณผ ๋‹ค๋ฅธ ์กฐํ•ฉ์›์˜ ๊ธ€์„ ์ฝ๋Š” ์Šต๊ด€
("type-punning"์ด๋ผ๊ณ  ํ•จ) ์“ฐ๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ์™€๋„ -fstrict-์•จ๋ฆฌ์–ด์‹ฑ, ์œ ํ˜•-
์œ ๋‹ˆ์˜จ ์œ ํ˜•์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ ๋ง์žฅ๋‚œ์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ
์œ„์˜ ์ฝ”๋“œ๋Š” ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ˆ˜ f() {
์—ฐํ•ฉ a_union t;
์ •์ˆ˜* ip;
td = 3.0;
์•„์ดํ”ผ = &t.i;
๋ฐ˜ํ™˜ *ip;
}

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์™€ ๊ฒฐ๊ณผ ํฌ์ธํ„ฐ๋ฅผ ์บ์ŠคํŒ…ํ•˜๊ณ 
์บ์ŠคํŠธ๊ฐ€ ๊ณต์šฉ์ฒด ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๊ฒฐ๊ณผ๋ฅผ ์—ญ์ฐธ์กฐํ•˜๋ฉด ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ :

์ •์ˆ˜ f() {
์ด์ค‘ d = 3.0;
return ((union a_union *) &d)->i;
}

ใ€€ -fstrict-์•จ๋ฆฌ์–ด์‹ฑ ์˜ต์…˜์ด ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-fstrict-์˜ค๋ฒ„ํ”Œ๋กœ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์–ธ์–ด์— ๋”ฐ๋ผ ์—„๊ฒฉํ•œ ์„œ๋ช…๋œ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ทœ์น™์„ ๊ฐ€์ •ํ•˜๋„๋ก ํ—ˆ์šฉ
์ปดํŒŒ์ผ ์ค‘์ž…๋‹ˆ๋‹ค. C(๋ฐ C++)์˜ ๊ฒฝ์šฐ ์ด๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฐ์ˆ ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๋ถ€ํ˜ธ ์žˆ๋Š” ์ˆซ์ž๋Š” ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ์–ด๋‚˜ ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
"i + 10 > i"์™€ ๊ฐ™์€ ํ‘œํ˜„์‹์€ ๋ถ€ํ˜ธ ์žˆ๋Š” "i"์— ๋Œ€ํ•ด ํ•ญ์ƒ ์ฐธ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ€์ •์€
"i + 10"์ธ ๊ฒฝ์šฐ ํ‘œํ˜„์‹์ด ๊ฑฐ์ง“์ด๋ฏ€๋กœ ๋ถ€ํ˜ธ ์žˆ๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.
XNUMX์˜ ๋ณด์ˆ˜ ์‚ฐ์ˆ ์„ ์‚ฌ์šฉํ•  ๋•Œ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์ด ์ ์šฉ๋˜๋ฉด
๋ถ€ํ˜ธ ์žˆ๋Š” ์ˆซ์ž ์˜ค๋ฒ„ํ”Œ๋กœ์— ๋Œ€ํ•œ ์ž‘์—…์„ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์—„๊ฒฉํ•œ ํฌ์ธํ„ฐ ์˜๋ฏธ๋ฅผ ๊ฐ€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ(ํ•ด๋‹น ํฌ์ธํ„ฐ์— ์˜คํ”„์…‹์„ ์ถ”๊ฐ€ํ•ด๋„ ํฌ์ธํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ)
๋™์ผํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ถ”๊ฐ€๋Š” ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"p + u > p"๋Š” ํฌ์ธํ„ฐ "p"์™€ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ "u"์— ๋Œ€ํ•ด ํ•ญ์ƒ ์ฐธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ
ํ‘œํ˜„์‹์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ์ธํ„ฐ ๋žฉ์–ด๋ผ์šด๋“œ๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ •์€ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.
XNUMX์˜ ๋ณด์ˆ˜ ์‚ฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ "p + u"๊ฐ€ ์˜ค๋ฒ„ํ”Œ๋กœ๋˜๋ฉด false์ž…๋‹ˆ๋‹ค.

์ฐธ์กฐ ํ•ญ๋ชฉ -fwrapv ์˜ต์…˜. ์‚ฌ์šฉ -fwrapv ์ •์ˆ˜ ๋ถ€ํ˜ธ ์žˆ๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ๋Š” ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์™„์ „ํžˆ ์ •์˜๋จ: ๋žฉํ•‘๋ฉ๋‹ˆ๋‹ค. ์–ธ์ œ -fwrapv ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
-fstrict-์˜ค๋ฒ„ํ”Œ๋กœ ๊ณผ -fno-strict-์˜ค๋ฒ„ํ”Œ๋กœ ์ •์ˆ˜์˜ ๊ฒฝ์šฐ. ์™€ ํ•จ๊ป˜ -fwrapv ํŠน์ • ์œ ํ˜•
์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด
์ƒ์ˆ˜์— ๋Œ€ํ•œ ์‚ฐ์ˆ , ์˜ค๋ฒ„ํ”Œ๋กœ๋œ ๊ฐ’์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -fwrapv, ํ•˜์ง€๋งŒ
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด.

ใ€€ -fstrict-์˜ค๋ฒ„ํ”Œ๋กœ ์˜ต์…˜์ด ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-falign-ํ•จ์ˆ˜
-falign-๊ธฐ๋Šฅ=n
ํ•จ์ˆ˜์˜ ์‹œ์ž‘์„ ๋‹ค์Œ๋ณด๋‹ค ํฐ XNUMX์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์— ๋งž์ถฅ๋‹ˆ๋‹ค. n, ๋‹ค์Œ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ n
๋ฐ”์ดํŠธ. ์˜ˆ๋ฅผ ๋“ค์–ด, -falign-๊ธฐ๋Šฅ=32 ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ 32๋ฐ”์ดํŠธ์— ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ„ํ•˜์ง€๋งŒ -falign-๊ธฐ๋Šฅ=24 ์ด ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์Œ 32๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
23๋ฐ”์ดํŠธ ์ดํ•˜๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-fno-์ •๋ ฌ-๊ธฐ๋Šฅ ๊ณผ -falign-๊ธฐ๋Šฅ=1 ๋™๋“ฑํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค
์ •๋ ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. n XNUMX์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ž…๋‹ˆ๋‹ค. ๊ทธ ๊ฒฝ์šฐ, ๊ทธ๊ฒƒ์€
๋ฐ˜์˜ฌ๋ฆผ.

If n ์ง€์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ XNUMX์ด๋ฉด ์‹œ์Šคํ…œ ์ข…์† ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3.

-falign-๋ผ๋ฒจ
-falign-๋ ˆ์ด๋ธ”=n
๋ชจ๋“  ๋ถ„๊ธฐ ๋Œ€์ƒ์„ XNUMX์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ๊ฒฝ๊ณ„์— ์ •๋ ฌํ•˜๊ณ  n ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ”์ดํŠธ
-falign-ํ•จ์ˆ˜. ์ด ์˜ต์…˜์€
์ฝ”๋“œ์˜ ์ผ๋ฐ˜์ ์ธ ํ๋ฆ„์—์„œ ๋ถ„๊ธฐ ๋Œ€์ƒ์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ์˜ ๋”๋ฏธ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

-fno-์ •๋ ฌ-๋ ˆ์ด๋ธ” ๊ณผ -falign-๋ ˆ์ด๋ธ”=1 ๋™์ผํ•˜๋ฉฐ ๋ ˆ์ด๋ธ”์ด ๋™์ผํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ •๋ ฌ.

If -์ •๋ ฌ ๋ฃจํ”„ or -์ •๋ ฌ ์ ํ”„ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์ด ๊ฐ’๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ
๋Œ€์‹  ํ•ด๋‹น ๊ฐ’์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

If n ์ง€์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ XNUMX์ธ ๊ฒฝ์šฐ ๊ธฐ๊ณ„ ์ข…์† ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋  1, ์ •๋ ฌ์ด ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3.

-์ •๋ ฌ ๋ฃจํ”„
-์ •๋ ฌ ๋ฃจํ”„=n
๋ฃจํ”„๋ฅผ XNUMX์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ๊ฒฝ๊ณ„๋กœ ์ •๋ ฌํ•˜๊ณ  ๋‹ค์Œ์œผ๋กœ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. n ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ”์ดํŠธ -falign-ํ•จ์ˆ˜.
๋ฃจํ”„๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰๋˜๋ฉด ๋”๋ฏธ ์‹คํ–‰์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.
์ž‘์—….

-fno-align ๋ฃจํ”„ ๊ณผ -falign ๋ฃจํ”„=1 ๋™๋“ฑํ•˜๋ฉฐ ๋ฃจํ”„๊ฐ€
์ •๋ ฌ.

If n ์ง€์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ XNUMX์ด๋ฉด ์‹œ์Šคํ…œ ์ข…์† ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3.

-์ •๋ ฌ ์ ํ”„
-falign-์ ํ”„=n
๋ชฉํ‘œ๊ฐ€ ์žˆ๋Š” ๋ถ„๊ธฐ ๋ชฉํ‘œ์— ๋Œ€ํ•ด ๋ถ„๊ธฐ ๋ชฉํ‘œ๋ฅผ XNUMX์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ๊ฒฝ๊ณ„์— ๋งž์ถฅ๋‹ˆ๋‹ค.
์ ํ”„๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. n ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ”์ดํŠธ -falign-ํ•จ์ˆ˜. ์—
์ด ๊ฒฝ์šฐ ๋”๋ฏธ ์ž‘์—…์„ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

-fno-align-์ ํ”„ ๊ณผ -falign-์ ํ”„=1 ๋™๋“ฑํ•˜๋ฉฐ ๋ฃจํ”„๊ฐ€
์ •๋ ฌ.

If n ์ง€์ •๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ XNUMX์ด๋ฉด ์‹œ์Šคํ…œ ์ข…์† ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3.

-ํ•œ ๋ฒˆ์— ๋‹จ์œ„
์ด ์˜ต์…˜์€ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค. -ํ•œ ๋ฒˆ์— ๋‹จ์œ„ ํšจ๊ณผ๊ฐ€ ์—†๋Š” ๋ฐ˜๋ฉด
-fno-ํ•œ ๋ฒˆ์— ๋‹จ์œ„ ์˜๋ฏธํ•˜๋‹ค -fno-์ตœ์ƒ์œ„-์žฌ์ฃผ๋ฌธ ๊ณผ -fno-์„น์…˜ ์•ต์ปค.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-fno-์ตœ์ƒ์œ„-์žฌ์ฃผ๋ฌธ
์ตœ์ƒ์œ„ ํ•จ์ˆ˜, ๋ณ€์ˆ˜ ๋ฐ "asm" ๋ฌธ์„ ์žฌ์ •๋ ฌํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ถœ๋ ฅ
์ž…๋ ฅ ํŒŒ์ผ์— ๋‚˜ํƒ€๋‚˜๋Š” ์ˆœ์„œ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ,
์ฐธ์กฐ๋˜์ง€ ์•Š์€ ์ •์  ๋ณ€์ˆ˜๋Š” ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํŠน์ • ์ˆœ์„œ์— ์˜์กดํ•˜๋Š” ๊ธฐ์กด ์ฝ”๋“œ. ์ƒˆ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์†์„ฑ.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O0. ๋ช…์‹œ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋‹ค์Œ์„ ์˜๋ฏธํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. -fno-์„น์…˜ ์•ต์ปค,
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -O0 ์ผ๋ถ€ ๋Œ€์ƒ์—.

-fweb
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ๋ชฉ์ ์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์›น์„ ๊ตฌ์„ฑํ•˜๊ณ  ๊ฐ ์›น์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
๊ฐœ๋ณ„ ์˜์‚ฌ ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฅผ ํ†ตํ•ด ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ํŒจ์Šค๊ฐ€ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์œ ์‚ฌํ•˜์ง€๋งŒ CSE,
๋ฃจํ”„ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋ฐ ์‚ฌ์†Œํ•œ ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ๊ธฐ. ๊ทธ๋Ÿฌ๋‚˜ ๋””๋ฒ„๊น…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๋Š” ๋” ์ด์ƒ "ํ™ˆ ๋ ˆ์ง€์Šคํ„ฐ"์— ๋จธ๋ฌผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -ํŽ€๋กค ๋ฃจํ”„.

-์ „์ฒด ํ”„๋กœ๊ทธ๋žจ
ํ˜„์žฌ ์ปดํŒŒ์ผ ๋‹จ์œ„๊ฐ€ ์ปดํŒŒ์ผ๋˜๋Š” ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
"main"๊ณผ ๋ณ‘ํ•ฉ๋œ ๊ฒƒ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ณต์šฉ ํ•จ์ˆ˜ ๋ฐ ๋ณ€์ˆ˜
์†์„ฑ "externally_visible"์€ ์ •์  ํ•จ์ˆ˜๊ฐ€ ๋˜๊ณ  ์‹ค์ œ๋กœ ์ตœ์ ํ™”๋ฉ๋‹ˆ๋‹ค.
์ ˆ์ฐจ ๊ฐ„ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ๋ณด๋‹ค ์ ๊ทน์ ์œผ๋กœ.

์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. -flto. ๋Œ€์‹  ๋ง์ปค์— ์˜์กด
ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋” ์•ˆ์ „ํ•˜๊ณ  ์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-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์— ๋Œ€ํ•œ ์ฒ˜์Œ ๋‘ ๋ฒˆ์˜ ํ˜ธ์ถœ์€ GIMPLE์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํ‘œํ˜„์„ ํŠน์ˆ˜ ํŒŒ์ผ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
๋‚ด๋ถ€ ELF ์„น์…˜ ํ‘ธ.์˜ค ๊ณผ ๋ฐ”์˜ค. ์ตœ์ข… ํ˜ธ์ถœ์€ GIMPLE ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.
์— ํ‘ธ.์˜ค ๊ณผ ๋ฐ”์˜ค, ๋‘ ํŒŒ์ผ์„ ๋‹จ์ผ ๋‚ด๋ถ€ ์ด๋ฏธ์ง€๋กœ ๋ณ‘ํ•ฉํ•˜๊ณ  ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
ํ‰์†Œ์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ. ๋‘˜ ๋‹ค ์ดํ›„๋กœ ํ‘ธ.์˜ค ๊ณผ ๋ฐ”์˜ค ์ด๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋กœ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
GCC์˜ ๋ชจ๋“  ์ ˆ์ฐจ ๊ฐ„ ๋ถ„์„ ๋ฐ ์ตœ์ ํ™”๊ฐ€
๋‘ ๊ฐœ์˜ ํŒŒ์ผ์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๋ถ€๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์˜ค ๊ธฐ๋Šฅ์œผ๋กœ ํ‘ธ.์˜ค ๊ทธ ๋ฐ˜๋Œ€.

๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ (๊ฐ„๋‹จํ•œ) ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

gcc -o myprog -flto -O2 foo.c bar.c

์œ„์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ ์ƒ์„ฑ foo.c ๊ณผ ๋ฐ”.์”จ, ๊ทธ๊ฒƒ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
GIMPLE ํ‘œํ˜„ ๋ฐ ํ‰์†Œ์™€ ๊ฐ™์ด ์ตœ์ ํ™”ํ•˜์—ฌ ์ƒ์„ฑ ๋งˆ์ดํ”„๋กœ๊ทธ.

๋ช…์‹ฌํ•ด์•ผ ํ•  ์œ ์ผํ•œ ์ค‘์š”ํ•œ ์ ์€ ๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
๋งํฌ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด GCC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ GCC๊ฐ€ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ๋œ ๊ฐ์ฒด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ปดํŒŒ์ผ๋œ ๊ฒฝ์šฐ ๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™” -flto
๋ช…๋ น์ค„ ์˜ต์…˜. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ตœ์ ํ™” ์˜ต์…˜์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
GCC๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์ถ”์ธกํ•˜๋Š” ๋ฐ ์˜๋ฆฌํ•˜๊ฒŒ ์‹œ๋„ํ•˜์ง€๋งŒ ๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด
๋งํฌ์—์„œ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์ค€
์‹œ๊ฐ. ๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋™ ๊ฒฐ์ •์„ ํ•ญ์ƒ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ†ต๊ณผ์— ์˜ํ•œ ๋งํฌ ํƒ€์ž„ -fno-lto ๋งํฌ ๋ช…๋ น์—.

์ „์ฒด ํ”„๋กœ๊ทธ๋žจ ์ตœ์ ํ™”๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ํŠน์ • ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„
ํ”„๋กœ๊ทธ๋žจ ๊ฐ€์ •. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์–ด๋–ค ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋งํฌ ์‹œ๊ฐ„์— ์ตœ์ ํ™”๋œ ๋‹จ์œ„ ์™ธ๋ถ€์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๋Ÿฐํƒ€์ž„์—์„œ ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ
๋ง์ปค์—์„œ ์ง€์›ํ•˜๋Š” ๋ง์ปค ํ”Œ๋Ÿฌ๊ทธ์ธ(์ฐธ์กฐ -ํ“จ์ฆˆ-๋ง์ปค-ํ”Œ๋Ÿฌ๊ทธ์ธ) ํ†ต๊ณผ
์‚ฌ์šฉ๋œ ๊ธฐํ˜ธ์™€ ์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋•Œ
๋ง์ปค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -์ „์ฒด ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๊ฐ€์ •์„ ํ•˜๋ฉด ๋ณด๋‹ค ์ ๊ทน์ ์ธ ์ตœ์ ํ™” ๊ฒฐ์ •์ด ๋‚ด๋ ค์ง‘๋‹ˆ๋‹ค.

์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -ํ“จ์ฆˆ-๋ง์ปค-ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ์ด ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผ๋  ๋•Œ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -fltoWalk Through California ํ”„๋กœ๊ทธ๋žจ,
์ƒ์„ฑ๋œ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์€ GIMPLE์ด ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.
๋ฐ”์ดํŠธ์ฝ”๋“œ์™€ ์ผ๋ฐ˜์ ์ธ ์ตœ์ข… ์ฝ”๋“œ(์ฐธ์กฐ -ffat-lto-๊ฐ์ฒด. ์ด๊ฒƒ์€ ๊ทธ ๊ฐœ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค
LTO ์ •๋ณด๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ์€ ์ผ๋ฐ˜ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ๋กœ ๋งํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ -fno-lto ํ†ต๊ณผ
๋ง์ปค์—๋Š” ์ ˆ์ฐจ ๊ฐ„ ์ตœ์ ํ™”๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ํ•  ๋•Œ
-fno-fat-lto-๊ฐ์ฒด ์ปดํŒŒ์ผ ๋‹จ๊ณ„๊ฐ€ ๋” ๋น ๋ฅด์ง€๋งŒ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ผ๋ฐ˜, ๋น„ LTO ๋งํฌ.

๋˜ํ•œ ๊ฐœ๋ณ„ ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ตœ์ ํ™” ํ”Œ๋ž˜๊ทธ๋Š”
๋งํฌ ํƒ€์ž„์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๊ณผ ๋ฐ˜๋“œ์‹œ โ€‹โ€‹๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,

gcc -c -O0 -ffat-lto-๊ฐ์ฒด -flto foo.c
gcc -c -O0 -ffat-lto-๊ฐ์ฒด -flto bar.c
gcc -o myprog -O3 foo.o bar.o

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๊ฐœ๋ณ„ ๊ฐœ์ฒด ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜์ง€๋งŒ
๊ฒฐ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋งˆ์ดํ”„๋กœ๊ทธ ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -O3. ๋Œ€์‹  ์ตœ์ข… ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€
์ƒ์„ฑ -fno-lto๋‹ค์Œ, ๋งˆ์ดํ”„๋กœ๊ทธ ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ์ข… ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ GCC๋Š” ๋งํฌ ํƒ€์ž„ ์ตœ์ ํ™”๋งŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ฐ”์ดํŠธ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ ๋”ฐ๋ผ์„œ ๊ฐœ์ฒด ํŒŒ์ผ๊ณผ
GIMPLE ๋ฐ”์ดํŠธ ์ฝ”๋“œ ๋ฐ ์ตœ์ข… ๊ฐœ์ฒด ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. GCC๊ฐ€ ์ž๋™์œผ๋กœ ์„ ํƒ
LTO ๋ชจ๋“œ์—์„œ ์ตœ์ ํ™”ํ•  ํŒŒ์ผ๊ณผ ์ถ”๊ฐ€ ์—†์ด ์—ฐ๊ฒฐํ•  ํŒŒ์ผ
์ฒ˜๋ฆฌ.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ GCC์— ์˜ํ•ด ๋ณด์กด๋˜๋Š” ์ผ๋ถ€ ์ฝ”๋“œ ์ƒ์„ฑ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ์ข… ์—ฐ๊ฒฐ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ง€์ •๋œ ์˜ต์…˜
๋งํฌ ํƒ€์ž„์€ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ง€์ •๋œ ๊ฒƒ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ ํ™” ์ˆ˜์ค€ ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ -O ๋งํฌ ํƒ€์ž„์— GCC ๊ณ„์‚ฐ
ํ•˜๋‚˜๋Š” ๊ฐœ์ฒด ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ตœ์ ํ™” ์ˆ˜์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. NS
์—ฌ๊ธฐ์—์„œ ๊ฐ€์žฅ ๋†’์€ ์ตœ์ ํ™” ์ˆ˜์ค€์ด ์Šน๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋‹ค์Œ ์˜ต์…˜๊ณผ ํ•ด๋‹น ์„ค์ •์€ ์ฒซ ๋ฒˆ์งธ ๊ฐœ์ฒด ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. -fPIC, -fpic, -ํŒŒ์ด, -f๊ณตํ†ต, -์˜ˆ์™ธ,
-fnon-call-exception, -fgnu-tm ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  -m ํƒ€๊ฒŸ ํ”Œ๋ž˜๊ทธ.

ํŠน์ • ABI ๋ณ€๊ฒฝ ํ”Œ๋ž˜๊ทธ๋Š” ๋ชจ๋“  ์ปดํŒŒ์ผ ๋‹จ์œ„์—์„œ ์ผ์น˜ํ•˜๊ณ  ์‹œ๋„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ถฉ๋Œํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋งํฌ ํƒ€์ž„์— ์ด๊ฒƒ์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ต์…˜ -freg-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ ๊ณผ -fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜.

๊ฐ™์€ ๋‹ค๋ฅธ ์˜ต์…˜ -ffp-๊ณ„์•ฝ, -fno-strict-์˜ค๋ฒ„ํ”Œ๋กœ, -fwrapv, -fno-trapv or
-fno-์—„๊ฒฉํ•œ ์•จ๋ฆฌ์–ด์‹ฑ ๋งํฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ณด์ˆ˜์ ์œผ๋กœ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
์ถฉ๋Œํ•˜๋Š” ๋ฒˆ์—ญ ๋‹จ์œ„์˜ ๊ฒฝ์šฐ. ๊ตฌ์ฒด์ ์œผ๋กœ ํŠน๋ณ„ํžˆ -fno-strict-์˜ค๋ฒ„ํ”Œ๋กœ, -fwrapv ๊ณผ
-fno-trapv ์šฐ์„ ์‹œํ•˜๊ณ  ์˜ˆ๋ฅผ ๋“ค์–ด -ffp-๊ณ„์•ฝ=ํ•ด์ œ ์šฐ์„ ํ•œ๋‹ค
-ffp-๊ณ„์•ฝ=๋น ๋ฅธ. ๋งํฌ ํƒ€์ž„์— ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋งํฌ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋™์ผํ•œ ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  ๋งํฌ ์‹œ๊ฐ„์— ํ•ด๋‹น ์˜ต์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

LTO๊ฐ€ ๋ณ„๋„์˜ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์œ ํ˜•์œผ๋กœ ์„ ์–ธ๋œ C ์—ฐ๊ฒฐ์ด ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋‚˜๋Š” ๊ฒฝ์šฐ
ํ•จ๊ป˜ ์—ฐ๊ฒฐ๋  ๋ฒˆ์—ญ ๋‹จ์œ„(ISO C99์— ๋”ฐ๋ฅธ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘
6.2.7), ๋น„์น˜๋ช…์  ์ง„๋‹จ์ด ๋‚ด๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ž‘์€ ์‹คํ–‰ ์‹œ ์—ฌ์ „ํžˆ ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹œ๊ฐ. ๋‹ค๋ฅธ ์–ธ์–ด์— ๋Œ€ํ•ด์„œ๋„ ์œ ์‚ฌํ•œ ์ง„๋‹จ์ด ์ œ๊ธฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

LTO์˜ ๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ ์ ˆ์ฐจ๊ฐ„ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ:

gcc -c -flto foo.c
g++ -c -flto bar.cc
gfortran -c -flto baz.f90
g++ -o myprog -flto -O3 foo.o bar.o baz.o -lgfortran

์ตœ์ข… ๋งํฌ๋Š” ๋‹ค์Œ์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. g ++ C++ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ 
-lgfortran Fortran ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ˜ผํ•ฉํ•  ๋•Œ
LTO ๋ชจ๋“œ์—์„œ ์–ธ์–ด๋ฅผ ํ˜ผํ•ฉํ•  ๋•Œ์™€ ๋™์ผํ•œ ๋งํฌ ๋ช…๋ น ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜(๋น„ LTO) ์ปดํŒŒ์ผ์˜ ์–ธ์–ด.

GIMPLE ๋ฐ”์ดํŠธ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ๊ฐ์ฒด ํŒŒ์ผ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์•„์นด์ด๋ธŒ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•˜์‹ญ์‹œ์˜ค.
libfoo.a, ์‚ฌ์šฉ์ค‘์ธ ๊ฒฝ์šฐ LTO ๋งํฌ์—์„œ ์ถ”์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ•˜๋Š” ๋ง์ปค. LTO์— ์ ํ•ฉํ•œ ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. gcc-ar
๊ณผ gcc-ranlib ๋Œ€์‹  ar ๊ณผ ๋ž€๋ฆฝ; ๊ฐœ์ฒด ํŒŒ์ผ์˜ ๊ธฐํ˜ธ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด
GIMPLE ๋ฐ”์ดํŠธ์ฝ”๋“œ, ์‚ฌ์šฉ gcc-nm. ์ด๋Ÿฌํ•œ ๋ช…๋ น์—๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ar, ๋ž€๋ฆฝ ๊ณผ nm ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
ํ”Œ๋Ÿฌ๊ทธ์ธ ์ง€์›์œผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. ๋งํฌ ํƒ€์ž„์— ํ”Œ๋ž˜๊ทธ ์‚ฌ์šฉ -ํ“จ์ฆˆ-๋ง์ปค-ํ”Œ๋Ÿฌ๊ทธ์ธ ์—
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ LTO ์ตœ์ ํ™” ํ”„๋กœ์„ธ์Šค์— ์ฐธ์—ฌํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

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

๋ง์ปค ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ๋ง์ปค๋Š” ๋‹ค์Œ์—์„œ ํ•„์š”ํ•œ GIMPLE ํŒŒ์ผ์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
libfoo.a ์‹คํ–‰ ์ค‘์ธ GCC์— ์ „๋‹ฌํ•˜์—ฌ ์ง‘๊ณ„๋œ ์ผ๋ถ€๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
์ตœ์ ํ™”ํ•  GIMPLE ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ•˜๋Š” ๋ง์ปค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ง์ปค๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‹ค์Œ ๋‚ด๋ถ€ ๊ฐœ์ฒด libfoo.a ํ‰์†Œ์™€ ๊ฐ™์ด ์ถ”์ถœ๋˜๊ณ  ์—ฐ๊ฒฐ๋˜์ง€๋งŒ
LTO ์ตœ์ ํ™” ํ”„๋กœ์„ธ์Šค์— ์ฐธ์—ฌํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด
LTO ์ตœ์ ํ™”์™€ ์ผ๋ฐ˜์ ์ธ ์—ฐ๊ฒฐ ๋ชจ๋‘์— ์ ํ•ฉํ•˜๋ฉฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ฒด ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
-flto -ffat-lto-๊ฐ์ฒด.

๋งํฌ ํƒ€์ž„ ์ตœ์ ํ™”๋Š” ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‚ด๋ณด๋‚ผ ๊ธฐํ˜ธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-flto ๊ณผ -์ „์ฒด ํ”„๋กœ๊ทธ๋žจ ์ ˆ์ฐจ ๊ฐ„ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์ด ๋” ๋งŽ์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก
๊ฐœ์„ ๋œ ์ตœ์ ํ™” ๊ธฐํšŒ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฒฉ์ ์ธ ๊ฐ€์ •. ์‚ฌ์šฉ
-์ „์ฒด ํ”„๋กœ๊ทธ๋žจ ๋ง์ปค ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ฐธ์กฐ -ํ“จ์ฆˆ-๋ง์ปค-ํ”Œ๋Ÿฌ๊ทธ์ธ).

LTO์˜ ํ˜„์žฌ ๊ตฌํ˜„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์„œ๋กœ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ํ˜ธ์ŠคํŠธ ๊ฐ„์— ์ด์‹ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ์ฝ”๋“œ ํŒŒ์ผ์€ ๋ฒ„์ „์ด ์ง€์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์—„๊ฒฉํ•œ ๋ฒ„์ „ ๊ฒ€์‚ฌ์ด๋ฏ€๋กœ ํ•œ ๋ฒ„์ „์˜ GCC์—์„œ ์ƒ์„ฑ๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ ํŒŒ์ผ์€
์ด์ „ ๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „์˜ GCC๋กœ ์ž‘์—…ํ•˜์‹ญ์‹œ์˜ค.

๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™”๋Š” ๋””๋ฒ„๊น… ์ •๋ณด ์ƒ์„ฑ๊ณผ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฒฐํ•ฉ -flto ๊ณผ -g ํ˜„์žฌ ์‹คํ—˜ ์ค‘์ด๋ฉฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ.

์˜ต์…˜์„ ์ง€์ •ํ•˜๋ฉด n, ๋งํฌ ํƒ€์ž„์— ์ˆ˜ํ–‰๋˜๋Š” ์ตœ์ ํ™” ๋ฐ ์ฝ”๋“œ ์ƒ์„ฑ
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. n ์„ค์น˜๋œ ๋ณ‘๋ ฌ ์ž‘์—…์„ ํ™œ์šฉํ•˜์—ฌ ํ™•์ธ ํ”„๋กœ๊ทธ๋žจ)
ํ™˜๊ฒฝ ๋ณ€์ˆ˜ MAKE ์‚ฌ์šฉ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
๊ฐ€์น˜ n 1์ž…๋‹ˆ๋‹ค.

์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -flto=์ž‘์—… ์„œ๋ฒ„ GNU make์˜ ์ž‘์—… ์„œ๋ฒ„ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
๋ณ‘๋ ฌ ์ž‘์—…์˜ ์ˆ˜. ์ด๊ฒƒ์€ GCC๋ฅผ ํ˜ธ์ถœํ•˜๋Š” Makefile์ด ์ด๋ฏธ
๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. + ๋ถ€๋ชจ์˜ ๋ช…๋ น ๋ ˆ์‹œํ”ผ์—
์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด Makefile์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. MAKE GNU make์ž…๋‹ˆ๋‹ค.

-flto-ํŒŒํ‹ฐ์…˜=ALG
๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ถ„ํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€
์ค‘ 1 ~ 1 ์›๋ณธ ์†Œ์Šค ํŒŒ์ผ์„ ๋ฏธ๋Ÿฌ๋งํ•˜๋Š” ํŒŒํ‹ฐ์…˜์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๊ท ํ˜•์ด ์žกํžŒ
๋™์ผํ•œ ํฌ๊ธฐ์˜ ์ฒญํฌ๋กœ ๋ถ„ํ•  ์ง€์ •(๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ) ๋˜๋Š” ์ตœ๋Œ€ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์ƒˆ ํŒŒํ‹ฐ์…˜. ์ง€์ • ์—†์Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ
๋ถ„ํ•  ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๊ท ํ˜•์ด ์žกํžŒ. ๋™์•ˆ
1 ~ 1 ๋‹ค์–‘ํ•œ ์ฝ”๋“œ ์ˆœ์„œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€
ํŒŒํ‹ฐ์…”๋‹์€ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ ์ „์šฉ์ž…๋‹ˆ๋‹ค. ๊ฐ€์น˜ ํ•œ ์ง€์ •
๊ฐ’์ด ์žˆ๋Š” ๋™์•ˆ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—†์Œ ํŒŒํ‹ฐ์…”๋‹์„ ์šฐํšŒํ•˜๊ณ 
WPA ๋‹จ๊ณ„์—์„œ ์ง์ ‘ ๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™” ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

-flto-odr-์œ ํ˜• ๋ณ‘ํ•ฉ
C++ ์œ ํ˜•์˜ ๋งน๊ธ€๋ง ์œ ํ˜• ์ด๋ฆ„ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ ํ•ด๋‹น ํ†ตํ•ฉ
๋งํฌ ํƒ€์ž„. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด LTO ๊ฐœ์ฒด ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜์ง€๋งŒ One์— ๋Œ€ํ•œ ์ง„๋‹จ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ •์˜ ๊ทœ์น™ ์œ„๋ฐ˜.

-flto-์••์ถ• ์ˆ˜์ค€=n
์ด ์˜ต์…˜์€ ์ž‘์„ฑ๋œ ์ค‘๊ฐ„ ์–ธ์–ด์— ์‚ฌ์šฉ๋˜๋Š” ์••์ถ• ์ˆ˜์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
LTO ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์— ์ ์šฉ๋˜๋ฉฐ LTO ๋ชจ๋“œ(-flto).
์œ ํšจํ•œ ๊ฐ’์€ 0(์••์ถ• ์—†์Œ)์—์„œ 9(์ตœ๋Œ€ ์••์ถ•)๊นŒ์ง€์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ–์˜ ๊ฐ’
๋ฒ”์œ„๋Š” 0 ๋˜๋Š” 9๋กœ ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์ด ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ๊ท ํ˜•
์••์ถ• ์„ค์ •์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-flto-๋ณด๊ณ 
๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์˜ ์ž‘๋™์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๋ณด๊ณ ์„œ๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. NS
์ด ๋ณด๊ณ ์„œ์˜ ๋‚ด์šฉ์€ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. GCC์— ์œ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ์ž๋Š” LTO ๋ชจ๋“œ์—์„œ ๊ฐœ์ฒด ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ(ํ†ตํ•ด -flto).

๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-flto-๋ณด๊ณ -wpa
์ฒ˜๋Ÿผ -flto-๋ณด๊ณ , ๊ทธ๋Ÿฌ๋‚˜ Link Time Optimization์˜ WPA ๋‹จ๊ณ„์— ๋Œ€ํ•ด์„œ๋งŒ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

-ํ“จ์ฆˆ-๋ง์ปค-ํ”Œ๋Ÿฌ๊ทธ์ธ
๋งํฌ ์‹œ๊ฐ„ ์ตœ์ ํ™” ์ค‘์— ๋ง์ปค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
๊ณจ๋“œ ๋˜๋Š” GNU ld 2.21 ๋˜๋Š”
๋” ์ƒˆ๋กœ์šด.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ GIMPLE ๋ฐ”์ดํŠธ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฐœ์ฒด ํŒŒ์ผ์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„์นด์ด๋ธŒ. ์ด๊ฒƒ์€ ๋งํฌ์— ๋” ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ๋…ธ์ถœ์‹œ์ผœ ์ตœ์ ํ™” ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
์‹œ๊ฐ„ ์ตœ์ ํ™”๊ธฐ. ์ด ์ •๋ณด๋Š” ์™ธ๋ถ€์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
(๋น„ LTO ๊ฐœ์ฒด์— ์˜ํ•ด ๋˜๋Š” ๋™์  ์—ฐ๊ฒฐ ์ค‘์—). ๊ฒฐ๊ณผ ์ฝ”๋“œ ํ’ˆ์งˆ ํ–ฅ์ƒ
๋ฐ”์ด๋„ˆ๋ฆฌ(๋ฐ ์ˆจ๊ฒจ์ง„ ๊ฐ€์‹œ์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
-์ „์ฒด ํ”„๋กœ๊ทธ๋žจ. ์ฐธ์กฐ -flto ์ด ํ”Œ๋ž˜๊ทธ์˜ ํšจ๊ณผ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ
๊ทธ๊ฑธ ์จ.

์ด ์˜ต์…˜์€ GCC์—์„œ LTO ์ง€์›์ด ํ™œ์„ฑํ™”๋˜๊ณ  GCC๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๋ง์ปค ์ง€์› ํ”Œ๋Ÿฌ๊ทธ์ธ(GNU ld 2.21 ์ด์ƒ ๋˜๋Š” ๊ณจ๋“œ)๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

-ffat-lto-๊ฐ์ฒด
Fat LTO ๊ฐœ์ฒด๋Š” ์ค‘๊ฐ„ ์–ธ์–ด์™€
๊ฐœ์ฒด ์ฝ”๋“œ. ์ด๋ฅผ ํ†ตํ•ด LTO ์—ฐ๊ฒฐ ๋ฐ ์ผ๋ฐ˜ ์—ฐ๊ฒฐ ๋ชจ๋‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. -flto ๋งํฌ ์‹œ๊ฐ„์—๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

-fno-fat-lto-๊ฐ์ฒด ์ผ๋ฐ˜ LTO์— ๋น„ํ•ด ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ํ–ฅ์ƒ๋˜์ง€๋งŒ
LTO๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ์™„์ „ํ•œ ๋„๊ตฌ ์ฒด์ธ. ๋ง์ปค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ•˜๋Š” ๋ง์ปค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด. ์ถ”๊ฐ€์ ์œผ๋กœ, nm, ar ๊ณผ ๋ž€๋ฆฝ ๋ง์ปค๋ฅผ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ํ—ˆ์šฉํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ(์ •์  ๋นŒ๋“œ ๊ฐ€๋Šฅ
๋„์„œ๊ด€ ๋“ฑ). GCC๋Š” gcc-ar, gcc-nm, gcc-ranlib ์ „๋‹ฌํ•  ๋ž˜ํผ
์ด๋Ÿฌํ•œ ๋„๊ตฌ์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ์˜ต์…˜. non-fat LTO makefile์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋“ค.

๋””ํดํŠธ๋Š” -fno-fat-lto-๊ฐ์ฒด ๋ง์ปค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ.

-f๋น„๊ต-์ œ๊ฑฐ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ๋ฐ ์‚ฌํ›„ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ๋ช…๋ น ๋ถ„ํ•  ํ›„ ์‹๋ณ„
๋น„๊ต ์—ฐ์‚ฐ๊ณผ ์œ ์‚ฌํ•œ ํ”„๋กœ์„ธ์„œ ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์‚ฐ์ˆ  ๋ช…๋ น์–ด
๊ทธ ์‚ฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ๋ช…์‹œ์  ๋น„๊ต ์ž‘์—…์„ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

์ด ํŒจ์Šค๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์—†๋Š” ํŠน์ • ๋Œ€์ƒ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „์— ๋น„๊ต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-fcprop ๋ ˆ์ง€์Šคํ„ฐ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ๋ฐ ์‚ฌํ›„ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ๋ช…๋ น ๋ถ„ํ•  ํ›„ ์ˆ˜ํ–‰
์Šค์ผ€์ค„๋ง ์ข…์†์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ณต์‚ฌ ์ „ํŒŒ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋•Œ๋•Œ๋กœ
์‚ฌ๋ณธ์„ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O, -O2, -O3, - ์˜ค์Šค.

-fprofile-์ˆ˜์ •
๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ๊ณ„์ธก๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์ง‘๋œ ํ”„๋กœํ•„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ˆ„๋ฝ๋œ ์นด์šดํ„ฐ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ผ๊ด€์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์ด ์ง€์ •๋˜๋ฉด GCC๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ถˆ์ผ์น˜๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํœด๋ฆฌ์Šคํ‹ฑ. ๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š”
์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํ•„์ด ๊ฐ์ง€๋˜๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

-fํ”„๋กœํ•„-๋””๋ ‰ํ† ๋ฆฌ=ํ†ต๋กœ
ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํ†ต๋กœ. ์ด ์˜ต์…˜
์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. -fprofile ์ƒ์„ฑ, -์ตœํ›„ ๋ฒ”์œ„,
-fprofile-ํ˜ธ ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ -fprofile-์‚ฌ์šฉ ๊ณผ -f๋ถ„๊ธฐ ํ™•๋ฅ  ๋ฐ ๊ด€๋ จ
์˜ต์…˜. ์ ˆ๋Œ€ ๊ฒฝ๋กœ์™€ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š”
ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ํ†ต๋กœ, ๋”ฐ๋ผ์„œ ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
๋ชฉ์  ํŒŒ์ผ.

-fprofile ์ƒ์„ฑ
-fprofile ์ƒ์„ฑ=ํ†ต๋กœ
์œ ์šฉํ•œ ํ”„๋กœํ•„์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ณ„์ธกํ•˜๋Š” ๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™”๋กœ ๋‚˜์ค‘์— ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด. ๋‹น์‹ ์€ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
-fprofile ์ƒ์„ฑ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•  ๋•Œ์™€ ๋งํฌํ•  ๋•Œ ๋ชจ๋‘.

๋‹ค์Œ ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -fprofile-ํ˜ธ, -fprofile-๊ฐ’, -fvpt.

If ํ†ต๋กœ ๊ฐ€ ์ง€์ •๋˜๋ฉด GCC๋Š” ํ†ต๋กœ ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
๋งŒ๋‚˜๋‹ค -fํ”„๋กœํ•„-๋””๋ ‰ํ„ฐ๋ฆฌ.

-fprofile-์‚ฌ์šฉ
-fํ”„๋กœํ•„ ์‚ฌ์šฉ=ํ†ต๋กœ
ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ ์ง€ํ–ฅ ์ตœ์ ํ™” ๋ฐ ๋‹ค์Œ ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜์ต์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. -f๋ถ„๊ธฐ ํ™•๋ฅ ,
-fvpt, -ํŽ€๋กค ๋ฃจํ”„, -ํ•„ ๋ฃจํ”„, -์ถ”์ ์ž, -ftree ๋ฒกํ„ฐํ™”๋ฐ ftree ๋ฃจํ”„
๋ถ„ํฌ ํŒจํ„ด.

๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ํ”ผ๋“œ๋ฐฑ ํ”„๋กœํ•„์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
์†Œ์Šค ์ฝ”๋“œ. ์ด ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๊ณ ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -Wcoverage-๋ถˆ์ผ์น˜.
์ด๋กœ ์ธํ•ด ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ ์ฝ”๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

If ํ†ต๋กœ ๊ฐ€ ์ง€์ •๋˜๋ฉด GCC๋Š” ํ†ต๋กœ ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
๋งŒ๋‚˜๋‹ค -fํ”„๋กœํ•„-๋””๋ ‰ํ„ฐ๋ฆฌ.

-fauto ํ”„๋กœํ•„
-fauto-ํ”„๋กœํ•„=ํ†ต๋กœ
์ƒ˜ํ”Œ๋ง ๊ธฐ๋ฐ˜ ํ”ผ๋“œ๋ฐฑ ์ง€ํ–ฅ ์ตœ์ ํ™” ๋ฐ ๋‹ค์Œ ์ตœ์ ํ™” ํ™œ์„ฑํ™”
์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜์ต์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
-f๋ถ„๊ธฐ ํ™•๋ฅ , -fvpt, -ํŽ€๋กค ๋ฃจํ”„, -ํ•„ ๋ฃจํ”„, -์ถ”์ ์ž,
-ftree ๋ฒกํ„ฐํ™”, -finline-ํ•จ์ˆ˜, -fipa-cp, -fipa-cp-ํด๋ก ,
-f์˜ˆ์ธก-๊ณตํ†ต, -ํŽ€์Šค์œ„์น˜ ๋ฃจํ”„, -fgcse-์žฌ๋กœ๋“œ ํ›„๋ฐ
-ftree-๋ฃจํ”„-๋ฐฐํฌ-ํŒจํ„ด.

ํ†ต๋กœ AutoFDO ํ”„๋กœํŒŒ์ผ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด
๊ธฐ๋ณธ๊ฐ’์€ fbdata.afdo ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ.

AutoFDO ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜ ํ•œ
์ง€์›๋˜๋Š” GNU/Linux ๋Œ€์ƒ ์‹œ์Šคํ…œ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ. ์ž์„ธํ•œ ๋‚ด์šฉ์€
<https://perf.wiki.kernel.org/>.

์˜ˆ :

์„ฑ๋Šฅ ๊ธฐ๋ก -e br_inst_retired:near_taken -b -o ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ \
-- ๊ท€ํ•˜์˜ ํ”„๋กœ๊ทธ๋žจ

๊ทธ๋Ÿฐ ๋‹ค์Œ create_gcov ์›์‹œ ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ
GCC์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ŠคํŠธ๋ฆฝ๋˜์ง€ ์•Š์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์—ฌ๊ธฐ์— ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋„๊ตฌ. ๋ณด๋‹คhttps://github.com/google/autofdo>.

์˜ˆ :

create_gcov --binary=your_program.unstripped --profile=perf.data \
--gcov=ํ”„๋กœํ•„.afdo

๋‹ค์Œ ์˜ต์…˜์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ฐ์ˆ ๊ณผ ๊ด€๋ จ๋œ ์ปดํŒŒ์ผ๋Ÿฌ ๋™์ž‘์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ์†๋„์™€ ์ •ํ™•์„ฑ ์‚ฌ์ด์—์„œ ์ ˆ์ถฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ ๊ตฌ์ฒด์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-fffloat-store
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ณ€์ˆ˜๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•˜์ง€ ๋ง๊ณ  ๋‹ค๋ฅธ ์˜ต์…˜์„ ๊ธˆ์ง€ํ•˜์‹ญ์‹œ์˜ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ 68000๊ณผ ๊ฐ™์€ ๊ธฐ๊ณ„์—์„œ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€ ๊ณผ๋„ํ•œ ์ •๋ฐ€๋„๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ๋ ˆ์ง€์Šคํ„ฐ(68881 ์ค‘)๋Š” "๋”๋ธ”"์ด ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋†’์€ ์ •๋ฐ€๋„๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€์ง€๊ณ . x86 ์•„ํ‚คํ…์ฒ˜์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ดˆ๊ณผ ์ •๋ฐ€๋„
์ข‹์€ ์ผ๋งŒ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์€ IEEE ํ”Œ๋กœํŒ…์˜ ์ •ํ™•ํ•œ ์ •์˜์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋ฆฌํ‚ค๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -fffloat-store ์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ํŒŒ์ผ์„ ์ €์žฅํ•˜๋„๋ก ์ˆ˜์ •ํ•œ ํ›„
๋ณ€์ˆ˜์— ์ ์ ˆํ•œ ์ค‘๊ฐ„ ๊ณ„์‚ฐ.

-fexcess-์ •๋ฐ€๋„=์Šคํƒ€์ผ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ถ€๋™ ์ƒํƒœ์˜ ๊ธฐ๊ณ„์—์„œ ๊ณผ๋„ํ•œ ์ •๋ฐ€๋„๋ฅผ ์ถ”๊ฐ€๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํฌ์ธํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋Š” IEEE "float" ๋ฐ "double" ์œ ํ˜•๋ณด๋‹ค ์ •๋ฐ€๋„๊ฐ€ ๋†’์œผ๋ฉฐ
ํ”„๋กœ์„ธ์„œ๋Š” ์ด๋Ÿฌํ•œ ์œ ํ˜•์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ์ž‘์—…์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ,
-fexcess-์ •๋ฐ€๋„=๋น ๋ฆ„ ์œ ํšจํ•˜๋‹ค; ์ด๊ฒƒ์€ ์ž‘์—…์ด ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ์˜ ์ •๋ฐ€๋„ ๋ฐ ์œ ํ˜•์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•  ๋•Œ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์Œ
์†Œ์Šค ์ฝ”๋“œ์— ์ง€์ •๋œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. C๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ,
-fexcess-์ •๋ฐ€๋„=ํ‘œ์ค€ ๊ฐ€ ์ง€์ •๋˜๋ฉด ์ดˆ๊ณผ ์ •๋ฐ€๋„๊ฐ€ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
ISO C99์— ๋ช…์‹œ๋จ; ํŠนํžˆ ์บ์ŠคํŠธ์™€ ํ• ๋‹น ๋ชจ๋‘ ๊ฐ’์ด
์˜๋ฏธ๋ก ์  ์œ ํ˜•์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผ๋ฉ๋‹ˆ๋‹ค(๋ฐ˜๋ฉด -fffloat-store ํ• ๋‹น์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค).
์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—„๊ฒฉํ•œ ์ค€์ˆ˜ ์˜ต์…˜์ด ์žˆ๋Š” ๊ฒฝ์šฐ C์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
-ํ‘œ์ค€=c99 ์‚ฌ์šฉ.

-fexcess-์ •๋ฐ€๋„=ํ‘œ์ค€ C ์ด์™ธ์˜ ์–ธ์–ด์—๋Š” ๊ตฌํ˜„๋˜์ง€ ์•Š์œผ๋ฉฐ
ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” or -๋น ๋ฅธ ์ˆ˜ํ•™ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. x86์—์„œ๋Š”
๊ฒฝ์šฐ์—๋„ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. -mfpmath=sse or -mfpmath=sse+387 ์ง€์ •๋จ; ์ด์ „์—
์ด ๊ฒฝ์šฐ IEEE ์˜๋ฏธ๋ก ์€ ๊ณผ๋„ํ•œ ์ •๋ฐ€๋„ ์—†์ด ์ ์šฉ๋˜๋ฉฐ ํ›„์ž์˜ ๊ฒฝ์šฐ ๋ฐ˜์˜ฌ๋ฆผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์˜ˆ์ธกํ•  ์ˆ˜์—†๋Š”.

-๋น ๋ฅธ ์ˆ˜ํ•™
์˜ต์…˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค -fno-์ˆ˜ํ•™-errno, -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™”, - ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ,
-fno ๋ฐ˜์˜ฌ๋ฆผ ์ˆ˜ํ•™, -fno-์‹œ๊ทธ๋„๋ง-nans ๊ณผ -fcx ์ œํ•œ ๋ฒ”์œ„.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__FAST_MATH__"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์–ด๋–ค ์‚ฌ๋žŒ๋„ ์ผœ์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -O ์ด์™ธ์˜ ์˜ต์…˜ -์˜คํŒŒ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
IEEE ๋˜๋Š” ISO์˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์ถœ๋ ฅ
์ˆ˜ํ•™ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๊ทœ์น™/์‚ฌ์–‘. ๊ทธ๋Ÿฌ๋‚˜ ๋” ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์‚ฌ์–‘์˜ ๋ณด์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ.

-fno-์ˆ˜ํ•™-errno
๋‹จ์ผ๋กœ ์‹คํ–‰๋˜๋Š” ์ˆ˜ํ•™ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ํ›„ "errno"๋ฅผ ์„ค์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ช…๋ น(์˜ˆ: "sqrt"). ์ˆ˜ํ•™ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ IEEE ์˜ˆ์™ธ์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
์ฒ˜๋ฆฌ๋Š” IEEE ์‚ฐ์ˆ ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์†๋„๋ฅผ ์œ„ํ•ด ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜ธํ™˜์„ฑ.

์ด ์˜ต์…˜์€ ์–ด๋–ค ์‚ฌ๋žŒ๋„ ์ผœ์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -O ์ž˜๋ชป๋œ ์ถœ๋ ฅ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์˜ต์…˜
IEEE ๋˜๋Š” ISO์˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ
์ˆ˜ํ•™ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๊ทœ์น™/์‚ฌ์–‘. ๊ทธ๋Ÿฌ๋‚˜ ๋” ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์‚ฌ์–‘์˜ ๋ณด์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ.

๋””ํดํŠธ๋Š” -fmath-errno.

Darwin ์‹œ์Šคํ…œ์—์„œ ์ˆ˜ํ•™ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” "errno"๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด์œ ๊ฐ€ ์—†๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜๊ณ , -fno-์ˆ˜ํ•™-errno ์ด๋‹ค
ํƒœ๋งŒ.

-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™”
(a) ์ธ์ˆ˜ ๋ฐ
๊ฒฐ๊ณผ๊ฐ€ ์œ ํšจํ•˜๊ณ  (b) IEEE ๋˜๋Š” ANSI ํ‘œ์ค€์„ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ ํƒ€์ž„์— ์‚ฌ์šฉํ•˜๋ฉด,
๊ธฐ๋ณธ FPU ์ œ์–ด ๋‹จ์–ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ์‹œ์ž‘ ํŒŒ์ผ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์œ ์‚ฌํ•œ ์ตœ์ ํ™”.

์ด ์˜ต์…˜์€ ์–ด๋–ค ์‚ฌ๋žŒ๋„ ์ผœ์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -O ์ž˜๋ชป๋œ ์ถœ๋ ฅ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์˜ต์…˜
IEEE ๋˜๋Š” ISO์˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ
์ˆ˜ํ•™ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๊ทœ์น™/์‚ฌ์–‘. ๊ทธ๋Ÿฌ๋‚˜ ๋” ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์‚ฌ์–‘์˜ ๋ณด์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ. ํ™œ์„ฑํ™”
-fno ๋ถ€ํ˜ธ ์žˆ๋Š” XNUMX, -fno ํŠธ๋ž˜ํ•‘ ์ˆ˜ํ•™, -์—ฐ๊ด€ ์ˆ˜ํ•™ ๊ณผ - ๋ถ„์ˆ˜ ์ˆ˜ํ•™.

๋””ํดํŠธ๋Š” -fno-์•ˆ์ „ํ•˜์ง€ ์•Š์€-์ˆ˜ํ•™ ์ตœ์ ํ™”.

-์—ฐ๊ด€ ์ˆ˜ํ•™
์ผ๋ จ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์—์„œ ํ”ผ์—ฐ์‚ฐ์ž์˜ ์žฌ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ISO C ๋ฐ C++ ์–ธ์–ด ํ‘œ์ค€์„ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฐธ๊ณ : ์žฌ์ •๋ ฌ์€ XNUMX์˜ ๋ถ€ํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  NaN์„ ๋ฌด์‹œํ•˜๊ณ  ๊ธˆ์ง€ ๋˜๋Š”
์–ธ๋”ํ”Œ๋กœ ๋˜๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ ์ƒ์„ฑ(๋”ฐ๋ผ์„œ ๋ฐ˜์˜ฌ๋ฆผ์— ์˜์กดํ•˜๋Š” ์ฝ”๋“œ์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
"(x + 2**52) - 2**52"์™€ ๊ฐ™์€ ๋™์ž‘. ๋˜ํ•œ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋น„๊ต๋ฅผ ์žฌ์ •๋ ฌํ•˜๊ณ 
๋”ฐ๋ผ์„œ ์ˆœ์„œ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์—๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋‘ -fno ๋ถ€ํ˜ธ ์žˆ๋Š” XNUMX ๊ณผ -fno ํŠธ๋ž˜ํ•‘ ์ˆ˜ํ•™ ์œ ํšจํ•˜๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋งŽ์€ ์˜๋ฏธ - ๋ฐ˜์˜ฌ๋ฆผ ์ˆ˜ํ•™. Fortran์˜ ๊ฒฝ์šฐ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๋‘ -fno ๋ถ€ํ˜ธ ์žˆ๋Š” XNUMX ๊ณผ -fno ํŠธ๋ž˜ํ•‘ ์ˆ˜ํ•™ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -fno ์—ฐ๊ด€ ์ˆ˜ํ•™.

- ๋ถ„์ˆ˜ ์ˆ˜ํ•™
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋Œ€์‹  ๊ฐ’์˜ ์—ญ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™”๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "x / y"๋Š” "x * (1/y)"๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"(1/y)"๊ฐ€ ๊ณตํ†ต ํ•˜์œ„ ํ‘œํ˜„์‹ ์ œ๊ฑฐ ๋Œ€์ƒ์ธ ๊ฒฝ์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด
์ •๋ฐ€๋„๋ฅผ ์žƒ๊ณ  ๊ฐ’์—์„œ ์ž‘๋™ํ•˜๋Š” ํ”Œ๋กญ ์ˆ˜๋ฅผ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -fno-์—ญ์ˆ˜-์ˆ˜ํ•™.

- ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ
์ธ์ˆ˜ ๋ฐ
๊ฒฐ๊ณผ๋Š” NaN ๋˜๋Š” +-Infs๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์–ด๋–ค ์‚ฌ๋žŒ๋„ ์ผœ์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -O ์ž˜๋ชป๋œ ์ถœ๋ ฅ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์˜ต์…˜
IEEE ๋˜๋Š” ISO์˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ
์ˆ˜ํ•™ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๊ทœ์น™/์‚ฌ์–‘. ๊ทธ๋Ÿฌ๋‚˜ ๋” ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์‚ฌ์–‘์˜ ๋ณด์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ.

๋””ํดํŠธ๋Š” -fno-finite-math-only.

-fno ๋ถ€ํ˜ธ ์žˆ๋Š” XNUMX
XNUMX์˜ ๋ถ€ํ˜ธ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ฐ์ˆ ์— ๋Œ€ํ•œ ์ตœ์ ํ™”๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
IEEE ์‚ฐ์ˆ ์€ ๊ณ ์œ ํ•œ +0.0 ๋ฐ -0.0 ๊ฐ’์˜ ๋™์ž‘์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
x+0.0 ๋˜๋Š” 0.0*x์™€ ๊ฐ™์€ ํ‘œํ˜„์‹์˜ ๋‹จ์ˆœํ™”๋ฅผ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
- ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ). ์ด ์˜ต์…˜์€ XNUMX ๊ฒฐ๊ณผ์˜ ๋ถ€ํ˜ธ๊ฐ€
์ค‘์š”ํ•œ.

๋””ํดํŠธ๋Š” -f๋ถ€ํ˜ธ๊ฐ€ ๋ถ™์€ XNUMX.

-fno ํŠธ๋ž˜ํ•‘ ์ˆ˜ํ•™
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ปดํŒŒ์ผ ์ฝ”๋“œ
ํŠธ๋žฉ. ์ด๋Ÿฌํ•œ ํŠธ๋žฉ์—๋Š” XNUMX์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ, ์˜ค๋ฒ„ํ”Œ๋กœ, ์–ธ๋”ํ”Œ๋กœ, ๋ถ€์ •ํ™•ํ•œ ๊ฒฐ๊ณผ ๋ฐ
์ž˜๋ชป๋œ ์ž‘์—…. ์ด ์˜ต์…˜์—๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. -fno-์‹œ๊ทธ๋„๋ง-nans ์œ ํšจํ•˜๋‹ค.
์ด ์˜ต์…˜์„ ์„ค์ •ํ•˜๋ฉด "๋…ผ์Šคํ†ฑ" IEEE ์‚ฐ์ˆ ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ ๋” ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด.

์ด ์˜ต์…˜์€ ์ ˆ๋Œ€๋กœ ์ผœ์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. -O ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์˜ต์…˜
IEEE ๋˜๋Š” ISO์˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์ถœ๋ ฅ
์ˆ˜ํ•™ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๊ทœ์น™/์‚ฌ์–‘.

๋””ํดํŠธ๋Š” -ํ”„๋ž˜ํ•‘-์ˆ˜ํ•™.

- ๋ฐ˜์˜ฌ๋ฆผ ์ˆ˜ํ•™
๊ธฐ๋ณธ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐ˜์˜ฌ๋ฆผ์„ ๊ฐ€์ •ํ•˜๋Š” ๋ณ€ํ™˜ ๋ฐ ์ตœ์ ํ™” ๋น„ํ™œ์„ฑํ™”
ํ–‰๋™. ์ด๊ฒƒ์€ ๋ชจ๋“  ๋ถ€๋™ ์†Œ์ˆ˜์ ์—์„œ ์ •์ˆ˜๋กœ์˜ ๋ณ€ํ™˜์— ๋Œ€ํ•ด XNUMX์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผ๋˜๋ฉฐ,
๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฐ์ˆ  ์ ˆ๋‹จ์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ’์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
FP ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜
๊ธฐ๋ณธ์ด ์•„๋‹Œ ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
์ปดํŒŒ์ผ ์‹œ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ‘œํ˜„์‹(๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ)
๋ฐ ๋ถ€ํ˜ธ ์ข…์† ์กด์žฌ ์‹œ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์‚ฐ์ˆ  ๋ณ€ํ™˜
๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ.

๋””ํดํŠธ๋Š” -fno ๋ฐ˜์˜ฌ๋ฆผ ์ˆ˜ํ•™.

์ด ์˜ต์…˜์€ ์‹คํ—˜์ ์ด๋ฉฐ ํ˜„์žฌ ๋ชจ๋“  GCC ๋น„ํ™œ์„ฑํ™”๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ์˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์ตœ์ ํ™” GCC์˜ ํ–ฅํ›„ ๋ฒ„์ „์€ ๋‹ค์Œ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
C99์˜ "FENV_ACCESS" pragma๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์„ค์ •์„ ๋ฏธ์„ธํ•˜๊ฒŒ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์ค„
์˜ต์…˜์€ "FENV_ACCESS"์˜ ๊ธฐ๋ณธ ์ƒํƒœ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-fsignaling-nans
IEEE ์‹œ๊ทธ๋„๋ง NaN์ด ๋™์•ˆ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŠธ๋žฉ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์‹ญ์‹œ์˜ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ. ์ด ์˜ต์…˜์„ ์„ค์ •ํ•˜๋ฉด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ์ตœ์ ํ™”๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
์‹ ํ˜ธ NaN์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
-ํ”„๋ž˜ํ•‘-์ˆ˜ํ•™.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__SUPPORT_SNAN__"์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -fno-์‹œ๊ทธ๋„๋ง-nans.

์ด ์˜ต์…˜์€ ์‹คํ—˜์ ์ด๋ฉฐ ํ˜„์žฌ ๋ชจ๋“  GCC ๋น„ํ™œ์„ฑํ™”๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹ ํ˜ธ NaN ๋™์ž‘์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ตœ์ ํ™”.

-fsingle-precision-์ƒ์ˆ˜
์•”์‹œ์ ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋Œ€์‹  ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์ˆ˜๋ฅผ ๋‹จ์ •๋ฐ€๋„๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐ์ •๋ฐ€๋„ ์ƒ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

-fcx ์ œํ•œ ๋ฒ”์œ„
ํ™œ์„ฑํ™”๋˜๋ฉด ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฒ”์œ„ ์ถ•์†Œ ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ๋ถ„ํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ™•์ธ์ด ์—†์Šต๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ๊ณฑ์…ˆ ๋˜๋Š” ๋‚˜๋ˆ—์…ˆ์€ "NaN + I*NaN"์ด๋ฉฐ,
๊ทธ ๊ฒฝ์šฐ์˜ ์ƒํ™ฉ. ๊ธฐ๋ณธ๊ฐ’์€ -fno-cx-์ œํ•œ๋œ ๋ฒ”์œ„์— ์˜ํ•ด ํ™œ์„ฑํ™”๋˜์ง€๋งŒ
-๋น ๋ฅธ ์ˆ˜ํ•™.

์ด ์˜ต์…˜์€ ISO C99 "CX_LIMITED_RANGE" pragma์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด ์˜ต์…˜์€ ๋ชจ๋“  ์–ธ์–ด์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

-fcx-fortran-๊ทœ์น™
๋ณต์žกํ•œ ๊ณฑ์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ์€ Fortran ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ฒ”์œ„ ๊ฐ์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ๋ถ„ํ• ์˜ ์ผ๋ถ€์ด์ง€๋งŒ ๋ณต์žกํ•œ ๋ถ„ํ• ์˜ ๊ฒฐ๊ณผ๊ฐ€
๊ณฑ์…ˆ ๋˜๋Š” ๋‚˜๋ˆ—์…ˆ์€ "NaN + I*NaN"์ด๋ฉฐ ์ƒํ™ฉ์„ ๊ตฌํ•˜๋ ค๋Š” ์‹œ๋„์ž…๋‹ˆ๋‹ค.
๊ทธ ๊ฒฝ์šฐ.

๋””ํดํŠธ๋Š” -fno-cx-fortran-๊ทœ์น™.

๋‹ค์Œ ์˜ต์…˜์€ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ตœ์ ํ™”๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋ˆ„๊ตฌ์— ์˜ํ•ด ํ™œ์„ฑํ™” -O ์˜ต์…˜. ์ด ์„น์…˜์—๋Š” ๋‹ค์Œ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ—˜์  ์˜ต์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊นจ์ง„ ์ฝ”๋“œ.

-f๋ถ„๊ธฐ ํ™•๋ฅ 
๋กœ ์ปดํŒŒ์ผ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ ํ›„ -fprofile-ํ˜ธ, ๋‘ ๋ฒˆ์งธ๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ -f๋ถ„๊ธฐ ํ™•๋ฅ , ํšŸ์ˆ˜์— ๋”ฐ๋ผ ์ตœ์ ํ™”๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด
๊ฐ ์ง€์ ์„ ๊ฐ€์ ธ๊ฐ”๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•  ๋•Œ -fprofile-ํ˜ธ ์ข…๋ฃŒ, ์ €์žฅ
ํ˜ธ ์‹คํ–‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ์†Œ์Šค ์ด๋ฆ„.gcda ๊ฐ ์†Œ์Šค ํŒŒ์ผ์— ๋Œ€ํ•ด NS
์ด ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ์ •๋ณด๋Š” ์ƒ์„ฑ๋œ
์ฝ”๋“œ์ด๋ฏ€๋กœ ๋‘˜ ๋‹ค์— ๋Œ€ํ•ด ๋™์ผํ•œ ์†Œ์Šค ์ฝ”๋“œ์™€ ๋™์ผํ•œ ์ตœ์ ํ™” ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘.

์™€ -f๋ถ„๊ธฐ ํ™•๋ฅ , GCC๋Š” REG_BR_PROB ๊ฐ๊ฐ์— ๋Œ€ํ•œ ์ฐธ๊ณ  JUMP_INSN ๊ณผ
CALL_INSN. ์ตœ์ ํ™”๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ, ๊ทธ๋“ค์€ ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
ํ•œ ๊ณณ์—์„œ: ์—์„œ reorg.c, ๋ถ„๊ธฐ๊ฐ€ ๊ฐ€์žฅ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ธกํ•˜๋Š” ๋Œ€์‹ 
๋ฐ›์•„, REG_BR_PROB ๊ฐ’์€ ์–ด๋–ค ๊ฒฝ๋กœ๊ฐ€ ๋” ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ •ํ™•ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ž์ฃผ.

-fprofile-๊ฐ’
์™€ ๊ฒฐํ•ฉํ•˜๋ฉด -fprofile-ํ˜ธ, ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ’์— ๋Œ€ํ•œ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€
ํ”„๋กœ๊ทธ๋žจ์˜ ํ‘œํ˜„์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

์™€ -f๋ถ„๊ธฐ ํ™•๋ฅ , ํ”„๋กœํŒŒ์ผ๋ง ๊ฐ’์—์„œ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ฝ์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™”์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fprofile ์ƒ์„ฑ ๊ณผ -fprofile-์‚ฌ์šฉ.

-fprofile-์žฌ์ฃผ๋ฌธ-๊ธฐ๋Šฅ
ํ”„๋กœํ•„ ๊ณ„์ธก์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ•จ์ˆ˜ ์žฌ์ •๋ ฌ์€ ์ฒ˜์Œ ์‹คํ–‰ ์‹œ ์ˆ˜์ง‘
ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fprofile-์‚ฌ์šฉ.

-fvpt
์™€ ๊ฒฐํ•ฉํ•˜๋ฉด -fprofile-ํ˜ธ, ์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
ํ‘œํ˜„์‹์˜ ๊ฐ’์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

์™€ -f๋ถ„๊ธฐ ํ™•๋ฅ , ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ฝ๊ณ  ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ตœ์ ํ™”์—๋Š” ์ „๋ฌธํ™”๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋ถ„๋ชจ ๊ฐ’์— ๋Œ€ํ•œ ์ง€์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ.

-frename ๋ ˆ์ง€์Šคํ„ฐ
๋‚จ์•„ ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์•ฝ๋œ ์ฝ”๋“œ์—์„œ ์ž˜๋ชป๋œ ์ข…์†์„ฑ์„ ํ”ผํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น ํ›„ ์˜ค๋ฒ„. ์ด ์ตœ์ ํ™”๋Š” ๋งŽ์€ ํ”„๋กœ์„ธ์„œ์— ๊ฐ€์žฅ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ์˜. ๋Œ€์ƒ์ด ์ฑ„ํƒํ•œ ๋””๋ฒ„๊ทธ ์ •๋ณด ํ˜•์‹์— ๋”ฐ๋ผ,
๊ทธ๋Ÿฌ๋‚˜ ๋ณ€์ˆ˜๊ฐ€ ๋” ์ด์ƒ "ํ™ˆ"์— ๋จธ๋ฌผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ฒ„๊น…์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋“ฑ๋กํ•˜๋‹ค".

๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -ํŽ€๋กค ๋ฃจํ”„ ๊ณผ -ํ•„ ๋ฃจํ”„.

-fschedule-ํ“จ์ „
๋ช…๋ น ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ๋Œ€์ƒ ์ข…์† ์ „๋‹ฌ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ช…๋ น์„ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ๋จธ์‹ ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋” ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
๋ช…๋ น ํ๋ฆ„์—์„œ ์„œ๋กœ ์ธ์ ‘ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ -O2, -O3, - ์˜ค์Šค.

-์ถ”์ ์ž
๊ผฌ๋ฆฌ ๋ณต์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ˆ˜ํผ ๋ธ”๋ก ํฌ๊ธฐ๋ฅผ ํ™•๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€ํ™˜์€ ๋‹จ์ˆœํ™”
๋‹ค๋ฅธ ์ตœ์ ํ™”๊ฐ€ ๋” ๋‚˜์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ์ œ์–ด ํ๋ฆ„.

๋‹ค์Œ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fprofile-์‚ฌ์šฉ.

-ํŽ€๋กค ๋ฃจํ”„
๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ปดํŒŒ์ผ ์‹œ๊ฐ„ ๋˜๋Š” ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ๊ฒฐ์ •๋  ์ˆ˜ ์žˆ๋Š” ๋ฃจํ”„๋ฅผ ํ’‰๋‹ˆ๋‹ค.
๋ฃจํ”„ ์ง„์ž…. -ํŽ€๋กค ๋ฃจํ”„ ์˜๋ฏธํ•˜๋‹ค -frerun-cse-ํ›„-๋ฃจํ”„, -fweb ๊ณผ
-frename ๋ ˆ์ง€์Šคํ„ฐ. ๋˜ํ•œ ์™„์ „ํ•œ ๋ฃจํ”„ ํ•„๋ง(์ฆ‰,
๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ ์€ ๋ฃจํ”„). ์ด ์˜ต์…˜์€ ์ฝ”๋“œ๋ฅผ ๋” ํฌ๊ฒŒ ๋งŒ๋“ค๊ณ 
๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fprofile-์‚ฌ์šฉ.

-Funroll-All-๋ฃจํ”„
๋ฃจํ”„๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ๋ถˆํ™•์‹คํ•˜๋”๋ผ๋„ ๋ชจ๋“  ๋ฃจํ”„๋ฅผ ํ’‰๋‹ˆ๋‹ค.
๋“ค์–ด๊ฐ”๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋” ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. -Funroll-All-๋ฃจํ”„ ๋ฅผ ์˜๋ฏธํ•œ๋‹ค
๊ฐ™์€ ์˜ต์…˜ -ํŽ€๋กค ๋ฃจํ”„.

-ํ•„ ๋ฃจํ”„
๋งŽ์ด ๋กค๋ง๋˜์ง€ ์•Š๋Š” ์ถฉ๋ถ„ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๋ฃจํ”„๋ฅผ ๋ฒ—๊น๋‹ˆ๋‹ค(
ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ). ๋˜ํ•œ ์™„์ „ํ•œ ๋ฃจํ”„ ํ•„๋ง(์ฆ‰,
๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ ์€ ๋ฃจํ”„).

๋‹ค์Œ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fprofile-์‚ฌ์šฉ.

-fmove-loop-๋ถˆ๋ณ€
RTL ๋ฃจํ”„ ์˜ตํ‹ฐ๋งˆ์ด์ €์—์„œ ๋ฃจํ”„ ๋ถˆ๋ณ€ ๋ชจ์…˜ ํŒจ์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ค€์—์„œ ํ™œ์„ฑํ™”๋จ
-O1

-ํŽ€์Šค์œ„์น˜ ๋ฃจํ”„
๋ฃจํ”„ ๋ถˆ๋ณ€ ์กฐ๊ฑด์ด ์žˆ๋Š” ๋ถ„๊ธฐ๋ฅผ ๋ฃจํ”„ ์™ธ๋ถ€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐ€์ง€์˜ ๋ฃจํ”„(์กฐ๊ฑด์˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ˆ˜์ •๋จ).

-ffunction-์„น์…˜
-fdata ์„น์…˜
๋Œ€์ƒ์ด
์ž„์˜์˜ ์„น์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ์ด๋ฆ„ ๋˜๋Š” ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ ์ด๋ฆ„
์ถœ๋ ฅ ํŒŒ์ผ์—์„œ ์„น์…˜์˜ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ง์ปค๊ฐ€ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๋ช…๋ น ๊ณต๊ฐ„์—์„œ ์ฐธ์กฐ์˜ ์œ„์น˜. ELF ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ
ํ˜•์‹ ๋ฐ Solaris 2๋ฅผ ์‹คํ–‰ํ•˜๋Š” SPARC ํ”„๋กœ์„ธ์„œ์—๋Š” ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๊ฐ€ ํฌํ•จ๋œ ๋ง์ปค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
AIX๋Š” ๋ฏธ๋ž˜์— ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ์ƒ๋‹นํ•œ ์ด์ ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋•Œ๋ฅผ
์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์ง€์ •ํ•˜๋ฉด ์–ด์…ˆ๋ธ”๋Ÿฌ์™€ ๋ง์ปค๊ฐ€ ๋” ํฐ ๊ฐœ์ฒด์™€ ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
ํŒŒ์ผ ๋ฐ ์†๋„๋„ ๋Š๋ฆฝ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค gprof ์ด๊ฒƒ์„ ์ง€์ •ํ•˜๋ฉด ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ
์˜ต์…˜์ด๋ฉฐ ์ด ์˜ต์…˜๊ณผ
-g.

-fbranch-๋Œ€์ƒ-๋กœ๋“œ-์ตœ์ ํ™”
ํ”„๋กค๋กœ๊ทธ/์—ํ•„๋กœ๊ทธ ์Šค๋ ˆ๋”ฉ ์ „์— ๋ถ„๊ธฐ ๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ ๋กœ๋“œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์‚ฌ์šฉ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋Š” ๋™์•ˆ์—๋งŒ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ˜ธ์ด์ŠคํŒ…
๋ฃจํ”„ ๋ฐ–์œผ๋กœ ๋กœ๋“œํ•˜๊ณ  ๋ธ”๋ก ๊ฐ„ ์Šค์ผ€์ค„๋ง์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํŒจ์Šค.

-fbranch-๋Œ€์ƒ-๋กœ๋“œ-์ตœ์ ํ™”2
ํ”„๋กค๋กœ๊ทธ/์—ํ•„๋กœ๊ทธ ์Šค๋ ˆ๋”ฉ ํ›„ ๋ถ„๊ธฐ ๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ ๋กœ๋“œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

-fbtr-bb-๋…์ 
๋ถ„๊ธฐ ๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ ๋กœ๋“œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ถ„๊ธฐ ๋Œ€์ƒ์„ ์žฌ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ชจ๋“  ๊ธฐ๋ณธ ๋ธ”๋ก ๋‚ด์—์„œ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

-fstack ๋ณดํ˜ธ๊ธฐ
์Šคํƒ ์Šค๋งค์‹ฑ ๊ณต๊ฒฉ๊ณผ ๊ฐ™์€ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ทจ์•ฝํ•œ ๊ฐœ์ฒด๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜์— ๊ฐ€๋“œ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
"alloca"๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์™€ 8๋ฐ”์ดํŠธ๋ณด๋‹ค ํฐ ๋ฒ„ํผ๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋“œ๋Š” ํ•จ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋  ๋•Œ ์ดˆ๊ธฐํ™”๋˜๊ณ 
๊ธฐ๋Šฅ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋“œ ์ฒดํฌ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด
์ถœ๊ตฌ.

-fstack-ํ”„๋กœํ…ํ„ฐ-all
์ฒ˜๋Ÿผ -fstack ๋ณดํ˜ธ๊ธฐ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ๋ณดํ˜ธ๋œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ .

-fstack-๋ณดํ˜ธ์ž-๊ฐ•ํ•œ
์ฒ˜๋Ÿผ -fstack ๋ณดํ˜ธ๊ธฐ ๊ทธ๋Ÿฌ๋‚˜ ๋ณดํ˜ธํ•ด์•ผ ํ•  ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ---
๋กœ์ปฌ ๋ฐฐ์—ด ์ •์˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋กœ์ปฌ ํ”„๋ ˆ์ž„ ์ฃผ์†Œ์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

-fstack-๋ณดํ˜ธ์ž-๋ช…์‹œ์ 
์ฒ˜๋Ÿผ -fstack ๋ณดํ˜ธ๊ธฐ ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ์ด ์žˆ๋Š” ๊ธฐ๋Šฅ๋งŒ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.
"stack_protect" ์†์„ฑ

-fstdarg-opt
๊ฐ€๋ณ€ ์ธ์ˆ˜ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ๊ณผ ๊ด€๋ จํ•˜์—ฌ ํ”„๋กค๋กœ๊ทธ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜.

์ฐธ๊ณ : Ubuntu 14.10 ์ด์ƒ ๋ฒ„์ „์—์„œ๋Š” -fstack-๋ณดํ˜ธ์ž-๊ฐ•ํ•œ ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
C, C++, ObjC, ObjC++์˜ ๊ธฐ๋ณธ๊ฐ’(์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒฝ์šฐ) -fno-์Šคํƒ ๋ณดํ˜ธ๊ธฐ, -nostdlib,๋„ ์•„๋‹ˆ๋‹ค
-ํ”„๋ฆฌ์Šคํƒ ๋”ฉ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค.

-f์„น์…˜ ์•ต์ปค
๊ณต์œ  "์•ต์ปค"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐํ˜ธ ์ฃผ์†Œ ๊ณ„์‚ฐ์˜ ์ˆ˜๋ฅผ ์ค„์ด์‹ญ์‹œ์˜ค.
์ฃผ๋ณ€ ๋ฌผ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐํ˜ธ. ์ด ๋ณ€ํ™˜์€ ์ˆซ์ž๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ถ€ ๋Œ€์ƒ์— ๋Œ€ํ•œ GOT ํ•ญ๋ชฉ ๋ฐ GOT ์•ก์„ธ์Šค ์ˆ˜.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ํ•จ์ˆ˜ "foo"์˜ ๊ตฌํ˜„:

์ •์  int, b, c;
int foo (void) { return + b + c; }

์ผ๋ฐ˜์ ์œผ๋กœ ์„ธ ๋ณ€์ˆ˜ ๋ชจ๋‘์˜ ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปดํŒŒ์ผํ•˜๋ฉด
-f์„น์…˜ ์•ต์ปค, ๋Œ€์‹  ๊ณตํ†ต ์•ต์ปค ํฌ์ธํŠธ์—์„œ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. NS
ํšจ๊ณผ๋Š” ๋‹ค์Œ ์˜์‚ฌ ์ฝ”๋“œ(์œ ํšจํ•œ C๊ฐ€ ์•„๋‹˜)์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

int foo(๋ฌดํšจ)
{
๋ ˆ์ง€์Šคํ„ฐ int *xr = &x;
๋ฐ˜ํ™˜ xr[&a - &x] + xr[&b - &x] + xr[&c - &x];
}

๋ชจ๋“  ๋Œ€์ƒ์ด ์ด ์˜ต์…˜์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

--๋งค๊ฐœ๋ณ€์ˆ˜ name=๊ฐ€์น˜
์–ด๋–ค ๊ณณ์—์„œ๋Š” GCC๊ฐ€ ๋‹ค์–‘ํ•œ ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”์˜ ์–‘์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜ํ–‰. ์˜ˆ๋ฅผ ๋“ค์–ด, GCC๋Š” ํŠน์ • ์ด์ƒ์„ ํฌํ•จํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ง€์‹œ์˜ ์ˆ˜. ๋ช…๋ น์ค„์—์„œ ์ด๋Ÿฌํ•œ ์ƒ์ˆ˜ ์ค‘ ์ผ๋ถ€๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ --๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๊ณผ ๊ฐ’์˜ ์˜๋ฏธ๋Š”
์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋‚ด๋ถ€์ด๋ฉฐ ํ–ฅํ›„ ์˜ˆ๊ณ  ์—†์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ถœ์‹œ.

๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ, ๊ฐ€์น˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ์„ ํƒ name ์œ„์น˜ :

์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ถ„๊ธฐ ๊ฒฐ๊ณผ
์ด ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ๋‚ฎ์€ ํ™•๋ฅ ๋กœ ๋ถ„๊ธฐ๋ฅผ ์ทจํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ
(๋ฐฑ๋ถ„์œจ๋กœ), ์ž˜ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ํฌ๋กœ์Šค ์ ํ”„ ์—์ง€
๊ต์ฐจ ์ ํ”„๋ฅผ ์œ„ํ•ด ๊ณ ๋ คํ•  ์ตœ๋Œ€ ๋“ค์–ด์˜ค๋Š” ๊ฐ€์žฅ์ž๋ฆฌ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜
์— ์˜ํ•ด ์‚ฌ์šฉ๋˜๋Š” -ํฌ๋กœ์Šค์ ํ”„ ๊ฐ ๋ธ”๋ก์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์—์ง€์˜ ์ˆ˜๋Š” O(N^2)์ž…๋‹ˆ๋‹ค.
๊ฐ’์„ ๋Š˜๋ฆฌ๋ฉด ์ตœ์ ํ™”๊ฐ€ ๋” ์ ๊ทน์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์•ฝ๊ฐ„ ๊ฐœ์„ ๋˜๋ฉด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

min-crossjump-inns
๋‘ ๋ธ”๋ก์˜ ๋์—์„œ ์ผ์น˜ํ•ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ๋ช…๋ น์–ด ์ˆ˜
ํฌ๋กœ์Šค ์ ํ”„๊ฐ€ ์ˆ˜ํ–‰๋˜๊ธฐ ์ „์—. ์ด ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ๊ต์ฐจ ์ ํ”„๋˜๋Š” ๋ธ”๋ก์˜ ๋ชจ๋“  ๋ช…๋ น์–ด๊ฐ€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 5์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์„ฑ์žฅ ๋ณต์‚ฌ-bb-insns
๋Œ€์‹  ๊ธฐ๋ณธ ๋ธ”๋ก์„ ๋ณต์‚ฌํ•  ๋•Œ ์ตœ๋Œ€ ์ฝ”๋“œ ํฌ๊ธฐ ํ™•์žฅ ๊ณ„์ˆ˜
์ ํ”„. ํ™•์žฅ์€ ์ ํ”„ ๋ช…๋ น์„ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
8.

์ตœ๋Œ€-๊ณ ํ† -์ค‘๋ณต-insns
๋กœ ์ ํ”„ํ•˜๋Š” ๋ธ”๋ก์— ๋ณต์ œํ•  ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜
๊ณ„์‚ฐ๋œ ๊ณ ํ† . ์—ฌ๋Ÿฌ ํŒจ์Šค์—์„œ O(N^2) ๋™์ž‘์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด GCC ์š”์ธ
์ปดํŒŒ์ผ ํ”„๋กœ์„ธ์Šค ์ดˆ๊ธฐ์— goto๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ตœ๋Œ€ํ•œ ๋Šฆ๊ฒŒ ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•œ. ์ตœ๋Œ€๊ฐ’ ์ดํ•˜์˜ ๊ธฐ๋ณธ ๋ธ”๋ก ๋์—์„œ๋งŒ ๊ณ„์‚ฐ๋œ ์ ํ”„
goto-duplication-insns๋Š” ํŒฉํ„ฐ๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 8์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ง€์—ฐ-์Šฌ๋กฏ-insn-๊ฒ€์ƒ‰
๋ช…๋ น์„ ์ฐพ์„ ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ตœ๋Œ€ ๋ช…๋ น ์ˆ˜
์ง€์—ฐ ์Šฌ๋กฏ์„ ์ฑ„์›๋‹ˆ๋‹ค. ์ด ์ž„์˜์˜ ๋ช…๋ น ์ˆ˜๋ณด๋‹ค ๋งŽ์€ ๊ฒฝ์šฐ
๊ฒ€์ƒ‰ํ•˜๋ฉด ์ง€์—ฐ ์Šฌ๋กฏ์„ ์ฑ„์šฐ๋Š” ๋ฐ ๋”ฐ๋ฅธ ์‹œ๊ฐ„ ์ ˆ์•ฝ์ด ์ตœ์†Œํ™”๋˜๋ฏ€๋กœ ์ค‘์ง€ํ•˜์‹ญ์‹œ์˜ค.
์ˆ˜์ƒ‰. ๊ฐ’์„ ๋†’์ด๋ฉด ๋” ์ ๊ทน์ ์ธ ์ตœ์ ํ™”๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ
์‹คํ–‰ ์‹œ๊ฐ„์˜ ์•ฝ๊ฐ„์˜ ๊ฐœ์„ ์œผ๋กœ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ง€์—ฐ ์Šฌ๋กฏ ๋ผ์ด๋ธŒ ๊ฒ€์ƒ‰
์ง€์—ฐ ์Šฌ๋กฏ์„ ์ฑ„์šฐ๋ ค๊ณ  ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ตœ๋Œ€ ๋ช…๋ น ์ˆ˜
์œ ํšจํ•œ ๋ผ์ด๋ธŒ ๋ ˆ์ง€์Šคํ„ฐ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ๋ธ”๋ก์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ. ์ด๊ฒƒ์„ ์ฆ๊ฐ€
์ž„์˜๋กœ ์„ ํƒํ•œ ๊ฐ’์€ ๋ณด๋‹ค ์ ๊ทน์ ์ธ ์ตœ์ ํ™”๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ,
์ปดํŒŒ์ผ ์‹œ๊ฐ„. ์ง€์—ฐ ์Šฌ๋กฏ ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ gcse ๋ฉ”๋ชจ๋ฆฌ
์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋žต์ ์ธ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์–‘
์ „์—ญ ๊ณตํ†ต ํ•˜์œ„ ํ‘œํ˜„์‹ ์ œ๊ฑฐ ์ตœ์ ํ™”. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋” ๋งŽ์€ ๊ฒฝ์šฐ
์ง€์ •๋œ ํ•„์ˆ˜ ํ•ญ๋ชฉ์ธ ๊ฒฝ์šฐ ์ตœ์ ํ™”๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ gcse ์‚ฝ์ž… ๋น„์œจ
์‚ญ์ œ์— ๋Œ€ํ•œ ํ‘œํ˜„์‹ ์‚ฝ์ž…์˜ ๋น„์œจ์ด ์ด ๊ฐ’๋ณด๋‹ค ํด ๊ฒฝ์šฐ
์ž„์˜์˜ ํ‘œํ˜„์‹์ด ์žˆ๋Š” ๊ฒฝ์šฐ RTL PRE๊ฐ€ ํ‘œํ˜„์‹์„ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜์—ฌ ๊ทธ๋Œ€๋กœ ๋‘ก๋‹ˆ๋‹ค.
๋ช…๋ น ์ŠคํŠธ๋ฆผ์—์„œ ๋ถ€๋ถ„์ ์œผ๋กœ ์ค‘๋ณต๋œ ๊ณ„์‚ฐ. ๊ธฐ๋ณธ๊ฐ’์€
20.

์ตœ๋Œ€ ๋ณด๋ฅ˜ ๋ชฉ๋ก ๊ธธ์ด
ํ”Œ๋Ÿฌ์‹œํ•˜๊ธฐ ์ „์— ์Šค์ผ€์ค„๋ง์ด ํ—ˆ์šฉํ•˜๋Š” ์ตœ๋Œ€ ๋ณด๋ฅ˜ ์ข…์†์„ฑ ์ˆ˜
ํ˜„์žฌ ์ƒํƒœ ๋ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๊ธฐ ๋˜๋Š” ํ˜ธ์ถœ์ด ๊ฑฐ์˜ ์—†๋Š” ํฐ ํ•จ์ˆ˜๋Š”
๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๋Š” ์ง€๋‚˜์น˜๊ฒŒ ํฐ ๋ชฉ๋ก์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๋ชจ๋“ˆ๋กœ ์—ญ์ถ”์  ์‹œ๋„
๋ชจ๋“ˆ๋กœ์ผ ๋•Œ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ตœ๋Œ€ ์—ญ์ถ”์  ์‹œ๋„ ํšŸ์ˆ˜
๋ฃจํ”„ ์Šค์ผ€์ค„๋ง. ๊ฐ’์ด ํด์ˆ˜๋ก ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-๋‹จ์ผ
์—ฌ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ GCC์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŠธ๋ฆฌ ์ธ๋ผ์ด๋„ˆ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ์ˆซ์ž๋Š”
์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜(GCC์˜ ๋‚ด๋ถ€ ํ‘œํ˜„์œผ๋กœ ๊ณ„์‚ฐ)
ํŠธ๋ฆฌ ์ธ๋ผ์ด๋„ˆ๊ฐ€ ์ธ๋ผ์ด๋‹์„ ์œ„ํ•ด ๊ณ ๋ คํ•˜๋Š” ๋‹จ์ผ ํ•จ์ˆ˜. ์ด๊ฒƒ์€ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค
์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค ์„ ์–ธ์—์„œ ๊ตฌํ˜„๋œ ๋ฉ”์„œ๋“œ(C++).
๊ธฐ๋ณธ๊ฐ’์€ 400์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-์ž๋™
๋•Œ ์‚ฌ์šฉ -finline-ํ•จ์ˆ˜ (ํฌํ•จ ๋œ -O3), ๋งŽ์€ ๊ธฐ๋Šฅ
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ธ๋ผ์ธ์œผ๋กœ ๊ณ ๋ ค๋˜์ง€ ์•Š๋Š”์ง€ ์กฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. NS
์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ, ๊ธฐ๋Šฅ์— ๋น„ํ•ด ๋‹ค๋ฅธ(๋” ์ œํ•œ์ ์ธ) ์ œํ•œ
์„ ์–ธ๋œ ์ธ๋ผ์ธ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 40์ž…๋‹ˆ๋‹ค.

์ธ๋ผ์ธ ์ตœ์†Œ ์†๋„ ํ–ฅ์ƒ
ํ˜ธ์ถœ์ž + ํ˜ธ์ถœ ์ˆ˜์‹ ์ž ๋Ÿฐํƒ€์ž„์˜ ์˜ˆ์ƒ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ
์ž„๊ณ„๊ฐ’(ํ˜„์žฌ)์— ๋Œ€ํ•œ ์ œํ•œ์— ๊ด€๊ณ„์—†์ด ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
--๋งค๊ฐœ๋ณ€์ˆ˜ ์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-๋‹จ์ผ ๊ณผ --๋งค๊ฐœ๋ณ€์ˆ˜ ์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-์ž๋™.

๋Œ€๊ธฐ๋Šฅ ์—ฌ๊ด€
์ •๋ง ํฐ ๊ธฐ๋Šฅ์„ ์ง€์ •ํ•˜๋Š” ์ œํ•œ. ์ด ์ œํ•œ๋ณด๋‹ค ํฐ ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ
์ธ๋ผ์ธ ํ›„ ์ธ๋ผ์ธ์€ ๋‹ค์Œ์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. --๋งค๊ฐœ๋ณ€์ˆ˜ ํฐ ๊ธฐ๋Šฅ ์„ฑ์žฅ. ์ด
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ฃผ๋กœ
๋ฐฑ์—”๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์„ ํ˜• ์•Œ๊ณ ๋ฆฌ์ฆ˜. ๊ธฐ๋ณธ๊ฐ’์€ 2700์ž…๋‹ˆ๋‹ค.

ํฐ ๊ธฐ๋Šฅ ์„ฑ์žฅ
์ธ๋ผ์ธ์œผ๋กœ ์ธํ•œ ๋Œ€ํ˜• ํ•จ์ˆ˜์˜ ์ตœ๋Œ€ ์ฆ๊ฐ€๋ฅผ ๋ฐฑ๋ถ„์œจ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 100์œผ๋กœ ํฐ ๊ธฐ๋Šฅ ์ฆ๊ฐ€๋ฅผ ์›๋ž˜์˜ 2.0๋ฐฐ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
ํฌ๊ธฐ.

๋Œ€ํ˜• ์—ฌ๊ด€
ํฐ ๋ฒˆ์—ญ ๋‹จ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ์ œํ•œ์ž…๋‹ˆ๋‹ค. ๋‹จ์œ„ ์ธ๋ผ์ธ์œผ๋กœ ์ธํ•œ ์„ฑ์žฅ
์ด ์ œํ•œ๋ณด๋‹ค ํฐ ๊ฒƒ์€ ๋‹ค์Œ์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. --๋งค๊ฐœ๋ณ€์ˆ˜ ์ธ๋ผ์ธ ๋‹จ์œ„ ์„ฑ์žฅ. ์†Œํ˜• ์œ ๋‹›์šฉ
์ด๊ฒƒ์€ ๋„ˆ๋ฌด ๋นก๋นกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•จ์ˆ˜ A๋กœ ๊ตฌ์„ฑ๋œ ๋‹จ์œ„๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.
๊ทธ๊ฒƒ์€ ์ธ๋ผ์ธ์ด๊ณ  B๋Š” A๋ฅผ ์„ธ ๋ฒˆ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. B๊ฐ€ A์— ๋น„ํ•ด ์ž‘๋‹ค๋ฉด,
๋‹จ์œ„์˜ ์„ฑ์žฅ์€ 300\%์ด์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ธ๋ผ์ธ์€ ๋งค์šฐ ์ •์ƒ์ ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ํฐ ๊ฒฝ์šฐ
์ธ๋ผ์ธ ๊ฐ€๋Šฅํ•œ ์ž‘์€ ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋‹จ์œ„, ๊ทธ๋Ÿฌ๋‚˜ ์ „์ฒด ๋‹จ์œ„ ์„ฑ์žฅ
์ฝ”๋“œ ํฌ๊ธฐ์˜ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์ธ ํญ๋ฐœ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ œํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋” ์ž‘์€
๋‹จ์œ„, ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. --๋งค๊ฐœ๋ณ€์ˆ˜ ๋Œ€ํ˜• ์—ฌ๊ด€ ์‹ ์ฒญํ•˜๊ธฐ ์ „์— --๋งค๊ฐœ๋ณ€์ˆ˜
์ธ๋ผ์ธ ๋‹จ์œ„ ์„ฑ์žฅ. ๊ธฐ๋ณธ๊ฐ’์€ 10000์ž…๋‹ˆ๋‹ค.

์ธ๋ผ์ธ ๋‹จ์œ„ ์„ฑ์žฅ
์ธ๋ผ์ธ์œผ๋กœ ์ธํ•œ ์ปดํŒŒ์ผ ๋‹จ์œ„์˜ ์ตœ๋Œ€ ์ „์ฒด ์ฆ๊ฐ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ ๋‹จ์œ„ ์ฆ๊ฐ€๋ฅผ ์›๋ž˜ ํฌ๊ธฐ์˜ 20๋ฐฐ๋กœ ์ œํ•œํ•˜๋Š” 1.2์ž…๋‹ˆ๋‹ค. ์ถ”์šด
๊ธฐ๋Šฅ(์†์„ฑ ๋˜๋Š” ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ์ฝœ๋“œ๋กœ ํ‘œ์‹œ๋จ)์€
๋‹จ์œ„ ํฌ๊ธฐ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

ipcp ๋‹จ์œ„ ์„ฑ์žฅ
ํ”„๋กœ์‹œ์ € ๊ฐ„์œผ๋กœ ์ธํ•œ ์ปดํŒŒ์ผ ๋‹จ์œ„์˜ ์ตœ๋Œ€ ์ „์ฒด ์ฆ๊ฐ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ง€์†์ ์ธ ์ „ํŒŒ. ๊ธฐ๋ณธ๊ฐ’์€ 10์ด๋ฉฐ ๋‹จ์œ„ ์„ฑ์žฅ์„ 1.1๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
์›๋ž˜ ํฌ๊ธฐ์˜ ๋ฐฐ.

๋Œ€ํ˜• ์Šคํƒ ํ”„๋ ˆ์ž„
ํฐ ์Šคํƒ ํ”„๋ ˆ์ž„์„ ์ง€์ •ํ•˜๋Š” ์ œํ•œ์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ธ๋ผ์ธํ•˜๋Š” ๋™์•ˆ
์ด ํ•œ๊ณ„๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์ดˆ๊ณผํ•˜์ง€ ์•Š๋„๋ก. ๊ธฐ๋ณธ๊ฐ’์€ 256๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค.

๋Œ€ํ˜• ์Šคํƒ ํ”„๋ ˆ์ž„ ์„ฑ์žฅ
์ธ๋ผ์ธ์œผ๋กœ ์ธํ•œ ๋Œ€ํ˜• ์Šคํƒ ํ”„๋ ˆ์ž„์˜ ์ตœ๋Œ€ ์ฆ๊ฐ€๋ฅผ ๋ฐฑ๋ถ„์œจ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 1000์œผ๋กœ ํฐ ์Šคํƒ ํ”„๋ ˆ์ž„ ์ฆ๊ฐ€๋ฅผ 11๋ฐฐ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
์›๋ž˜ ํฌ๊ธฐ.

์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-์žฌ๊ท€
์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-์žฌ๊ท€-์ž๋™
์ž์ฒด ๋ณต์‚ฌ๋ณธ์˜ ์ตœ๋Œ€ ๋ช…๋ น ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์žฌ๊ท€ ์ธ๋ผ์ธ ํ•จ์ˆ˜๋Š” ์žฌ๊ท€ ์ธ๋ผ์ธ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--๋งค๊ฐœ๋ณ€์ˆ˜ ์ตœ๋Œ€ ์ธ๋ผ์ธ-insns-์žฌ๊ท€ ์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋˜์ง€ ์•Š์€ ํ•จ์ˆ˜, ์žฌ๊ท€ ์ธ๋ผ์ธ์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
-finline-ํ•จ์ˆ˜ (ํฌํ•จ ๋œ -O3) ์‚ฌ์šฉ ๊ฐ€๋Šฅ; --๋งค๊ฐœ๋ณ€์ˆ˜ ์ตœ๋Œ€-์ธ๋ผ์ธ-insns-
์žฌ๊ท€ ์ž๋™ ๋Œ€์‹  ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 450์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ธ๋ผ์ธ ์žฌ๊ท€ ๊นŠ์ด
์ตœ๋Œ€ ์ธ๋ผ์ธ ์žฌ๊ท€ ๊นŠ์ด ์ž๋™
์žฌ๊ท€ ์ธ๋ผ์ธ์— ์‚ฌ์šฉ๋˜๋Š” ์ตœ๋Œ€ ์žฌ๊ท€ ๊นŠ์ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--๋งค๊ฐœ๋ณ€์ˆ˜ ์ตœ๋Œ€ ์ธ๋ผ์ธ ์žฌ๊ท€ ๊นŠ์ด ์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์ธ๋ผ์ธ์œผ๋กœ ์„ ์–ธ๋˜์ง€ ์•Š์€ ํ•จ์ˆ˜, ์žฌ๊ท€ ์ธ๋ผ์ธ์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
-finline-ํ•จ์ˆ˜ (ํฌํ•จ ๋œ -O3) ์‚ฌ์šฉ ๊ฐ€๋Šฅ; --๋งค๊ฐœ๋ณ€์ˆ˜ ์ตœ๋Œ€ ์ธ๋ผ์ธ ์žฌ๊ท€
๊นŠ์ด ์ž๋™ ๋Œ€์‹  ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 8์ž…๋‹ˆ๋‹ค.

์ตœ์†Œ ์ธ๋ผ์ธ ์žฌ๊ท€ ํ™•๋ฅ 
์žฌ๊ท€ ์ธ๋ผ์ธ์€ ๊นŠ์€ ์žฌ๊ท€๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋งŒ ์ˆ˜์ต์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํ‰๊ท ์„ ๋‚ด๊ณ  ์žฌ๊ท€ ๊นŠ์ด๊ฐ€ ์ ์€ ํ•จ์ˆ˜์— ์†์ƒ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์˜ตํ‹ฐ๋งˆ์ด์ €์— ๋Œ€ํ•œ ํ”„๋กค๋กœ๊ทธ ํฌ๊ธฐ ๋˜๋Š” ํ•จ์ˆ˜ ๋ณธ๋ฌธ์˜ ๋ณต์žก์„ฑ.

ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ(์ฐธ์กฐ -fprofile ์ƒ์„ฑ) ์‹ค์ œ ์žฌ๊ท€
์ฃผ์–ด์ง„ ํ˜ธ์ถœ์„ ํ†ตํ•ด ํ•จ์ˆ˜๊ฐ€ ์žฌ๊ท€ํ•  ํ™•๋ฅ ์—์„œ ๊นŠ์ด๋ฅผ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ‘œํ˜„. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ธ๋ผ์ธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜ธ์ถœ ํ‘œํ˜„์‹์œผ๋กœ๋งŒ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
ํ™•๋ฅ ์ด ์ฃผ์–ด์ง„ ์ž„๊ณ„๊ฐ’(ํผ์„ผํŠธ)์„ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

์–ผ๋ฆฌ ์ธ๋ผ์ด๋‹ ์ธ์Šค
์ดˆ๊ธฐ ์ธ๋ผ์ด๋„ˆ๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์„ฑ์žฅ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค์ƒ ์–‘์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
์ถ”์ƒํ™” ํŒจ๋„ํ‹ฐ๊ฐ€ ํฐ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ธ๋ผ์ธ ์ฒ˜๋ฆฌ. ๊ธฐ๋ณธ๊ฐ’์€ 14์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ดˆ๊ธฐ ์ธ๋ผ์ด๋„ˆ ๋ฐ˜๋ณต
์ดˆ๊ธฐ ์ธ๋ผ์ด๋„ˆ์˜ ๋ฐ˜๋ณต ์ œํ•œ. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ
์ค‘์ฒฉ ๊ฐ„์ ‘ ํ˜ธ์ถœ์€ ์ดˆ๊ธฐ ์ธ๋ผ์ด๋„ˆ๊ฐ€ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๊นŠ์€ ์‚ฌ์Šฌ์€ ์—ฌ์ „ํžˆ
๋Šฆ์€ ์ธ๋ผ์ด๋‹์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

comdat ๊ณต์œ  ํ™•๋ฅ 
comdat ๊ฐ€์‹œ์„ฑ์ด ์žˆ๋Š” C++ ์ธ๋ผ์ธ ํ•จ์ˆ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™•๋ฅ (ํผ์„ผํŠธ)
์—ฌ๋Ÿฌ ์ปดํŒŒ์ผ ๋‹จ์œ„์—์„œ ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 20์ž…๋‹ˆ๋‹ค.

ํ”„๋กœํ•„ ๊ธฐ๋Šฅ ๋‚ด๋ถ€ ID
ํ”„๋กœํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•จ์ˆ˜ ๋‚ด๋ถ€ ID๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋งค๊ฐœ๋ณ€์ˆ˜
์กฐํšŒ. ๊ฐ’์ด 0์ด๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” id๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋Ÿฌ ์ด๋ฆ„ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ์ธํ•ด ์ด์ „ ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ๊ฐ€ ์†Œ์Šค์— ๋” ์ž˜ ๊ฒฌ๋”ฅ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ์žฌ์ •๋ ฌ ๋“ฑ๊ณผ โ€‹โ€‹๊ฐ™์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ. ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

์ตœ์†Œ ๋ฒกํ„ฐ ๋ฃจํ”„ ๊ฒฝ๊ณ„
๋ฃจํ”„๊ฐ€ ๋ฒกํ„ฐํ™”๋˜์ง€ ์•Š๋Š” ์ตœ์†Œ ๋ฐ˜๋ณต ํšŸ์ˆ˜
-ftree ๋ฒกํ„ฐํ™” ์‚ฌ์šฉ. ๋ฒกํ„ฐํ™” ํ›„ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฒกํ„ฐํ™”๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์—์„œ ์ง€์ •ํ•œ ๊ฐ’๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

gcse ๋น„์šฉ ๊ฑฐ๋ฆฌ ๋น„์œจ
์‹์„ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์˜ ๋ฐฐ์œจ ์ธ์ˆ˜
GCSE ์ตœ์ ํ™”. ์ด๊ฒƒ์€ ํ˜„์žฌ ์ฝ”๋“œ ํ˜ธ์ด์ŠคํŒ… ํŒจ์Šค์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
๋น„์œจ์ด ํด์ˆ˜๋ก ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ํ˜ธ์ด์ŠคํŒ…์ด ๋” ๊ณต๊ฒฉ์ ์ž…๋‹ˆ๋‹ค.
ํ‘œํ˜„์‹, ์ฆ‰ ๋น„์šฉ์ด ๋‹ค์Œ๋ณด๋‹ค ์ž‘์€ ํ‘œํ˜„์‹ gcse-๋ฌด์ œํ•œ-
๋น„์šฉ. 0์„ ์ง€์ •ํ•˜๋ฉด ๋‹จ์ˆœ ํ‘œํ˜„์‹์˜ ํ˜ธ์ด์ŠคํŒ…์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
10.

gcse-๋ฌด์ œํ•œ ๋น„์šฉ
๋น„์šฉ์€ ๋Œ€๋žต ํ•˜๋‚˜์˜ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๊ณ„ ๋ช…๋ น ๋น„์šฉ์œผ๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค.
GCSE ์ตœ์ ํ™”๋Š” ํ‘œํ˜„์‹์ด ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ์ œํ•œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ํ˜„์žฌ ์ฝ”๋“œ ํ˜ธ์ด์ŠคํŒ… ํŒจ์Šค์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋น„์šฉ์ด ์ ๊ฒŒ ๋“ค์ˆ˜๋ก,
๋” ๊ณต๊ฒฉ์ ์ธ ์ฝ”๋“œ ํ˜ธ์ด์ŠคํŒ…์ž…๋‹ˆ๋‹ค. 0์„ ์ง€์ •ํ•˜๋ฉด ๋ชจ๋“  ํ‘œํ˜„์‹์ด
๋ฌด์ œํ•œ ๊ฑฐ๋ฆฌ๋ฅผ ์—ฌํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’์€ 3์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ํ˜ธ์ด์ŠคํŠธ ๊นŠ์ด
ํ˜ธ์ด์ŠคํŠธํ•  ํ‘œํ˜„์‹์— ๋Œ€ํ•œ ๋„๋ฏธ๋„ค์ดํ„ฐ ํŠธ๋ฆฌ์˜ ๊ฒ€์ƒ‰ ๊นŠ์ด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉ
ํ˜ธ์ด์ŠคํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ 0์ฐจ ๋™์ž‘์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด. XNUMX์˜ ๊ฐ’์€ ์ œํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฑฐ๋Œ€ํ•œ ๊ธฐ๋Šฅ์˜ ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
30์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๊ผฌ๋ฆฌ ๋ณ‘ํ•ฉ ๋น„๊ต
bb๋ฅผ ๋น„๊ตํ•  ์œ ์‚ฌํ•œ bb์˜ ์ตœ๋Œ€๋Ÿ‰์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
ํŠธ๋ฆฌ ํ…Œ์ผ ๋ณ‘ํ•ฉ์˜ 10์ฐจ ๋™์ž‘. ๊ธฐ๋ณธ๊ฐ’์€ XNUMX์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๊ผฌ๋ฆฌ ๋ณ‘ํ•ฉ ๋ฐ˜๋ณต
ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ „๋‹ฌ์˜ ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
ํŠธ๋ฆฌ ํ…Œ์ผ ๋ณ‘ํ•ฉ์—์„œ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์–ธ๋กค๋ง๋œ ๊ธฐ๋Šฅ
๋ฃจํ”„๋ฅผ ํ’€์–ด์•ผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฃจํ”„์˜ ๊ฒฝ์šฐ
๋กค๋ง๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฃจํ”„ ์ฝ”๋“œ๊ฐ€ ๋ช‡ ๋ฒˆ
ํ’€๋ ธ๋‹ค.

์ตœ๋Œ€-ํ‰๊ท -unrolled-insns
์‹คํ–‰ ํ™•๋ฅ ์— ๋”ฐ๋ผ ํŽธํ–ฅ๋œ ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜
๋ฃจํ”„๋ฅผ ํ’€์–ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํ”„๊ฐ€ ํŽผ์ณ์ง€๋ฉด ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋„
๋ฃจํ”„ ์ฝ”๋“œ๊ฐ€ ํŽผ์ณ์ง€๋Š” ํšŸ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์–ธ๋กค ์‹œ๊ฐ„
๋‹จ์ผ ๋ฃจํ”„์˜ ์ตœ๋Œ€ ์–ธ๋กค๋ง ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๊ป์งˆ์„ ๋ฒ—๊ธด ๊ธฐ๋Šฅ
๋ฃจํ”„๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฃจํ”„์˜ ๊ฒฝ์šฐ
์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฃจํ”„ ์ฝ”๋“œ๊ฐ€ ๋ฒ—๊ฒจ์ง€๋Š” ํšŸ์ˆ˜๋„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ํ•„ ์‹œ๊ฐ„
๋‹จ์ผ ๋ฃจํ”„์˜ ์ตœ๋Œ€ ํ•„๋ง ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๊ป์งˆ ๋ถ„๊ธฐ
๋ฒ—๊ฒจ์ง„ ์‹œํ€€์Šค๋ฅผ ํ†ตํ•œ ํ•ซ ๊ฒฝ๋กœ์˜ ์ตœ๋Œ€ ๋ถ„๊ธฐ ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€-์™„์ „-ํ•„๋ง-insns
์™„์ „ํžˆ ๋ฒ—๊ฒจ์ง„ ๋ฃจํ”„์˜ ์ตœ๋Œ€ ์ธ์Šค ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์™„์ „ ๋ฐ•๋ฆฌ ์‹œ๊ฐ„
์™„์ „ํ•œ ํ•„๋ง์— ์ ํ•ฉํ•œ ๋ฃจํ”„์˜ ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์™„์ „ ๊ป์งˆ ๋ฃจํ”„ ์ค‘์ฒฉ ๊นŠ์ด
์™„์ „ํ•œ ํ•„๋ง์— ์ ํ•ฉํ•œ ๋ฃจํ”„ ๋„ค์ŠคํŠธ์˜ ์ตœ๋Œ€ ๊นŠ์ด.

์ตœ๋Œ€-unswitch-insns
์ „ํ™˜๋˜์ง€ ์•Š์€ ๋ฃจํ”„์˜ ์ตœ๋Œ€ insns ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์Šค์œ„์น˜ ํ•ด์ œ ์ˆ˜์ค€
๋‹จ์ผ ๋ฃจํ”„์—์„œ ์ „ํ™˜๋˜์ง€ ์•Š์€ ์ตœ๋Œ€ ๋ถ„๊ธฐ ์ˆ˜์ž…๋‹ˆ๋‹ค.

๋น„์‹ธ๋‹ค
๋ฃจํ”„ ๋ถˆ๋ณ€ ๋ชจ์…˜์—์„œ ๊ฐ’๋น„์‹ผ ํ‘œํ˜„์‹์˜ ์ตœ์†Œ ๋น„์šฉ.

iv-๋ชจ๋“  ํ›„๋ณด๋ฅผ ๊ณ ๋ ค
๋ชจ๋“  ํ›„๋ณด๊ฐ€ ๊ทธ ์ดํ•˜์ธ ์œ ๋„ ๋ณ€์ˆ˜์˜ ํ›„๋ณด ์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
์œ ๋„ ๋ณ€์ˆ˜ ์ตœ์ ํ™”์˜ ๊ฐ ์šฉ๋„์— ๋Œ€ํ•ด ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ฑฐ๊ธฐ์—
์ด๋ณด๋‹ค ๋งŽ์€ ํ›„๋ณด์ž, ๊ฐ€์žฅ ๊ด€๋ จ์„ฑ์ด ๋†’์€ ํ›„๋ณด์ž๋งŒ ํ”ผํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
XNUMX์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„.

iv-์ตœ๋Œ€ ๊ณ ๋ ค ์šฉ๋„
์œ ๋„ ๋ณ€์ˆ˜ ์ตœ์ ํ™”๋Š” ๋” ๋งŽ์€ ์œ ๋„๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฃจํ”„๋ฅผ ํฌ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜ ์‚ฌ์šฉ.

iv-ํ•ญ์ƒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง‘ํ•ฉ์˜ ํ›„๋ณด ์ˆ˜๊ฐ€ ์ด ๊ฐ’๋ณด๋‹ค ์ž‘์œผ๋ฉด ํ•ญ์ƒ
์ƒˆ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์„ธํŠธ์—์„œ ๋ถˆํ•„์š”ํ•œ ivs๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

scev-max-expr-ํฌ๊ธฐ
์Šค์นผ๋ผ ์ง„ํ™” ๋ถ„์„๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ‘œํ˜„์‹์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ํฐ
ํ‘œํ˜„์€ ๋ถ„์„๊ธฐ๋ฅผ ๋Š๋ฆฌ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

scev-max-expr-๋ณต์žก๋„
์Šค์นผ๋ผ ์ง„ํ™” ๋ถ„์„๊ธฐ์˜ ํ‘œํ˜„์‹์˜ ๋ณต์žก์„ฑ์— ๊ตฌ์†๋ฉ๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ํ‘œํ˜„์‹์€ ๋ถ„์„๊ธฐ๋ฅผ ๋Š๋ฆฌ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ์ตœ๋Œ€ ๋ณ€์ˆ˜
Omega ์ œ์•ฝ ์‹œ์Šคํ…œ์˜ ์ตœ๋Œ€ ๋ณ€์ˆ˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
128์ž…๋‹ˆ๋‹ค.

Omega-max-geqs
Omega ์ œ์•ฝ ์‹œ์Šคํ…œ์˜ ์ตœ๋Œ€ ๋ถ€๋“ฑ์‹ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
๊ฐ’์€ 256์ž…๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€-๋งฅ์Šค-eqs
Omega ์ œ์•ฝ ์‹œ์Šคํ…œ์˜ ์ตœ๋Œ€ ๋“ฑ์‹ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
128์ž…๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€-๋งฅ์Šค-์™€์ผ๋“œ ์นด๋“œ
Omega ์†”๋ฒ„๊ฐ€ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์™€์ผ๋“œ์นด๋“œ ๋ณ€์ˆ˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 18์ž…๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ํ•ด์‹œ ํ…Œ์ด๋ธ” ํฌ๊ธฐ
Omega ์†”๋ฒ„์˜ ํ•ด์‹œ ํ…Œ์ด๋ธ” ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 550์ž…๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ๋งฅ์Šค ํ‚ค
Omega ์†”๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ตœ๋Œ€ ํ‚ค ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 500์ž…๋‹ˆ๋‹ค.

์˜ค๋ฉ”๊ฐ€ ์ œ๊ฑฐ ์ค‘๋ณต ์ œ์•ฝ
1๋กœ ์„ค์ •ํ•˜๋ฉด ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ค‘๋ณต ์ œ์•ฝ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

vect-max-version-for-alignment-checks
๋ฃจํ”„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ๊ฒ€์‚ฌ์˜ ์ตœ๋Œ€ ์ˆ˜
๋ฒกํ„ฐ๋ผ์ด์ €์—์„œ ์ •๋ ฌ์„ ์œ„ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ.

vect-max-version-๋ณ„์นญ-๊ฒ€์‚ฌ
๋ฃจํ”„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ๊ฒ€์‚ฌ์˜ ์ตœ๋Œ€ ์ˆ˜
๋ฒกํ„ฐ๋ผ์ด์ €์—์„œ ๋ณ„์นญ์— ๋Œ€ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ.

vect-max-ํ•„๋ง-ํฌ-์ •๋ ฌ
๋ฒกํ„ฐ๋ผ์ด์ €์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ •๋ ฌ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ตœ๋Œ€ ๋ฃจํ”„ ํ•„ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ’
-1์€ '์ œํ•œ ์—†์Œ'์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ถ”์ ํ•  ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜
๋ถ„์„์„ ์œ„ํ•œ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฃจํ”„์˜ ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜
๋ฃจํ”„์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ํ‰๊ฐ€ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋œจ๊ฑฐ์šด bb-count-ws-permille
๊ธฐ๋ณธ ๋ธ”๋ก ํ”„๋กœํ•„ ์ˆ˜๋Š” ์ฃผ์–ด์ง„ ๊ฒฐ๊ณผ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒฝ์šฐ ํ•ซ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
์ „์ฒด ํ”„๋กœํŒŒ์ผ ์‹คํ–‰์˜ permillage(์ฆ‰, 0...1000)์ž…๋‹ˆ๋‹ค.

ํ•ซ bb ์ฃผํŒŒ์ˆ˜ ๋ถ„์ˆ˜
๊ธฐ๋ณธ ๋ธ”๋ก ์‹คํ–‰์˜ ์ง„์ž… ๋ธ”๋ก ๋นˆ๋„์˜ ๋น„์œจ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ ๋ธ”๋ก์ด ์ฃผ์–ด์ง„ ๊ธฐ๋Šฅ์€ ํ•ซ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์˜ˆ์ธก ๋ฐ˜๋ณต
์ •์ ์œผ๋กœ ์˜ˆ์ธกํ•˜๋Š” ์ตœ๋Œ€ ๋ฃจํ”„ ๋ฐ˜๋ณต ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค
ํ•จ์ˆ˜์— ๊ฒฝ๊ณ„๊ฐ€ ์•Œ๋ ค์ง„ ๋‹จ์ผ ๋ฃจํ”„์™€ ๋‹ค๋ฅธ ๋ฃจํ”„๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ
์•Œ ์ˆ˜ ์—†๋Š” ๊ฒฝ๊ณ„๋กœ. ์•Œ๋ ค์ง„ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์˜ˆ์ธก๋˜์ง€๋งŒ,
์•Œ ์ˆ˜ ์—†๋Š” ๋ฐ˜๋ณต ํšŸ์ˆ˜์˜ ํ‰๊ท ์€ ๋Œ€๋žต 10์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฃจํ”„๊ฐ€
๊ฒฝ๊ณ„๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ๊ฒƒ์— ๋น„ํ•ด ์ธ์œ„์ ์œผ๋กœ ์ฐจ๊ฐ‘๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค.

๋‚ด์žฅ ๊ธฐ๋Œ€ ํ™•๋ฅ 
ํ‘œํ˜„์‹์ด ์ง€์ •๋œ ๊ฐ’์„ ๊ฐ€์งˆ ํ™•๋ฅ ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฐฑ๋ถ„์œจ(์ฆ‰, 0 ... 100)์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ™•๋ฅ 
90์˜ ๊ฒฝํ—˜์ ์œผ๋กœ ์–ป์–ด์ง„๋‹ค.

์ •๋ ฌ ์ž„๊ณ„๊ฐ’
๊ธฐ๋ณธ ๋ธ”๋ก์˜ ์ตœ๋Œ€ ์‹คํ–‰ ๋นˆ๋„์˜ ์ผ๋ถ€๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ ๋ธ”๋ก์„ ์ •๋ ฌํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ •๋ ฌ ๋ฃจํ”„ ๋ฐ˜๋ณต
์„ ํƒํ•œ ๋ฐ˜๋ณต ํšŸ์ˆ˜ ์ด์ƒ์„ ๋ฐ˜๋ณตํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๋ฃจํ”„๊ฐ€ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

์ถ”์ ์ž ๋™์  ๋ฒ”์œ„
์ถ”์ ์ž ๋™์  ์ ์šฉ ๋ฒ”์œ„ ํ”ผ๋“œ๋ฐฑ
์ด ๊ฐ’์€ ์ฃผ์–ด์ง„ ๋น„์œจ์˜ ์Šˆํผ๋ธ”๋ก ํ˜•์„ฑ์„ ์ œํ•œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์‹คํ–‰๋œ ๋ช…๋ น์–ด๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ํฌ๊ธฐ ํ™•์žฅ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

ใ€€ ์ถ”์ ์ž ๋™์  ์ ์šฉ ๋ฒ”์œ„ ํ”ผ๋“œ๋ฐฑ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ”„๋กœํŒŒ์ผ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ์„ ๋•Œ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ํ”„๋กœํ•„(์ •์ ์œผ๋กœ ์ถ”์ •๋œ ํ”„๋กœํ•„๊ณผ ๋ฐ˜๋Œ€)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ž„๊ณ„ ๊ฐ’์ด ๋” ํฐ ๊ฐ’์„ ํ—ˆ์šฉํ•˜๋Š” ํ›จ์”ฌ ๋œ ๊ท ํ˜•.

์ถ”์ ์ž ์ตœ๋Œ€ ์ฝ”๋“œ ์„ฑ์žฅ
์ฝ”๋“œ ์„ฑ์žฅ์ด ์ฃผ์–ด์ง„ ๋ฐฑ๋ถ„์œจ์— ๋„๋‹ฌํ•˜๋ฉด ๊ผฌ๋ฆฌ ์ค‘๋ณต์„ ์ค‘์ง€ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€
๋Œ€๋ถ€๋ถ„์˜ ์ค‘๋ณต์ด ๋‚˜์ค‘์— ํฌ๋กœ์Šค์—์„œ ์ œ๊ฑฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์†Œ ์ธ์œ„์ ์ธ ์ œํ•œ
์ ํ•‘ํ•˜๋ฏ€๋กœ ์›ํ•˜๋Š” ์ฝ”๋“œ ์ฆ๊ฐ€๋ณด๋‹ค ํ›จ์”ฌ ๋†’์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ ์ž ์ตœ์†Œ ๋ถ„๊ธฐ ๋น„์œจ
์ตœ์ƒ์˜ ์—์ง€์˜ ์—ญํ™•๋ฅ ์ด ์ด๋ณด๋‹ค ์ž‘์œผ๋ฉด ์—ญ์„ฑ์žฅ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ž„๊ณ„๊ฐ’(ํผ์„ผํŠธ).

์ถ”์ ์ž ์ตœ์†Œ ๋ถ„๊ธฐ ๋น„์œจ
์ถ”์ ๊ธฐ ์ตœ์†Œ ๋ถ„๊ธฐ ๋น„์œจ ํ”ผ๋“œ๋ฐฑ
์ตœ์ƒ์˜ ์—์ง€์˜ ํ™•๋ฅ ์ด ์ด ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ๋‚ฎ์œผ๋ฉด ์•ž์œผ๋กœ ์„ฑ์žฅ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋น„์Šทํ•˜๊ฒŒ ์ถ”์ ์ž ๋™์  ๋ฒ”์œ„ ๋‘ ๊ฐœ์˜ ๊ฐ’์ด ์žˆ์œผ๋ฉฐ ํ•˜๋‚˜๋Š” ์ปดํŒŒ์ผ์šฉ์ž…๋‹ˆ๋‹ค.
ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์šฉ๊ณผ ์—†๋Š” ์ปดํŒŒ์ผ์šฉ ํ•˜๋‚˜. ์ปดํŒŒ์ผ ๊ฐ’
ํ”„๋กœํ•„ ํ”ผ๋“œ๋ฐฑ์€ ๋” ๋ณด์ˆ˜์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํšจ๊ณผ์ ์ธ ์ถ”์ ์ž.

์ตœ๋Œ€ cse ๊ฒฝ๋กœ ๊ธธ์ด
CSE๊ฐ€ ๊ณ ๋ คํ•˜๋Š” ๊ฒฝ๋กœ์˜ ์ตœ๋Œ€ ๊ธฐ๋ณธ ๋ธ”๋ก ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ cse-insns
ํ”Œ๋Ÿฌ์‹œํ•˜๊ธฐ ์ „์— CSE๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
1000.

ggc-๋ถ„-ํ™•์žฅ
GCC๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜
๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์˜ ํž™์ด ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ๋ฐฑ๋ถ„์œจ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ปฌ๋ ‰์…˜ ๊ฐ„์— ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์กฐ์ •ํ•˜๋ฉด ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ ์ƒ์„ฑ์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ 30% + 70% * (RAM/1GB)์ด๋ฉฐ RAM >= 100GB์ธ ๊ฒฝ์šฐ ์ƒํ•œ์€ 1%์ž…๋‹ˆ๋‹ค.
"getrlimit"๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ "RAM"์ด๋ผ๋Š” ๊ฐœ๋…์€ ์‹ค์ œ RAM ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์ด๋ฉฐ
"RLIMIT_DATA" ๋˜๋Š” "RLIMIT_AS". GCC๊ฐ€ ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ์—์„œ RAM์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ
ํ”Œ๋žซํผ์—์„œ๋Š” 30%์˜ ํ•˜ํ•œ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ณ  gc-๋ถ„-
์Œ“๋‹ค XNUMX์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  ๊ธฐํšŒ์—์„œ ์ „์ฒด ์ˆ˜์ง‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋งค์šฐ ๋Š๋ฆฌ์ง€๋งŒ ๋””๋ฒ„๊น…์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ggc-๋ถ„-ํž™ ํฌ๊ธฐ
๊ท€์ฐฎ๊ฒŒ ์ˆ˜์ง‘์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์˜ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ ํž™์˜ ์ตœ์†Œ ํฌ๊ธฐ
์“ฐ๋ ˆ๊ธฐ. ํž™์ด ํ™•์žฅ๋œ ํ›„ ์ฒซ ๋ฒˆ์งธ ์ปฌ๋ ‰์…˜์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ggc-๋ถ„-ํ™•์žฅ%
๊ทธ ๋„ˆ๋จธ ggc-๋ถ„-ํž™ ํฌ๊ธฐ. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด๊ฒƒ์„ ์กฐ์ •ํ•˜๋ฉด ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
์ฝ”๋“œ ์ƒ์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ RAM/8, RLIMIT_RSS ๋˜๋Š”
RLIMIT_DATA ๋˜๋Š” RLIMIT_AS๋Š” ์ดˆ๊ณผ๋˜์ง€ ์•Š์ง€๋งŒ ํ•˜ํ•œ์€ 4096์ž…๋‹ˆ๋‹ค.
(131072MB) ๋ฐ ์ƒํ•œ 128(XNUMXMB). GCC๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ
ํŠน์ • ํ”Œ๋žซํผ์—์„œ RAM์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ํ•˜ํ•œ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์„ค์ •
๋งค์šฐ ํฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์„ ํšจ๊ณผ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์„ค์ •
๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ฐ ggc-๋ถ„-ํ™•์žฅ XNUMX์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋งค ์‹œ๊ฐ„๋งˆ๋‹ค ์ „์ฒด ์ˆ˜์ง‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๋‹ค์‹œ ๋กœ๋“œ ๊ฒ€์ƒ‰-insns
๋ช…๋ น์–ด ์žฌ๋กœ๋“œ์˜ ์ตœ๋Œ€ ํšŸ์ˆ˜๋Š” ๋™๋“ฑํ•œ ํ•ญ๋ชฉ์„ ์—ญ์œผ๋กœ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋“ฑ๋กํ•˜๋‹ค. ๊ฐ’์„ ๋†’์ด๋ฉด ๋” ์ ๊ทน์ ์ธ ์ตœ์ ํ™”๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ
์•ฝ๊ฐ„ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์œผ๋กœ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
๊ฐ’์€ 100์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ cselib ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜
cselib๊ฐ€ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ์ˆ˜.
๊ฐ’์„ ๋Š˜๋ฆฌ๋ฉด ์ตœ์ ํ™”๊ฐ€ ๋” ์ ๊ทน์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
์•ฝ๊ฐ„ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 500์ž…๋‹ˆ๋‹ค.

์žฌ์ •๋ ฌ ๋ธ”๋ก ๋ณต์ œ
์žฌ์ •๋ ฌ-๋ธ”๋ก-์ค‘๋ณต-ํ”ผ๋“œ๋ฐฑ
๋ฌด์กฐ๊ฑด ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ๋ธ”๋ก ์žฌ์ •๋ ฌ ํŒจ์Šค์—์„œ ์‚ฌ์šฉ
๋Œ€์ƒ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ถ„๊ธฐํ•˜๊ฑฐ๋‚˜ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋ณต์ œ๋  ๋•Œ
์˜ˆ์ƒ ํฌ๊ธฐ๊ฐ€ ์ด ๊ฐ’์— ์˜ˆ์ƒ ํฌ๊ธฐ๋ฅผ ๊ณฑํ•œ ๊ฒƒ๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์˜ ํ•ซ์ŠคํŒŸ์—์„œ ๋ฌด์กฐ๊ฑด ์ ํ”„.

ใ€€ ์žฌ์ •๋ ฌ-๋ธ”๋ก-๋ณต์ œ-ํ”ผ๋“œ๋ฐฑ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ”„๋กœํŒŒ์ผ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ์„ ๋•Œ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ๋†’์€ ๊ฐ’์œผ๋กœ ์„ค์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์ •๋ ฌ-๋ธ”๋ก-๋ณต์ œ ์ดํ›„
ํ•ซ์ŠคํŒŸ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€-sched-ready-insns
์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๋ฐœํ–‰ํ•  ์ค€๋น„๊ฐ€ ๋œ ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ ์Šค์ผ€์ค„๋ง ํŒจ์Šค ๋™์•ˆ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. ๊ฐ’ ์ฆ๊ฐ€
๋” ์ฒ ์ €ํ•œ ๊ฒ€์ƒ‰์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์•„๋งˆ๋„ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ž‘์€ ์ด์ต. ๊ธฐ๋ณธ๊ฐ’์€ 100์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์ผ์ • ์ง€์—ญ ๋ธ”๋ก
๋ธ”๋ก ๊ฐ„ ๊ณ ๋ ค ๋Œ€์ƒ ์˜์—ญ์˜ ์ตœ๋Œ€ ๋ธ”๋ก ์ˆ˜
์ผ์ •. ๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ํŒŒ์ดํ”„๋ผ์ธ ์˜์—ญ ๋ธ”๋ก
ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ์œ„ํ•ด ๊ณ ๋ ค๋˜๋Š” ์ง€์—ญ์˜ ์ตœ๋Œ€ ๋ธ”๋ก ์ˆ˜
์„ ํƒ์  ์Šค์ผ€์ค„๋Ÿฌ ๊ธฐ๋ณธ๊ฐ’์€ 15์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€-sched-์ง€์—ญ-insns
Interblock ๊ณ ๋ ค ๋Œ€์ƒ ์ง€์—ญ ๋‚ด ์ตœ๋Œ€ ์ˆ™์†Œ ์ˆ˜
์ผ์ •. ๊ธฐ๋ณธ๊ฐ’์€ 100์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ํŒŒ์ดํ”„๋ผ์ธ-์ง€์—ญ-insns
ํŒŒ์ดํ”„๋ผ์ด๋‹์„ ์œ„ํ•ด ๊ณ ๋ ค๋˜๋Š” ์ง€์—ญ์˜ ์ตœ๋Œ€ ์—ฌ๊ด€ ์ˆ˜
์„ ํƒ์  ์Šค์ผ€์ค„๋Ÿฌ ๊ธฐ๋ณธ๊ฐ’์€ 200์ž…๋‹ˆ๋‹ค.

์ตœ์†Œ ์‚ฌ์–‘ ๋ฌธ์ œ
์ธํ„ฐ๋ธ”๋ก์˜ ์†Œ์Šค ๋ธ”๋ก์— ๋„๋‹ฌํ•  ์ตœ์†Œ ํ™•๋ฅ (๋ฐฑ๋ถ„์œจ)
์ถ”์ธก์„ฑ ์ผ์ •. ๊ธฐ๋ณธ๊ฐ’์€ 40์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€-sched-ํ™•์žฅ-์ง€์—ญ-iters
์˜์—ญ์„ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด CFG๋ฅผ ํ†ตํ•œ ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ’ 0(
๊ธฐ๋ณธ) ์ง€์—ญ ํ™•์žฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€-sched-insn-์ถฉ๋Œ-์ง€์—ฐ
ํˆฌ๊ธฐ์  ์›€์ง์ž„์— ๋Œ€ํ•ด ๊ณ ๋ ค๋˜๋Š” ์—ฌ๊ด€์˜ ์ตœ๋Œ€ ์ถฉ๋Œ ์ง€์—ฐ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 3์ž…๋‹ˆ๋‹ค.

์ผ์ •-์‚ฌ์–‘-๋ฌธ์ œ-์ปท์˜คํ”„
ํˆฌ๊ธฐ ์„ฑ๊ณต์˜ ์ตœ์†Œ ํ™•๋ฅ (๋ฐฑ๋ถ„์œจ), ๋”ฐ๋ผ์„œ ํˆฌ๊ธฐ์ 
์ˆ™์†Œ๊ฐ€ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 40์ž…๋‹ˆ๋‹ค.

์ผ์ •-์‚ฌ์–‘-์ƒํƒœ-๊ฐ€์žฅ์ž๋ฆฌ-๋ฌธ์ œ-์ปท์˜คํ”„
์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ์ž๋ฆฌ๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•˜๋Š” ์ตœ์†Œ ํ™•๋ฅ 
๊ฑด๋„ˆํŽธ. ๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

sched-mem-true-dep-๋น„์šฉ
๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์ €์žฅ์†Œ์™€ ๋กœ๋“œ ์‚ฌ์ด์˜ ์ตœ์†Œ ๊ฑฐ๋ฆฌ(CPU ์ฃผ๊ธฐ)
์œ„์น˜. ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

selsched-max-lookahead
์„ ํƒ์  ์Šค์ผ€์ค„๋ง์˜ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ฐฝ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๊นŠ์ด์ด๋‹ค
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ง€์นจ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 50์ž…๋‹ˆ๋‹ค.

selsched-์ตœ๋Œ€-sched-์‹œ๊ฐ„
์„ ํƒ ์ค‘์— ๋ช…๋ น์ด ์˜ˆ์•ฝ๋˜๋Š” ์ตœ๋Œ€ ํšŸ์ˆ˜
์ผ์ •. ์ด๊ฒƒ์€ ๋ฐ˜๋ณต ํšŸ์ˆ˜์— ๋Œ€ํ•œ ์ œํ•œ์ž…๋‹ˆ๋‹ค.
๋ช…๋ น์ด ํŒŒ์ดํ”„๋ผ์ธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.

selsched-max-insns-์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
์ค€๋น„ ๋ชฉ๋ก์—์„œ ๊ณ ๋ ค๋˜๋Š” ์ตœ์ƒ์˜ ๋ช…๋ น์˜ ์ตœ๋Œ€ ์ˆ˜
์„ ํƒ์  ์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ. ๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.

SMS-min-sc
์Šค์œ™ ๋ชจ๋“ˆ๋กœ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์Šคํ…Œ์ด์ง€ ์ˆ˜์˜ ์ตœ์†Œ๊ฐ’์ž…๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๋งˆ์ง€๋ง‰ ๊ฐ’ rtl
ํ‘œํ˜„์‹์— ๊ธฐ๋ก๋  ์ˆ˜ ์žˆ๋Š” RTL์˜ ์ˆ˜๋กœ ์ธก์ •๋œ ์ตœ๋Œ€ ํฌ๊ธฐ
์˜์‚ฌ ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ๊ฒฐํ•ฉ๊ธฐ์—์„œ ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ๊ฐ’์œผ๋กœ. NS
๊ธฐ๋ณธ๊ฐ’์€ 10000์ž…๋‹ˆ๋‹ค.

max-combin-insns
RTL ๊ฒฐํ•ฉ๊ธฐ๊ฐ€ ๊ฒฐํ•ฉํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
๊ฐ’์€ 2์—์„œ -์˜ค๊ทธ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 4์ž…๋‹ˆ๋‹ค.

์ •์ˆ˜ ๊ณต์œ  ์ œํ•œ
์ž‘์€ ์ •์ˆ˜ ์ƒ์ˆ˜๋Š” ๊ณต์œ  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํŒŒ์ผ๋Ÿฌ์˜
๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ๋ฐ ์†๋„ ์ฆ๊ฐ€. ์ด๊ฒƒ์€ ๊ณต์œ ์˜ ์ตœ๋Œ€๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •์ˆ˜ ์ƒ์ˆ˜. ๊ธฐ๋ณธ๊ฐ’์€ 256์ž…๋‹ˆ๋‹ค.

ssp ๋ฒ„ํผ ํฌ๊ธฐ
์Šคํƒ ์Šค๋งค์‹ฑ ๋ณดํ˜ธ๋ฅผ ๋ฐ›๋Š” ๋ฒ„ํผ(์˜ˆ: ์–ด๋ ˆ์ด)์˜ ์ตœ์†Œ ํฌ๊ธฐ
์–ธ์ œ -fstack ๋ณดํ˜ธ ์‚ฌ์šฉ.

Ubuntu 10.10 ์ด์ „์˜ ์ด ๊ธฐ๋ณธ๊ฐ’์€ "8"์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ "4"์ž…๋‹ˆ๋‹ค.
์Šคํƒ ๋ณดํ˜ธ๊ธฐ์— ์˜ํ•ด ๋ณดํ˜ธ๋˜๋Š” ๊ธฐ๋Šฅ์˜ ์ˆ˜.

์Šคํƒ ๊ณต์œ ๋ฅผ ์œ„ํ•œ ์ตœ์†Œ ํฌ๊ธฐ
์Šคํƒ ์Šฌ๋กฏ ๊ณต์œ ์— ์ฐธ์—ฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ตœ์†Œ ๋ณ€์ˆ˜ ํฌ๊ธฐ
์ตœ์ ํ™”. ๊ธฐ๋ณธ๊ฐ’์€ 32์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€-์ ํ”„-์Šค๋ ˆ๋“œ-์ค‘๋ณต-stmts
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ณต์ œํ•ด์•ผ ํ•˜๋Š” ๋ธ”๋ก์— ํ—ˆ์šฉ๋˜๋Š” ์ตœ๋Œ€ ๋ช…๋ น๋ฌธ ์ˆ˜
์Šค๋ ˆ๋”ฉ ์ ํ”„.

์ตœ๋Œ€ ํ•„๋“œ ๋Œ€ ํ•„๋“œ ๊ฐ์ง€
ํ•„๋“œ ๊ฐ์ง€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ตฌ์กฐ์˜ ์ตœ๋Œ€ ํ•„๋“œ ์ˆ˜
ํฌ์ธํ„ฐ ๋ถ„์„. ๊ธฐ๋ณธ๊ฐ’์€ XNUMX์ž…๋‹ˆ๋‹ค. -O0 ๊ณผ -O1, 100 for - ์˜ค์Šค, -O2๋ฐ
-O3.

ํ”„๋ฆฌํŽ˜์น˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„
ํ”„๋ฆฌํŽ˜์น˜ ์ „์— ์‹คํ–‰๋˜๋Š” ํ‰๊ท  ๋ช…๋ น์–ด ์ˆ˜ ์ถ”์ •
๋. ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์˜ค๋Š” ๊ฑฐ๋ฆฌ๋Š” ์ด ์ƒ์ˆ˜์— ๋น„๋ก€ํ•ฉ๋‹ˆ๋‹ค.
์ด ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ฉด ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์˜ค๋Š” ์ŠคํŠธ๋ฆผ์ด ์ค„์–ด๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์ฐธ์กฐ
๋™์‹œ ํ”„๋ฆฌํŽ˜์น˜).

๋™์‹œ ํ”„๋ฆฌํŽ˜์น˜
๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํ”„๋ฆฌํŽ˜์น˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

l1-์บ์‹œ-๋ผ์ธ-ํฌ๊ธฐ
L1 ์บ์‹œ์˜ ์บ์‹œ ๋ผ์ธ ํฌ๊ธฐ(๋ฐ”์ดํŠธ)์ž…๋‹ˆ๋‹ค.

l1 ์บ์‹œ ํฌ๊ธฐ
L1 ์บ์‹œ์˜ ํฌ๊ธฐ(KB)์ž…๋‹ˆ๋‹ค.

l2 ์บ์‹œ ํฌ๊ธฐ
L2 ์บ์‹œ์˜ ํฌ๊ธฐ(KB)์ž…๋‹ˆ๋‹ค.

์ตœ์†Œ insn ๋Œ€ ํ”„๋ฆฌํŽ˜์น˜ ๋น„์œจ
๋ช…๋ น์–ด ์ˆ˜์™€ ํ”„๋ฆฌํŽ˜์น˜ ์ˆ˜ ์‚ฌ์ด์˜ ์ตœ์†Œ ๋น„์œจ
๋ฃจํ”„์—์„œ ํ”„๋ฆฌํŽ˜์น˜๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

prefetch-min-insn-to-mem ๋น„์œจ
๋ช…๋ น์–ด ์ˆ˜์™€ ๋ฉ”๋ชจ๋ฆฌ ์ˆ˜ ์‚ฌ์ด์˜ ์ตœ์†Œ ๋น„์œจ
๋ฃจํ”„์—์„œ ํ”„๋ฆฌํŽ˜์น˜๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ.

ํ‘œ์ค€ ์œ ํ˜• ์‚ฌ์šฉ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ "ํ‘œ์ค€" ์œ ํ˜• ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด
ํ•ญ์ƒ 1์ด์–ด์•ผ ํ•˜๋ฉฐ, ๋น„๊ต๋ฅผ ์œ„ํ•ด ๋ณด๋‹ค ํšจ์œจ์ ์ธ ๋‚ด๋ถ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
C++ ๋ฐ Objective-C++์˜ ์œ ํ˜•. ๊ทธ๋Ÿฌ๋‚˜ ํ‘œ์ค€ ์œ ํ˜• ์‹œ์Šคํ…œ์˜ ๋ฒ„๊ทธ๊ฐ€
์ปดํŒŒ์ผ ์‹คํŒจ๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒฝ์šฐ ์ด ๊ฐ’์„ 0์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํ‘œ์ค€ ์œ ํ˜•์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์Šค์œ„์น˜ ๋ณ€ํ™˜ ์ตœ๋Œ€ ๋ถ„๊ธฐ ๋น„์œจ
์Šค์œ„์น˜ ์ดˆ๊ธฐํ™” ๋ณ€ํ™˜์€ ๋‹ค์Œ๋ณด๋‹ค ํฐ ์–ด๋ ˆ์ด ์ƒ์„ฑ์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.
์Šค์œ„์น˜ ๋ณ€ํ™˜ ์ตœ๋Œ€ ๋ถ„๊ธฐ ๋น„์œจ ์Šค์œ„์น˜์˜ ๋ถ„๊ธฐ ์ˆ˜๋ฅผ ๊ณฑํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๋ถ€๋ถ„ ๊ธธ์ด
ํŠธ๋ฆฌ ๋ถ€๋ถ„ ๋™์•ˆ ๊ณ„์‚ฐ๋œ ๋ถ€๋ถ„์  ์ต์ŠคํŠธ๋ฆผ ์ง‘ํ•ฉ์˜ ์ตœ๋Œ€ ๊ธธ์ด
์ค‘๋ณต ์ œ๊ฑฐ ์ตœ์ ํ™”(-fttree-pre)์—์„œ ์ตœ์ ํ™”ํ•  ๋•Œ -O3 ์ด์ƒ.
์ผ๋ถ€ ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ํ–ฅ์ƒ๋œ ๋ถ€๋ถ„ ์ค‘๋ณต ์ œ๊ฑฐ
์ตœ์ ํ™”๊ฐ€ ์‹คํ–‰๋˜์–ด ํ˜ธ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋ชจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๊ณ„. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ณ„์‚ฐ๋˜๋Š” ์„ธํŠธ์˜ ๊ธธ์ด์— ๋Œ€ํ•œ ์ œํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€์ถœ ํ–‰๋™์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ 0์œผ๋กœ ์„ค์ •
๋ฌด์ œํ•œ ์„ค์ • ๊ธธ์ด๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

sccvn-max-scc-ํฌ๊ธฐ
SCCVN ์ฒ˜๋ฆฌ ์ค‘ SCC(๊ฐ•๋ ฅํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ๊ตฌ์„ฑ ์š”์†Œ)์˜ ์ตœ๋Œ€ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
์ด ์ œํ•œ์— ๋„๋‹ฌํ•˜๋ฉด ์ „์ฒด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ SCCVN ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š๊ณ 
๊ทธ์— ๋”ฐ๋ฅธ ์ตœ์ ํ™”๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ตœ๋Œ€ SCC ํฌ๊ธฐ๋Š”
10000.

sccvn-max-alias-์•ก์„ธ์Šค๋‹น ์ฟผ๋ฆฌ
์ค‘๋ณต์„ ์ฐพ์„ ๋•Œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ตœ๋Œ€ alias-oracle ์ฟผ๋ฆฌ ์ˆ˜
๋กœ๋“œ ๋ฐ ์Šคํ† ์–ด์šฉ. ์ด ์ œํ•œ์— ๋„๋‹ฌํ•˜๋ฉด ๊ฒ€์ƒ‰์ด ์ค‘๋‹จ๋˜๊ณ  ๋กœ๋“œ ๋˜๋Š”
์ €์žฅ์†Œ๋Š” ์ค‘๋ณต์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ์ˆ˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ ์œผ๋กœ
๋กœ๋“œ์—์„œ ํ•จ์ˆ˜ ํ•ญ๋ชฉ๊นŒ์ง€์˜ ๋ชจ๋“  ๊ฒฝ๋กœ์— ์žˆ๋Š” ์ €์žฅ์†Œ ์ˆ˜๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ตœ๋Œ€ ์ฟผ๋ฆฌ ์ˆ˜๋Š” 1000์ž…๋‹ˆ๋‹ค.

ira-์ตœ๋Œ€-๋ฃจํ”„-๋ฒˆํ˜ธ
IRA๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์—ญ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์— ๋” ๋งŽ์€ ๋‚ด์šฉ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ
๋ฃจํ”„๋Š” ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์— ์˜ํ•ด ์ฃผ์–ด์ง„ ์ˆ˜๋ณด๋‹ค ๋งŽ์•„์•ผ ์ฃผ์–ด์ง„ ์ˆ˜์˜
๊ฐ€์žฅ ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ๋ฃจํ”„๋Š” ์ง€์—ญ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ์œ„ํ•œ ์˜์—ญ์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ 100์ž…๋‹ˆ๋‹ค.

ira-max-์ถฉ๋Œ-ํ…Œ์ด๋ธ”-ํฌ๊ธฐ
IRA๋Š” ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถฉ๋Œ ํ…Œ์ด๋ธ”์„ ์••์ถ•ํ•˜์ง€๋งŒ,
ํ…Œ์ด๋ธ”์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ฑฐ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ๊ณผ๋„ํ•œ ์–‘์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•„์š”๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ
ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ถฉ๋Œ ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ์—์„œ ์ง€์ •ํ•œ ํฌ๊ธฐ(MB)๋ณด๋‹ค ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜ ๋Œ€์‹  ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž๋Š” ๋” ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•˜๋ฉฐ ๋” ๋‚ฎ์€ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜์‚ฌ ๋ ˆ์ง€์Šคํ„ฐ ์ถฉ๋Œ ํ…Œ์ด๋ธ”์„ ๊ตฌ์ถ•ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ํ’ˆ์งˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜.
๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ 2000์ž…๋‹ˆ๋‹ค.

ira-๋ฃจํ”„-์˜ˆ์•ฝ-regs
IRA๋Š” ๊ฒฐ์ •์„ ์œ„ํ•œ ๋ฃจํ”„์—์„œ ๋ณด๋‹ค ์ •ํ™•ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฃจํ”„ ๋ถˆ๋ณ€๋Ÿ‰์„ ์ด๋™ํ•˜๋ ค๋ฉด(์ฐธ์กฐ -O3). ์˜ˆ์•ฝ๋œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ ์ˆ˜
์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” 2์ด๋ฉฐ, ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•„์š”ํ•œ ์ตœ์†Œ ๋ ˆ์ง€์Šคํ„ฐ ์ˆ˜์ž…๋‹ˆ๋‹ค.
์ง€์นจ. ์ด ๊ฐ’์€ ์ˆ˜๋งŽ์€ ์‹คํ—˜์—์„œ ๋ฐœ๊ฒฌ๋œ ๊ฐ€์žฅ ์ข‹์€ ๊ฐ’์ž…๋‹ˆ๋‹ค.

lra-์ƒ์†-ebb-ํ™•๋ฅ -์ปท์˜คํ”„
LRA๋Š” ํ›„์† insns์˜ ๋ ˆ์ง€์Šคํ„ฐ์— ๋‹ค์‹œ ๋กœ๋“œ๋œ ๊ฐ’์„ ์žฌ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ตœ์ ํ™”๋ฅผ ์ƒ์†์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. EBB๋Š” ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜์—ญ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ตœ์ ํ™”. ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ตœ์†Œ ํด์Šค๋ฃจ ์—์ง€ ํ™•๋ฅ ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
LRA์˜ ์ƒ์† EBB์— BB๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฑ๋ถ„์œจ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” 40์ž…๋‹ˆ๋‹ค. ๊ฐ’์€ x2000-86์—์„œ SPEC64์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฃจํ”„ ๋ถˆ๋ณ€ ์ตœ๋Œ€-bbs-in-loop
๋ฃจํ”„ ๋ถˆ๋ณ€ ๋™์ž‘์€ ์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ์ปดํŒŒ์ผ ์‹œ๊ฐ„ ๋ชจ๋‘์—์„œ ๋งค์šฐ ๋น„์Œ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋งค์šฐ ํฐ ๋ฃจํ”„์™€ ํ•จ๊ป˜ ํ•„์š”ํ•œ ์ปดํŒŒ์ผ ์‹œ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘. ๋” ๋งŽ์€ ๋ฃจํ”„
์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ๊ธฐ๋ณธ ๋ธ”๋ก์—๋Š” ๋ฃจํ”„ ๋ถˆ๋ณ€ ๋ชจ์…˜ ์ตœ์ ํ™”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋“ค์— ์ˆ˜ํ–‰. ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ 1000์ž…๋‹ˆ๋‹ค. -O1 ๋ฐ 10000
for -O2 ์ด์ƒ.

๋ฃจํ”„-์ตœ๋Œ€-datarefs-for-datadeps
๋ฐ์ดํ„ฐ ์ข…์†์„ฑ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ํฐ ๋ฃจํ”„์˜ ๊ฒฝ์šฐ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜
๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๊ณ ๋ ค๋˜๋Š” ๋ฃจํ”„์˜ ๋ฐ์ดํ„ฐ ์ฐธ์กฐ ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
์˜์กด์„ฑ ๋ถ„์„. ์ด๋Ÿฌํ•œ ํฐ ๋ฃจํ”„๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์ ํ™”์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฃจํ”„ ๋ฐ์ดํ„ฐ ์ข…์†์„ฑ. ๊ธฐ๋ณธ๊ฐ’์€ 1000์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๋ณ€์ˆ˜ ํŠธ๋ž™ ํฌ๊ธฐ
๋ณ€์ˆ˜ ์ถ”์  ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ค‘์— ์‚ฌ์šฉํ•  ํ•ด์‹œ ํ…Œ์ด๋ธ” ์Šฌ๋กฏ์˜ ์ตœ๋Œ€ ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์–ด๋–ค ๊ธฐ๋Šฅ์˜ ๋ถ„์„. ์—์„œ ๋ณ€์ˆ˜ ์ถ”์ ์œผ๋กœ ์ด ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ
ํ• ๋‹น์ด ํ™œ์„ฑํ™”๋˜๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ถ„์„์ด ํ• ๋‹น ์—†์ด ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์—์„œ ๋ชจ๋“  ๋””๋ฒ„๊ทธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์—†์ด๋„ ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•œ ๊ฒฝ์šฐ
debug insns, var ์ถ”์  ๋ถ„์„์€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ XNUMX์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฌด์ œํ•œ์ด ๋ฉ๋‹ˆ๋‹ค.

max-vartrack-expr-๊นŠ์ด
๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋งคํ•‘ํ•˜๊ฑฐ๋‚˜
๊ฐ’ ํ‘œํ˜„์‹์— ๋Œ€ํ•œ ๋””๋ฒ„๊ทธ ์ž„์‹œ. ์ด๊ฒƒ์€ ๋” ๋งŽ์€ ๊ฒƒ์„ ์œ„ํ•ด ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค
์™„์ „ํ•œ ๋””๋ฒ„๊ทธ ์ •๋ณด. ๋„ˆ๋ฌด ๋‚ฎ๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๊ฐ’ ํ‘œํ˜„์‹์ด
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ๋””๋ฒ„๊ทธ ์ •๋ณด๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ตญ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ฐ’์„ ๋†’๊ฒŒ ์„ค์ •ํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋” ๋ณต์žกํ•œ ๋””๋ฒ„๊ทธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ‘œํ˜„์‹์ด์ง€๋งŒ ์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 12์ž…๋‹ˆ๋‹ค.

์ตœ์†Œ-nondebug-insn-uid
nondebug insns์— ๋Œ€ํ•ด ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ์‹œ์ž‘ํ•˜๋Š” uid๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ดํ•˜์˜ ๋ฒ”์œ„
๋งค๊ฐœ๋ณ€์ˆ˜๋Š”
-fvar-์ถ”์  ํ• ๋‹น, ๊ทธ๋Ÿฌ๋‚˜ ๋””๋ฒ„๊ทธ insns๋Š” ์œ„์˜ (์ค‘์ฒฉ๋˜์ง€ ์•Š์€) uid๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ์•ฝ๋œ ๋ฒ”์œ„๊ฐ€ ์†Œ์ง„๋œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

ipa-sra-ptr-์„ฑ์žฅ ์ธ์ž
IPA-SRA๋Š” ์ง‘๊ณ„์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ƒˆ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ๋งŒ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
๋ˆ„์  ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ ipa-sra-ptr-์„ฑ์žฅ ์ธ์ž ์‹œ๊ฐ„์„
์›๋ž˜ ํฌ์ธํ„ฐ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.

sra-max-scalarization-size-Ospeed
sra-max-scalarization-size-Osize
๋‘ ๊ฐ€์ง€ SRA(Scalar Reduction of Aggregates) ํŒจ์Šค(SRA ๋ฐ IPA-SRA)๋Š” ๋‹ค์Œ์„ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
๋…๋ฆฝ ์Šค์นผ๋ผ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ง‘๊ณ„์˜ ์Šค์นผ๋ผ ๋ถ€๋ถ„. ์ด๊ฒƒ๋“ค
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ €์žฅ ๋‹จ์œ„์—์„œ ์ง‘๊ณ„์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
์†๋„๋ฅผ ์œ„ํ•ด ์ปดํŒŒ์ผํ•  ๋•Œ ๊ต์ฒด ๊ณ ๋ ค(sra-max-scalarization-size-
์˜ค์Šคํ”ผ๋“œ) ๋˜๋Š” ํฌ๊ธฐ(sra-max-scalarization-size-Osize) ๊ฐ๊ฐ.

tm-์ตœ๋Œ€ ์ง‘๊ณ„ ํฌ๊ธฐ
ํŠธ๋žœ์žญ์…˜์—์„œ ์Šค๋ ˆ๋“œ ๋กœ์ปฌ ๋ณ€์ˆ˜์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค ๋•Œ ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š”
๋ณ€์ˆ˜๊ฐ€ ๋กœ๊น…๊ณผ ํ•จ๊ป˜ ์ €์žฅ๋˜๋Š” ์ดํ›„์˜ ํฌ๊ธฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ ์‹œํ€€์Šค ์Œ์„ ์ €์žฅ/๋ณต์›ํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋Œ€์กฐ์ ์œผ๋กœ ๊ธฐ๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜๋งŒ
์‚ฌ์šฉํ•  ๋•Œ ์ ์šฉ -fgnu-tm.

ํ‘์—ฐ-์ตœ๋Œ€-nb-scop-params
ํ‘์—ฐ ๋ฃจํ”„ ๋ณ€ํ™˜์—์„œ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์ธ ์˜ํ–ฅ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด
SCoP(Static Control Part)์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜. ์ปดํŒŒ์ผ ์‹œ ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†๊ณ  ์ •์˜๋œ ๋ณ€์ˆ˜
SCoP ์™ธ๋ถ€๋Š” SCoP์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ๋‹น graphite-max-bbs
SCoP ํƒ์ง€ ์‹œ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์ธ ์˜ํ–ฅ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜์˜ ํฌ๊ธฐ
Graphite์— ์˜ํ•ด ๋ถ„์„๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 100 ๊ธฐ๋ณธ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค.

๋ฃจํ”„ ๋ธ”๋ก ํƒ€์ผ ํฌ๊ธฐ
๋ฃจํ”„ ์ฐจ๋‹จ ๋˜๋Š” ์ŠคํŠธ๋ฆฝ ๋งˆ์ด๋‹ ๋ณ€ํ™˜, ์‚ฌ์šฉ ๊ฐ€๋Šฅ -floop-๋ธ”๋ก or
-floop-์ŠคํŠธ๋ฆฝ-๊ด‘์‚ฐ, ์ฃผ์–ด์ง„ ์ˆ˜๋งŒํผ ๋ฃจํ”„ ๋„ค์ŠคํŠธ์˜ ๊ฐ ๋ฃจํ”„๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋ณต. ์ŠคํŠธ๋ฆฝ ๊ธธ์ด๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํ”„ ๋ธ”๋ก ํƒ€์ผ ํฌ๊ธฐ
๋งค๊ฐœ๋ณ€์ˆ˜. ๊ธฐ๋ณธ๊ฐ’์€ 51ํšŒ ๋ฐ˜๋ณต์ž…๋‹ˆ๋‹ค.

๋ฃจํ”„ ํ’€๊ธฐ ๊ฑธ๋ฆผ ํฌ๊ธฐ
์— ๋Œ€ํ•œ ์–ธ๋กค ํŒฉํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. -ํ”Œ๋ฃจํ”„ ํ’€๊ธฐ ๋ฐ ๊ฑธ๋ฆผ ์˜ต์…˜. ๊ธฐ๋ณธ๊ฐ’
4์ž…๋‹ˆ๋‹ค.

๋ฃจํ”„ ํ’€๊ธฐ ๊ฑธ๋ฆผ ๊นŠ์ด
ํŽผ์น  ์น˜์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(๊ฐ€์žฅ ์•ˆ์ชฝ ๋ฃจํ”„๋ถ€ํ„ฐ ๊ณ„์‚ฐ).
-ํ”Œ๋ฃจํ”„ ํ’€๊ธฐ ๋ฐ ๊ฑธ๋ฆผ. ๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.

ipa-cp-๊ฐ’-๋ชฉ๋ก-ํฌ๊ธฐ
IPA-CP๋Š” ํ•จ์ˆ˜์— ์ „๋‹ฌ๋œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ’๊ณผ ์œ ํ˜•์„ ์ถ”์ ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „ํŒŒํ•˜๊ณ  ๊ฐ€์ƒํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ipa-cp-๊ฐ’-
๋ชฉ๋ก ํฌ๊ธฐ ํ•˜๋‚˜์˜ ํ˜•์‹๋‹น ์ €์žฅํ•˜๋Š” ๊ฐ’ ๋ฐ ์œ ํ˜•์˜ ์ตœ๋Œ€ ์ˆ˜์ž…๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜.

ipa-cp-ํ‰๊ฐ€-์ž„๊ณ„๊ฐ’
IPA-CP๋Š” ๋ณต์ œ ์ˆ˜์ต์„ฑ ํœด๋ฆฌ์Šคํ‹ฑ์˜ ์ž์ฒด ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ์ ์ˆ˜๋ฅผ ๊ฐ€์ง„ ๋ณต์ œ ๊ธฐํšŒ ipa-cp-ํ‰๊ฐ€-์ž„๊ณ„๊ฐ’.

ipa-cp-์žฌ๊ท€ ํŽ˜๋„ํ‹ฐ
์žฌ๊ท€ ํ•จ์ˆ˜๊ฐ€ ํ‰๊ฐ€๋  ๋•Œ ๋ฐ›๊ฒŒ ๋  ํŽ˜๋„ํ‹ฐ ๋น„์œจ
๋ณต์ œ๋ฅผ ์œ„ํ•ด.

ipa-cp-๋‹จ์ผ ํ˜ธ์ถœ-ํŽ˜๋„ํ‹ฐ
๋‹ค๋ฅธ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋‹จ์ผ ํ˜ธ์ถœ์„ ํฌํ•จํ•˜๋Š” ๋ฐฑ๋ถ„์œจ ํŽ˜๋„ํ‹ฐ ํ•จ์ˆ˜๋Š”
๋ณต์ œ์— ๋Œ€ํ•ด ํ‰๊ฐ€๋  ๋•Œ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.

ipa-max-agg-ํ•ญ๋ชฉ
IPA-CP๋Š” ๋˜ํ•œ ์ „๋‹ฌ๋œ ์—ฌ๋Ÿฌ ์Šค์นผ๋ผ ๊ฐ’์„ ์ „ํŒŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ณจ์žฌ. ipa-max-agg-ํ•ญ๋ชฉ ํ•˜๋‚˜๋‹น ์ด๋Ÿฌํ•œ ๊ฐ’์˜ ์ตœ๋Œ€ ์ˆ˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋งค๊ฐœ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

ipa-cp-loop-ํžŒํŠธ-๋ณด๋„ˆ์Šค
IPA-CP๊ฐ€ ๋ณต์ œ ํ›„๋ณด๊ฐ€
์•Œ๋ ค์ง„ ๋ฃจํ”„์˜ ๋ฐ˜๋ณต, ๊ทธ๊ฒƒ์€ ๋ณด๋„ˆ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค ipa-cp-loop-ํžŒํŠธ-๋ณด๋„ˆ์Šค ~๋กœ
ํ›„๋ณด์ž์˜ ์ˆ˜์ต์„ฑ ์ ์ˆ˜.

ipa-cp-array-index-ํžŒํŠธ-๋ณด๋„ˆ์Šค
IPA-CP๊ฐ€ ๋ณต์ œ ํ›„๋ณด๊ฐ€ ์–ด๋ ˆ์ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋ผ๊ณ  ๊ฒฐ์ •ํ•  ๋•Œ
์•Œ๋ ค์ง„ ์•ก์„ธ์Šค, ๊ทธ๊ฒƒ์€ ๋ณด๋„ˆ์Šค๋ฅผ ์ถ”๊ฐ€ ipa-cp-array-index-ํžŒํŠธ-๋ณด๋„ˆ์Šค ~๋กœ
ํ›„๋ณด์ž์˜ ์ˆ˜์ต์„ฑ ์ ์ˆ˜.

ipa-max-aa-๋‹จ๊ณ„
๊ธฐ๋Šฅ ๋ณธ์ฒด๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋™์•ˆ IPA-CP๋Š” ๋ณ„์นญ ๋ถ„์„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ด์ง€ ์•Š๊ธฐ ์œ„ํ•ด
๊ฑฐ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ๋ถ„์„ํ•˜๋ฉด ํฌ๊ธฐํ•˜๊ณ  ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€
๊ฒ€ํ†  ipa-max-aa-๋‹จ๊ณ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ช…๋ น๋ฌธ.

lto ํŒŒํ‹ฐ์…˜
WHOPR ์ปดํŒŒ์ผ ์ค‘์— ์ƒ์„ฑ๋˜๋Š” ์›ํ•˜๋Š” ํŒŒํ‹ฐ์…˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. NS
ํŒŒํ‹ฐ์…˜ ์ˆ˜๋Š” ์ปดํŒŒ์ผ์— ์‚ฌ์šฉ๋˜๋Š” CPU ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 32์ž…๋‹ˆ๋‹ค.

lto-์ตœ์†Œ ํŒŒํ‹ฐ์…˜
WHOPR์— ๋Œ€ํ•œ ์ตœ์†Œ ํŒŒํ‹ฐ์…˜ ํฌ๊ธฐ(์˜ˆ์ƒ ์ง€์นจ). ์ด๊ฒƒ์€ ๋ฐฉ์ง€
์•„์ฃผ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋„ˆ๋ฌด ๋งŽ์€ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๋น„์šฉ.

cxx-max-๋„ค์ž„์ŠคํŽ˜์ด์Šค-for-diagnostic-help
C++ ์ด๋ฆ„ ์กฐํšŒ ์‹œ ์ œ์•ˆ์„ ์ฐธ์กฐํ•  ์ตœ๋Œ€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ˆ˜
์‹๋ณ„์ž์— ๋Œ€ํ•ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1000์ž…๋‹ˆ๋‹ค.

์‹ฑํฌ ์ฃผํŒŒ์ˆ˜ ์ž„๊ณ„๊ฐ’
๋Œ€์ƒ ๋ธ”๋ก์˜ ์ตœ๋Œ€ ์ƒ๋Œ€ ์‹คํ–‰ ๋นˆ๋„(๋ฐฑ๋ถ„์œจ)
๋ช…๋ น๋ฌธ ์‹ฑํ‚น์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ช…๋ น๋ฌธ์˜ ์›๋ž˜ ๋ธ”๋ก์— ์ƒ๋Œ€์ 
์„ฑ๋ช…. ์ˆซ์ž๊ฐ€ ํด์ˆ˜๋ก ๋” ๊ณต๊ฒฉ์ ์ธ ๋ฌธ ์‹ฑํฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 75์ž…๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ํ”ผ์—ฐ์‚ฐ์ž๋Š” ํ›จ์”ฌ ๋” ์ˆ˜์ต์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋ผ์•‰์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ ๋งค์žฅ ์ˆ˜
๋งค๋ชฐ๋  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด๋ถ€ ์ €์žฅ์†Œ ์Œ์˜ ์ตœ๋Œ€ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฒฝ์šฐ 0์œผ๋กœ ์„ค์ •
๋ฒกํ„ฐํ™”(-ftree ๋ฒกํ„ฐํ™”) ๋˜๋Š” if ๋ณ€ํ™˜(-ftree-loop-if-๋ณ€ํ™˜)
๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.

ํ—ˆ์šฉ ์ €์žฅ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์Šค
์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์ด ์ƒ์ ์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๊ฒฝ์Ÿ์„ ๋„์ž…ํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉํ•˜๋ ค๋ฉด 1๋กœ ์„ค์ •ํ•˜๊ณ ,
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -์˜คํŒŒ์ŠคํŠธ.

์ผ€์ด์Šค ๊ฐ’ ์ž„๊ณ„๊ฐ’
์ ํ”„ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์˜ ์ตœ์†Œ ์ˆ˜
์กฐ๊ฑด๋ถ€ ๊ฐ€์ง€์˜ ๋‚˜๋ฌด ๋Œ€์‹ . ๊ฐ’์ด 0์ด๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๊ณ„. ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.

ํŠธ๋ฆฌ ์žฌ์—ฐ๊ฒฐ ๋„ˆ๋น„
์žฌ์—ฐ๊ด€ ํŠธ๋ฆฌ์—์„œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋Š” ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์ƒ ์ข…์† ํœด๋ฆฌ์Šคํ‹ฑ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ œ๋กœ ๊ฐ’.

์ผ์ • ์••๋ ฅ ์•Œ๊ณ ๋ฆฌ์ฆ˜
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‘ ๊ฐ€์ง€ ๊ตฌํ˜„ ์ค‘์—์„œ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. -fsched-์••๋ ฅ. ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1
์›๋ž˜ ๊ตฌํ˜„์ด๋ฉฐ ๋ช…๋ น์ด
์žฌ์ฃผ๋ฌธ ์ค‘์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2๋Š”
์•Œ๊ณ ๋ฆฌ์ฆ˜ 1์—์„œ ์ทจํ•œ ๋น„๊ต์  ๋ณด์ˆ˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๋‹ค์†Œ ๊ณต๊ฒฉ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹
๊ธฐ๋ณธ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹. ๊ฐ–๋Š” ๊ฒƒ์— ๋” ํฌ๊ฒŒ ์˜์กดํ•œ๋‹ค.
์ผ๋ฐ˜ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ ๋ฐ ์ •ํ™•ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ์••๋ ฅ ๋“ฑ๊ธ‰. ๋ณด๋‹ค ํ•˜์ดํŒŒ-sched.c
์ž์„ธํ•œ ๋‚ด์šฉ์€ GCC ์†Œ์Šค์—์„œ ํ™•์ธํ•˜์„ธ์š”.

๊ธฐ๋ณธ ์„ ํƒ์€ ๋Œ€์ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ตœ๋Œ€-slsr-cand-์Šค์บ”
๊ตฌ์ง ์‹œ ๊ณ ๋ ค๋˜๋Š” ๊ธฐ์กด ํ›„๋ณด์ž์˜ ์ตœ๋Œ€ ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด ์ง์„  ๊ฐ•๋„ ๊ฐ์†Œ ํ›„๋ณด์— ๋Œ€ํ•œ ๊ธฐ์ดˆ.

์•„์‚ฐ๊ธ€๋กœ๋ฒŒ์Šค
์ „์—ญ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฐ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณดํ˜ธ๋Š”
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fsanitize=์ฃผ์†Œ ์˜ต์…˜. ์ „์—ญ ๋น„ํ™œ์„ฑํ™”
๊ฐœ์ฒด ๋ณดํ˜ธ ์‚ฌ์šฉ --๋งค๊ฐœ๋ณ€์ˆ˜ ์•„์‚ฐ-๊ธ€๋กœ๋ฒŒ=0.

์•„์‚ฐ ์Šคํƒ
์Šคํƒ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฐ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณดํ˜ธ๋Š”
์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ-fsanitize=์ฃผ์†Œ. ์Šคํƒ ๋ณดํ˜ธ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
--๋งค๊ฐœ๋ณ€์ˆ˜ ์•„์‚ฐ ์Šคํƒ=0 ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์•„์‚ฐ-์•…๊ธฐ-์ฝ๊ธฐ
๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐ์— ๋Œ€ํ•œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฐ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณดํ˜ธ๋Š”
์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fsanitize=์ฃผ์†Œ. ๋ฉ”๋ชจ๋ฆฌ ์ฝ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
๋ณดํ˜ธ ์‚ฌ์šฉ --๋งค๊ฐœ๋ณ€์ˆ˜ ์•„์‚ฐ-์•…๊ธฐ-์ฝ๊ธฐ=0.

์•„์‚ฐ-์•…๊ธฐ-์“ฐ๊ธฐ
๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ์— ๋Œ€ํ•œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฐ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณดํ˜ธ๋Š”
์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ -fsanitize=์ฃผ์†Œ. ๋ฉ”๋ชจ๋ฆฌ ์“ฐ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
๋ณดํ˜ธ ์‚ฌ์šฉ --๋งค๊ฐœ๋ณ€์ˆ˜ ์•„์‚ฐ-์•…๊ธฐ-์“ฐ๊ธฐ=0 ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์•„์‚ฐ-๋ฉ”๋ฏผํŠธ๋ฆฐ
๋‚ด์žฅ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ณดํ˜ธ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’ -fsanitize=์ฃผ์†Œ. ๋‚ด์žฅ ๊ธฐ๋Šฅ ๋ณดํ˜ธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
์‚ฌ์šฉ --๋งค๊ฐœ๋ณ€์ˆ˜ ์•„์‚ฐ-๋ฉ”๋ฏผํŠธ๋ฆฐ=0.

asan-์ด์šฉ ํ›„-๋ฐ˜ํ™˜
๋ฐ˜ํ’ˆ ํ›„ ์‚ฌ์šฉ ๊ฐ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ณดํ˜ธ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’ -fsanitize=์ฃผ์†Œ ์˜ต์…˜. ๋ฐ˜ํ’ˆ ํ›„ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด
ํƒ์ง€ ์‚ฌ์šฉ --๋งค๊ฐœ๋ณ€์ˆ˜ ์•„์‚ฐ-๋ฐ˜ํ™˜ ํ›„ ์‚ฌ์šฉ=0.

asan-๊ณ„์ธก-ํ†ตํ™” ์ž„๊ณ„๊ฐ’
๊ณ„์ธก ์ค‘์ธ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ์ˆ˜๊ฐ€ ๋‹ค์Œ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ
์ด ๋ฒˆํ˜ธ๋Š” ์ธ๋ผ์ธ ๊ฒ€์‚ฌ ๋Œ€์‹  ์ฝœ๋ฐฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: ์ธ๋ผ์ธ ์ฝ”๋“œ ๋น„ํ™œ์„ฑํ™”
์‚ฌ์šฉ --๋งค๊ฐœ๋ณ€์ˆ˜ asan-๊ณ„์ธก-with-call-์ž„๊ณ„๊ฐ’=0.

chkp-max-ctor-ํฌ๊ธฐ
ํฌ์ธํ„ฐ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ธฐ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์ •์  ์ƒ์„ฑ์ž๋Š” ๋งค์šฐ ์ปค์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ
์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. -O1 ๊ทธ๋ฆฌ๊ณ  ๋” ๋†’์€. ์ด๊ฒƒ
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ƒ์„ฑ๋œ ๋‹จ์ผ ์ƒ์„ฑ์ž์˜ ์ตœ๋Œ€ ๋ช…๋ น๋ฌธ ์ˆ˜์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 5000์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€-fsm-์Šค๋ ˆ๋“œ-๊ฒฝ๋กœ-insns
์œ ํ•œ ์ƒํƒœ์—์„œ ๋ธ”๋ก์„ ๋ณต์ œํ•  ๋•Œ ๋ณต์‚ฌํ•  ์ตœ๋Œ€ ๋ช…๋ น์–ด ์ˆ˜
์˜คํ† ๋งˆํ†ค ์ ํ”„ ์Šค๋ ˆ๋“œ ๊ฒฝ๋กœ. ๊ธฐ๋ณธ๊ฐ’์€ 100์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ fsm ์Šค๋ ˆ๋“œ ๊ธธ์ด
์œ ํ•œ ์ƒํƒœ ์˜คํ† ๋งˆํ†ค ์ ํ”„ ์Šค๋ ˆ๋“œ ๊ฒฝ๋กœ์˜ ์ตœ๋Œ€ ๊ธฐ๋ณธ ๋ธ”๋ก ์ˆ˜์ž…๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ fsm ์Šค๋ ˆ๋“œ ๊ฒฝ๋กœ
์œ ํ•œ ์ƒํƒœ ์ž๋™ ์žฅ์น˜์— ๋Œ€ํ•ด ์ƒ์„ฑํ•  ์ƒˆ ์ ํ”„ ์Šค๋ ˆ๋“œ ๊ฒฝ๋กœ์˜ ์ตœ๋Œ€ ์ˆ˜์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 50์ž…๋‹ˆ๋‹ค.

์˜ต์…˜ ์ œ์–ด ์ „์—, ์ „ ์ฒ˜๋ฆฌ๊ธฐ
์ด ์˜ต์…˜์€ ์‹ค์ œ ์‹คํ–‰ ์ „์— ๊ฐ C ์†Œ์Šค ํŒŒ์ผ์—์„œ ์‹คํ–‰๋˜๋Š” C ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘.

๋‹น์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -E ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ์ „์ฒ˜๋ฆฌ ์™ธ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ต์…˜ ์ค‘ ์ผ๋ถ€
ํ•จ๊ป˜ ๋งŒ ์˜๋ฏธ -E ์ „์ฒ˜๋ฆฌ๊ธฐ ์ถœ๋ ฅ์ด
์‹ค์ œ ์ปดํŒŒ์ผ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์›Œ,์„ ํƒ๊ถŒ
๋‹น์‹ ์ด ์‚ฌ์šฉํ•  ์ˆ˜ -์›Œ,์„ ํƒ๊ถŒ ์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์šฐํšŒํ•˜๊ณ  ํ†ต๊ณผ ์„ ํƒ๊ถŒ ์ง์ ‘์ ์œผ๋กœ
์ „์ฒ˜๋ฆฌ๊ธฐ์—. ๋งŒ์•ฝ์— ์„ ํƒ๊ถŒ ์‰ผํ‘œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‹ค์Œ ์œ„์น˜์—์„œ ์—ฌ๋Ÿฌ ์˜ต์…˜์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.
์‰ผํ‘œ. ๊ทธ๋Ÿฌ๋‚˜ ๋งŽ์€ ์˜ต์…˜์ด ์ˆ˜์ •, ๋ฒˆ์—ญ ๋˜๋Š” ํ•ด์„๋ฉ๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๊ธฐ๋กœ ์ „๋‹ฌ๋˜๊ธฐ ์ „์— ์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„, -Wp ๊ฐ•์ œ๋กœ ์šฐํšŒ
์ด ๋‹จ๊ณ„. ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ์ง์ ‘ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ
๋ณ€๊ฒฝํ•˜๋ฏ€๋กœ ๊ฐ€๋Šฅํ•˜๋ฉด ์‚ฌ์šฉ์„ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -Wp ๊ทธ๋ฆฌ๊ณ  ์šด์ „์ž๊ฐ€ ํ•ธ๋“ค์„ ์žก๋„๋ก ํ•˜์‹ญ์‹œ์˜ค.
๋Œ€์‹  ์˜ต์…˜.

-์—‘์Šคํ”„๋ฆฌํ”„๋กœ์„ธ์„œ ์„ ํƒ๊ถŒ
ํŒจ์Šค ์„ ํƒ๊ถŒ ์ „์ฒ˜๋ฆฌ๊ธฐ์— ๋Œ€ํ•œ ์˜ต์…˜์œผ๋กœ. ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์— ๊ณต๊ธ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GCC๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํŠน์ • ์ „์ฒ˜๋ฆฌ๊ธฐ ์˜ต์…˜.

์ธ์ˆ˜๋ฅผ ์ทจํ•˜๋Š” ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -์—‘์Šคํ”„๋ฆฌํ”„๋กœ์„ธ์„œ
๋‘ ๋ฒˆ, ์˜ต์…˜์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ, ์ธ์ˆ˜์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ.

-ํ†ตํ•ฉ๋˜์ง€ ์•Š์€-cpp
์ปดํŒŒ์ผ ์ „์— ๋ณ„๋„์˜ ํŒจ์Šค๋กœ ์ „์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ ํ† ํฐํ™” ๋ฐ ๊ตฌ๋ฌธ ๋ถ„์„์˜ ํ†ตํ•ฉ๋œ ๋ถ€๋ถ„์œผ๋กœ ์‚ฌ์ „ ์ฒ˜๋ฆฌ. ์ด ์˜ต์…˜์˜ ๊ฒฝ์šฐ
์ ์ ˆํ•œ ์–ธ์–ด ํ”„๋ŸฐํŠธ ์—”๋“œ(cc1, ์”จ์›ํ”Œ๋Ÿฌ์Šค๋ฐ cc1obj C, C++์˜ ๊ฒฝ์šฐ,
๋ฐ Objective-C)๋Š” ๋Œ€์‹  ์ „์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•œ ๋ฒˆ๋งŒ ๋‘ ๋ฒˆ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์ „ ์ฒ˜๋ฆฌ๋œ ์ž…๋ ฅ์˜ ์‹ค์ œ ์ปดํŒŒ์ผ์„ ์œ„ํ•ด ํ•œ ๋ฒˆ. ์ด ์˜ต์…˜์€ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๊ณผ ํ•จ๊ป˜ -B or -์‹ธ๊ฐœ ๋Œ€์ฒด ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜ ๋˜๋Š”
์ •์ƒ์ ์ธ ์ „์ฒ˜๋ฆฌ์™€ ์ „์ฒ˜๋ฆฌ ์‚ฌ์ด์— ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค์˜ ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘.

-D name
์‚ฌ์ „ ์ •์˜ name ๋งคํฌ๋กœ๋กœ ์ •์˜ 1.

-D name=์ •์˜
๋‚ด์šฉ ์ •์˜ ํ† ํฐํ™” ๋ฐ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
๋ฒˆ์—ญ ๋‹จ๊ณ„ XNUMX #๋ฐํžˆ๋‹ค ์ง€๋ น. ํŠนํžˆ, ์ •์˜๋Š”
ํฌํ•จ๋œ ๊ฐœํ–‰ ๋ฌธ์ž๋กœ ์ž˜๋ฆฝ๋‹ˆ๋‹ค.

์‰˜ ๋˜๋Š” ์‰˜๊ณผ ์œ ์‚ฌํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‰˜์˜ ์ธ์šฉ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๋ฐฑ๊ณผ ๊ฐ™์€ ๋ฌธ์ž๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.
์‰˜ ๊ตฌ๋ฌธ์˜ ์˜๋ฏธ.

๋ช…๋ น์ค„์—์„œ ํ•จ์ˆ˜์™€ ๊ฐ™์€ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•˜๋ ค๋ฉด ํ•ด๋‹น ์ธ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.
๋“ฑํ˜ธ(์žˆ๋Š” ๊ฒฝ์šฐ) ์•ž์— ๊ด„ํ˜ธ๊ฐ€ ์žˆ๋Š” ๋ชฉ๋ก. ๊ด„ํ˜ธ๋Š”
๋Œ€๋ถ€๋ถ„์˜ ์‰˜์— ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์˜ต์…˜์„ ์ธ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ sh ๊ณผ CSH,
-NS'name(์ธ์ˆ˜...)=์ •์˜' ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-D ๊ณผ -U ์˜ต์…˜์€ ๋ช…๋ น์ค„์— ์ œ๊ณต๋œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘
-๋งคํฌ๋กœ ํŒŒ์ผ ๊ณผ -ํฌํ•จ ํŒŒ์ผ ์˜ต์…˜์€ ๊ฒฐ๊ตญ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค -D ๊ณผ -U ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-U name
์ด์ „ ์ •์˜ ์ทจ์†Œ name, ๋‚ด์žฅ ๋˜๋Š” ์ œ๊ณต -D ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-์–ธ๋ฐํ”„
์‹œ์Šคํ…œ ํŠน์ • ๋˜๋Š” GCC ํŠน์ • ๋งคํฌ๋กœ๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ฏธ๋ฆฌ ์ •์˜๋œ ํ‘œ์ค€
๋งคํฌ๋กœ๋Š” ์ •์˜๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

-I DIR
๋””๋ ‰ํ† ๋ฆฌ ์ถ”๊ฐ€ DIR ํ—ค๋” ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฆ„์ด ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ -I ํ‘œ์ค€ ์‹œ์Šคํ…œ์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ธฐ ์ „์— ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค.
๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ฒฝ์šฐ DIR ํ‘œ์ค€ ์‹œ์Šคํ…œ ํฌํ•จ ๋””๋ ‰ํ† ๋ฆฌ์ธ ๊ฒฝ์šฐ ์˜ต์…˜์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฒ€์ƒ‰ ์ˆœ์„œ์™€ ํŠน์ˆ˜ ์ฒ˜๋ฆฌ๊ฐ€
์˜ ์‹œ์Šคํ…œ ํ—ค๋”๋Š” ํŒจ๋ฐฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— DIR "="๋กœ ์‹œ์ž‘ํ•˜๋ฉด "="๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
sysroot ์ ‘๋‘์‚ฌ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค --sysroot ๊ณผ -isysroot.

-o ํŒŒ์ผ
์— ์ถœ๋ ฅ ์“ฐ๊ธฐ ํŒŒ์ผ. ์ง€์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์œผ๋กœ
์ธ์ˆ˜ CPP. GCC ์˜ต์…˜์ด ์•„๋‹Œ ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ํ•ด์„์ด ์žˆ๋Š” ๊ฒฝ์šฐ
๊ทธ๋ž˜์„œ ๋‹น์‹ ์€ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค -o ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-๋ฒฝ
์ผ๋ฐ˜ ์ฝ”๋“œ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์„ ํƒ์  ๊ฒฝ๊ณ ๋ฅผ ์ผญ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด
is -๋Œ“๊ธ€, -์ €์„œ, -W๋ฉ€ํ‹ฐ๋ฌธ์ž ๋ฐ ์ •์ˆ˜ ์Šน๊ฒฉ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋กœ ์ธํ•ด
"#if" ํ‘œํ˜„์˜ ๊ธฐํ˜ธ ๋ณ€๊ฒฝ. ๋งŽ์€ ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ๊ฒฝ๊ณ ๊ฐ€
๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์œผ๋ฉฐ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.

-๋Œ“๊ธ€
-W๋Œ“๊ธ€
์ฃผ์„ ์‹œ์ž‘ ์‹œํ€€์Šค ๋•Œ๋งˆ๋‹ค ๊ฒฝ๊ณ  /* ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค /* ๋Œ“๊ธ€ ๋˜๋Š” ์–ธ์ œ๋“ ์ง€
๋ฐฑ์Šฌ๋ž˜์‹œ-๊ฐœํ–‰ ๋ฌธ์ž๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. // ๋…ผํ‰. (๋‘ ํ˜•ํƒœ ๋ชจ๋‘ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.)

-์ €์„œ
์ฃผ์„์— ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ผ์ค‘์ž๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์˜๋ฏธ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜
์ด์Šค์ผ€์ดํ”„๋œ ๊ฐœํ–‰ ๋ฌธ์ž(??/ ์ค„ ๋์—์„œ) ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฃผ์„์ด ์‹œ์ž‘๋˜๊ฑฐ๋‚˜ ๋๋‚˜๋Š” ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ,
์ด์Šค์ผ€์ดํ”„๋œ ์ค„ ๋ฐ”๊ฟˆ์€ ์ฃผ์„ ๋‚ด๋ถ€์— ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ -๋ฒฝ. ๋ฉด -๋ฒฝ ์ด ์˜ต์…˜์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
trigraphs๊ฐ€ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š๋Š” ํ•œ. ๊ฒฝ๊ณ  ์—†์ด trigraph ๋ณ€ํ™˜์„ ์–ป์œผ๋ ค๋ฉด
๋‹ค๋ฅธ -๋ฒฝ ๊ฒฝ๊ณ , ์‚ฌ์šฉ -์‚ผ๊ฐํ˜• -๋ฒฝ -Wno-trigraphs.

-์ „ํ†ต์ ์ธ
๊ธฐ์กด ๋ฐ ISO C์—์„œ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ํŠน์ • ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ
๊ธฐ์กด์˜ C์— ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์ด ์—†๊ณ  ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ISO C ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ”ผํ•ด์•ผ ํ•  ๊ตฌ์กฐ.

-๋ถ„๋ฐํ”„
๋งคํฌ๋กœ๊ฐ€ ์•„๋‹Œ ์‹๋ณ„์ž๊ฐ€ #๋งŒ์•ฝ ์ง€์‹œ๋ฌธ
๋ฐ–์˜ ํ•œ์ •๋œ. ์ด๋Ÿฌํ•œ ์‹๋ณ„์ž๋Š” XNUMX์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

-์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋งคํฌ๋กœ
์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋ณธ ํŒŒ์ผ์— ์ •์˜๋œ ๋งคํฌ๋กœ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋งคํฌ๋กœ๋Š” ์ต์ˆ™ํ•œ ๊ทธ๋ ‡๋‹ค๋ฉด
์ ์–ด๋„ ํ•œ ๋ฒˆ์€ ํ™•์žฅ๋˜๊ฑฐ๋‚˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๋งคํฌ๋กœ๊ฐ€ ์žฌ์ •์˜๋˜๊ฑฐ๋‚˜ ์ •์˜๋˜์ง€ ์•Š์€ ์‹œ์ ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ œ๊ณต ๋งคํฌ๋กœ, ๋ช…๋ น์ค„์— ์ •์˜๋œ ๋งคํฌ๋กœ ๋ฐ ์— ์ •์˜๋œ ๋งคํฌ๋กœ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  : ๋งคํฌ๋กœ๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜์ง€๋งŒ ๊ฑด๋„ˆ๋›ด ์กฐ๊ฑด๋ถ€ ๋ธ”๋ก์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ
CPP๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๋งคํฌ๋กœ ์ •์˜์˜ ๋ฒ”์œ„๋ฅผ ๊ฑด๋„ˆ๋›ด ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
๋ธ”๋ก. ๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋”๋ฏธ ์‚ฌ์šฉ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

#the_macro_causing_the_warning์„ ์ •์˜ํ•œ ๊ฒฝ์šฐ
#endif

-์›ฌ๋””ํ”„ ๋ผ๋ฒจ
์–ธ์ œ๋“ ์ง€ ๊ฒฝ๊ณ  #๊ทธ๋ฐ–์— ๋˜๋Š” #endif ํ…์ŠคํŠธ๊ฐ€ ๋’ค๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
ํ˜•์‹์˜ ์ฝ”๋“œ

#๋งŒ์•ฝ FOO๋ผ๋ฉด
...
#else ํ‘ธ
...
#endif foo

๋‘ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ "FOO"๋Š” ์ฃผ์„์— ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ์ด์ „ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
์ด ๊ฒฝ๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-์›Œ๋Ÿฌ
๋ชจ๋“  ๊ฒฝ๊ณ ๋ฅผ ํ•˜๋“œ ์˜ค๋ฅ˜๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ์†Œ์Šค ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-Wsystem ํ—ค๋”
์‹œ์Šคํ…œ ํ—ค๋”์˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ž์‹ ์˜ ์ฝ”๋“œ์— ์žˆ๋Š” ๋ฒ„๊ทธ๋ฅผ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ฑ…์ž„์ด ์žˆ๋Š” ๊ฒฝ์šฐ
๋„์„œ๊ด€, ๋‹น์‹ ์€ ๊ทธ๋“ค์„๋ณด๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-w GNU CPP๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒฝ๊ณ ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-ํŽ˜๋‹จ ํ‹ฑ
C ํ‘œ์ค€์— ๋‚˜์—ด๋œ ๋ชจ๋“  ํ•„์ˆ˜ ์ง„๋‹จ์„ ๋ฐœํ–‰ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋“ค ์ค‘ ์ผ๋ถ€๋Š” ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค
๋ฌดํ•ดํ•œ ์ฝ”๋“œ์—์„œ ์ž์ฃผ ํŠธ๋ฆฌ๊ฑฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ out.

- ํ˜„ํ•™์  ์˜ค๋ฅ˜
๋ชจ๋“  ํ•„์ˆ˜ ์ง„๋‹จ์„ ์‹คํ–‰ํ•˜๊ณ  ๋ชจ๋“  ํ•„์ˆ˜ ์ง„๋‹จ์„ ์˜ค๋ฅ˜๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์—๋Š” GCC๊ฐ€ ๋‹ค์Œ ์—†์ด ๋ฐœํ–‰ํ•˜๋Š” ํ•„์ˆ˜ ์ง„๋‹จ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. -ํŽ˜๋‹จ ํ‹ฑ ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ .

-M ์ „์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋Œ€์‹ ์— ์ ํ•ฉํ•œ ๊ทœ์น™์„ ์ถœ๋ ฅ ํ™•์ธ
๊ธฐ๋ณธ ์†Œ์Šค ํŒŒ์ผ์˜ ์ข…์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ํ•˜๋‚˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
ํ™•์ธ ํ•ด๋‹น ์†Œ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ฐœ์ฒด ํŒŒ์ผ ์ด๋ฆ„, ์ฝœ๋ก  ๋ฐ ์ด๋ฆ„์„ ํฌํ•จํ•˜๋Š” ๊ทœ์น™
๋‹ค์Œ์—์„œ ์˜ค๋Š” ํŒŒ์ผ์„ ํฌํ•จํ•˜์—ฌ ํฌํ•จ๋œ ๋ชจ๋“  ํŒŒ์ผ์˜ -ํฌํ•จ or -๋งคํฌ๋กœ ๋ช…๋ น-
๋ผ์ธ ์˜ต์…˜.

๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ( -์‚ฐ or -MQ), ๊ฐœ์ฒด ํŒŒ์ผ ์ด๋ฆ„์€
์ ‘๋ฏธ์‚ฌ๊ฐ€ ๊ฐœ์ฒด ํŒŒ์ผ ์ ‘๋ฏธ์‚ฌ๋กœ ๋Œ€์ฒด๋˜๊ณ  ์ž„์˜์˜ ์ ‘๋ฏธ์‚ฌ๊ฐ€ ์žˆ๋Š” ์†Œ์Šค ํŒŒ์ผ์˜ ์ด๋ฆ„
์„ ํ–‰ ๋””๋ ‰ํ† ๋ฆฌ ๋ถ€๋ถ„์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํฌํ•จ๋œ ํŒŒ์ผ์ด ๋งŽ์€ ๊ฒฝ์šฐ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ค„๋กœ ๋ถ„ํ•  \- ๊ฐœํ–‰. ๊ทœ์น™์—๋Š” ๋ช…๋ น์ด ์—†์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์„ ์–ต์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -dM. ํ”ผํ•˜๋ ค๋ฉด
์ด๋Ÿฌํ•œ ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์„ ์ข…์†์„ฑ ๊ทœ์น™๊ณผ ํ˜ผํ•ฉํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ข…์†์„ฑ ์ถœ๋ ฅ ํŒŒ์ผ -MF, ๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
DEPENDENCIES_OUTPUT. ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ๋ฐ˜ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๊ณ„์† ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
์ •์ƒ์ž…๋‹ˆ๋‹ค.

ํ†ต๊ณผ -M ์šด์ „์ž์—๊ฒŒ ์˜๋ฏธ -E, ๊ทธ๋ฆฌ๊ณ  ์•”์‹œ์ ์œผ๋กœ ๊ฒฝ๊ณ ๋ฅผ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค. -w.

-MM ์ฒ˜๋Ÿผ -M ๊ทธ๋Ÿฌ๋‚˜ ์‹œ์Šคํ…œ ํ—ค๋” ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํ—ค๋” ํŒŒ์ผ์€ ์–ธ๊ธ‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ด๋Ÿฌํ•œ ํ—ค๋”์—์„œ ์ง์ ‘ ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ ํฌํ•จ๋œ ํ—ค๋” ํŒŒ์ผ๋„ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊บพ์‡  ๊ด„ํ˜ธ ๋˜๋Š” ํฐ ๋”ฐ์˜ดํ‘œ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. #ํฌํ•จ
์ง€์‹œ๋ฌธ ์ž์ฒด๋Š” ํ•ด๋‹น ํ—ค๋”๊ฐ€ ๋‹ค์Œ์— ๋‚˜ํƒ€๋‚ ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -MM
์˜์กด์„ฑ ์ถœ๋ ฅ. ์ด๊ฒƒ์€ GCC ๋ฒ„์ „ 3.0 ๋ฐ
์ผ์ฐ์ด.

-MF ํŒŒ์ผ
ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ -M or -MM, ์ข…์†์„ฑ์„ ์“ธ ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ -MF
์Šค์œ„์น˜๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์ „์†กํ–ˆ์„ ๋™์ผํ•œ ์œ„์น˜๋กœ ๊ทœ์น™์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๋œ ์ถœ๋ ฅ.

๋“œ๋ผ์ด๋ฒ„ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -MD or -MMD, -MF ๊ธฐ๋ณธ ์ข…์†์„ฑ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋ฌผ ํŒŒ์ผ.

-mg ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ -M ์˜์กด์„ฑ ์ƒ์„ฑ ์š”์ฒญ, -mg ๊ฐ€์ •ํ•˜๋‹ค
๋ˆ„๋ฝ๋œ ํ—ค๋” ํŒŒ์ผ์€ ์ƒ์„ฑ๋œ ํŒŒ์ผ์ด๋ฉฐ ์ด๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ข…์†์„ฑ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ข…์†์„ฑ ํŒŒ์ผ ์ด๋ฆ„์€ "#include"์—์„œ ์ง์ ‘ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์ง€์‹œ๋ฌธ. -mg ๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๋œ ์ถœ๋ ฅ์„ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค.
๋ˆ„๋ฝ๋œ ํ—ค๋” ํŒŒ์ผ์€ ์ด๊ฒƒ์„ ์“ธ๋ชจ์—†๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ makefile์˜ ์ž๋™ ์—…๋ฐ์ดํŠธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

- MP ์ด ์˜ต์…˜์€ CPP๊ฐ€ ๋‹ค์Œ ์ด์™ธ์˜ ๊ฐ ์ข…์†์„ฑ์— ๋Œ€ํ•ด ๊ฐ€์งœ ๋Œ€์ƒ์„ ์ถ”๊ฐ€ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”์ธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ๊ฐ์ด ์•„๋ฌด๊ฒƒ๋„ ์˜์กดํ•˜์ง€ ์•Š๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋”๋ฏธ ๊ทœ์น™์€ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
ํ™•์ธ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๊ณ  ํ—ค๋” ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋ฉด ์ œ๊ณต Makefile ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ผ๋ฐ˜์ ์ธ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

test.o: test.c test.h

test.h :

-์‚ฐ ๋ชฉํ‘œ
์ข…์†์„ฑ ์ƒ์„ฑ์—์„œ ๋‚ด๋ณด๋‚ธ ๊ทœ์น™์˜ ๋Œ€์ƒ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ CPP๋Š”
๊ธฐ๋ณธ ์ž…๋ ฅ ํŒŒ์ผ์˜ ์ด๋ฆ„, ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ํŒŒ์ผ ์ ‘๋ฏธ์‚ฌ ์‚ญ์ œ
๋“ฑ .c, ํ”Œ๋žซํผ์˜ ์ผ๋ฐ˜์ ์ธ ๊ฐœ์ฒด ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

An -์‚ฐ ์˜ต์…˜์€ ๋Œ€์ƒ์„ ์ •ํ™•ํžˆ ์ง€์ •ํ•œ ๋ฌธ์ž์—ด๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋„ค๊ฐ€ ์›ํ•œ๋‹ค๋ฉด
์—ฌ๋Ÿฌ ๋Œ€์ƒ์„ ๋‹จ์ผ ์ธ์ˆ˜๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์‚ฐ, ๋˜๋Š” ์—ฌ๋Ÿฌ
-์‚ฐ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, -์‚ฐ '$(objpfx)foo.o' ์ค„ ์ˆ˜๋„

$(objpfx)foo.o: foo.c

-MQ ๋ชฉํ‘œ
๊ณผ ๋™์ผ -์‚ฐ, ๊ทธ๋Ÿฌ๋‚˜ Make์— ํŠน๋ณ„ํ•œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ธ์šฉํ•ฉ๋‹ˆ๋‹ค.
-MQ '$(objpfx)foo.o' ์ œ๊ณต

$$(objpfx)foo.o: foo.c

๊ธฐ๋ณธ ๋Œ€์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ œ๊ณต๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์ž๋™์œผ๋กœ ์ธ์šฉ๋ฉ๋‹ˆ๋‹ค. -MQ.

-MD -MD ์— ํ•ด๋‹นํ•˜๋Š” -M -MF ํŒŒ์ผ์ œ์™ธํ•˜๊ณ  -E ์•”์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šด์ „์‚ฌ
๊ฒฐ์ •ํ•˜๋‹ค ํŒŒ์ผ ์—ฌ๋ถ€์— ๋”ฐ๋ผ -o ์˜ต์…˜์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋“œ๋ผ์ด๋ฒ„๋Š”
์ธ์ˆ˜์ด์ง€๋งŒ ์ ‘๋ฏธ์‚ฌ .d, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž…๋ ฅ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  .d ์ ‘๋ฏธ์‚ฌ.

If -MD ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค -E, ์–ด๋–ค -o ์Šค์œ„์น˜๋Š” ๋‹ค์Œ์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ด๋ฉ๋‹ˆ๋‹ค.
์ข…์†์„ฑ ์ถœ๋ ฅ ํŒŒ์ผ์ด์ง€๋งŒ ์—†์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ -E, ๊ฐ๊ฐ -o ์ง€์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ด๋œ๋‹ค
๋Œ€์ƒ ๊ฐœ์ฒด ํŒŒ์ผ.

์ดํ›„ -E ์•”์‹œ๋˜์ง€ ์•Š์œผ๋ฉฐ, -MD ์ข…์†์„ฑ ์ถœ๋ ฅ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ๊ณผ์ •์˜ ๋ถ€์ž‘์šฉ

-MMD
์ฒ˜๋Ÿผ -MD ์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ์ด ์•„๋‹Œ ์‚ฌ์šฉ์ž ํ—ค๋” ํŒŒ์ผ๋งŒ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ .

-fpch-deps
๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด ํ”Œ๋ž˜๊ทธ๋กœ ์ธํ•ด ์ข…์†์„ฑ ์ถœ๋ ฅ ํ”Œ๋ž˜๊ทธ๊ฐ€
๋˜ํ•œ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”์˜ ์ข…์†์„ฑ์—์„œ ํŒŒ์ผ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ
๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”๊ฐ€ ๋‚˜์—ด๋˜๊ณ  ํ—ค๋”๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ํŒŒ์ผ์ด ๋‚˜์—ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด๋‹น ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-fpch-์ „์ฒ˜๋ฆฌ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”๋ฅผ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -E. ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค
"#pragma", "#pragma GCC pch_preprocess "ํŒŒ์ผ ์ด๋ฆ„"" ์žฅ์†Œ๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์ถœ๋ ฅ์—์„œ
๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”๊ฐ€ ๋ฐœ๊ฒฌ๋œ ์œ„์น˜ ๋ฐ ํŒŒ์ผ ์ด๋ฆ„. ์–ธ์ œ -f์ „์ฒ˜๋ฆฌ ์—
์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ์ด "#pragma"๋ฅผ ์ธ์‹ํ•˜๊ณ  PCH๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „ ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ ์ถœ๋ ฅ์€
GCC์— ๋Œ€ํ•œ ์ž…๋ ฅ์œผ๋กœ ์ •๋ง ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์— ์˜ํ•ด ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. - ์ž„์‹œ ์ €์žฅ.

์ด "#pragma"๋ฅผ ์ž์‹ ์˜ ์ฝ”๋“œ์— ์ž‘์„ฑํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ ํŽธ์ง‘ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
PCH ํŒŒ์ผ์ด ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ filename. ํŒŒ์ผ ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ ˆ๋Œ€ ๋˜๋Š” GCC์˜ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ๋Œ€์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-x c
-x C ++
-x ๋ชฉ์  -c
-x cpp ์–ด์…ˆ๋ธ”๋Ÿฌ
์†Œ์Šค ์–ธ์–ด(C, C++, Objective-C ๋˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฑด ํ• ๋ง์ด ์—†๋‹ค
ํ‘œ์ค€ ์ค€์ˆ˜ ๋˜๋Š” ํ™•์žฅ ์–ด๋–ค ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์„
์˜ˆ์ƒํ•˜๋‹ค. ์ด ์˜ต์…˜ ์ค‘ ์•„๋ฌด ๊ฒƒ๋„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด cpp๋Š” ๋‹ค์Œ์—์„œ ์–ธ์–ด๋ฅผ ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค.
์†Œ์Šค ํŒŒ์ผ์˜ ํ™•์žฅ์ž: .c, .CC, .m๋ฐ .S. ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ผ๋ฐ˜์ ์ธ ํ™•์žฅ
C++ ๋ฐ ์–ด์…ˆ๋ธ”๋ฆฌ๋„ ์ธ์‹๋ฉ๋‹ˆ๋‹ค. cpp๊ฐ€ ํ™•์žฅ์ž๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฉด
ํŒŒ์ผ์„ C๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ  : ์ด์ „ ๋ฒ„์ „์˜ cpp๊ฐ€ ํ—ˆ์šฉ๋จ -๋ž‘ ๋‘˜ ๋‹ค ์„ ํƒํ•œ ์˜ต์…˜
์–ธ์–ด ๋ฐ ํ‘œ์ค€ ์ค€์ˆ˜ ์ˆ˜์ค€. ์ด ์˜ต์…˜์€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์™€ ์ถฉ๋Œํ•œ๋‹ค -l ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-ํ‘œ์ค€=ํ‘œ์ค€
-์•ˆ์‹œ
์ฝ”๋“œ๊ฐ€ ์ค€์ˆ˜ํ•ด์•ผ ํ•˜๋Š” ํ‘œ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ CPP๋Š” C์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ C++ ํ‘œ์ค€; ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๋ฏธ๋ž˜์— ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"c90"
"c89"
"iso9899:1990"
1990๋…„๋ถ€ํ„ฐ ISO C ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. c90 ์ด ๋ฒ„์ „์˜ ๊ด€๋ก€์ ์ธ ์•ฝ์–ด์ž…๋‹ˆ๋‹ค.
ํ‘œ์ค€.

ใ€€ -์•ˆ์‹œ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -ํ‘œ์ค€=c90.

"iso9899:199409"
1990๋…„์— ๊ฐœ์ •๋œ 1994๋…„ C ํ‘œ์ค€.

"iso9899:1999"
"c99"
"iso9899:199x"
"c9x"
1999๋…„ XNUMX์›”์— ์ถœํŒ๋œ ๊ฐœ์ •๋œ ISO C ํ‘œ์ค€.
C9X๋กœ ์•Œ๋ ค์กŒ์Šต๋‹ˆ๋‹ค.

"iso9899:2011"
"c11"
"c1x"
2011๋…„ XNUMX์›”์— ์ถœํŒ๋œ ๊ฐœ์ •๋œ ISO C ํ‘œ์ค€.
C1X๋กœ ์•Œ๋ ค์กŒ์Šต๋‹ˆ๋‹ค.

"๊ทธ๋ˆ„90"
"๊ทธ๋ˆ„89"
1990 C ํ‘œ์ค€๊ณผ GNU ํ™•์žฅ. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

"๊ทธ๋ˆ„99"
"gnu9x"
1999 C ํ‘œ์ค€๊ณผ GNU ํ™•์žฅ.

"๊ทธ๋ˆ„11"
"gnu1x"
2011 C ํ‘œ์ค€๊ณผ GNU ํ™•์žฅ.

"C++98"
1998 ISO C++ ํ‘œ์ค€ ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ.

"๊ทธ๋ˆ„++98"
๊ฐ™์€ -std = c ++ 98 ํ”Œ๋Ÿฌ์Šค GNU ํ™•์žฅ. ์ด๊ฒƒ์€ C++ ์ฝ”๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-๋‚˜๋Š”- ํฌํ•จ ๊ฒฝ๋กœ๋ฅผ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ์ง€์ •๋œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ -I ์ „์— ์˜ต์…˜ -๋‚˜๋Š”- are
"#include "๋กœ ์š”์ฒญ๋œ ํ—ค๋”๋งŒ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.ํŒŒ์ผ""; ๊ทธ๋“ค์€ ๊ฒ€์ƒ‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
"#ํฌํ•จํ•˜๋‹คํŒŒ์ผ>". ์ถ”๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ -I ์ดํ›„์˜ ์˜ต์…˜
-๋‚˜๋Š”-, ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ชจ๋‘ ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. #ํฌํ•จ ๊ฐ€์ด๋“œ ๋ผ์ธ.

๋˜ํ•œ, -๋‚˜๋Š”- ํ˜„์žฌ ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
"#include "์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ๊ฒ€์ƒ‰ ๋””๋ ‰ํ† ๋ฆฌํŒŒ์ผ"". ์ด ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-Nostdinc
ํ—ค๋” ํŒŒ์ผ์— ๋Œ€ํ•œ ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋””๋ ‰ํ† ๋ฆฌ๋งŒ
๋‹น์‹ ์€ ๋กœ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค -I ์˜ต์…˜(๋ฐ ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
ํ•ด๋‹น)์ด ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค.

-nostdinc++
C++ ๊ด€๋ จ ํ‘œ์ค€ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ—ค๋” ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋‹ค๋ฅธ ํ‘œ์ค€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์‹ญ์‹œ์˜ค. (์ด ์˜ต์…˜์€ C++๋ฅผ ๋นŒ๋“œํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋„์„œ๊ด€.)

-ํฌํ•จ ํŒŒ์ผ
๋ฐฉ๋ฒ• ํŒŒ์ผ "#include "file""์ด ๊ธฐ๋ณธ ์†Œ์Šค์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์— ๋‚˜ํƒ€๋‚œ ๊ฒƒ์ฒ˜๋Ÿผ
ํŒŒ์ผ. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒ€์ƒ‰ํ•œ ์ฒซ ๋ฒˆ์งธ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํŒŒ์ผ ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ์ž‘๋™์ž…๋‹ˆ๋‹ค
์˜ˆ๋ฐฐ ๊ทœ์น™์„œ ๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๋ฏธ๊ตญ ์—ฌํ–‰์ž of ๊ธฐ๋ณธ ์†Œ์Šค ํŒŒ์ผ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ† ๋ฆฌ. ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ
๊ฑฐ๊ธฐ์—์„œ "#include "..."" ๊ฒ€์ƒ‰ ์ฒด์ธ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค.
์ •์ƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ฒฝ์šฐ -ํฌํ•จ ์˜ต์…˜์ด ์ฃผ์–ด์ง€๋ฉด ํŒŒ์ผ์€ ์ˆœ์„œ๋Œ€๋กœ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋ช…๋ น์ค„์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

-๋งคํฌ๋กœ ํŒŒ์ผ
์ •ํ™•ํžˆ ๊ฐ™์€ -ํฌํ•จ, ์Šค์บ”์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๋ชจ๋“  ์ถœ๋ ฅ์€ ์ œ์™ธ ํŒŒ์ผ ๋˜์ ธ์ง„๋‹ค
๋–จ์–ด์ ธ์žˆ๋Š”. ์ •์˜ํ•œ ๋งคํฌ๋กœ๋Š” ์ •์˜๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋งคํฌ๋กœ๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์„ ์–ธ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ํ—ค๋”์—์„œ.

์— ์˜ํ•ด ์ง€์ •๋œ ๋ชจ๋“  ํŒŒ์ผ -๋งคํฌ๋กœ ์— ์˜ํ•ด ์ง€์ •๋œ ๋ชจ๋“  ํŒŒ์ผ๋ณด๋‹ค ๋จผ์ € ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. -ํฌํ•จ.

-idirafter DIR
๊ฒ€์ƒ‰ DIR ํ—ค๋” ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋‚ด์— ๋กœ ์ง€์ •๋œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ -I ๊ทธ๋ฆฌ๊ณ 
ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์†Œ์ง„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. DIR ๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ์‹œ์Šคํ…œ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฐฐ ๊ทœ์น™์„œ. ๋งŒ์•ฝ์— DIR "="๋กœ ์‹œ์ž‘ํ•˜๋ฉด "="๋Š” sysroot๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
์ ‘๋‘์‚ฌ; ๋ณด๋‹ค --sysroot ๊ณผ -isysroot.

-ipprefix ์ ‘๋‘์‚ฌ
์ง€์ • ์ ‘๋‘์‚ฌ ํ›„์† ์ ‘๋‘์‚ฌ๋กœ -iwith ์ ‘๋‘์‚ฌ ์˜ต์…˜. ์ ‘๋‘์–ด์˜ ๊ฒฝ์šฐ
๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ตœ์ข… /.

-iwith ์ ‘๋‘์‚ฌ DIR
-์•ž์— ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ DIR
์ถ”๊ฐ€ DIR ์ด์ „์— ์ง€์ •๋œ ์ ‘๋‘์‚ฌ์— -ipprefix, ๊ฒฐ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค
๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํฌํ•จ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. -์•ž์— ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ™์€ ์žฅ์†Œ์— ๋‘”๋‹ค. -I
์ผ ๊ฒƒ์ด๋‹ค; -iwith ์ ‘๋‘์‚ฌ ๊ทธ๊ฒƒ์„ ์–ด๋””์— ๋‘”๋‹ค -idirafter ํ•  ๊ฒƒ์ด๋‹ค.

-isysroot DIR
์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. --sysroot ์˜ต์…˜์ด์ง€๋งŒ ํ—ค๋” ํŒŒ์ผ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค(์˜ˆ์™ธ
ํ—ค๋” ํŒŒ์ผ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋‘์— ์ ์šฉ๋˜๋Š” Darwin ๋Œ€์ƒ). ์ฐธ์กฐ
--sysroot ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

-imultilib DIR
DIR ๋Œ€์ƒ๋ณ„ C++ ํ—ค๋”๋ฅผ ํฌํ•จํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-์•„์ด์‹œ์Šคํ…œ DIR
๊ฒ€์ƒ‰ DIR ํ—ค๋” ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์œผ๋กœ ์ง€์ •๋œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ ๋’ค์— -I ๊ทธ๋Ÿฌ๋‚˜ ์ „์—
ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ. ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ํ‘œ์‹œํ•˜์—ฌ ๋™์ผํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ์ทจ๊ธ‰. ๋งŒ์•ฝ์— DIR ์‹œ์ž‘
"="๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด "="๊ฐ€ sysroot ์ ‘๋‘์‚ฌ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค. ๋ณด๋‹ค --sysroot ๊ณผ
-isysroot.

- ์ธ์šฉ DIR
๊ฒ€์ƒ‰ DIR "#include "๋กœ ์š”์ฒญ๋œ ํ—ค๋” ํŒŒ์ผ์—๋งŒ ํ•ด๋‹นํŒŒ์ผ""; ๊ทธ๋“ค์€ ์•„๋‹ˆ๋‹ค
"#ํฌํ•จ"์„ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.ํŒŒ์ผ>", ๋‹ค์Œ์— ์˜ํ•ด ์ง€์ •๋œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ ์•ž์— -I ๊ทธ๋ฆฌ๊ณ  ์ „์—
ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ. ๋งŒ์•ฝ์— DIR "="๋กœ ์‹œ์ž‘ํ•˜๋ฉด "="๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
sysroot ์ ‘๋‘์‚ฌ; ๋ณด๋‹ค --sysroot ๊ณผ -isysroot.

-f ์ง€์‹œ๋ฌธ ์ „์šฉ
์ „์ฒ˜๋ฆฌํ•  ๋•Œ ์ง€์‹œ๋ฌธ์„ ์ฒ˜๋ฆฌํ•˜๋˜ ๋งคํฌ๋กœ๋ฅผ ํ™•์žฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์˜ต์…˜์˜ ๋™์ž‘์€ -E ๊ณผ -f์ „์ฒ˜๋ฆฌ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์™€ -E, ์ „์ฒ˜๋ฆฌ๋Š” "#define"๊ณผ ๊ฐ™์€ ์ง€์‹œ๋ฌธ ์ฒ˜๋ฆฌ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
"#ifdef" ๋ฐ "#์˜ค๋ฅ˜". ๋งคํฌ๋กœ ํ™•์žฅ ๋ฐ
trigraph ๋ณ€ํ™˜์€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, -dD ์˜ต์…˜์€ ์•”์‹œ์ ์œผ๋กœ
์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์™€ -f์ „์ฒ˜๋ฆฌ, ๋ช…๋ น์ค„ ๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ๋‚ด์žฅ ๋งคํฌ๋กœ์˜ ์‚ฌ์ „ ์ •์˜๋Š”
์žฅ์• ๊ฐ€์žˆ๋Š”. ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” "__LINE__"๊ณผ ๊ฐ™์€ ๋งคํฌ๋กœ๊ฐ€ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
๋ณดํ†ต. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ด์ „์— "-E"๋กœ ์‚ฌ์ „ ์ฒ˜๋ฆฌ๋œ ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-f์ง€์‹œ์–ด ์ „์šฉ".

๋‘˜์ด ํ•จ๊ป˜ -E ๊ณผ -f์ „์ฒ˜๋ฆฌ, ๊ทœ์น™ -f์ „์ฒ˜๋ฆฌ ์šฐ์„ ๊ถŒ์„ ๊ฐ€์ง€๋‹ค. ์ด๊ฒƒ
์ด์ „์— "-E"๋กœ ์ „์ฒ˜๋ฆฌ๋œ ํŒŒ์ผ์˜ ์ „์ฒด ์ „์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
-f์ง€์‹œ์–ด ์ „์šฉ".

-fdollars-in-์‹๋ณ„์ž
์ˆ˜๋ฝ $ ์‹๋ณ„์ž์—.

-fextended-์‹๋ณ„์ž
์‹๋ณ„์ž์— ๋ฒ”์šฉ ๋ฌธ์ž ์ด๋ฆ„์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
C99(๋ฐ ์ดํ›„์˜ C ํ‘œ์ค€ ๋ฒ„์ „) ๋ฐ C++์šฉ.

-fno-ํ‘œ์ค€ ์‹œ์Šคํ…œ ํ—ค๋”
์ „์ฒ˜๋ฆฌํ•  ๋•Œ ์ •๊ทœํ™”๋กœ ์‹œ์Šคํ…œ ํ—ค๋” ๊ฒฝ๋กœ๋ฅผ ์ค„์ด์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-f์ „์ฒ˜๋ฆฌ
์ž…๋ ฅ ํŒŒ์ผ์ด ์ด๋ฏธ ์ „์ฒ˜๋ฆฌ๋˜์—ˆ์Œ์„ ์ „์ฒ˜๋ฆฌ๊ธฐ์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋งคํฌ๋กœ ํ™•์žฅ, ์‚ผ์ค‘ ๊ทธ๋ž˜ํ”„ ๋ณ€ํ™˜, ์ด์Šค์ผ€์ดํ”„๋œ ๊ฐœํ–‰ ์—ฐ๊ฒฐ,
๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ์ง€์‹œ๋ฌธ ์ฒ˜๋ฆฌ. ์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ์—ฌ์ „ํžˆ ์ธ์‹ํ•˜๊ณ  ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์„์œผ๋กœ ์‚ฌ์ „ ์ฒ˜๋ฆฌ๋œ ํŒŒ์ผ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -C ์—†์ด ์ปดํŒŒ์ผ๋Ÿฌ์—
๋ฌธ์ œ. ์ด ๋ชจ๋“œ์—์„œ ํ†ตํ•ฉ ์ „์ฒ˜๋ฆฌ๊ธฐ๋Š” ํ† ํฌ๋‚˜์ด์ €์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋ก ํŠธ ์—”๋“œ๋ฅผ ์œ„ํ•ด.

-f์ „์ฒ˜๋ฆฌ ์ž…๋ ฅ ํŒŒ์ผ์— ํ™•์žฅ์ž ์ค‘ ํ•˜๋‚˜๊ฐ€ ์žˆ์œผ๋ฉด ์•”์‹œ์ ์ž…๋‹ˆ๋‹ค. .i, .ii or .๋ฏธ.
๋‹ค์Œ์€ GCC๊ฐ€ ์ƒ์„ฑํ•œ ์ „์ฒ˜๋ฆฌ๋œ ํŒŒ์ผ์— ์‚ฌ์šฉํ•˜๋Š” ํ™•์žฅ์ž์ž…๋‹ˆ๋‹ค. - ์ž„์‹œ ์ €์žฅ.

-ftabstop=ํญ
ํƒญ ์ •์ง€ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์—ด์„ ๋ณด๊ณ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
์ค„์— ํƒญ์ด ๋‚˜ํƒ€๋‚˜๋”๋ผ๋„ ๊ฒฝ๊ณ  ๋˜๋Š” ์˜ค๋ฅ˜์˜ ์ˆซ์ž. ๊ฐ’์ด ์ž‘์„ ๊ฒฝ์šฐ
1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ 100๋ณด๋‹ค ํฌ๋ฉด ์˜ต์…˜์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 8์ž…๋‹ˆ๋‹ค.

-fdebug-cpp
์ด ์˜ต์…˜์€ GCC ๋””๋ฒ„๊น…์—๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ -E, ๋คํ”„ ๋””๋ฒ„๊น…
์œ„์น˜ ์ง€๋„์— ๋Œ€ํ•œ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์ถœ๋ ฅ์˜ ๋ชจ๋“  ํ† ํฐ ์•ž์—๋Š” ๋คํ”„๊ฐ€ ์˜ต๋‹ˆ๋‹ค.
๊ทธ ์œ„์น˜๊ฐ€ ์†ํ•œ ์ง€๋„. ํ† ํฐ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹๋‹ด๊ณ  ์žˆ๋Š” ๋งต์˜ ๋คํ”„
๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{"P":F ;"F":F ;"์—˜": ;"์”จ": ;"NS": ;"๋ฏธ๋””์—„": ;"์ด์žํ˜•": ,"์œ„์น˜": }

์—†์ด ์‚ฌ์šฉํ•  ๋•Œ -E, ์ด ์˜ต์…˜์€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

-ftrack ๋งคํฌ๋กœ ํ™•์žฅ[=์ˆ˜ํ‰]
๋งคํฌ๋กœ ํ™•์žฅ์—์„œ ํ† ํฐ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š”
์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ํ˜„์žฌ ๋งคํฌ๋กœ ํ™•์žฅ ์Šคํƒ์— ๋Œ€ํ•œ ์ง„๋‹จ
๋งคํฌ๋กœ ํ™•์žฅ. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒ˜๋ฆฌ๊ธฐ์™€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ. NS ์ˆ˜ํ‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ† ํฐ์˜ ์ •๋ฐ€๋„ ์ˆ˜์ค€์„ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์œ„์น˜ ์ถ”์ ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ๊ฐ’ 0 of
์ˆ˜ํ‰ ์ด ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -ftrack ๋งคํฌ๋กœ ํ™•์žฅ ์— ์žˆ์—ˆ๋‹ค
๋ช…๋ น์ค„. ๊ฐ’ 1 ๋ฅผ ์œ„ํ•ด ์ €ํ•˜๋œ ๋ชจ๋“œ์—์„œ ํ† ํฐ ์œ„์น˜๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
์ตœ์†Œํ•œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฒ„ํ—ค๋“œ. ์ด ๋ชจ๋“œ์—์„œ๋Š” ํ™•์žฅ์œผ๋กœ ์ธํ•œ ๋ชจ๋“  ํ† ํฐ
ํ•จ์ˆ˜์™€ ๊ฐ™์€ ๋งคํฌ๋กœ์˜ ์ธ์ˆ˜๋Š” ๋™์ผํ•œ ์œ„์น˜๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๊ฐ’ 2 ์ถ”์  ํ† ํฐ
์œ„์น˜๋ฅผ ์™„์ „ํžˆ. ์ด ๊ฐ’์€ ๊ฐ€์žฅ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋ชจํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์ด ์ฃผ์–ด์กŒ์„ ๋•Œ
์ธ์ˆ˜๊ฐ€ ์—†์œผ๋ฉด ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 2.

"-ftrack-macro-expansion=2"๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-fexec-๋ฌธ์ž์…‹=๋ฌธ์ž์…‹
๋ฌธ์ž์—ด ๋ฐ ๋ฌธ์ž ์ƒ์ˆ˜์— ์‚ฌ์šฉ๋˜๋Š” ์‹คํ–‰ ๋ฌธ์ž ์ง‘ํ•ฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
UTF-8์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์…‹ ์‹œ์Šคํ…œ์˜ "iconv" ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์ธ์ฝ”๋”ฉ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ์ƒ.

-fwide-exec-charset=๋ฌธ์ž์…‹
์™€์ด๋“œ ๋ฌธ์ž์—ด ๋ฐ ๋ฌธ์ž ์ƒ์ˆ˜์— ์‚ฌ์šฉ๋˜๋Š” ์™€์ด๋“œ ์‹คํ–‰ ๋ฌธ์ž ์„ธํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ "wchar_t"์˜ ๋„ˆ๋น„์— ํ•ด๋‹นํ•˜๋Š” UTF-32 ๋˜๋Š” UTF-16์ž…๋‹ˆ๋‹ค. ๊ฐ™์ด
๊ณผ -fexec-๋ฌธ์ž์…‹, ๋ฌธ์ž์…‹ ์‹œ์Šคํ…œ์˜ "iconv"์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์ธ์ฝ”๋”ฉ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฃจํ‹ด; ๊ทธ๋Ÿฌ๋‚˜ ์ ํ•ฉํ•˜์ง€ ์•Š์€ ์ธ์ฝ”๋”ฉ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ •ํ™•ํžˆ "wchar_t"์— ์žˆ์Šต๋‹ˆ๋‹ค.

-finput-๋ฌธ์ž์…‹=๋ฌธ์ž์…‹
์ž…๋ ฅ์˜ ๋ฌธ์ž ์ง‘ํ•ฉ์—์„œ ๋ฒˆ์—ญ์— ์‚ฌ์šฉ๋˜๋Š” ์ž…๋ ฅ ๋ฌธ์ž ์ง‘ํ•ฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ์„ GCC์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์†Œ์Šค ๋ฌธ์ž ์„ธํŠธ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ผ€์ผ์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋˜๋Š” GCC
๋กœ์ผ€์ผ์—์„œ ์ด ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์œผ๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ UTF-8์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋  ์ˆ˜์žˆ๋‹ค
๋กœ์ผ€์ผ ๋˜๋Š” ์ด ๋ช…๋ น์ค„ ์˜ต์…˜์œผ๋กœ ์žฌ์ •์˜๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ช…๋ น-
์ถฉ๋Œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ line ์˜ต์…˜์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์…‹ ๋ชจ๋“  ์ธ์ฝ”๋”ฉ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์‹œ์Šคํ…œ์˜ "iconv" ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฃจํ‹ด์—์„œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-fworking-๋””๋ ‰ํ† ๋ฆฌ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹๋ผ์ธ ๋งˆ์ปค ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”
์ „์ฒ˜๋ฆฌ ์‹œ์ ์˜ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์ด
ํ™œ์„ฑํ™”๋˜๋ฉด ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์ดˆ๊ธฐ ๋ผ์ธ ๋งˆ์ปค ๋‹ค์Œ์— ๋‘ ๋ฒˆ์งธ ๋ผ์ธ ๋งˆ์ปค๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ๋’ค์— ๋‘ ๊ฐœ์˜ ์Šฌ๋ž˜์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. GCC๋Š” ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค
๋””๋ ‰ํ† ๋ฆฌ, ์‚ฌ์ „ ์ฒ˜๋ฆฌ๋œ ์ž…๋ ฅ์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚ด๋ณด๋‚ธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ
์ผ๋ถ€ ๋””๋ฒ„๊น… ์ •๋ณด ํ˜•์‹์˜ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ. ์ด ์˜ต์…˜์€
๋””๋ฒ„๊น… ์ •๋ณด๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ์•”์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์ง€๋งŒ ๋‹ค์Œ์œผ๋กœ ๊ธˆ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ถ€์ •ํ˜• -fno-์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ. ๊ฒฝ์šฐ -P ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋ช…๋ น์— ์žˆ์Šต๋‹ˆ๋‹ค.
line์—์„œ "#line" ์ง€์‹œ๋ฌธ์ด ์ „ํ˜€ ์ƒ์„ฑ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด ์˜ต์…˜์€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

-fno-show-์—ด
์ง„๋‹จ์—์„œ ์—ด ๋ฒˆํ˜ธ๋ฅผ ์ธ์‡„ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ง„๋‹จ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ด ๋ฒˆํ˜ธ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์Šค์บ”๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ž๋ˆ„.

-A ์ˆ ๋ถ€=๋‹ต๋ณ€
์ˆ ์–ด๋กœ ์ฃผ์žฅํ•˜๊ธฐ ์ˆ ๋ถ€ ๋Œ€๋‹ต ๋‹ต๋ณ€. ์ด ์–‘์‹์€
๊ตฌํ˜•๋ณด๋‹ค ์„ ํ˜ธ -A ์ˆ ๋ถ€(๋‹ต๋ณ€), ์—ฌ์ „ํžˆ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
์‰˜ ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-A -์ˆ ๋ถ€=๋‹ต๋ณ€
์ˆ ์–ด๋กœ ์–ด์„ค์…˜ ์ทจ์†Œ ์ˆ ๋ถ€ ๋Œ€๋‹ต ๋‹ต๋ณ€.

-dCHARS
๋ฌธ์ž ๋‹ค์Œ ๋ฌธ์ž ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์˜ ์‹œํ€€์Šค์ด๋ฉฐ ๋‹ค์Œ ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ณต๋ฐฑ์ด ์•ž์— ์˜ต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฌธ์ž๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ ์ ˆํ•˜๊ฒŒ ํ•ด์„๋˜๊ฑฐ๋‚˜
GCC์˜ ํ–ฅํ›„ ๋ฒ„์ „์„ ์œ„ํ•ด ์˜ˆ์•ฝ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ž๋™์œผ๋กœ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ
ํ–‰๋™์ด ์ถฉ๋Œํ•˜๋Š” ์บ๋ฆญํ„ฐ, ๊ฒฐ๊ณผ๋Š” ์ •์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

M ์ผ๋ฐ˜ ์ถœ๋ ฅ ๋Œ€์‹  ๋‹ค์Œ ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค. #๋ฐํžˆ๋‹ค ๋ชจ๋“  ์ง€์นจ
๋ฏธ๋ฆฌ ์ •์˜๋œ ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ์ „์ฒ˜๋ฆฌ๊ธฐ ์‹คํ–‰ ์ค‘์— ์ •์˜๋œ ๋งคํฌ๋กœ
๋งคํฌ๋กœ. ์ด๊ฒƒ์€ ๋‹น์‹ ์˜ ๋ฒ„์ „์— ์‚ฌ์ „ ์ •์˜๋œ ๊ฒƒ์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๊ธฐ. ํŒŒ์ผ์ด ์—†๋‹ค๊ณ  ๊ฐ€์ • ํ‘ธ.h, ๋ช…๋ น

ํ„ฐ์น˜ foo.h; cpp -dM foo.h

๋ฏธ๋ฆฌ ์ •์˜ ๋œ ๋ชจ๋“  ๋งคํฌ๋กœ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -dM ~์—†์ด -E ์„ ํƒ๊ถŒ, -dM ์˜ ๋™์˜์–ด๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.
-fdump-rtl-๋งˆํ•˜.

D ์ฒ˜๋Ÿผ M ๋‘ ๊ฐ€์ง€ ์ธก๋ฉด์„ ์ œ์™ธํ•˜๊ณ : ์ง€์› ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋งคํฌ๋กœ๋ฅผ ํฌํ•จํ•˜๊ณ 
์ถœ๋ ฅ ๋‘ ์ „์—, #๋ฐํžˆ๋‹ค ์ง€์‹œ๋ฌธ ๋ฐ ์ „์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ. ๋‘ ์ข…๋ฅ˜
์ถœ๋ ฅ์˜ ํ‘œ์ค€ ์ถœ๋ ฅ ํŒŒ์ผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

N ์ฒ˜๋Ÿผ D, ๊ทธ๋Ÿฌ๋‚˜ ํ™•์žฅ์ด ์•„๋‹Œ ๋งคํฌ๋กœ ์ด๋ฆ„๋งŒ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

I ์‚ฐ์ถœ #ํฌํ•จ ์ „์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ ์™ธ์— ์ง€์‹œ๋ฌธ.

U ์ฒ˜๋Ÿผ D ํ™•์žฅ๋˜๊ฑฐ๋‚˜ ์ •์˜๊ฐ€ ํ…Œ์ŠคํŠธ๋œ ๋งคํฌ๋กœ๋งŒ ์ œ์™ธ
์ „์ฒ˜๋ฆฌ๊ธฐ ์ง€์‹œ๋ฌธ์—์„œ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๋•Œ๊นŒ์ง€ ์ถœ๋ ฅ์ด ์ง€์—ฐ๋˜๊ฑฐ๋‚˜
๋งคํฌ๋กœ ํ…Œ์ŠคํŠธ; ๊ทธ๋ฆฌ๊ณ  #์–ธ๋ฐํ”„ ์ง€์‹œ๋ฌธ์€ ํ…Œ์ŠคํŠธ๋œ ๋งคํฌ๋กœ์— ๋Œ€ํ•ด์„œ๋„ ์ถœ๋ ฅ๋˜์ง€๋งŒ
๋‹น์‹œ ์ •์˜๋˜์ง€ ์•Š์€.

-P ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹๋ผ์ธ๋งˆ์ปค ์ƒ์„ฑ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•„๋งˆ๋„
C ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ๋ฌด์–ธ๊ฐ€์—์„œ ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์œ ์šฉํ•˜๋ฉฐ ์ „์†ก๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
linemarkers์— ์˜ํ•ด ํ˜ผ๋™๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์—.

-C ๋Œ“๊ธ€์„ ๋ฒ„๋ฆฌ์ง€ ๋งˆ์„ธ์š”. ๋‹ค์Œ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์ฃผ์„์€ ์ถœ๋ ฅ ํŒŒ์ผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
์ง€์‹œ๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ญ์ œ๋˜๋Š” ์ฒ˜๋ฆฌ๋œ ์ง€์‹œ๋ฌธ์— ์žˆ๋Š” ์ฃผ์„์˜ ๊ฒฝ์šฐ.

์‚ฌ์šฉ ์‹œ ๋ถ€์ž‘์šฉ์— ๋Œ€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -C; ๊ทธ๊ฒƒ์€ ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€
๋Œ“๊ธ€์„ ์ž์ฒด์ ์œผ๋กœ ํ† ํฐ์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒŒ์‹œํŒ์— ํ‘œ์‹œ๋˜๋Š” ๋Œ“๊ธ€์€
์ง€์‹œ ํ–‰์ด ๋  ๊ฒƒ์˜ ์‹œ์ž‘์€ ๊ทธ ํ–‰์„ ๋‹ค์Œ์œผ๋กœ ๋ฐ”๊พธ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ผ์ธ์˜ ์ฒซ ๋ฒˆ์งธ ํ† ํฐ์ด ๋” ์ด์ƒ a๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์†Œ์Šค ๋ผ์ธ #.

-CC ๋งคํฌ๋กœ ํ™•์žฅ ์ค‘์„ ํฌํ•จํ•˜์—ฌ ์ฃผ์„์„ ์‚ญ์ œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋งˆ์น˜ -C์ œ์™ธ
๋งคํฌ๋กœ์— ํฌํ•จ๋œ ์ฃผ์„๋„ ์ถœ๋ ฅ ํŒŒ์ผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
๋งคํฌ๋กœ๊ฐ€ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.

๋ถ€์ž‘์šฉ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ -C ์˜ต์…˜, -CC ์˜ต์…˜์€ ๋ชจ๋“  C++ ์Šคํƒ€์ผ์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
๋งคํฌ๋กœ ๋‚ด๋ถ€์˜ ์ฃผ์„์„ C ์Šคํƒ€์ผ ์ฃผ์„์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜์ค‘์— ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด
์‹ค์ˆ˜๋กœ ์†Œ์Šค ํ–‰์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ•ด๋‹น ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ใ€€ -CC ์˜ต์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฐํŠธ ์ฃผ์„์„ ์ง€์›ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-์ „ํ†ต์ ์ธ cpp
ISO C์™€ ๋‹ฌ๋ฆฌ ๊ตฌ์‹ C ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ๋™์ž‘์„ ๋ชจ๋ฐฉํ•˜์‹ญ์‹œ์˜ค.
์ „์ฒ˜๋ฆฌ๊ธฐ.

-์‚ผ๊ฐํ˜•
์‚ผ์ค‘ ๊ทธ๋ž˜ํ”„ ์‹œํ€€์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ๋ชจ๋‘ ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์„ธ ๋ฌธ์ž ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค.
??, ๋‹จ์ผ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ISO C์—์„œ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ??/ ์„œ
for \๊ทธ๋ž˜์„œ '??/N' ๊ฐœํ–‰ ๋ฌธ์ž ์ƒ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
trigraphs, ๊ทธ๋Ÿฌ๋‚˜ ํ‘œ์ค€ ์ค€์ˆ˜ ๋ชจ๋“œ์—์„œ๋Š” ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ -ํ‘œ์ค€ ๊ณผ -์•ˆ์‹œ
์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

XNUMX๊ฐœ์˜ ์‚ผ๊ทน์ž์™€ ๊ทธ ๋Œ€์ฒดํ’ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‚ผ์ค‘ ๊ทธ๋ž˜ํ”„: ??( ??) ??< ??> ??= ??/ ??' ??! ??-
๋Œ€์ฒด: [ ] { } # \ ^ | ~

-๋‹ค์‹œ ๋งคํ•‘
๋งค์šฐ ์งง์€ ํŒŒ์ผ๋งŒ ํ—ˆ์šฉํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ํ•˜๋Š” ํŠน์ˆ˜ ์ฝ”๋“œ ํ™œ์„ฑํ™”
MS-DOS์™€ ๊ฐ™์€ ์ด๋ฆ„.

--๋„์›€
-ํƒ€๊ฒŸ ํ™€ํ”„
์•„๋ฌด ๊ฒƒ๋„ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹  ๋ชจ๋“  ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์„ค๋ช…ํ•˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

-v ์ƒ์„ธ ๋ชจ๋“œ. ์‹คํ–‰ ์‹œ์ž‘ ์‹œ GNU CPP์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ,
ํฌํ•จ ๊ฒฝ๋กœ์˜ ์ตœ์ข… ํ˜•์‹์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

-H ๋‹ค๋ฅธ ์ผ๋ฐ˜ ํ™œ๋™๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋œ ๊ฐ ํ—ค๋” ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ธ์‡„ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ
์ด๋ฆ„์€ ๋“ค์—ฌ ์“ฐ๊ธฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊นŠ์€์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. #ํฌํ•จ ์Šคํƒ์ž…๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”
์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋œ ๊ฒฝ์šฐ์—๋„ ํŒŒ์ผ๋„ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ
ํ—ค๋” ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ธ์‡„๋ฉ๋‹ˆ๋‹ค. ...NS ๊ทธ๋ฆฌ๊ณ  ์œ ํšจํ•œ ...! .

-๋ฒˆ์—ญ
--๋ฒˆ์—ญ
GNU CPP์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜์‹ญ์‹œ์˜ค. ๋Œ€์‹œ ํ•œ ๋ฒˆ์œผ๋กœ ํ‰์†Œ์™€ ๊ฐ™์ด ์ „์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐœ์˜ ๋Œ€์‹œ๋กœ ์ฆ‰์‹œ ์ข…๋ฃŒํ•˜์‹ญ์‹œ์˜ค.

ํ†ต๊ณผ ์˜ต์…˜ ์— ์ „์—, ์–ด์…ˆ๋ธ”๋Ÿฌ
์–ด์…ˆ๋ธ”๋Ÿฌ์— ์˜ต์…˜์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-์™€,์„ ํƒ๊ถŒ
ํŒจ์Šค ์„ ํƒ๊ถŒ ์–ด์…ˆ๋ธ”๋Ÿฌ์— ๋Œ€ํ•œ ์˜ต์…˜์œผ๋กœ. ๋งŒ์•ฝ์— ์„ ํƒ๊ถŒ ์‰ผํ‘œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค.
์‰ผํ‘œ์—์„œ ์—ฌ๋Ÿฌ ์˜ต์…˜์œผ๋กœ.

-X์–ด์…ˆ๋ธ”๋Ÿฌ ์„ ํƒ๊ถŒ
ํŒจ์Šค ์„ ํƒ๊ถŒ ์–ด์…ˆ๋ธ”๋Ÿฌ์— ๋Œ€ํ•œ ์˜ต์…˜์œผ๋กœ. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ๋ณ„
GCC๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ ์˜ต์…˜.

์ธ์ˆ˜๋ฅผ ์ทจํ•˜๋Š” ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -X์–ด์…ˆ๋ธ”๋Ÿฌ ๋‘๋ฒˆ,
์˜ต์…˜์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ, ์ธ์ˆ˜์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ.

์˜ต์…˜ for ์—ฐ๊ฒฐ
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐœ์ฒด ํŒŒ์ผ์„ ์‹คํ–‰ ํŒŒ์ผ์— ์—ฐ๊ฒฐํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋ฌผ ํŒŒ์ผ. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งํฌ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐœ์ฒด ํŒŒ์ผ ์ด๋ฆ„
ํŠน์ˆ˜ ์ธ์‹ ์ ‘๋ฏธ์‚ฌ๋กœ ๋๋‚˜์ง€ ์•Š๋Š” ํŒŒ์ผ ์ด๋ฆ„์€ ์ด๋ฆ„์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
๊ฐœ์ฒด ํŒŒ์ผ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. (๊ฐ์ฒด ํŒŒ์ผ์€ ๋ง์ปค์— ์˜ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ตฌ๋ณ„๋ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ ๋‚ด์šฉ์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.) ๋งํฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ด๋Ÿฌํ•œ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ง์ปค์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

-c
-S
-E ์ด๋Ÿฌํ•œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ง์ปค๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๊ฐœ์ฒด ํŒŒ์ผ ์ด๋ฆ„์ด
์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

-ํ“จ์ฆˆ-ld=bfd
์‚ฌ์šฉ BFD ๊ธฐ๋ณธ ๋ง์ปค ๋Œ€์‹  ๋ง์ปค.

-fuse-ld=๊ธˆ
์‚ฌ์šฉ ๊ธˆ ๊ธฐ๋ณธ ๋ง์ปค ๋Œ€์‹  ๋ง์ปค.

-l๋„์„œ๊ด€
-l ๋„์„œ๊ด€
์ด๋ฆ„์ด ์ง€์ •๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒ€์ƒ‰ ๋„์„œ๊ด€ ๋งํฌํ•  ๋•Œ. (๋‘ ๋ฒˆ์งธ ๋Œ€์•ˆ์€
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ณ„๋„์˜ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ POSIX ์ค€์ˆ˜๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

๋ช…๋ น์—์„œ ์ด ์˜ต์…˜์„ ์ž‘์„ฑํ•˜๋Š” ์œ„์น˜์— ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ง์ปค ๊ฒ€์ƒ‰
์ง€์ •๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํ‘ธ.์˜ค
-lz ๋ฐ”์˜ค ๊ฒ€์ƒ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ z ํŒŒ์ผ ํ›„ ํ‘ธ.์˜ค ํ•˜์ง€๋งŒ ์ „์— ๋ฐ”์˜ค. ๋ฉด ๋ฐ”์˜ค ๋ฅผ ์˜๋ฏธ
~์—์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค z, ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ๋กœ๋“œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ง์ปค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ํ‘œ์ค€ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฆ„์ด ์ง€์ •๋œ ํŒŒ์ผ ๋„์„œ๊ด€. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ง์ปค๋Š” ์ด ํŒŒ์ผ์„ ์ง€์ •๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ •ํ™•ํžˆ๋Š” ์ด๋ฆ„์œผ๋กœ.

๊ฒ€์ƒ‰๋œ ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ์—ฌ๋Ÿฌ ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์™€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋กœ ์ง€์ • -L.

์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์ฐพ์€ ํŒŒ์ผ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ---๊ตฌ์„ฑ์›์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•„์นด์ด๋ธŒ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
๊ฐœ์ฒด ํŒŒ์ผ. ๋ง์ปค๋Š” ์•„์นด์ด๋ธŒ ํŒŒ์ผ์„ ํ†ตํ•ด ๊ตฌ์„ฑ์›์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ์ฐธ์กฐ๋˜์—ˆ์ง€๋งŒ ์ •์˜๋˜์ง€ ์•Š์€ ๊ธฐํ˜ธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ
๋ฐœ๊ฒฌ๋œ ํŒŒ์ผ์€ ์ผ๋ฐ˜ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์ด๋ฉฐ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋งํฌ๋ฉ๋‹ˆ๋‹ค. NS
์‚ฌ์šฉ์˜ ์œ ์ผํ•œ ์ฐจ์ด์  -l ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  ํŒŒ์ผ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ -l
์„œ๋ผ์šด๋“œ ๋„์„œ๊ด€ ๊ณผ lib ๊ณผ .a ์—ฌ๋Ÿฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

-lobjc
์ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. -l Objective-C ๋˜๋Š”
์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ-C++ ํ”„๋กœ๊ทธ๋žจ.

-nostartํŒŒ์ผ
์—ฐ๊ฒฐํ•  ๋•Œ ํ‘œ์ค€ ์‹œ์Šคํ…œ ์‹œ์ž‘ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ‘œ์ค€ ์‹œ์Šคํ…œ
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. -nostdlib or -nodefaultlibs ์‚ฌ์šฉ.

-nodefaultlibs
๋งํฌํ•  ๋•Œ ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ง€์ •ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ
๋ง์ปค์— ์ „๋‹ฌ๋˜๊ณ  ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์—ฐ๊ฒฐ์„ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
as -์ •์ -libgcc or -๊ณต์œ -libgcc, ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์‹œ์ž‘ ํŒŒ์ผ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ -nostartํŒŒ์ผ ์‚ฌ์šฉ.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” "memcmp", "memset", "memcpy" ๋ฐ "memmove"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค
ํ•ญ๋ชฉ์€ ์ผ๋ฐ˜์ ์œผ๋กœ libc์˜ ํ•ญ๋ชฉ์œผ๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ง„์ž…์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์ด ์ง€์ •๋˜๋ฉด ๋‹ค๋ฅธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

-nostdlib
๋งํฌํ•  ๋•Œ ํ‘œ์ค€ ์‹œ์Šคํ…œ ์‹œ์ž‘ ํŒŒ์ผ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์‹œ์ž‘ํ•˜์ง€ ์•Š์Œ
ํŒŒ์ผ๊ณผ ์ง€์ •ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๋ง์ปค์— ์ „๋‹ฌ๋˜๊ณ  ์˜ต์…˜
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์—ฐ๊ฒฐ ์ง€์ • -์ •์ -libgcc or -๊ณต์œ -libgcc,
๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” "memcmp", "memset", "memcpy" ๋ฐ "memmove"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค
ํ•ญ๋ชฉ์€ ์ผ๋ฐ˜์ ์œผ๋กœ libc์˜ ํ•ญ๋ชฉ์œผ๋กœ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ง„์ž…์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์ด ์ง€์ •๋˜๋ฉด ๋‹ค๋ฅธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋ฐ”์ดํŒจ์Šค๋œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜ -nostdlib ๊ณผ -nodefaultlibs is libgcc.a์€
GCC๊ฐ€ ํŠน์ • ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋‚ด๋ถ€ ์„œ๋ธŒ๋ฃจํ‹ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
๊ธฐ๊ณ„ ๋˜๋Š” ์ผ๋ถ€ ์–ธ์–ด์— ๋Œ€ํ•œ ํŠน๋ณ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ.

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ•„์š”ํ•œ libgcc.a ๋‹ค๋ฅธ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
์ฆ‰, ์ง€์ •ํ•  ๋•Œ -nostdlib or -nodefaultlibs ๋‹น์‹ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ
์ง€์ •ํ•˜๋‹ค -lgcc ๋˜ํ•œ. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์ฐธ์กฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋‚ด๋ถ€ GCC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„œ๋ธŒ๋ฃจํ‹ด. (์ด๋Ÿฌํ•œ ๋‚ด๋ถ€ ์„œ๋ธŒ๋ฃจํ‹ด์˜ ์˜ˆ๋Š”
"__main", C++ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๋„๋ก ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.)

-ํŒŒ์ด
์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ ์œ„์น˜ ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ
๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ปดํŒŒ์ผ์— ์‚ฌ์šฉ๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ์˜ต์…˜ ์„ธํŠธ๋„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(-ํŒŒ์ด,
-fPIE, ๋˜๋Š” ๋ชจ๋ธ ํ•˜์œ„ ์˜ต์…˜) ์ด ๋ง์ปค ์˜ต์…˜์„ ์ง€์ •ํ•  ๋•Œ.

-ํŒŒ์ด ์—†์Œ
์œ„์น˜ ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-์—ญ๋™์ 
๊นƒ๋ฐœ์„ ๋„˜๊ธฐ๋‹ค -์ˆ˜์ถœ-๋™์  ELF ๋ง์ปค๋ฅผ ์ง€์›ํ•˜๋Š” ๋Œ€์ƒ์—์„œ. ์ด๊ฒƒ
๋ง์ปค์— ์‚ฌ์šฉ๋œ ๊ธฐํ˜ธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๊ธฐํ˜ธ๋ฅผ ๋™์  ๊ธฐํ˜ธ์— ์ถ”๊ฐ€ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
ํ…Œ์ด๋ธ”. ์ด ์˜ต์…˜์€ "dlopen"์„ ์ผ๋ถ€ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜
ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์—ญ์ถ”์ .

-s ์‹คํ–‰ ํŒŒ์ผ์—์„œ ๋ชจ๋“  ๊ธฐํ˜ธ ํ…Œ์ด๋ธ” ๋ฐ ์žฌ๋ฐฐ์น˜ ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

-๊ณต์ „
๋™์  ์—ฐ๊ฒฐ์„ ์ง€์›ํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์ด๊ฒƒ์€ ๊ณต์œ ์™€ ์—ฐ๊ฒฐ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋„์„œ๊ด€. ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด ์˜ต์…˜์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-๊ณต์œ 
๊ณต์œ  ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ๋‹ค์Œ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์—ฐ๊ฒฐํ•˜์—ฌ
์‹คํ–‰ ๊ฐ€๋Šฅ. ๋ชจ๋“  ์‹œ์Šคํ…œ์ด ์ด ์˜ต์…˜์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ์ปดํŒŒ์ผ์— ์‚ฌ์šฉ๋˜๋Š” ๋™์ผํ•œ ์˜ต์…˜ ์„ธํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(-fpic, -fPIC, ๋˜๋Š” ๋ชจ๋ธ
ํ•˜์œ„ ์˜ต์…˜) ์ด ๋ง์ปค ์˜ต์…˜์„ ์ง€์ •ํ•  ๋•Œ.[1]

-๊ณต์œ -libgcc
-์ •์ -libgcc
์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ libgcc ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์„œ ์ด๋Ÿฌํ•œ ์˜ต์…˜์€
๊ฐ๊ฐ ๊ณต์œ  ๋˜๋Š” ์ •์  ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๊ณต์œ  ๋ฒ„์ „์ด ์—†๋Š” ๊ฒฝ์šฐ libgcc ์˜€๋‹ค
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ตฌ์„ฑ๋  ๋•Œ ๋นŒ๋“œ๋œ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต์œ ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. libgcc
์ •์  ๋ฒ„์ „ ๋Œ€์‹ . ์ด๋“ค ์ค‘ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ฒƒ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด
๋‹ค๋ฅธ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์˜ˆ์™ธ๋ฅผ throwํ•˜๊ณ  catchํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฝ์šฐ,
๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด๋Š” ๊ณต์œ ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. libgcc.

๋”ฐ๋ผ์„œ G++ ๋ฐ GCJ ๋“œ๋ผ์ด๋ฒ„๋Š” ์ž๋™์œผ๋กœ -๊ณต์œ -libgcc ๋นŒ๋“œํ•  ๋•Œ๋งˆ๋‹ค
C++ ๋ฐ Java ํ”„๋กœ๊ทธ๋žจ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ
์˜ˆ์™ธ์ด๋ฏ€๋กœ ์ด๊ฒƒ์ด ์˜ณ์€ ์ผ์ž…๋‹ˆ๋‹ค.

๋Œ€์‹  GCC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€
ํ•ญ์ƒ ๊ณต์œ ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. libgcc. GCC๊ฐ€ ์ฐพ์œผ๋ฉด ํ•ด๋‹น ๊ตฌ์„ฑ์—์„œ
์˜ต์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋น„ GNU ๋ง์ปค ๋˜๋Š” GNU ๋ง์ปค๊ฐ€ ์žˆ๋Š” ์‹œ๊ฐ„
--eh-ํ”„๋ ˆ์ž„-hdr, ๊ณต์œ  ๋ฒ„์ „์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. libgcc ์— ์˜ํ•ด ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ
๊ธฐ๋ณธ. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ง์ปค๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
๊ณต์œ  ๋ฒ„์ „์œผ๋กœ libgcc, libgcc์˜ ์ •์  ๋ฒ„์ „๊ณผ ์—ฐ๊ฒฐ
๊ธฐ๋ณธ. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ์ด๋Ÿฌํ•œ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „ํŒŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋กœ๋“œ ์‹œ ์žฌ๋ฐฐ์น˜ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ์ด ์˜ˆ์™ธ๋ฅผ throwํ•˜๊ฑฐ๋‚˜ catchํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์— ๋”ฐ๋ผ G++ ๋˜๋Š” GCJ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์˜ต์…˜ ์‚ฌ์šฉ -๊ณต์œ -libgcc, ๊ณต์œ ์™€ ์—ฐ๊ฒฐ๋˜๋„๋ก
libgcc.

-์ •์ -๋ฆฌ๋ฐ”์‚ฐ
๋•Œ -fsanitize=์ฃผ์†Œ ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ž๋™์œผ๋กœ ๋งํฌ ๋ฆฌ๋ฐ”์‚ฐ. ๋ฉด ๋ฆฌ๋ฐ”์‚ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ
์ „์—, -๊ณต์ „ ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋งํฌ๋Š” ๊ณต์œ  ๋ฒ„์ „์˜ ๋ฆฌ๋ฐ”์‚ฐ.
ใ€€ -์ •์ -๋ฆฌ๋ฐ”์‚ฐ ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋งํฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ฐ”์‚ฐ ์ •์ ์œผ๋กœ, ์—†์ด
๋ฐ˜๋“œ์‹œ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-์ •์ -libtsan
๋•Œ -fsanitize=์“ฐ๋ ˆ๋“œ ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ž๋™์œผ๋กœ ๋งํฌ ๋ฆฌ๋ธŒ์‚ฐ. ๋ฉด ๋ฆฌ๋ธŒ์‚ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ
์ „์—, -๊ณต์ „ ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋งํฌ๋Š” ๊ณต์œ  ๋ฒ„์ „์˜ ๋ฆฌ๋ธŒ์‚ฐ.
ใ€€ -์ •์ -libtsan ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋งํฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ธŒ์‚ฐ ์ •์ ์œผ๋กœ, ์—†์ด
๋ฐ˜๋“œ์‹œ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-์ •์ -liblsan
๋•Œ -fsanitize=๋ˆ„์ถœ ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ž๋™์œผ๋กœ ๋งํฌ ๋ฆฌ๋ธ”์‚ฐ. ๋ฉด ๋ฆฌ๋ธ”์‚ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ
์ „์—, -๊ณต์ „ ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋งํฌ๋Š” ๊ณต์œ  ๋ฒ„์ „์˜ ๋ฆฌ๋ธ”์‚ฐ.
ใ€€ -์ •์ -liblsan ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋งํฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ธ”์‚ฐ ์ •์ ์œผ๋กœ, ์—†์ด
๋ฐ˜๋“œ์‹œ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-์ •์ -libubsan
๋•Œ -fsanitize=์ •์˜๋˜์ง€ ์•Š์Œ ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ž๋™์œผ๋กœ ๋งํฌ ๋ฆฌ๋ถ€์‚ฐ. ๋ฉด ๋ฆฌ๋ถ€์‚ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
๊ทธ๋ฆฌ๊ณ  -๊ณต์ „ ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋งํฌ๋Š” ๊ณต์œ  ๋ฒ„์ „์˜
๋ฆฌ๋ถ€์‚ฐ. ๊ทธ๋งŒํผ -์ •์ -libubsan ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋งํฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ถ€์‚ฐ
์ •์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

-์ •์ -libmpx
๋•Œ -fcheck ํฌ์ธํ„ฐ ๋ฒ”์œ„ ๊ณผ -mmpx ์˜ต์…˜์€ GCC ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ž๋™์œผ๋กœ ๋งํฌ libmpx. ๋ฉด libmpx ๊ณต์œ ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
๋„์„œ๊ด€, ๊ทธ๋ฆฌ๊ณ  -๊ณต์ „ ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋งํฌ๋Š” ๊ณต์œ 
๋ฒ„์ „ libmpx. ๊ทธ๋งŒํผ -์ •์ -libmpx ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋งํฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. libmpx
์ •์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

-์ •์ -libmpxwrappers
๋•Œ -fcheck ํฌ์ธํ„ฐ ๋ฒ”์œ„ ๊ณผ -mmpx ์˜ต์…˜ ์—†์ด ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ์‚ฌ์šฉ -fno-chkp-use-๋ž˜ํผ, GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ž๋™์œผ๋กœ
libmpx ๋ž˜ํผ. ๋ฉด libmpx ๋ž˜ํผ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ -๊ณต์ „
์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋งํฌ๋Š” ๊ณต์œ  ๋ฒ„์ „์˜ libmpx ๋ž˜ํผ. ๊ทธ๋งŒํผ
-์ •์ -libmpxwrappers ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋งํฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. libmpx ๋ž˜ํผ
์ •์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

-์ •์ -libstdc++
๋•Œ g ++ ํ”„๋กœ๊ทธ๋žจ์€ C++ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋Œ€ libstdc++. ๋ฉด libstdc++ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ -๊ณต์ „
์˜ต์…˜์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋งํฌ๋Š” ๊ณต์œ  ๋ฒ„์ „์˜ libstdc++. ๊ทธ๊ฑด
์ผ๋ฐ˜์ ์œผ๋กœ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ ๋ฒ„์ „์„ ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. libstdc++
์™„์ „ํžˆ ์ •์  ๋งํฌ๋กœ ์ด๋™ํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. NS
-์ •์ -libstdc++ ์˜ต์…˜์€ g ++ ์—ฐ๊ฒฐํ•  ๋“œ๋ผ์ด๋ฒ„ libstdc++ ์ •์ ์œผ๋กœ, ์—†์ด
๋ฐ˜๋“œ์‹œ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

- ์ƒ์ง•์ 
๊ณต์œ  ๊ฐ์ฒด๋ฅผ ๋นŒ๋“œํ•  ๋•Œ ์ „์—ญ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ 
ํ™•์ธ๋˜์ง€ ์•Š์€ ์ฐธ์กฐ(๋งํฌ ํŽธ์ง‘๊ธฐ ์˜ต์…˜์œผ๋กœ ์žฌ์ •์˜๋˜์ง€ ์•Š๋Š” ํ•œ -X๋ง์ปค -z
-X๋ง์ปค ๋ฐํ”„). ์†Œ์ˆ˜์˜ ์‹œ์Šคํ…œ๋งŒ์ด ์ด ์˜ต์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-T ์Šคํฌ๋ฆฝํŠธ
์Šคํฌ๋ฆฝํŠธ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๋กœ. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
GNU ๋ง์ปค. ์šด์˜ ์ฒด์ œ๊ฐ€ ์—†๋Š” ๋ฒ ์–ด๋ณด๋“œ ๋Œ€์ƒ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ๋Œ€์ƒ์—์„œ๋Š”
์ „์—, -T ์ •์˜๋˜์ง€ ์•Š์€ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋งํฌํ•  ๋•Œ ์˜ต์…˜์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-X๋ง์ปค ์„ ํƒ๊ถŒ
ํŒจ์Šค ์„ ํƒ๊ถŒ ๋ง์ปค์— ๋Œ€ํ•œ ์˜ต์…˜์œผ๋กœ. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ๋ณ„
GCC๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ง์ปค ์˜ต์…˜.

๋ณ„๋„์˜ ์ธ์ˆ˜๋ฅผ ์ทจํ•˜๋Š” ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -X๋ง์ปค
๋‘ ๋ฒˆ, ์˜ต์…˜์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ, ์ธ์ˆ˜์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ. ์˜ˆ๋ฅผ ๋“ค์–ด ํ†ต๊ณผํ•˜๋ ค๋ฉด -์ฃผ์žฅํ•˜๋‹ค
์ •์˜, ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค -X๋ง์ปค -์ฃผ์žฅํ•˜๋‹ค -X๋ง์ปค ์ •์˜. ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์ž‘์„ฑ -X๋ง์ปค "-์ฃผ์žฅํ•˜๋‹ค ์ •์˜", ์ด๊ฒƒ์€ ์ „์ฒด ๋ฌธ์ž์—ด์„
๋ง์ปค๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ๋‹จ์ผ ์ธ์ˆ˜.

GNU ๋ง์ปค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ง์ปค์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒ๊ถŒ=๊ฐ€์น˜ ๋ณ„๋„์˜ ์ธ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹น์‹ ์€
์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -X๋ง์ปค -์ง€๋„=์ถœ๋ ฅ.์ง€๋„ ๋ณด๋‹ค๋Š” -X๋ง์ปค -์ง€๋„ -X๋ง์ปค ์ถœ๋ ฅ.๋งต.
๋‹ค๋ฅธ ๋ง์ปค๋Š” ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋Œ€ํ•ด ์ด ๊ตฌ๋ฌธ์„ ์ง€์›ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-NS,์„ ํƒ๊ถŒ
ํŒจ์Šค ์„ ํƒ๊ถŒ ๋ง์ปค์— ๋Œ€ํ•œ ์˜ต์…˜์œผ๋กœ. ๋งŒ์•ฝ์— ์„ ํƒ๊ถŒ ์‰ผํ‘œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์‰ผํ‘œ์— ์—ฌ๋Ÿฌ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ˆ˜๋ฅผ
์„ ํƒ๊ถŒ. ์˜ˆ๋ฅผ ๋“ค๋ฉด -Wl,-Map, output.map ํŒจ์Šค -์ง€๋„ ์ถœ๋ ฅ.๋งต ๋ง์ปค์—. ์–ธ์ œ
GNU ๋ง์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -Wl, -Map = output.map.

์ฐธ๊ณ : Ubuntu 8.10 ์ด์ƒ ๋ฒ„์ „์—์„œ LDFLAGS์˜ ๊ฒฝ์šฐ ์˜ต์…˜ -Wl,-z,relro ์‚ฌ์šฉ.
๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. -Wl,-z,๋…ธ๋ ๋กœ.

-u ์ƒ์ง•
๊ธฐํ˜ธ ์ฒ™ ์ƒ์ง• ์ •์˜๋˜์ง€ ์•Š์Œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋“ˆ์„ ๊ฐ•์ œ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ •์˜
๊ทธ๊ฒƒ. ๋‹น์‹ ์ด ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” -u ๋กœ๋“œ๋ฅผ ๊ฐ•์ œ๋กœ ๋‹ค๋ฅธ ๊ธฐํ˜ธ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ
์ถ”๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋“ˆ.

-z ํ‚ค์›Œ๋“œ๋Š”
-z ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ๋ง์ปค์— ์ง์ ‘ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ํ‚ค์›Œ๋“œ๋Š”. ์„น์…˜ ์ฐธ์กฐ
ํ—ˆ์šฉ๋œ ๊ฐ’๊ณผ ๊ทธ ์˜๋ฏธ๋Š” ๋ง์ปค ์„ค๋ช…์„œ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์˜ต์…˜ for ๋ช…๋ถ€ ๋‹ด๋‹น ๊ฒ€์ƒ‰
์ด ์˜ต์…˜์€ ํ—ค๋” ํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๋ถ€ํ’ˆ์„ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ์˜:

-IDIR
๋””๋ ‰ํ† ๋ฆฌ ์ถ”๊ฐ€ DIR ํ—ค๋”๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์˜ ํ—ค๋“œ๋กœ
ํŒŒ์ผ. ์ด๊ฒƒ์€ ์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ์„ ๋ฌด์‹œํ•˜๊ณ  ์ž์‹ ์˜ ํ—ค๋” ํŒŒ์ผ์„ ๋Œ€์ฒดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฒ„์ „, ์ด๋Ÿฌํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ๋ณด๋‹ค ๋จผ์ € ๊ฒ€์ƒ‰๋˜๊ธฐ ๋•Œ๋ฌธ์—
๋””๋ ‰ํ† ๋ฆฌ. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
๊ณต๊ธ‰์—…์ฒด ์ œ๊ณต ์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ(์‚ฌ์šฉ -์•„์ด์‹œ์Šคํ…œ ๊ทธ์— ๋Œ€ํ•œ). XNUMX๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
-I ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์Šค์บ”๋ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ ์‹œ์Šคํ…œ
๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋’ค์— ์˜ต๋‹ˆ๋‹ค.

ํ‘œ์ค€ ์‹œ์Šคํ…œ์— ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜๊ฑฐ๋‚˜ ๋‹ค์Œ์œผ๋กœ ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ -์•„์ด์‹œ์Šคํ…œ์ด๋‹ค
์™€๋„ ์ง€์ • -IWalk Through California ํ”„๋กœ๊ทธ๋žจ, -I ์˜ต์…˜์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๊ฒ€์ƒ‰๋˜์ง€๋งŒ
์‹œ์Šคํ…œ์˜ ์ •์ƒ์ ์ธ ์œ„์น˜์— ์žˆ๋Š” ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ฒด์ธ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ ํ—ค๋”๋ฅผ ์ˆ˜์ •ํ•˜๋Š” GCC์˜ ์ ˆ์ฐจ์™€
"include_next" ์ง€์‹œ๋ฌธ์ด ์‹ค์ˆ˜๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ •๋ง ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค๋ฉด
์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ์ˆœ์„œ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. -Nostdinc ๋ฐ / ๋˜๋Š” -์•„์ด์‹œ์Šคํ…œ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-iplugindir=DIR
์— ์˜ํ•ด ์ „๋‹ฌ๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. -fํ”Œ๋Ÿฌ๊ทธ์ธ=name ๋Œ€์‹ 
-fํ”Œ๋Ÿฌ๊ทธ์ธ=ํ†ต๋กœ/name.๊ทธ๋ž˜์„œ. ์ด ์˜ต์…˜์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
์šด์ „์ž๊ฐ€ ์ง€๋‚˜์ณค์Šต๋‹ˆ๋‹ค.

- ์ธ์šฉDIR
๋””๋ ‰ํ† ๋ฆฌ ์ถ”๊ฐ€ DIR ํ—ค๋”๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์˜ ํ—ค๋“œ๋กœ
"#include "์˜ ๊ฒฝ์šฐ์—๋งŒ ํŒŒ์ผํŒŒ์ผ""; ๊ทธ๋“ค์€ "#include์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
<ํŒŒ์ผ>", ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ฒ˜๋Ÿผ -I.

-LDIR
๋””๋ ‰ํ† ๋ฆฌ ์ถ”๊ฐ€ DIR ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์œผ๋กœ -l.

-B์ ‘๋‘์‚ฌ
์ด ์˜ต์…˜์€ ์‹คํ–‰ ํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํฌํ•จ ํŒŒ์ผ ๋ฐ
์ปดํŒŒ์ผ๋Ÿฌ ์ž์ฒด์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ.

์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. CPP, cc1, as ๊ณผ ld.
๊ทธ๊ฒƒ์€ ์‹œ๋„ ์ ‘๋‘์‚ฌ ์‹คํ–‰ํ•˜๋ ค๋Š” ๊ฐ ํ”„๋กœ๊ทธ๋žจ์˜ ์ ‘๋‘์‚ฌ๋กœ ์‚ฌ์šฉ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด
๊ธฐ๊ณ„/๋ฒ„์ „/.

์‹คํ–‰ํ•  ๊ฐ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„๋Š” ๋จผ์ € ๋‹ค์Œ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. -B ์ ‘๋‘์‚ฌ(์žˆ๋Š” ๊ฒฝ์šฐ).
ํ•ด๋‹น ์ด๋ฆ„์„ ์ฐพ์„ ์ˆ˜ ์—†๊ฑฐ๋‚˜ -B ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋“œ๋ผ์ด๋ฒ„๋Š” ๋‘ ๊ฐ€์ง€ ํ‘œ์ค€์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
์ ‘๋‘์‚ฌ, /usr/lib/gcc/ ๊ณผ /usr/local/lib/gcc/. ๋‘˜ ๋‹ค ๊ฒฐ๊ณผ๊ฐ€ ์—†์œผ๋ฉด
๋ฐœ๊ฒฌ๋œ ํŒŒ์ผ ์ด๋ฆ„, ์ˆ˜์ •๋˜์ง€ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰
๊ท€ํ•˜์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์ง€์ •๋œ PATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜.

์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์ œ๊ณต๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. -B ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ๋งŒ์•ฝ
ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฒฝ๋กœ ๋์— ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ๋ถ„ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

-B ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์„ ํšจ๊ณผ์ ์œผ๋กœ ์ง€์ •ํ•˜๋Š” ์ ‘๋‘์‚ฌ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ -L ๋ง์ปค์— ๋Œ€ํ•œ ์˜ต์…˜.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฒˆ์—ญํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ํฌํ•จ ํŒŒ์ผ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์˜ต์…˜์„ -์•„์ด์‹œ์Šคํ…œ ์ „์ฒ˜๋ฆฌ๊ธฐ ์˜ต์…˜. ์ด ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š”
์ถ”๊ฐ€ ํฌํ•จ ์ ‘๋‘์‚ฌ์—.

๋Ÿฐํƒ€์ž„ ์ง€์› ํŒŒ์ผ libgcc.a ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -B ์ ‘๋‘์‚ฌ, ๊ฒฝ์šฐ
ํ•„์š”. ๊ฑฐ๊ธฐ์— ์—†์œผ๋ฉด ์œ„์˜ ๋‘ ๊ฐ€์ง€ ํ‘œ์ค€ ์ ‘๋‘์‚ฌ๊ฐ€ ์‹œ๋„๋˜๊ณ 
๋ชจ๋‘์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํŒŒ์ผ์„ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด ํŒŒ์ผ์ด ๋งํฌ์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.

์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -B ์ ‘๋‘์‚ฌ๋Š” ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค
๋ณ€์ˆ˜ GCC_EXEC_PREFIX.

ํŠน๋ณ„ํ•œ kludge๋กœ ๊ฒฝ๋กœ๊ฐ€ ์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ -B is [๋””๋ ‰ํ„ฐ๋ฆฌ/]์Šคํ…Œ์ด์ง€N/์–ด๋””๋กœ N ์ˆซ์ž์ด๋‹ค
0์—์„œ 9 ์‚ฌ์ด์˜ ๋ฒ”์œ„์—์„œ ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. [๋””๋ ‰ํ„ฐ๋ฆฌ/]ํฌํ•จ. ์ด๊ฒƒ์€ ๋ถ€ํŒ…์„ ๋•๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค-
์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋ฌถ์Šต๋‹ˆ๋‹ค.

-์‚ฌ์–‘=ํŒŒ์ผ
๋ฐฉ๋ฒ• ํŒŒ์ผ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ‘œ์ค€์„ ์ฝ์€ ํ›„ ๋ช…์„ธ์„œ ํŒŒ์ผ์„ ์žฌ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด
๊ธฐ๋ณธ๊ฐ’์€ GCC ๋“œ๋ผ์ด๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์€ ์ „๋‹ฌํ•  ์Šค์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์— cc1, ์”จ์›ํ”Œ๋Ÿฌ์Šค, as, ld๋“ฑ. ํ•˜๋‚˜ ์ด์ƒ -์‚ฌ์–‘=ํŒŒ์ผ ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์ค„์—์„œ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

--sysroot=DIR
DIR ํ—ค๋” ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ์  ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์—์„œ ํ—ค๋”๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. / usr / include ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฅผ / usr / lib์—, ๊ทธ
๋Œ€์‹  ๊ฒ€์ƒ‰ ๋””๋ ‰ํ† ๋ฆฌ/usr/ํฌํ•จ ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ/usr/lib.

์ด ์˜ต์…˜๊ณผ -isysroot ์˜ต์…˜์„ ์„ ํƒํ•œ ๋‹ค์Œ --sysroot ์„ ํƒ๊ถŒ
๋„์„œ๊ด€์— ์ ์šฉ๋˜์ง€๋งŒ -isysroot ์˜ต์…˜์€ ํ—ค๋” ํŒŒ์ผ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

GNU ๋ง์ปค(๋ฒ„์ „ 2.16๋ถ€ํ„ฐ ์‹œ์ž‘)์—๋Š” ์ด์— ๋Œ€ํ•œ ํ•„์š”ํ•œ ์ง€์›์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ต์…˜. ๋ง์ปค๊ฐ€ ์ด ์˜ต์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด ํ—ค๋” ํŒŒ์ผ ์ธก๋ฉด์—์„œ
--sysroot ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ธก๋ฉด์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--no-sysroot-์ ‘๋ฏธ์‚ฌ
์ผ๋ถ€ ๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์œผ๋กœ ์ง€์ •๋œ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์ ‘๋ฏธ์‚ฌ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. --sysroot,
์‚ฌ์šฉ๋œ ๋‹ค๋ฅธ ์˜ต์…˜์— ๋”ฐ๋ผ ํ—ค๋”๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์œ„์น˜์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋””๋ ‰ํ† ๋ฆฌ/์ ‘๋ฏธ์‚ฌ/usr/ํฌํ•จ ๋Œ€์‹  ๋””๋ ‰ํ† ๋ฆฌ/usr/ํฌํ•จ. ์ด ์˜ต์…˜์€ ์ถ”๊ฐ€๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค
๊ทธ๋Ÿฐ ์ ‘๋ฏธ์‚ฌ์˜.

-๋‚˜๋Š”- ์ด ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์šฉ ํ•ด์ฃผ์„ธ์š” - ์ธ์šฉ ๋Œ€์‹  -I ์ด์ „ ๋””๋ ‰ํ† ๋ฆฌ
์ „์—, -๋‚˜๋Š”- ๋ฐ ์ œ๊ฑฐ -๋‚˜๋Š”- ์˜ต์…˜. ์ง€์ •ํ•œ ๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ -I ์ „์— ์˜ต์…˜
์ „์—, -๋‚˜๋Š”- ์˜ต์…˜์€ "#include "์˜ ๊ฒฝ์šฐ์—๋งŒ ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค.ํŒŒ์ผ""; ๊ทธ๋“ค์€ ์•„๋‹ˆ๋‹ค
"#ํฌํ•จ"์„ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.ํŒŒ์ผ>".

์ถ”๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ -I ์ดํ›„์˜ ์˜ต์…˜ -๋‚˜๋Š”- ์˜ต์…˜, ์ด๋“ค
๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ชจ๋“  "#include" ์ง€์‹œ๋ฌธ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. (๋ณดํ†ต ๋ชจ๋“  -I
๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.)

๋˜ํ•œ, -๋‚˜๋Š”- ์ด ์˜ต์…˜์€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ
ํ˜„์žฌ ์ž…๋ ฅ ํŒŒ์ผ์€ "#include "์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ๊ฒ€์ƒ‰ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์™”์Šต๋‹ˆ๋‹ค.ํŒŒ์ผ"".
์ด ํšจ๊ณผ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. -๋‚˜๋Š”-. ๊ณผ -๋‚˜๋Š”. ๊ฒ€์ƒ‰์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ๋Š” ์•„๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜์ง€๋งŒ ์ข…์ข… ๋งŒ์กฑ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

-๋‚˜๋Š”- ํ—ค๋” ํŒŒ์ผ์— ๋Œ€ํ•œ ํ‘œ์ค€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ, -๋‚˜๋Š”- ๊ณผ -Nostdinc ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.

์ง€์ • ๋ชฉํ‘œ ๋จธ์‹  ๊ณผ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „
GCC๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ GCC๋ฐ ๊ธฐ๊ณ„-gcc ๊ต์ฐจํ•  ๋•Œ
์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ ๊ธฐ๊ณ„-gcc-๋ฒ„์ „ ์„ค์น˜๋œ ๋ฒ„์ „์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด
๋งˆ์ง€๋ง‰.

ํ•˜๋“œ์›จ์–ด ๋ชจ๋ธ ๊ณผ ๊ตฌ์„ฑ
๊ฐ ๋Œ€์ƒ ๋จธ์‹  ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ ์œ ํ•œ ํŠน์ˆ˜ ์˜ต์…˜์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -m, ์„ ํƒ
๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด ๋ชจ๋ธ ๋˜๋Š” ๊ตฌ์„ฑ ์ค‘์—์„œ ---์˜ˆ: 68010 ๋Œ€ 68020, ๋ถ€๋™
๋ณด์กฐ ํ”„๋กœ์„ธ์„œ ๋˜๋Š” ์—†์Œ. ๋‹จ์ผ ์„ค์น˜๋œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „์€ ๋ชจ๋“  ๋ชจ๋ธ์— ๋Œ€ํ•ด ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜๋Š” ์ง€์ •๋œ ์˜ต์…˜์— ๋”ฐ๋ผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ผ๋ถ€ ๊ตฌ์„ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ํŠน์ˆ˜ ์˜ต์…˜๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
๋™์ผํ•œ ํ”Œ๋žซํผ์˜ ๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ์™€์˜ ํ˜ธํ™˜์„ฑ.

AAArch64 ์˜ต์…˜

์ด๋Ÿฌํ•œ ์˜ต์…˜์€ AArch64 ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-๋งˆ๋น„=name
์ง€์ •๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ ilp32 SysV์šฉ
int, long int ๋ฐ ํฌ์ธํ„ฐ๊ฐ€ 32๋น„ํŠธ์ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ๊ฐ™์ด lp64 SysV ์œ ์‚ฌ์šฉ
int๋Š” 32๋น„ํŠธ์ด์ง€๋งŒ long int์™€ ํฌ์ธํ„ฐ๋Š” 64๋น„ํŠธ์ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ ํŠน์ • ๋Œ€์ƒ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. LP64 ๋ฐ
ILP32 ABI๋Š” ๋งํฌ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ผํ•œ ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ABI ๋ฐ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ์™€์˜ ๋งํฌ.

-mbig-์—”๋””์•ˆ
๋น… ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ GCC๊ฐ€
aarch64_be-*-* ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.

-mgeneral-regs-only.
์ผ๋ฐ˜ ๋ ˆ์ง€์Šคํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
๋ฆฌํ‹€ ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ GCC๊ฐ€
์•„์น˜64-*-* ํ•˜์ง€๋งŒ aarch64_be-*-* ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.

-mcmodel=์ž‘์€
์ž‘์€ ์ฝ”๋“œ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์ •์ ์œผ๋กœ ์ •์˜๋œ ๊ธฐํ˜ธ
์„œ๋กœ 1GB ์ด๋‚ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋Š” 64๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ ์œผ๋กœ
๋˜๋Š” ๋™์ ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ์™„์ „ํžˆ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
์ž‘์€.

-mcmodel=์ž‘์€
์ž‘์€ ์ฝ”๋“œ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ •์ ์œผ๋กœ ์ •์˜๋œ ํ”„๋กœ๊ทธ๋žจ
๊ธฐํ˜ธ๋Š” ์„œ๋กœ 4GB ์ด๋‚ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋Š” 64๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์ˆ˜
์ •์ ์œผ๋กœ ๋˜๋Š” ๋™์ ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ ์ฝ”๋“œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

-mcmodel=๋Œ€ํ˜•
๋Œ€๊ทœ๋ชจ ์ฝ”๋“œ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ฃผ์†Œ์™€
์„น์…˜์˜ ํฌ๊ธฐ. ํฌ์ธํ„ฐ๋Š” 64๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ ์œผ๋กœ๋งŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mstrict-์ •๋ ฌ
์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-momit-๋ฆฌํ”„ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ
-mno-์ƒ๋žต-๋ฆฌํ”„-ํ”„๋ ˆ์ž„-ํฌ์ธํ„ฐ
๋ฆฌํ”„ ํ•จ์ˆ˜์—์„œ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์ƒ๋žตํ•˜๊ฑฐ๋‚˜ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์˜ ํ–‰๋™์€
ํƒœ๋งŒ.

-mtls-dialect=desc
TLS์˜ ๋™์  ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ TLS ์„ค๋ช…์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mtls-dialect=์ „ํ†ต
TLS์˜ ๋™์  ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๊ธฐ์กด TLS ์‚ฌ์šฉ
๋ณ€์ˆ˜.

-mfix-cortex-a53-835769
-mno-fix-cortex-a53-835769
ARM Cortex-A53 ์ •์˜คํ‘œ ๋ฒˆํ˜ธ 835769์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ๋ช…๋ น์–ด์™€ 64๋น„ํŠธ ์ •์ˆ˜ ์‚ฌ์ด์— NOP ๋ช…๋ น์–ด ์‚ฝ์ž…
๋ช…๋ น์„ ๊ณฑํ•ฉ๋‹ˆ๋‹ค.

-mfix-cortex-a53-843419
-mno-fix-cortex-a53-843419
ARM Cortex-A53 ์ •์˜คํ‘œ ๋ฒˆํ˜ธ 843419์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ •์˜คํ‘œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋งํฌ ์‹œ๊ฐ„์— ๋งŒ๋“ค์–ด์ง€๋ฉฐ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋งŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
๋ง์ปค์—.

-ํ–‰์ง„=name
์„ ํƒ์ ์œผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ ‘๋ฏธ์‚ฌ๊ฐ€ ๋ถ™๋Š” ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ์ˆ˜์ •์ž. ์ด ์˜ต์…˜์˜ ํ˜•์‹์€ -ํ–‰์ง„=์•„์น˜{+[์•„๋‹ˆ]๊ธฐ๋Šฅ}*, ์—ฌ๊ธฐ์„œ
์— ๋Œ€ํ•ด์„œ๋งŒ ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’ ์•„์น˜ is armv8-a. ์— ๋Œ€ํ•œ ํ—ˆ์šฉ ๊ฐ’ ๊ธฐ๋Šฅ are
์•„๋ž˜ ํ•˜์œ„ ์„น์…˜์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œํ•˜๋Š” ๊ธฐ๋Šฅ ์ˆ˜์ •์ž๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

GCC๋Š” ์ด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•  ๋•Œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ช…๋ น์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ.

์–ด๋””์— -XNUMX ์›” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜ ์—†์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค. -mtune or -mcpu ๋˜ํ•œ ์ง€์ •๋˜๊ณ ,
์ฝ”๋“œ๋Š”
๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜.

-mtune=name
GCC๊ฐ€ ์„ฑ๋Šฅ์„ ์กฐ์ •ํ•ด์•ผ ํ•˜๋Š” ๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ. ์ด ์˜ต์…˜์— ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ, ํ”ผ์งˆ -a53, ํ”ผ์งˆ -a57,
ํ”ผ์งˆ -a72, ์—‘์‹œ๋…ธ์Šค-m1, ์ฒœ๋‘ฅ, xgene1.

๋˜ํ•œ ์ด ์˜ต์…˜์€ GCC๊ฐ€ ์ฝ”๋“œ์˜ ์„ฑ๋Šฅ์„ ์กฐ์ •ํ•˜๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
big.LITTLE ์‹œ์Šคํ…œ์šฉ. ์ด ์˜ต์…˜์— ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ”ผ์งˆ-a57.ํ”ผ์งˆ-a53, ํ”ผ์งˆ-a72.ํ”ผ์งˆ-a53.

์–ด๋””์—๋„ -mtune=, -mcpu = or -ํ–‰์ง„= ์ง€์ •๋˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์กฐ์ •๋ฉ๋‹ˆ๋‹ค.
๋‹ค์–‘ํ•œ ๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ์— ๊ฑธ์ณ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๊ธฐ๋Šฅ ์ˆ˜์ •์ž๋กœ ์ ‘๋ฏธ์–ด๋ฅผ ๋ถ™์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

-mcpu =name
์„ ํƒ์ ์œผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ธฐ๋Šฅ์ด ์ ‘๋ฏธ์‚ฌ๋กœ ๋ถ™๋Š” ๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ •์ž. ์ด ์˜ต์…˜์˜ ํ˜•์‹์€ -mcpu =CPU{+[์•„๋‹ˆ]๊ธฐ๋Šฅ}*, ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ
๊ฐ’ CPU ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. -mtune.

์— ๋Œ€ํ•œ ํ—ˆ์šฉ ๊ฐ’ ๊ธฐ๋Šฅ ์•„๋ž˜ ํ•˜์œ„ ์„น์…˜์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œํ•˜๋Š” ๊ธฐ๋Šฅ ์ˆ˜์ •์ž๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

GCC๋Š” ์ด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•  ๋•Œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ช…๋ น์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ(๋งˆ์น˜ -XNUMX ์›”) ๋ฐ ๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด
์„ฑ๋Šฅ ์กฐ์ •(๋งˆ์น˜ -mtune). ์ด ์˜ต์…˜์ด ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ
-XNUMX ์›” or -mtune, ํ•ด๋‹น ์˜ต์…˜์€ ์ด ํ•ญ๋ชฉ์˜ ํ•ด๋‹น ๋ถ€๋ถ„๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-XNUMX ์›” ๊ณผ -mcpu ๊ธฐ๋Šฅ ์ˆ˜์ •์ž

์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ ์ˆ˜์ •์ž -XNUMX ์›” ๊ณผ -mcpu ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CRM CRC ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๋Š”
์•”ํ˜ธํ™” ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ ๊ธ‰ SIMD๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

fp ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

SIMD
๊ณ ๊ธ‰ SIMD ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๊ฐ€
ํ™œ์„ฑํ™”. ์ด๊ฒƒ์€ ํ˜„์žฌ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์˜ต์…˜ ๊ฐ’์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. -XNUMX ์›” ๊ณผ
-mcpu =.

์•„๋‹ตํ…Œ๋ฐ” ์ถœํ˜„ ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ Adapteva Epiphany์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mhalf-reg-ํŒŒ์ผ
"r32"..."r63" ๋ฒ”์œ„์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ• ๋‹นํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”
์ด๋Ÿฌํ•œ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์—†๋Š” ํ•˜๋“œ์›จ์–ด ๋ณ€ํ˜•.

-mprefer-์งง์€-insn-regs
์งง์€ ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ช…๋ น์–ด ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์ „์ฒด์ ์œผ๋กœ ๊ฐ์†Œํ•˜๊ฑฐ๋‚˜ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ ํฌ๊ธฐ.

-mbranch ๋น„์šฉ=NUM
๋ถ„๊ธฐ ๋น„์šฉ์„ ๋Œ€๋žต์ ์œผ๋กœ ์„ค์ • NUM "๊ฐ„๋‹จํ•œ" ์ง€์นจ. ์ด ๋น„์šฉ์€ ๋‹จ์ง€
๋ฐœ๊ฒฌ์ ์ด๋ฉฐ ๋ฆด๋ฆฌ์Šค ๊ฐ„์— ์ผ๊ด€๋œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mcmmove
์กฐ๊ฑด๋ถ€ ์ด๋™ ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mnops=NUM
๋ฐฉ์ถœ NUM ์ƒ์„ฑ๋œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ช…๋ น์–ด ์ „์— NOP.

-mno-soft-cmpsf
๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋น„๊ต์˜ ๊ฒฝ์šฐ "fsub" ๋ช…๋ น์–ด๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.
ํ”Œ๋ž˜๊ทธ. ์ด๊ฒƒ์€ ์†Œํ”„ํŠธ์›จ์–ด ๋น„๊ต๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
NaN์ด ์žˆ๊ฑฐ๋‚˜ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ์ž‘์€ ์ˆซ์ž๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต๋  ๋•Œ
๊ทธ๋“ค์˜ ์ฐจ์ด๋Š” XNUMX์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -msoft-cmpsf, ์–ด๋–ค ์šฉ๋„
๋Š๋ฆฌ์ง€๋งŒ IEEE ํ˜ธํ™˜ ์†Œํ”„ํŠธ์›จ์–ด ๋น„๊ต.

-mstack ์˜คํ”„์…‹=NUM
์Šคํƒ ์ƒ๋‹จ๊ณผ ์Šคํƒ ํฌ์ธํ„ฐ ์‚ฌ์ด์˜ ์˜คํ”„์…‹์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: 8์˜ ๊ฐ’
"sp+0...sp+7" ๋ฒ”์œ„์˜ XNUMX๋ฐ”์ดํŠธ๋ฅผ ๋ฆฌํ”„ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์Šคํƒ ํ• ๋‹น ์—†์ด ์ด์™ธ์˜ ๊ฐ’ 8 or 16 ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค.
์ผํ•˜๋‹ค. ๋˜ํ•œ ์ด ์˜ต์…˜์€ ABI๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผ
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ปดํŒŒ์ผ๋œ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ์Šคํƒ ์˜คํ”„์…‹์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ผํ•˜๋‹ค. ์ด ์˜ต์…˜์€ ์Šคํƒ ์˜คํ”„์…‹์ด ๋‹ค๋ฅธ์ง€ ํ‰๊ฐ€ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ์Šคํƒ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•˜๋ ค๋ฉด
ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ ์ ์ ˆํ•œ ๋„๊ตฌ ์ฒด์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
--์Šคํƒ ์˜คํ”„์…‹ ํฌํ•จ=NUM ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-mno-round-๊ฐ€์žฅ ๊ฐ€๊นŒ์šด
์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ๊ฐ€ ์ž๋ฅด๊ธฐ๋กœ ์„ค์ •๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ -mround-๊ฐ€์žฅ ๊ฐ€๊นŒ์šด.

-mlong-ํ†ตํ™”
์†์„ฑ์— ์˜ํ•ด ๋‹ฌ๋ฆฌ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ชจ๋“  ํ˜ธ์ถœ์ด
"b" / "bl" ๋ช…๋ น์–ด์˜ ์˜คํ”„์…‹ ๋ฒ”์œ„, ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ์ฃผ์†Œ ๋กœ๋“œ
(๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ง์ ‘) ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-m์งง์€ ํ†ตํ™”
์†์„ฑ์— ์˜ํ•ด ๋‹ฌ๋ฆฌ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ชจ๋“  ์ง์ ‘ ํ˜ธ์ถœ์ด ๋ฒ”์œ„์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
"b" / "bl" ๋ช…๋ น์–ด ์ค‘ ํ•˜๋‚˜์ด๋ฏ€๋กœ ์ง์ ‘ ํ˜ธ์ถœ์— ์ด ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. NS
๊ธฐ๋ณธ๊ฐ’์€ -mlong-ํ†ตํ™”.

-msmall16
์ฃผ์†Œ๊ฐ€ 16๋น„ํŠธ ๋ถ€ํ˜ธ ์—†๋Š” ๊ฐ’์œผ๋กœ ๋กœ๋“œ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๊ธฐ๋Šฅ ์ฃผ์†Œ -mlong-ํ†ตํ™” ์˜๋ฏธ๋ก ์ด ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

-mfp ๋ชจ๋“œ=๋ชจ๋“œ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„์˜ ๊ธฐ๋ณธ ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ถ€๋™์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐ ๋ฐ˜ํ™˜ ์‹œ์ ์— ์ œ๊ณต๋˜๊ณ  ์˜ˆ์ƒ๋˜๋Š” ํฌ์ธํŠธ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๋งŒ๋“ค๊ธฐ
์ด ๋ชจ๋“œ๋Š” ๊ธฐ๋Šฅ ์‹œ์ž‘ ์‹œ ์ฃผ๋กœ ํ•„์š”ํ•œ ๋ชจ๋“œ์™€ ์ผ์น˜ํ•˜์—ฌ
๋ถˆํ•„์š”ํ•œ ๋ชจ๋“œ ์ „ํ™˜์„ ๋ฐฉ์ง€ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋” ์ž‘๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋ชจ๋“œ ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐœ์‹ ์ž
๊ธฐ๋Šฅ ์ง„์ž… ์‹œ ๋ชจ๋“  ๋ชจ๋“œ๊ฐ€ ์œ ํšจํ•˜๋ฉฐ, ๊ธฐ๋Šฅ ์ง„์ž… ์‹œ ์œ ์ง€ ๋˜๋Š” ๋ณต์›๋ฉ๋‹ˆ๋‹ค.
๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ. ์ด ๋ชจ๋“œ๋Š” ์ปดํŒŒ์ผ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ๊ธฐํƒ€ ์ปดํŒŒ์ผ ๋‹จ์œ„
๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” FPU ๋ชจ๋“œ๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ๋ฐ
๋‹จ์ผ ๊ฐœ์ฒด ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€ ๋ชจ๋“œ์— ๋Œ€ํ•œ ํฌ๊ธฐ์™€ ์†๋„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋” ํฝ๋‹ˆ๋‹ค.
ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” ์ „ํ™˜,
์ผ๋ฐ˜์ ์ธ FPU ๋ชจ๋“œ์˜ ํŠน์ • ์„ ํƒ.

์ž๋ฅด๋‹ค
์ด๊ฒƒ์€ ์ž˜๋ฆผ(์˜ˆ: ๋ฐ˜์˜ฌ๋ฆผ)์ด ์žˆ๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.
XNUMX์œผ๋กœ) ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ. ์—ฌ๊ธฐ์—๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์ ์—์„œ
์ •์ˆ˜.

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด
์ด๊ฒƒ์€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ’์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.
์ง์ˆ˜ ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ.

INT ์ด๊ฒƒ์€ FPU์—์„œ ์ •์ˆ˜ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ์˜ˆ: ์ •์ˆ˜
๊ณฑํ•˜๊ธฐ ๋˜๋Š” ์ •์ˆ˜ ๊ณฑํ•˜๊ธฐ ๋ฐ ๋ˆ„์‚ฐ.

๋””ํดํŠธ๋Š” -mfp-mode=ํ˜ธ์ถœ์ž

-mnosplit-lohi
-mno-postinc
-mno-์‚ฌํ›„ ์ˆ˜์ •
32๋น„ํŠธ ๋กœ๋“œ ๋ถ„ํ• ์„ ๊ฐ๊ฐ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ์กฐ์ •,
์‚ฌํ›„ ์ฆ๊ฐ€ ์ฃผ์†Œ ์ƒ์„ฑ ๋ฐ ์‚ฌํ›„ ์ˆ˜์ • ์ฃผ์†Œ ์ƒ์„ฑ. NS
๊ธฐ๋ณธ๊ฐ’์€ msplit-lohi, -mpost-inc๋ฐ -mpost ์ˆ˜์ •.

-mnovect-๋”๋ธ”
๊ธฐ๋ณธ SIMD ๋ชจ๋“œ๋ฅผ SImode๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mvect-๋”๋ธ”, ์–ด๋–ค ์šฉ๋„
DImode๋ฅผ ๊ธฐ๋ณธ SIMD ๋ชจ๋“œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-์ตœ๋Œ€ ๋ฒกํ„ฐ ์ •๋ ฌ=NUM
SIMD ๋ฒกํ„ฐ ๋ชจ๋“œ ์œ ํ˜•์— ๋Œ€ํ•œ ์ตœ๋Œ€ ์ •๋ ฌ์ž…๋‹ˆ๋‹ค. NUM 4 ๋˜๋Š” 8์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
8. ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€
ํฌ๊ธฐ ๋ฐ/๋˜๋Š” ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์œ„์น˜์—์„œ SIMD ๋ฒกํ„ฐ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์œ ํ˜•์˜ ์ •๋ ฌ.

-msplit-vecmove-early
๋ถ„ํ•  ๋ฒกํ„ฐ๋Š” ๋‹ค์‹œ ๋กœ๋“œํ•˜๊ธฐ ์ „์— ๋‹จ์ผ ๋‹จ์–ด๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๋” ๋‚˜์€ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ด์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ ๋ฐ˜๋Œ€์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

-m1reg-๋“ฑ๋ก ๋ฒˆํ˜ธ
-1 ์ƒ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋กœ๋”ฉ์ด ์ž‘์•„์ง‘๋‹ˆ๋‹ค.
์ƒ์ˆ˜ ๋ฐ ํŠน์ • ๋น„ํŠธ๋งˆ์Šคํฌ๊ฐ€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’ ๋“ฑ๋ก ๋ฒˆํ˜ธ are r43 ๊ณผ r63,
ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์ •ํ•˜๊ณ , ์—†์Œ, ์ด๋Š” ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค
์ด๋ฅผ ์œ„ํ•ด ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -m1reg-์—†์Œ.

ARC ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ ์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ณ€ํ˜•์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

-mbarrel-shifter
๋ฐฐ๋Ÿด ์‹œํ”„ํ„ฐ๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ช…๋ น์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์ด ์•„๋‹ˆ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
-mcpu=ARC601 ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

-mcpu =CPU
์•„ํ‚คํ…์ฒ˜ ์œ ํ˜•, ๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์šฉ ๋ฐ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • CPU.
์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”๋กœ ๊ฐ€๊ธฐ ๋ณ„์นญ ์˜ต์…˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŽธ์˜. ์ง€์›๋˜๋Š” ๊ฐ’ CPU are

ARC600
ARC600์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ๋ณ„์นญ: -mA6, -mARC600.

ARC601
ARC601์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋ช…: -mARC601.

ARC700
ARC700์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ๋ณ„์นญ: -mA7, -mARC700. ๊ตฌ์„ฑ ์‹œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
๊ณผ ---cpu=arc700 ํฌํ•จ.

-mdpfp
-mdpfp-์ปดํŒฉํŠธ
FPX: ์ปดํŒฉํŠธ ๊ตฌํ˜„์„ ์œ„ํ•ด ์กฐ์ •๋œ ๋ฐฐ์ •๋ฐ€๋„ FPX ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mdpfp-๋น ๋ฅธ
FPX: ๋น ๋ฅธ ๊ตฌํ˜„์„ ์œ„ํ•ด ์กฐ์ •๋œ ๋ฐฐ์ •๋ฐ€๋„ FPX ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-dpfp-lrsr
FPX ํ™•์žฅ ๋ณด์กฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก LR ๋ฐ SR ๋ช…๋ น์–ด๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋ฉ”์•„
ํ™•์žฅ ์‚ฐ์ˆ  ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ "divaw", "add", "subs",
๋ฐ "sat16"์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•ญ์ƒ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -mcpu=ARC700.

-mno-mpy
ARC700์— ๋Œ€ํ•œ mpy ๋ช…๋ น์„ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mmul32x16
32x16๋น„ํŠธ ๊ณฑ์…ˆ ๋ฐ mac ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mmul64
mul64 ๋ฐ mulu64 ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•ด์„œ๋งŒ ์œ ํšจ -mcpu=ARC600.

-์ผ๋ฐ˜
๊ทœ๋ฒ” ๋ช…๋ น์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. -mcpu=ARC700 ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

-mspfp
-mspfp-์ปดํŒฉํŠธ
FPX: ์ปดํŒฉํŠธ ๊ตฌํ˜„์„ ์œ„ํ•ด ์กฐ์ •๋œ ๋‹จ์ •๋ฐ€๋„ FPX ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mspfp-๋น ๋ฅธ
FPX: ๋น ๋ฅธ ๊ตฌํ˜„์„ ์œ„ํ•ด ์กฐ์ •๋œ ๋‹จ์ •๋ฐ€๋„ FPX ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-msimd
๋Œ€์ƒ๋ณ„ ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ARC SIMD ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ
for -mcpu=ARC700.

-msoft-float
์ด ์˜ต์…˜์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ํ˜ธํ™˜์„ฑ ๋ชฉ์ ์œผ๋กœ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด
๋ถ€๋™ ์†Œ์ˆ˜์  ์ฝ”๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ณด๋‚ด์ง€๋ฉฐ ์ด ๊ธฐ๋ณธ๊ฐ’์€ FPX์—์„œ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ต์…˜; mspfp, mspfp-์ปดํŒฉํŠธ๋ฐ mspfp-๋น ๋ฅธ ๋‹จ์ •๋ฐ€๋„๋ฅผ ์œ„ํ•ด, ๊ทธ๋ฆฌ๊ณ  mdpfp, mdpfp-
ํŒฉํŠธ๋ฐ mdpfp-๋น ๋ฅธ ๋ฐฐ์ •๋ฐ€๋„๋ฅผ ์œ„ํ•ด.

-mswap
์Šค์™‘ ๋ช…๋ น์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์€ ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ๋˜๊ณ  ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๋งคํฌ๋กœ ๊ธฐํ˜ธ.

-mdsp-ํŒจ์นด
DSP ํŒฉ A ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ค์ •
์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xdsp_packa".

-mdvbf
์ด์ค‘ viterbi ๋‚˜๋น„ ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ
์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xdvbf"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-mlock
Locked Load/Store Conditional ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xlock"์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-mmac-d16
์–ด์…ˆ๋ธ”๋Ÿฌ์—๊ฒŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xxmac_d16"์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-mmac-24
์–ด์…ˆ๋ธ”๋Ÿฌ์—๊ฒŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xxmac_24"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-mrtsc
64๋น„ํŠธ ํƒ€์ž„์Šคํƒฌํ”„ ์นด์šดํ„ฐ ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ
์ง€์นจ. ๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xrtsc"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-mswap
์Šค์™‘ ๋ฐ”์ดํŠธ ์ฃผ๋ฌธ ํ™•์žฅ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xswape"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-์ „ํ™”
์ด์ค‘ ๋ฐ ๋‹จ์ผ ํ”ผ์—ฐ์‚ฐ์ž ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ
์ „ํ™”. ๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xtelephony"๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-mxy
XY ๋ฉ”๋ชจ๋ฆฌ ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ค์ •
์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__Xxy".

๋‹ค์Œ ์˜ต์…˜์€ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

-์‚ฌ์ด์ฆˆ๋ฅผ ์ž˜๋ชป ๋งž์ถ”๋‹ค
์˜ˆ์ƒ ์ฃผ์†Œ๋กœ ์–ด์…ˆ๋ธ”๋Ÿฌ ๋ช…๋ น์— ์ฃผ์„์„ ๋‹ต๋‹ˆ๋‹ค.

-mannotate ์ •๋ ฌ
์–ด๋–ค ์ •๋ ฌ ๊ณ ๋ ค ์‚ฌํ•ญ์ด ์ง€์นจ์„ ๋‚ด๋ฆฌ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค.
์งง๊ฑฐ๋‚˜ ๊ธธ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์ด ๋ง์ปค๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

-๋งˆํฌ๋ฆฌ๋ˆ…์Šค
"arclinux" ์—๋ฎฌ๋ ˆ์ด์…˜์˜ ์‚ฌ์šฉ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ง์ปค๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜
"arc-linux-uclibc"์šฉ์œผ๋กœ ๋นŒ๋“œ๋œ ๋„๊ตฌ ์ฒด์ธ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ
ํ”„๋กœํŒŒ์ผ๋ง์ด ์š”์ฒญ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ "arceb-linux-uclibc"๊ฐ€ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.

-marclinux_prof
"arclinux_prof" ์—๋ฎฌ๋ ˆ์ด์…˜์˜ ์‚ฌ์šฉ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ง์ปค๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ "arc-linux-uclibc"์šฉ์œผ๋กœ ๋นŒ๋“œ๋œ ๋„๊ตฌ ์ฒด์ธ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ
"arceb-linux-uclibc"๋Š” ํ”„๋กœํŒŒ์ผ๋ง์ด ์š”์ฒญ๋  ๋•Œ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์€ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

-mepilogue-cfi
์—ํ•„๋กœ๊ทธ์— ๋Œ€ํ•œ ํ˜ธ์ถœ ํ”„๋ ˆ์ž„ ์ •๋ณด ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mno-์—ํ•„๋กœ๊ทธ-cfi
์—ํ•„๋กœ๊ทธ์— ๋Œ€ํ•œ ํ˜ธ์ถœ ํ”„๋ ˆ์ž„ ์ •๋ณด ์ƒ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mlong-ํ†ตํ™”
ํ˜ธ์ถœ insns๋ฅผ ๋“ฑ๋ก ๊ฐ„์ ‘ ํ˜ธ์ถœ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์ „์ฒด ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
32๋น„ํŠธ ์ฃผ์†Œ ๋ฒ”์œ„.

-์ค‘๊ฐ„ ํ†ตํ™”
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜คํ”„์…‹์ธ ํ˜ธ์ถœ์— 25๋น„ํŠธ ์ฃผ์†Œ ์ง€์ • ๋ฒ”์œ„ ๋ฏธ๋งŒ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋ฌด์กฐ๊ฑด ๋ถ„๊ธฐ ๋ฐ ๋งํฌ ๋ช…๋ น์˜ ๊ฒฝ์šฐ. ํ•จ์ˆ˜์˜ ์กฐ๊ฑด๋ถ€ ์‹คํ–‰
25๋น„ํŠธ ๋ฒ”์œ„๊ฐ€ ์•„๋‹Œ 21๋น„ํŠธ ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ˜ธ์ถœ์ด ์–ต์ œ๋ฉ๋‹ˆ๋‹ค.
์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ ๋ฐ ๋งํฌ ์‚ฌ์šฉ. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์ถ•๋œ ๋„๊ตฌ ์ฒด์ธ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
"arc-linux-uclibc" ๋ฐ "arceb-linux-uclibc" ๋Œ€์ƒ.

-mno-sdata
sdata ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์ถ•๋œ ๋„๊ตฌ ์ฒด์ธ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
"arc-linux-uclibc" ๋ฐ "arceb-linux-uclibc" ๋Œ€์ƒ.

-mucb-mcount
UCB ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” mcount ํ˜ธ์ถœ์ด ์žˆ๋Š” ๊ณ„์ธก๊ธฐ. ์ฆ‰, ์ˆ˜์‹ ์ž์—์„œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํ˜ธ์ถœ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ARC ๊ณ„์ธก์€ ํ˜ธ์ถœ์ž์—์„œ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

-mํœ˜๋ฐœ์„ฑ ์บ์‹œ
ํœ˜๋ฐœ์„ฑ ์ฐธ์กฐ์— ๋Œ€ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ ์บ์‹œ๋œ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-ํœ˜๋ฐœ์„ฑ ์บ์‹œ
ํœ˜๋ฐœ์„ฑ ์ฐธ์กฐ์— ๋Œ€ํ•ด ์บ์‹œ ์šฐํšŒ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์€ ์ฝ”๋“œ ์ƒ์„ฑ์„ ๋ฏธ์„ธ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

-์•…์„ฑ ํ˜ธ์ถœ
ํ˜ธ์ถœ ๋ช…๋ น์— ๋Œ€ํ•œ ์ •๋ ฌ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

-mauto-์ˆ˜์ •-reg
๋ ˆ์ง€์Šคํ„ฐ ๋ณ€์œ„์™€ ํ•จ๊ป˜ ์‚ฌ์ „/์‚ฌํ›„ ์ˆ˜์ • ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mbbit-๊ตฌ๋ฉ
bbit peephole2๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mno-brcc
์ด ์˜ต์…˜์€ ๋Œ€์ƒ๋ณ„ ํŒจ์Šค ์ธ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. arc_reorg "BRcc"๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด
์ง€์นจ. ๊ฒฐํ•ฉ๊ธฐ ํŒจ์Šค์— ์˜ํ•ด ๊ตฌ๋™๋˜๋Š” "BRcc" ์ƒ์„ฑ์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mcase-๋ฒกํ„ฐ-pcrel
PC ๊ธฐ์ค€ ์Šค์œ„์น˜ ์ผ€์ด์Šค ํ…Œ์ด๋ธ” ์‚ฌ์šฉ - ์ผ€์ด์Šค ํ…Œ์ด๋ธ” ๋‹จ์ถ•์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด
๊ธฐ๋ณธ๊ฐ’ - ์˜ค์Šค.

-mcompact-casesi
์ปดํŒฉํŠธ casei ํŒจํ„ด์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. - ์˜ค์Šค.

-mno-์กฐ๊ฑด-exec
์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ๋ช…๋ น์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ARCompact ํŠน์ • ํŒจ์Šค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค. ๋กœ ์ธํ•œ
ํ”ผ์—ฐ์‚ฐ์ž ๋ฒˆํ˜ธ, ๋ฆฌํ„ฐ๋Ÿด ํฌ๊ธฐ,
๋ช…๋ น ๊ธธ์ด, ์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ์ง€์›, ๋Œ€์ƒ ๋…๋ฆฝ์ 
์กฐ๊ฑด๋ถ€ ์‹คํ–‰์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํŒจ์Šค๋Š” ์ข…์ข… ๋ถ€์กฑํ•˜๋ฏ€๋กœ ARC ํฌํŠธ๋Š”
๋” ๋งŽ์€ ์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ์ƒ์„ฑ์„ ์ฐพ์œผ๋ ค๋Š” ํŠน์ˆ˜ ํŒจ์Šค
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น, ๋ถ„๊ธฐ ๋‹จ์ถ• ๋ฐ ์ง€์—ฐ ์Šฌ๋กฏ ์Šค์ผ€์ค„๋ง ์ดํ›„์˜ ๊ธฐํšŒ
์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒจ์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์„ฑ๋Šฅ๊ณผ ์ฝ”๋“œ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
์ถ”๊ฐ€ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์˜ ๋น„์šฉ์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊บผ์ ธ. ํ—ˆ์šฉ ์˜คํ”„์…‹์„ ์ดˆ๊ณผํ•˜๋Š” ํ˜ธ์ถœ ๋ช…๋ น์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
๋ฒ”์œ„๋Š” ์กฐ๊ฑด๋ถ€์ด๋ฏ€๋กœ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -์ค‘๊ฐ„ ํ†ตํ™”
๋Œ€์‹ .

-๊ฑฐ์˜-cbranchsi
cbranchsi ํŒจํ„ด์˜ ์‚ฌ์ „ ๋‹ค์‹œ ๋กœ๋“œ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mexpand-adddi
rtl ์ƒ์„ฑ ์‹œ "adddi3" ๋ฐ "subdi3"์„ "add.f", "adc" ๋“ฑ์œผ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

-mindexed ๋กœ๋“œ
์ธ๋ฑ์‹ฑ๋œ ๋กœ๋“œ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์˜ตํ‹ฐ๋งˆ์ด์ € ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ๋ฑ์‹ฑ๋œ ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mlra
๋กœ์ปฌ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ARC์— ๋Œ€ํ•ด ์•„์ง ์‹คํ—˜์ ์ด๋ฏ€๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ‘œ์ค€ ๋‹ค์‹œ ๋กœ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, -mno-lra).

-mlra-์šฐ์„ ์ˆœ์œ„-์—†์Œ
๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ํ‘œ์‹œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mlra-์šฐ์„ ์ˆœ์œ„-์ปดํŒฉํŠธ
r0..r3 / r12..r15์— ๋Œ€ํ•œ ๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

-mlra-์šฐ์„ ์ˆœ์œ„-๋น„์ปดํŒฉํŠธ
r0..r3 / r12..r15์— ๋Œ€ํ•œ ๋Œ€์ƒ ๋“ฑ๋ก์ž ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

-mno-๋ฐ€๋ฆฌ์ฝ”๋“œ
ํฌ๊ธฐ ์ตœ์ ํ™” ์‹œ(์‚ฌ์šฉ - ์˜ค์Šค), ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ํ”„๋กค๋กœ๊ทธ ๋ฐ ์—ํ•„๋กœ๊ทธ ๋˜๋Š”
๋งŽ์€ ์ˆ˜์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์€ ์ข…์ข… ํŠน์ˆ˜ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค.
libgcc์˜ ๊ธฐ๋Šฅ; ์ด๊ฒƒ์„ ๋ผ๊ณ  ํ•œ๋‹ค ๋ฐ€๋ฆฌ์ฝ”๋“œ ์ „ํ™”. ์ด๋Ÿฌํ•œ ํ˜ธ์ถœ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ
์„ฑ๋Šฅ ๋ฌธ์ œ ๋ฐ/๋˜๋Š” ๋น„ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐํ•  ๋•Œ ์—ฐ๊ฒฐ ๋ฌธ์ œ ๋ฐœ์ƒ,
์ด ์˜ต์…˜์€ ๋ฐ€๋ฆฌ์ฝ”๋“œ ํ˜ธ์ถœ ์ƒ์„ฑ์„ ๋„๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

-mmํ˜ผํ•ฉ ์ฝ”๋“œ
16๋น„ํŠธ ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ๋•๊ธฐ ์œ„ํ•ด ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ
๋ช…๋ น์–ด๋ฅผ ๋Š˜๋ฆฌ๋ฉด์„œ ํ‰๊ท  ๋ช…๋ น์–ด ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ํšจ๊ณผ
์นด์šดํŠธ.

-mq ํด๋ž˜์Šค
'q' ๋ช…๋ น์–ด ๋Œ€์•ˆ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. - ์˜ค์Šค.

-mRcq
Rcq ์ œ์•ฝ ์ฒ˜๋ฆฌ ํ™œ์„ฑํ™” - ๋Œ€๋ถ€๋ถ„์˜ ์งง์€ ์ฝ”๋“œ ์ƒ์„ฑ์€ ์ด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๊ธฐ๋ณธ๊ฐ’.

-mRcw
Rcw ์ œ์•ฝ ์ฒ˜๋ฆฌ ํ™œ์„ฑํ™” - ccfsm condexec์€ ๋Œ€๋ถ€๋ถ„ ์ด์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด
ํƒœ๋งŒ.

-msize ์ˆ˜์ค€=์ˆ˜ํ‰
๋ช…๋ น ๊ธธ์ด ๋ฐ ์ •๋ ฌ๊ณผ ๊ด€๋ จํ•˜์—ฌ ํฌ๊ธฐ ์ตœ์ ํ™”๋ฅผ ๋ฏธ์„ธ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. NS
์ธ์ •๋œ ๊ฐ€์น˜ ์ˆ˜ํ‰ ์œ„์น˜ :

0 ํฌ๊ธฐ ์ตœ์ ํ™”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์ˆ˜์ค€์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. 1.

1 ์งง์€ ์ง€์นจ์€ ๊ธฐํšŒ์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

2 ๋˜ํ•œ ๋ฐฐ๋ฆฌ์–ด๊ฐ€ ์‚ญ์ œ๋œ ํ›„ ๋ฃจํ”„ ๋ฐ ์ฝ”๋“œ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

3 ๋˜ํ•œ ์„ ํƒ์  ๋ฐ์ดํ„ฐ ์ •๋ ฌ์ด ์‚ญ์ œ๋˜๊ณ  ์˜ต์…˜์ด Os ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ 3 ์–ธ์ œ - ์˜ค์Šค ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๊ฒƒ์ด ์•„๋‹ ๋•Œ์˜ ๋™์ž‘
์„ธํŠธ๋Š” ๋ ˆ๋ฒจ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. 1.

-mtune=CPU
์— ๋Œ€ํ•œ ๋ช…๋ น ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • CPU, -mcpu =.

์ง€์›๋˜๋Š” ๊ฐ’ CPU are

ARC600
ARC600 CPU์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

ARC601
ARC601 CPU์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

ARC700
ํ‘œ์ค€ ๋ฉ€ํ‹ฐํ”Œ๋ผ์ด์–ด ๋ธ”๋ก์ด ์žˆ๋Š” ARC700 CPU์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

ARC700-xmac
XMAC ๋ธ”๋ก์ด ์žˆ๋Š” ARC700 CPU์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์•„ํฌ725D
ARC725D CPU์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์•„ํฌ750D
ARC750D CPU์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

-๋‹ค์ค‘ ๋น„์šฉ=NUM
๊ณฑํ•˜๊ธฐ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ๊ฐ€์ •ํ•˜๋Š” ๋น„์šฉ, 4 ์ผ๋ฐ˜ ๋ช…๋ น๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

-munalign-prob-์ž„๊ณ„๊ฐ’=ํ™•๋ฅ 
๋ถ„๊ธฐ ์ •๋ ฌ ํ•ด์ œ์— ๋Œ€ํ•œ ํ™•๋ฅ  ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํŠœ๋‹ํ•  ๋•Œ ARC700 ๊ณผ
์†๋„ ์ตœ์ ํ™”, ์ฑ„์›Œ์ง„ ์ง€์—ฐ ์Šฌ๋กฏ์ด ์—†๋Š” ๋ถ„๊ธฐ๋Š” ๋ฐ”๋žŒ์งํ•˜๊ฒŒ ๋ฐฉ์ถœ๋ฉ๋‹ˆ๋‹ค.
ํ”„๋กœํŒŒ์ผ๋ง์— ๋ถ„๊ธฐ์˜ ํ™•๋ฅ ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ํ•œ ์ •๋ ฌ๋˜์ง€ ์•Š๊ณ  ๊ธธ๋‹ค.
๋ณต์šฉ์€ ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค ํ™•๋ฅ . ๊ธฐ๋ณธ๊ฐ’์€ (REG_BR_PROB_BASE/2), ์ฆ‰ 5000์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ต์…˜์€ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์œ ์ง€๋˜์ง€๋งŒ ์ด์ œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

- ๋งˆ๊ณ ๋„›
๊ตฌ์‹ FPX.

-mbig-์—”๋””์•ˆ
-EB ๋น… ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ต์…˜์˜ ์‚ฌ์šฉ์€ ์ด์ œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž
๋น… ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ "arceb-elf32" ๋ฐ "arceb-linux-uclibc" ๋Œ€์ƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋„๊ตฌ ์ฒด์ธ์„ ๋นŒ๋“œํ•  ๋•Œ big-endian์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
-์—˜์ž ๋ฆฌํ‹€ ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ต์…˜์˜ ์‚ฌ์šฉ์€ ์ด์ œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฆฌํ‹€ ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” "arc-elf32" ๋ฐ "arc-linux-uclibc"๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฆฌํ‹€ ์—”๋””์•ˆ์ด ๊ธฐ๋ณธ๊ฐ’์ธ ๋„๊ตฌ ์ฒด์ธ์„ ๋นŒ๋“œํ•  ๋•Œ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.

-mbarrel_shifter
๋กœ ๊ต์ฒด๋˜๋‹ค -mbarrel-shifter.

-mdpfp_compact
๋กœ ๊ต์ฒด๋˜๋‹ค -mdpfp-์ปดํŒฉํŠธ.

-mdpfp_fast
๋กœ ๊ต์ฒด๋˜๋‹ค -mdpfp-๋น ๋ฅธ.

-mdsp_packa
๋กœ ๊ต์ฒด๋˜๋‹ค -mdsp-ํŒจ์นด.

-mEA
๋กœ ๊ต์ฒด๋˜๋‹ค -๋ฉ”์•„.

-mmac_24
๋กœ ๊ต์ฒด๋˜๋‹ค -mmac-24.

-mmac_d16
๋กœ ๊ต์ฒด๋˜๋‹ค -mmac-d16.

-mspfp_compact
๋กœ ๊ต์ฒด๋˜๋‹ค -mspfp-์ปดํŒฉํŠธ.

-mspfp_fast
๋กœ ๊ต์ฒด๋˜๋‹ค -mspfp-๋น ๋ฅธ.

-mtune=CPU
๋งˆ์ผ€ํŒ…์€: arc600, arc601, arc700 ๊ณผ arc700-xmac for CPU ๋Œ€์ฒด๋œ๋‹ค ARC600, ARC601,
ARC700 ๊ณผ ARC700-xmac ๊ฐ๊ธฐ

-๋‹ค์ค‘ ๋น„์šฉ=NUM
๋กœ ๊ต์ฒด๋˜๋‹ค -๋ฉ€ํ‹ฐ์ฝ”์ŠคํŠธ.

ARM ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ ARM ํฌํŠธ์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-๋งˆ๋น„=name
์ง€์ •๋œ ABI์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. apcs-gnu, atpcs, ์•—์‹ธ,
aapcs-๋ฆฌ๋ˆ…์Šค ๊ณผ ์œผ์œผ์œผ์Œ.

-mapcs-ํ”„๋ ˆ์ž„
ARM ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” ์Šคํƒ ํ”„๋ ˆ์ž„ ์ƒ์„ฑ
์ฝ”๋“œ์˜ ์˜ฌ๋ฐ”๋ฅธ ์‹คํ–‰์„ ์œ„ํ•ด ๊ผญ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋”๋ผ๋„ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€์ • -fomit ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํƒ ํ”„๋ ˆ์ž„์ด
๋ฆฌํ”„ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mno-apcs-ํ”„๋ ˆ์ž„. ์ด ์˜ต์…˜์€
๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-๋งต
์ด๊ฒƒ์€ ๋™์˜์–ด์ž…๋‹ˆ๋‹ค -mapcs-ํ”„๋ ˆ์ž„ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mthumb-์—ฐ๋™
ARM๊ณผ Thumb ๋ช…๋ น์–ด ์„ธํŠธ ๊ฐ„์˜ ํ˜ธ์ถœ์„ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์ด ์—†์œผ๋ฉด v5 ์ด์ „ ์•„ํ‚คํ…์ฒ˜์—์„œ ๋‘ ๊ฐœ์˜ ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ
ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mno-thumb-์—ฐ๋™, ์•ฝ๊ฐ„๋ถ€ํ„ฐ
๋” ํฐ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ -mthumb-์—ฐ๋™ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. AAPCS ๊ตฌ์„ฑ์—์„œ
์ด ์˜ต์…˜์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

-mno-sched-ํ”„๋กค๋กœ๊ทธ
ํ•จ์ˆ˜ ํ”„๋กค๋กœ๊ทธ์—์„œ ๋ช…๋ น์–ด์˜ ์žฌ์ •๋ ฌ ๋˜๋Š” ๋ณ‘ํ•ฉ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ๋ณธ๋ฌธ์— ์žˆ๋Š” ์ง€์นจ์ด ์žˆ๋Š” ํ•ด๋‹น ์ง€์นจ. ์ด๊ฒƒ์€ ๋ชจ๋“ 
๊ธฐ๋Šฅ์€ ์ธ์‹ ๊ฐ€๋Šฅํ•œ ์ผ๋ จ์˜ ๋ช…๋ น์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค(๋˜๋Š” ์‹ค์ œ๋กœ๋Š”
๋‹ค๋ฅธ ๊ธฐ๋Šฅ ํ”„๋กค๋กœ๊ทธ์˜ ์ž‘์€ ์ง‘ํ•ฉ์—์„œ), ์ด ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋‚ด์—์„œ ํ•จ์ˆ˜์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
-msched-ํ”„๋กค๋กœ๊ทธ.

-mfloat-abi=name
์‚ฌ์šฉํ•  ๋ถ€๋™ ์†Œ์ˆ˜์  ABI๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ถ€๋“œ๋Ÿฌ์šด, ์†Œํ”„ํŠธ FP ๊ณผ
ํ•˜๋“œ.

์ง€์ • ๋ถ€๋“œ๋Ÿฌ์šด GCC๊ฐ€ ๋ถ€๋™์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ํฌํ•จํ•˜๋Š” ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
ํฌ์ธํŠธ ์ž‘์—…. ์†Œํ”„ํŠธ FP ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ƒ์„ฑ ๊ฐ€๋Šฅ
๋ช…๋ น์ด์ง€๋งŒ ์—ฌ์ „ํžˆ ์†Œํ”„ํŠธ ํ”Œ๋กœํŠธ ํ˜ธ์ถœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ ์ˆ˜
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด ์ƒ์„ฑ ๋ฐ FPU ๊ด€๋ จ ํ˜ธ์ถœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ ํŠน์ • ๋Œ€์ƒ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ•˜๋“œ ํ”Œ๋กœํŠธ
์†Œํ”„ํŠธ ํ”Œ๋กœํŠธ ABI๋Š” ๋งํฌ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋™์ผํ•œ ABI ๋ฐ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
๋ชจ๋“  ํ‘œ์ค€ ๊ตฌ์„ฑ.

-mbig-์—”๋””์•ˆ
๋น… ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฆฌํ‹€ ์—”๋””์•ˆ ํ”„๋กœ์„ธ์„œ์šฉ ์ฝ”๋“œ.

-ํ–‰์ง„=name
๋Œ€์ƒ ARM ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ์ด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ
์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ช…๋ น์–ด๋ฅผ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜๊ณผ ํ•จ๊ป˜ ๋˜๋Š” ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -mcpu = ์˜ต์…˜. ํ—ˆ์šฉ
์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. armv2, armv2a, armv3, armv3m, armv4, armv4t, armv5, armv5t, armv5e,
ARMV5TE, armv6, armv6j, armv6t2, armv6z, armv6zk, armv6-m, armv7, armv7-a, armv7-r,
armv7-m, armv7e-m, armv7ve, armv8-a, armv8-a+crc, ์œผ์œผ์œผ์Œ, iwmmxt2, ep9312.

-ํ–‰์ง„=armv7ve ๊ฐ€์ƒํ™” ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” armv7-์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค.

-ํ–‰์ง„=armv8-a+crc ARMv8-A ์•„ํ‚คํ…์ฒ˜์šฉ ์ฝ”๋“œ ์ƒ์„ฑ ๊ฐ€๋Šฅ
์„ ํƒ์  CRC32 ํ™•์žฅ.

-march = ๋„ค์ดํ‹ฐ๋ธŒ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋นŒ๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ž๋™ ๊ฐ์ง€ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์ปดํ“จํ„ฐ. ํ˜„์žฌ ์ด ๊ธฐ๋Šฅ์€ GNU/Linux์—์„œ๋งŒ ์ง€์›๋˜๋ฉฐ ๋ชจ๋“ 
์•„ํ‚คํ…์ฒ˜๋ฅผ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ๊ฐ์ง€์— ์‹คํŒจํ•œ ๊ฒฝ์šฐ ์˜ต์…˜์ด ์—†์Šต๋‹ˆ๋‹ค.
ํšจ๊ณผ.

-mtune=name
์ด ์˜ต์…˜์€ GCC๊ฐ€ ์กฐ์ •ํ•ด์•ผ ํ•˜๋Š” ๋Œ€์ƒ ARM ํ”„๋กœ์„ธ์„œ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ์˜ ์„ฑ๋Šฅ. ์ผ๋ถ€ ARM ๊ตฌํ˜„์˜ ๊ฒฝ์šฐ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์Šต๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. arm2, arm250, arm3, arm6,
arm60, arm600, arm610, arm620, arm7, ํŒ”7m, ํŒ”7d, arm7dm, ์•”7๋””, arm7dmi, arm70,
arm700, ์•”700i, arm710, ํŒ”710c, arm7100, arm720, arm7500, arm7500fe, 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, ํ”ผ์งˆ -a5, ํ”ผ์งˆ -a7, ํ”ผ์งˆ -a8, ํ”ผ์งˆ -a9,
ํ”ผ์งˆ -a12, ํ”ผ์งˆ -a15, ํ”ผ์งˆ -a53, ํ”ผ์งˆ -a57, ํ”ผ์งˆ -a72, ํ”ผ์งˆ-r4, ํ”ผ์งˆ-r4f,
ํ”ผ์งˆ-r5, ํ”ผ์งˆ-r7, ํ”ผ์งˆ-m7, ํ”ผ์งˆ-m4, ํ”ผ์งˆ-m3, ํ”ผ์งˆ-m1, ํ”ผ์งˆ-m0,
ํ”ผ์งˆ-m0plus, ํ”ผ์งˆ-m1.์ž‘์€ ๊ณฑํ•˜๊ธฐ, ํ”ผ์งˆ-m0.์ž‘์€ ๊ณฑํ•˜๊ธฐ,
cortex-m0plus.small ๊ณฑํ•˜๊ธฐ, ์—‘์‹œ๋…ธ์Šค-m1, ๋งˆ๋ธ”-pj4, ์—‘์Šค์Šค์ผ€์ผ, ์œผ์œผ์œผ์Œ, iwmmxt2, ep9312,
fa526, fa626, fa606te, fa626te, fmp626, fa726te, xgene1.

๋˜ํ•œ ์ด ์˜ต์…˜์€ GCC๊ฐ€ ์ฝ”๋“œ์˜ ์„ฑ๋Šฅ์„ ์กฐ์ •ํ•˜๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
big.LITTLE ์‹œ์Šคํ…œ์šฉ. ํ—ˆ์šฉ๋˜๋Š” ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”ผ์งˆ-a15.ํ”ผ์งˆ-a7,
ํ”ผ์งˆ-a57.ํ”ผ์งˆ-a53, ํ”ผ์งˆ-a72.ํ”ผ์งˆ-a53.

-mtune=์ผ๋ฐ˜-์•„์น˜ GCC๊ฐ€ ํ˜ผํ•ฉ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์„ ์กฐ์ •ํ•ด์•ผ ํ•จ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
์•„ํ‚คํ…์ฒ˜ ๋‚ด์˜ ํ”„๋กœ์„ธ์„œ ์•„์น˜. ๋ชฉํ‘œ๋Š” ์ž˜ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ˜„์žฌ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ์„ธ์„œ, ์ผ๋ถ€ ์ด์ ์„ ์ œ๊ณตํ•˜๋Š” ์ตœ์ ํ™” ๊ฐ„์˜ ๊ท ํ˜•
๋ฒ”์œ„์˜ CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ CPU์˜ ์„ฑ๋Šฅ ํ•จ์ •์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜ ํšจ๊ณผ
์ด ์˜ต์…˜์€ CPU ๋ชจ๋ธ์ด ์™”๋‹ค๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด์„œ ํ–ฅํ›„ GCC ๋ฒ„์ „์—์„œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mtune=๋„ค์ดํ‹ฐ๋ธŒ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋นŒ๋“œ ์ปดํ“จํ„ฐ์˜ CPU๋ฅผ ์ž๋™ ๊ฐ์ง€ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ~์—
ํ˜„์žฌ ์ด ๊ธฐ๋Šฅ์€ GNU/Linux์—์„œ๋งŒ ์ง€์›๋˜๋ฉฐ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ง€์›๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
์ธ์‹. ์ž๋™ ๊ฐ์ง€์— ์‹คํŒจํ•˜๋ฉด ์˜ต์…˜์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mcpu =name
๋Œ€์ƒ ARM ํ”„๋กœ์„ธ์„œ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ์ด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ
๋Œ€์ƒ ARM ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฆ„( -XNUMX ์›”) ๋ฐ ARM ํ”„๋กœ์„ธ์„œ
์„ฑ๋Šฅ์„ ์œ„ํ•ด ์กฐ์ •ํ•  ์œ ํ˜•(์— ์˜ํ•ด ์ง€์ •๋œ ๊ฒƒ์ฒ˜๋Ÿผ -mtune). ์ด ์˜ต์…˜์ด ์žˆ๋Š” ๊ณณ
์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค -XNUMX ์›” or -mtune, ํ•ด๋‹น ์˜ต์…˜์ด
์ด ์˜ต์…˜์˜ ์ ์ ˆํ•œ ๋ถ€๋ถ„.

์ด ์˜ต์…˜์— ํ—ˆ์šฉ๋˜๋Š” ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -mtune.

-mcpu=์ผ๋ฐ˜-์•„์น˜ ๋„ ํ—ˆ์šฉ๋˜๋ฉฐ ๋‹ค์Œ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. -ํ–‰์ง„=์•„์น˜
-mtune=์ผ๋ฐ˜-์•„์น˜. ์ฐธ์กฐ -mtune

-mcpu=๋„ค์ดํ‹ฐ๋ธŒ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋นŒ๋“œ ์ปดํ“จํ„ฐ์˜ CPU๋ฅผ ์ž๋™ ๊ฐ์ง€ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ~์—
ํ˜„์žฌ ์ด ๊ธฐ๋Šฅ์€ GNU/Linux์—์„œ๋งŒ ์ง€์›๋˜๋ฉฐ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ง€์›๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
์ธ์‹. ์ž๋™ ๊ฐ์ง€์— ์‹คํŒจํ•˜๋ฉด ์˜ต์…˜์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mfpu=name
์ด๊ฒƒ์€ ์–ด๋–ค ๋ถ€๋™ ์†Œ์ˆ˜์  ํ•˜๋“œ์›จ์–ด(๋˜๋Š” ํ•˜๋“œ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋ชฉํ‘œ. ํ—ˆ์šฉ๋˜๋Š” ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ˜„์‹ค, vfpv3, vfpv3-fp16, vfpv3-d16, vfpv3-d16-fp16,
vfpv3xd, vfpv3xd-fp16, ๋„ค์˜จ, ๋„ค์˜จ fp16, vfpv4, vfpv4-d16, fpv4-sp-d16, ๋„ค์˜จ vfpv4,
fpv5-d16, fpv5-sp-d16, fp-armv8, ๋„ค์˜จ fp-armv8๋ฐ ์•”ํ˜ธํ™”-๋„ค์˜จ-fp-armv8.

If -msoft-float ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์˜ ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒํ•œ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ•˜๋“œ์›จ์–ด์— NEON ํ™•์žฅ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ(์˜ˆ: -mfpu=๋„ค์˜จ),
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์€ GCC์˜ ์ž๋™ ๋ฒกํ„ฐํ™” ํŒจ์Šค์— ์˜ํ•ด ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
...์„ ์ œ์™ธํ•˜๋ฉด -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ๋„ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. NEON ํ•˜๋“œ์›จ์–ด ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ฐ์ˆ ์— ๋Œ€ํ•œ IEEE 754 ํ‘œ์ค€์„ ์™„์ „ํžˆ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(in
ํŠน์ • ๋น„์ •๊ทœ ๊ฐ’์€ XNUMX์œผ๋กœ ์ฒ˜๋ฆฌ๋จ), ๋”ฐ๋ผ์„œ NEON ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
์ •๋ฐ€๋„์˜ ์†์‹ค๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

-mfp16 ํ˜•์‹=name
"__fp16" ๋ฐ˜์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ์œ ํ˜•์˜ ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ
์ด๋ฆ„์€ ์—†์Œ, ์˜ˆ๋ฐ ๋Œ€์•ˆ; ๊ธฐ๋ณธ๊ฐ’์€ ์—†์Œ, ์ด ๊ฒฝ์šฐ "__fp16"
์œ ํ˜•์ด ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

-m๊ตฌ์กฐ-ํฌ๊ธฐ-๊ฒฝ๊ณ„=n
๋ชจ๋“  ๊ตฌ์กฐ ๋ฐ ๊ณต์šฉ์ฒด์˜ ํฌ๊ธฐ๋Š” ๋‹ค์Œ ์ˆ˜์˜ ๋ฐฐ์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผ๋ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์— ์˜ํ•ด ์„ค์ •๋˜๋Š” ๋น„ํŠธ. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ 8, 32 ๋ฐ 64์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
๋„๊ตฌ ๋ชจ์Œ๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. COFF ๋Œ€์ƒ ๋„๊ตฌ ์ฒด์ธ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€
8. 64 ๊ฐ’์€ ๊ธฐ๋ณธ ABI๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋” ํฐ ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ
ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ’์€ ์ž ์žฌ์ ์œผ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฝ”๋“œ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ตฌ์กฐ์ฒด ๋˜๋Š” ๊ณต์šฉ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

- mabort-on-noreturn
"noreturn" ํ•จ์ˆ˜์˜ ๋์—์„œ "abort" ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€์ด๋‹ค
ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜์„ ์‹œ๋„ํ•˜๋ฉด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

-mlong-ํ†ตํ™”
-mno-long-ํ†ตํ™”
์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ๋จผ์ € ์ฃผ์†Œ๋ฅผ ๋กœ๋“œํ•˜์—ฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์€ ๋‹ค์Œ ์ด ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ์„œ๋ธŒ๋ฃจํ‹ด ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋Œ€์ƒ ๊ธฐ๋Šฅ์ด 64MB ์ฃผ์†Œ ์ง€์ • ์™ธ๋ถ€์— ์žˆ๋Š” ๊ฒฝ์šฐ ์Šค์œ„์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ธŒ๋ฃจํ‹ด ํ˜ธ์ถœ ๋ช…๋ น์˜ ์˜คํ”„์…‹ ๊ธฐ๋ฐ˜ ๋ฒ„์ „ ๋ฒ”์œ„.

์ด ์Šค์œ„์น˜๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋“  ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๊ธด ํ˜ธ์ถœ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
ํœด๋ฆฌ์Šคํ‹ฑ์€ ์ •์  ํ•จ์ˆ˜, "short_call"์ด ์žˆ๋Š” ํ•จ์ˆ˜
์†์„ฑ, "#pragma no_long_calls" ์ง€์‹œ๋ฌธ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋Š” ํ•จ์ˆ˜,
ํ˜„์žฌ ์ •์˜๊ฐ€ ์ด๋ฏธ ์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜
์ปดํŒŒ์ผ ๋‹จ์œ„๋Š” ๊ธด ํ˜ธ์ถœ๋กœ ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์˜ ์˜ˆ์™ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์•ฝํ•œ ํ•จ์ˆ˜ ์ •์˜, "long_call" ์†์„ฑ ๋˜๋Š” "์„น์…˜"์ด ์žˆ๋Š” ํ•จ์ˆ˜
์†์„ฑ ๋ฐ "#pragma long_calls" ์ง€์‹œ๋ฌธ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋Š” ํ•จ์ˆ˜
ํ•ญ์ƒ ๊ธด ํ†ตํ™”๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€์ • -mno-long-ํ†ตํ™” ๋ณต์›
"#pragma" ๋ฒ”์œ„ ๋‚ด์—์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๋ณธ ๋™์ž‘
long_calls_off" ์ง€์‹œ์–ด. ์ด๋Ÿฌํ•œ ์Šค์œ„์น˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-msingle-pic-base
PIC ์ฃผ์†Œ ์ง€์ •์— ์‚ฌ์šฉ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค.
๊ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ”„๋กค๋กœ๊ทธ. ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ์€ ์ด๊ฒƒ์„ ์ดˆ๊ธฐํ™”ํ•  ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์‹คํ–‰์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ ์ ˆํ•œ ๊ฐ’์œผ๋กœ ๋“ฑ๋กํ•˜์‹ญ์‹œ์˜ค.

-mpic-๋ ˆ์ง€์Šคํ„ฐ=๋“ฑ๋ก ๋ฒˆํ˜ธ
PIC ์ฃผ์†Œ ์ง€์ •์— ์‚ฌ์šฉํ•  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ PIC ๊ธฐ๋ณธ ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ
๊ธฐ๋ณธ๊ฐ’์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ๊ฒฐ์ •๋œ ์ ์ ˆํ•œ ๋ ˆ์ง€์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ PIC ๊ธฐ๋ณธ ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ
๊ธฐ๋ณธ๊ฐ’์€ R9 ๋Œ€์ƒ์ด EABI ๊ธฐ๋ฐ˜์ด๊ฑฐ๋‚˜ ์Šคํƒ ๊ฒ€์‚ฌ๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
๊ธฐ๋ณธ๊ฐ’์€ R10.

-mpic-๋ฐ์ดํ„ฐ-ํ…์ŠคํŠธ ์ƒ๋Œ€
๊ฐ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” ๋กœ๋“œ ์‹œ ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ์— ์ƒ๋Œ€์ ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ,
PC ๊ธฐ์ค€ ์ž‘์—…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ฃผ์†Œ ์ง€์ •์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
VxWorks RTP ์ด์™ธ์˜ ๋Œ€์ƒ์šฉ.

-mpoke ํ•จ์ˆ˜ ์ด๋ฆ„
ํ•จ์ˆ˜ ๋ฐ”๋กœ ์•ž์— ์žˆ๋Š” ํ…์ŠคํŠธ ์„น์…˜์— ๊ฐ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์”๋‹ˆ๋‹ค.
ํ”„๋กค๋กœ๊ทธ. ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

t0
.ascii "arm_poke_function_name", 0
.๋งž์ถ”๋‹ค
t1
.๋‹จ์–ด 0xff000000 + (t1 - t0)
arm_poke_function_name
์ด๋™ IP, SP
stmfd sp!, {fp, ip, lr, pc}
์„œ๋ธŒ FPS, IP, #4

์Šคํƒ ์—ญ์ถ”์ ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ฝ”๋“œ๋Š” "fp +
0". ์ถ”์  ๊ธฐ๋Šฅ์ด "pc - 12" ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ์ƒ์œ„ 8๋น„ํŠธ๋Š”
์„ค์ •ํ•˜๋ฉด ๋ฐ”๋กœ ์•ž์— ํ•จ์ˆ˜ ์ด๋ฆ„์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์œ„์น˜ ๋ฐ ๊ธธ์ด๋Š” "((pc[-3]) & 0xff000000)"์ž…๋‹ˆ๋‹ค.

-์—„์ง€์†๊ฐ€๋ฝ
-๋งˆ๋ฆ„
ARM ๋ฐ Thumb ์ƒํƒœ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ์ค‘์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
๋Œ€๋ถ€๋ถ„์˜ ๊ตฌ์„ฑ์€ ARM ์ƒํƒœ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ๊ธฐ๋ณธ๊ฐ’์€
๋‹ค์Œ์œผ๋กœ GCC๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --with-๋ชจ๋“œ=์ƒํƒœ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mtpcs-ํ”„๋ ˆ์ž„
Thumb ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” ์Šคํƒ ํ”„๋ ˆ์ž„ ์ƒ์„ฑ
๋ฆฌํ”„๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ํ•จ์ˆ˜. (๋ฆฌํ”„ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ.) ๊ธฐ๋ณธ๊ฐ’์€ -mno-tpcs-ํ”„๋ ˆ์ž„.

-mtpcs-๋ฆฌํ”„ ํ”„๋ ˆ์ž„
Thumb ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” ์Šคํƒ ํ”„๋ ˆ์ž„ ์ƒ์„ฑ
๋ชจ๋“  ์žŽ ๊ธฐ๋Šฅ. (๋ฆฌํ”„ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.)
๋””ํดํŠธ๋Š” -mno-apcs-๋ฆฌํ”„ ํ”„๋ ˆ์ž„.

-mcallee-์Šˆํผ ์ธํ„ฐ์›Œํ‚น
์ปดํŒŒ์ผ ์ค‘์ธ ํŒŒ์ผ์—์„œ ์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์— ARM ๋ช…๋ น์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋จธ์ง€ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— Thumb ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๋Š” ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๊ฐ€ ๋น„์ธํ„ฐ์›Œํ‚น ์ฝ”๋“œ์—์„œ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
์ธํ„ฐ์›Œํ‚น์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— AAPCS ๊ตฌ์„ฑ์—์„œ๋Š” ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mcaller-์Šˆํผ ์ธํ„ฐ์›Œํ‚น
ํ•จ์ˆ˜ ํฌ์ธํ„ฐ(๊ฐ€์ƒ ํ•จ์ˆ˜ ํฌํ•จ)๋ฅผ ํ†ตํ•œ ํ˜ธ์ถœ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋„๋ก ํ—ˆ์šฉ
๋Œ€์ƒ ์ฝ”๋“œ๊ฐ€ ์ธํ„ฐ์›Œํ‚น์„ ์œ„ํ•ด ์ปดํŒŒ์ผ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด.
์ด ์˜ต์…˜์ด ์žˆ์œผ๋ฉด ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋น„์šฉ์— ์•ฝ๊ฐ„์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ ๊ฐ€๋Šฅ. ์ด ์˜ต์…˜์€ AAPCS ๊ตฌ์„ฑ์—์„œ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mtp=name
์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ํฌ์ธํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๋ชจ๋ธ์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์œ ํšจํ•œ ๋ชจ๋ธ์€
๋ถ€๋“œ๋Ÿฌ์šด, "__aeabi_read_tp"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. cp15, ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
"cp15"์—์„œ ์ง์ ‘ ํฌ์ธํ„ฐ(arm6k ์•„ํ‚คํ…์ฒ˜์—์„œ ์ง€์›๋จ) ๋ฐ ์ž๋™, ๊ทธ
์„ ํƒํ•œ ํ”„๋กœ์„ธ์„œ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ •์€
์ž๋™.

-mtls-๋ฐฉ์–ธ=๋ฐฉ์–ธ
์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์–ธ์–ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋ฐฉ์–ธS๋Š”
์ง€์› ---์•”์†Œ ๋น„์Šทํ•œ ์ผ์ข…์˜ ์˜์–‘ ๊ณผ gnu2. ๊ทธ๋งŒํผ ์•”์†Œ ๋น„์Šทํ•œ ์ผ์ข…์˜ ์˜์–‘ ๋ฐฉ์–ธ์€ ์›๋ž˜ GNU ์ฒด๊ณ„๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
๋กœ์ปฌ ๋ฐ ๊ธ€๋กœ๋ฒŒ ๋™์  TLS ๋ชจ๋ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. NS gnu2 ๋ฐฉ์–ธ์€ GNU๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค
๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์„ค๋ช…์ž ์ฒด๊ณ„. GNU
์„ค๋ช…์ž ์ฒด๊ณ„๋Š” ์›๋ž˜ ์ฒด๊ณ„์™€ ํ˜ธํ™˜๋˜์ง€๋งŒ ์ƒˆ ์ฒด๊ณ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋Ÿฌ, ๋ง์ปค ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›. ์ดˆ๊ธฐ ๋ฐ ๋กœ์ปฌ ์‹คํ–‰ TLS ๋ชจ๋ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์œผ๋ฉฐ ํ•ญ์ƒ ์›๋ž˜ ๊ตฌ์„ฑํ‘œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mword-์žฌ๋ฐฐ์น˜
๋‹จ์–ด ํฌ๊ธฐ ๊ฐ’(์ฆ‰, R_ARM_ABS32)์— ๋Œ€ํ•ด์„œ๋งŒ ์ ˆ๋Œ€ ์žฌ๋ฐฐ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๋Ÿฐํƒ€์ž„ ๋กœ๋”๊ฐ€ ๋ถ€๊ณผํ•˜๋Š” ๋Œ€์ƒ(uClinux, SymbianOS)์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ
์ด ์ œํ•œ, ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ -fpic or -fPIC ์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

-mfix-cortex-m3-ldrd
์ผ๋ถ€ Cortex-M3 ์ฝ”์–ด๋Š” "ldrd" ๋ช…๋ น์ด
์ค‘๋ณต ๋Œ€์ƒ ๋ฐ ๊ธฐ๋ณธ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ƒ์„ฑ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ด ์ง€์นจ. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -mcpu=ํ”ผ์งˆ-m3 is
์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-munaligned ์•ก์„ธ์Šค
-mno-์ •๋ ฌ๋˜์ง€ ์•Š์€-์•ก์„ธ์Šค
์ฃผ์†Œ์—์„œ 16๋น„ํŠธ ๋ฐ 32๋น„ํŠธ ๊ฐ’ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ํ™œ์„ฑํ™”(๋˜๋Š” ๋น„ํ™œ์„ฑํ™”)
16๋น„ํŠธ ๋˜๋Š” 32๋น„ํŠธ๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์•ก์„ธ์Šค๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
ARMv6 ์ด์ „ ๋ฐ ๋ชจ๋“  ARMv6-M ์•„ํ‚คํ…์ฒ˜์—์„œ ์ง€์›๋˜๋ฉฐ ๋‹ค๋ฅธ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
์ •๋ ฌ๋˜์ง€ ์•Š์€ ์•ก์„ธ์Šค๊ฐ€ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํŒจํ‚น๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๋‹จ์–ด์— ์•ก์„ธ์Šค
ํ•œ ๋ฒˆ์— ๋ฐ”์ดํŠธ.

ARM ์†์„ฑ "Tag_CPU_unaligned_access"๋Š” ์ƒ์„ฑ๋œ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์—์„œ ๋‹ค์Œ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์˜ ์„ค์ •์— ๋”ฐ๋ผ true ๋˜๋Š” false์ž…๋‹ˆ๋‹ค. ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์•ก์„ธ์Šค์ธ ๊ฒฝ์šฐ
ํ™œ์„ฑํ™”๋˜๋ฉด ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__ARM_FEATURE_UNALIGNED"๋„ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-64๋น„ํŠธ์šฉ mneon
Neon์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค์นผ๋ผ 64๋น„ํŠธ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”์–ด ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๋„ค์˜จ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™ํ•˜๋Š” ๋น„์šฉ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-mslow ํ”Œ๋ž˜์‹œ ๋ฐ์ดํ„ฐ
ํ”Œ๋ž˜์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๋ณด๋‹ค ๋Š๋ฆฌ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ
๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ๋ถ€ํ•˜๊ฐ€ ์ตœ์†Œํ™”๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
ARMv7 M-profile์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-masm ๊ตฌ๋ฌธ ํ†ตํ•ฉ
์ธ๋ผ์ธ ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ํ†ตํ•ฉ asm ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ํ˜„์žฌ ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” ๋ถ„ํ• ๋œ ๊ตฌ๋ฌธ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ์˜ต์…˜์€ Thumb1 ๋ฐ
ARM ์ƒํƒœ ๋ฐ Thumb2์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GCC. ๋ถ„ํ•  ๊ตฌ๋ฌธ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mrestrict-it
ARMv8์˜ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•˜๋„๋ก IT ๋ธ”๋ก ์ƒ์„ฑ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. IT ๋ธ”๋ก์€
์„ ํƒ๋œ ๋ช…๋ น์–ด ์„ธํŠธ์—์„œ ๋‹จ์ผ 16๋น„ํŠธ ๋ช…๋ น์–ด๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ARMv8 Thumb ๋ชจ๋“œ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-mprint-์กฐ์ •-์ •๋ณด
CPU ํŠœ๋‹ ์ •๋ณด๋ฅผ ์–ด์…ˆ๋ธ”๋Ÿฌ ํŒŒ์ผ์— ์ฃผ์„์œผ๋กœ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค
์ปดํŒŒ์ผ๋Ÿฌ์˜ ํšŒ๊ท€ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ์ฝ”๋“œ. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

AVR ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ AVR ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mmcu=MCU
Atmel AVR ISA(๋ช…๋ น ์„ธํŠธ ์•„ํ‚คํ…์ฒ˜) ๋˜๋Š” MCU ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์€@tie{}์ž…๋‹ˆ๋‹ค.avr2.

GCC๋Š” ๋‹ค์Œ AVR ์žฅ์น˜ ๋ฐ ISA๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

"avr2"
์ตœ๋Œ€ 8@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” "ํด๋ž˜์‹" ๊ธฐ๊ธฐ. MCU@tie{}= "attiny22",
"attiny26", "at90c8534", "at90s2313", "at90s2323", "at90s2333", "at90s2343",
"at90s4414", "at90s4433", "at90s4434", "at90s8515", "at90s8535".

"avr25"
์ตœ๋Œ€ 8@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ์™€ "MOVW"๊ฐ€ ์žˆ๋Š” "ํด๋ž˜์‹" ๊ธฐ๊ธฐ
๊ต์ˆ˜. MCU@tie{}= "ata5272", "ata6616c", "attiny13", "attiny13a",
"attiny2313", "attiny2313a", "attiny24", "attiny24a", "attiny25", "attiny261",
"attiny261a", "attiny43u", "attiny4313", "attiny44", "attiny44a", "attiny441",
"attiny45", "attiny461", "attiny461a", "attiny48", "attiny828", "attiny84",
"attiny84a", "attiny841", "attiny85", "attiny861", "attiny861a", "attiny87",
"attiny88", "at86rf401".

"avr3"
ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 16@tie{}KiB์—์„œ ์ตœ๋Œ€ 64@tie{}KiB์ธ "ํด๋ž˜์‹" ๊ธฐ๊ธฐ.
MCU@tie{}= "at43usb355", "at76c711".

"avr31"
128@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” "ํด๋ž˜์‹" ๊ธฐ๊ธฐ. MCU@tie{}= "atmega103",
"at43usb320".

"avr35"
16@tie{}KiB์—์„œ ์ตœ๋Œ€ 64@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ์™€
"MOVW" ๋ช…๋ น. MCU@tie{}= "ata5505", "ata6617c", "ata664251",
"atmega16u2", "atmega32u2", "atmega8u2", "attiny1634", "attiny167", "at90usb162",
"at90usb82".

"avr4"
์ตœ๋Œ€ 8@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” "ํ–ฅ์ƒ๋œ" ๊ธฐ๊ธฐ. MCU@tie{}= "ata6285",
"ata6286", "ata6289", "ata6612c", "atmega48", "atmega48a", "atmega48p",
"atmega48pa", "atmega8", "atmega8a", "atmega8hva", "atmega8515", "atmega8535",
"atmega88", "atmega88a", "atmega88p", "atmega88pa", "at90pwm1", "at90pwm2",
"at90pwm2b", "at90pwm3", "at90pwm3b", "at90pwm81".

"avr5"
ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 16@tie{}KiB์—์„œ ์ตœ๋Œ€ 64@tie{}KiB์ธ "ํ–ฅ์ƒ๋œ" ๊ธฐ๊ธฐ.
MCU@tie{}= "ata5702m322", "ata5782", "ata5790", "ata5790n", "ata5795", "ata5831",
"ata6613c", "ata6614q", "atmega16", "atmega16a", "atmega16hva", "atmega16hva2",
"atmega16hvb", "atmega16hvbrevb", "atmega16m1", "atmega16u4", "atmega161",
"atmega162", "atmega163", "atmega164a", "atmega164p", "atmega164pa", "atmega165",
"atmega165a", "atmega165p", "atmega165pa", "atmega168", "atmega168a",
"atmega168p", "atmega168pa", "atmega169", "atmega169a", "atmega169p",
"atmega169pa", "atmega32", "atmega32a", "atmega32c1", "atmega32hvb",
"atmega32hvbrevb", "atmega32m1", "atmega32u4", "atmega32u6", "atmega323",
"atmega324a", "atmega324p", "atmega324pa", "atmega325", "atmega325a",
"atmega325p", "atmega325pa", "atmega3250", "atmega3250a", "atmega3250p",
"atmega3250pa", "atmega328", "atmega328p", "atmega329", "atmega329a",
"atmega329p", "atmega329pa", "atmega3290", "atmega3290a", "atmega3290p",
"atmega3290pa", "atmega406", "atmega64", "atmega64a", "atmega64c1", "atmega64hve",
"atmega64hve2", "atmega64m1", "atmega64rfr2", "atmega640", "atmega644",
"atmega644a", "atmega644p", "atmega644pa", "atmega644rfr2", "atmega645",
"atmega645a", "atmega645p", "atmega6450", "atmega6450a", "atmega6450p",
"atmega649", "atmega649a", "atmega649p", "atmega6490", "atmega6490a",
"atmega6490p", "at90can32", "at90can64", "at90pwm161", "at90pwm216", "at90pwm316",
"at90scr100", "at90usb646", "at90usb647", "at94k", "m3000".

"avr51"
128@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” "ํ–ฅ์ƒ๋œ" ๊ธฐ๊ธฐ. MCU@tie{}= "atmega128",
"atmega128a", "atmega128rfa1", "atmega128rfr2", "atmega1280", "atmega1281",
"atmega1284", "atmega1284p", "atmega1284rfr2", "at90can128", "at90usb1286",
"at90usb1287".

"avr6"
3๋ฐ”์ดํŠธ PC๊ฐ€ ์žˆ๋Š” "ํ–ฅ์ƒ๋œ" ๊ธฐ๊ธฐ(์˜ˆ: 128@tie{}KiB ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ ํฌํ•จ)
๋ฉ”๋ชจ๋ฆฌ. MCU@tie{}= "atmega256rfr2", "atmega2560", "atmega2561", "atmega2564rfr2".

"avrxmega2"
8@tie{}KiB ์ด์ƒ ๋ฐ ์ตœ๋Œ€ 64@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” "XMEGA" ๊ธฐ๊ธฐ.
MCU@tie{}= "atxmega16a4", "atxmega16a4u", "atxmega16c4", "atxmega16d4",
"atxmega16e5", "atxmega32a4", "atxmega32a4u", "atxmega32c3", "atxmega32c4",
"atxmega32d3", "atxmega32d4", "atxmega32e5", "atxmega8e5".

"avrxmega4"
64@tie{}KiB ์ด์ƒ ๋ฐ ์ตœ๋Œ€ 128@tie{}KiB ํ”„๋กœ๊ทธ๋žจ์˜ "XMEGA" ๊ธฐ๊ธฐ
๋ฉ”๋ชจ๋ฆฌ. MCU@tie{}= "atxmega64a3", "atxmega64a3u", "atxmega64a4u", "atxmega64b1",
"atxmega64b3", "atxmega64c3", "atxmega64d3", "atxmega64d4".

"avrxmega5"
64@tie{}KiB ์ด์ƒ ๋ฐ ์ตœ๋Œ€ 128@tie{}KiB ํ”„๋กœ๊ทธ๋žจ์˜ "XMEGA" ๊ธฐ๊ธฐ
๋ฉ”๋ชจ๋ฆฌ ๋ฐ 64@tie{}KiB ์ด์ƒ์˜ RAM. MCU@tie{}= "atxmega64a1",
"atxmega64a1u".

"avrxmega6"
128@tie{}KiB ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” "XMEGA" ๊ธฐ๊ธฐ. MCU@ํƒ€์ด{}=
"atxmega128a3", "atxmega128a3u", "atxmega128b1", "atxmega128b3", "atxmega128c3",
"atxmega128d3", "atxmega128d4", "atxmega192a3", "atxmega192a3u", "atxmega192c3",
"atxmega192d3", "atxmega256a3", "atxmega256a3b", "atxmega256a3bu",
"atxmega256a3u", "atxmega256c3", "atxmega256d3", "atxmega384c3", "atxmega384d3".

"avrxmega7"
128@tie{}KiB ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ทธ ์ด์ƒ์˜ "XMEGA" ๊ธฐ๊ธฐ
64@tie{}KiB์˜ RAM. MCU@tie{}= "atxmega128a1", "atxmega128a1u", "atxmega128a4u".

"์•„๋ธŒ๋ฅดํ‹ฐ๋‹ˆ"
"TINY" ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 512@tie{}B์—์„œ ์ตœ๋Œ€ 4@tie{}KiB์ธ ์ดˆ์†Œํ˜• ์ฝ”์–ด ๊ธฐ๊ธฐ.
MCU@tie{}= "attiny10", "attiny20", "attiny4", "attiny40", "attiny5", "attiny9".

"avr1"
์ด ISA๋Š” ์ตœ์†Œ AVR ์ฝ”์–ด๋กœ ๊ตฌํ˜„๋˜๋ฉฐ ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
MCU@tie{}= "attiny11", "attiny12", "attiny15", "attiny28", "at90s1200".

-maccumulate-args
๋‚˜๊ฐ€๋Š” ํ•จ์ˆ˜ ์ธ์ˆ˜๋ฅผ ๋ˆ„์ ํ•˜๊ณ  ํ•„์š”ํ•œ ์Šคํƒ ๊ณต๊ฐ„์„ ํš๋“/ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ํ”„๋กค๋กœ๊ทธ/์—ํ•„๋กœ๊ทธ์—์„œ ํ•œ ๋ฒˆ ๋‚˜๊ฐ€๋Š” ํ•จ์ˆ˜ ์ธ์ˆ˜. ์ด ์˜ต์…˜์ด ์—†์œผ๋ฉด
๋‚˜๊ฐ€๋Š” ์ธ์ˆ˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— ํ‘ธ์‹œ๋˜๊ณ  ๋‚˜์ค‘์— ํŒ๋ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„ ์ธ์ˆ˜๋ฅผ ํŒํ•˜๋ฉด AVR์—์„œ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ
์Šคํƒ ๊ณต๊ฐ„์„ ๋ˆ„์ ํ•˜๋ฉด ์ธ์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ ํŒŒ์ผ์ด ๋” ์ž‘์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„์— ์Šคํƒ์—์„œ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์—ฌ๋Ÿฌ ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
printf์™€ ๊ฐ™์€ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ๊ณผ ๊ฐ™์ด ์Šคํƒ์—์„œ ์ธ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜.

-mbranch ๋น„์šฉ=๋น„์šฉ
์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ ๋ช…๋ น์–ด์˜ ๋ถ„๊ธฐ ๋น„์šฉ์„ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋น„์šฉ. ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€์น˜
for ๋น„์šฉ ์Œ์ด ์•„๋‹Œ ์ž‘์€ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ถ„๊ธฐ ๋น„์šฉ์€ 0์ž…๋‹ˆ๋‹ค.

-mcall-ํ”„๋กค๋กœ๊ทธ
๊ธฐ๋Šฅ ํ”„๋กค๋กœ๊ทธ/์—ํ•„๋กœ๊ทธ๋Š” ์ ์ ˆํ•œ ์„œ๋ธŒ๋ฃจํ‹ด์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธ
ํฌ๊ธฐ๊ฐ€ ๋” ์ž‘์Šต๋‹ˆ๋‹ค.

-๋ฏผํŠธ8
"int"๊ฐ€ 8๋น„ํŠธ ์ •์ˆ˜๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ชจ๋“  ์œ ํ˜•์˜ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. "char"๋Š” 1์ž…๋‹ˆ๋‹ค.
byte, "int"๋Š” 1๋ฐ”์ดํŠธ, "long"์€ 2๋ฐ”์ดํŠธ, "long long"์€ 4๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ์ œ๋ฐœ
์ด ์˜ต์…˜์€ C ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์ง€๋งŒ ๊ฒฐ๊ณผ์ ์œผ๋กœ
์ฝ”๋“œ ํฌ๊ธฐ.

-mn-ํ”Œ๋ž˜์‹œ=NUM
ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. NUM ๋ฐฐ 64@tie{}KiB.

-mno ์ธํ„ฐ๋ŸฝํŠธ
์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ํฌ๊ธฐ๊ฐ€ ๋” ์ž‘์Šต๋‹ˆ๋‹ค.

-mrelax
"CALL" resp๋ฅผ ๊ต์ฒดํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์งง์€ "RCALL" resp์— ์˜ํ•œ "JMP" ๋ช…๋ น. "RJMP"
ํ•ด๋‹น๋˜๋Š” ๊ฒฝ์šฐ ์ง€์‹œ. ํ™˜๊ฒฝ -mrelax ๊ทธ๋ƒฅ ์ถ”๊ฐ€ --mlink-ํœด์‹ ์˜ต์…˜์„
์–ด์…ˆ๋ธ”๋Ÿฌ์˜ ๋ช…๋ น์ค„๊ณผ --์•ˆ์‹ฌํ•˜๋‹ค ์˜ต์…˜์„ ๋ง์ปค์˜ ๋ช…๋ น์ค„์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ ํ”„ ์˜คํ”„์…‹์€ ์ด์ „์— ์•Œ๋ ค์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ง์ปค์—์„œ ์ ํ”„ ์™„ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•œ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ๋Š” ๋™์ผํ•˜๋ฉฐ,
๊ทธ๋Ÿฌ๋‚˜ ์‹คํ–‰ ํŒŒ์ผ์˜ ๋ช…๋ น์–ด๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ์˜ ๋ช…๋ น์–ด์™€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•”ํ˜ธ.

๋ง์ปค ์Šคํ…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด์™„์„ ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. "EIND" ์„น์…˜์„ ์ฐธ์กฐํ•˜๊ณ 
์•„๋ž˜์˜ ๋ง์ปค ์Šคํ….

-mmw
์žฅ์น˜๊ฐ€ ์ฝ๊ธฐ-์ˆ˜์ •-์“ฐ๊ธฐ ๋ช…๋ น์–ด "XCH", "LAC", "LAS"๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ "LAT".

-msp8
์Šคํƒ ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ 8๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ƒ์œ„ ๋ฐ”์ดํŠธ๋ฅผ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์Šคํƒ ํฌ์ธํ„ฐ๋Š” XNUMX์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์˜ต์…˜์€ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฉ€ํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์•„ํ‚คํ…์ฒ˜ "avr2" ๋ฐ "avr25". ์ด๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ์žฅ์น˜๋ฅผ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ํ˜ผํ•ฉํ•ฉ๋‹ˆ๋‹ค.
"SPH". ์ด์™ธ์˜ ์„ค์ •์˜ ๊ฒฝ์šฐ -mmcu=avr2 or -mmcu=avr25 ์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„๋Š”
๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ๊ณ ์œ ์˜ ๋ช…๋ น์ค„์—์„œ ์ด ์˜ต์…˜์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์žฅ์น˜ ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜์— 8๋น„ํŠธ ์Šคํƒ ํฌ์ธํ„ฐ๊ฐ€ ์žˆ๊ณ  "SPH"๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
๋“ฑ๋ก ์—ฌ๋ถ€.

-mstrict-X
ํ•˜๋“œ์›จ์–ด์—์„œ ์ œ์•ˆํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ "X"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "X"๊ฐ€
๊ฐ„์ ‘, ์‚ฌํ›„ ์ฆ๊ฐ€ ๋˜๋Š” ์‚ฌ์ „ ๊ฐ์†Œ ์ฃผ์†Œ ์ง€์ •์—๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์ด ์—†์œผ๋ฉด "X" ๋ ˆ์ง€์Šคํ„ฐ๋Š” "Y" ๋˜๋Š” "Z"์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์ถ”๊ฐ€ ์ง€์นจ์— ์˜ํ•ด ์—๋ฎฌ๋ ˆ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•ด ์Œ์ด ์•„๋‹Œ ์ž‘์€ "const < 64"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "X+const" ์ฃผ์†Œ ์ง€์ • Rn is
๋กœ ์ˆ˜ํ–‰

adw r26, const ; X += ์ƒ์ˆ˜
ld , NS ; = *X
sbiw r26, const ; X -= ์ƒ์ˆ˜

-mtiny ์Šคํƒ
์Šคํƒ ํฌ์ธํ„ฐ์˜ ํ•˜์œ„ 8@tie{}๋น„ํŠธ๋งŒ ๋ณ€๊ฒฝํ•˜์„ธ์š”.

-nodevicelib
AVR-LibC์˜ ์žฅ์น˜ ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ "libdev.a"์— ๋Œ€ํ•ด ๋งํฌํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-Waddr ๊ณต๊ฐ„ ๋ณ€ํ™˜
๊ฒฐ๊ณผ ์ฃผ์†Œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ฃผ์†Œ ๊ณต๊ฐ„ ๊ฐ„์˜ ๋ณ€ํ™˜์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
๊ณต๊ฐ„์€ ๋“ค์–ด์˜ค๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

"EIND" ๋ฐ 128Ki ๋ฐ”์ดํŠธ ์ด์ƒ์˜ ํ”Œ๋ž˜์‹œ๊ฐ€ ์žˆ๋Š” ์žฅ์น˜

๊ตฌํ˜„์˜ ํฌ์ธํ„ฐ๋Š” 16@tie{}๋น„ํŠธ ๋„ˆ๋น„์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ๋˜๋Š” ๋ ˆ์ด๋ธ”์˜ ์ฃผ์†Œ
๊ฐ„์ ‘ ์ ํ”„ ๋ฐ ํ˜ธ์ถœ์ด ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์›Œ๋“œ ์ฃผ์†Œ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
64@tie{}Ki ๋‹จ์–ด ๋ฒ”์œ„์˜ ์ฃผ์†Œ.

128@tie{}Ki ๋ฐ”์ดํŠธ ์ด์ƒ์˜ ๊ธฐ๊ธฐ์—์„œ ๊ฐ„์ ‘ ์ ํ”„๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด
ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—๋Š” "EIND"๋ผ๋Š” ํŠน์ˆ˜ ๊ธฐ๋Šฅ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
"EICAL" ๋˜๋Š” "EIJMP" ๋ช…๋ น์–ด๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ๋Œ€์ƒ ์ฃผ์†Œ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„
์ต์ˆ™ํ•œ.

์ด๋Ÿฌํ•œ ์žฅ์น˜์— ๋Œ€ํ•œ ๊ฐ„์ ‘ ์ ํ”„ ๋ฐ ํ˜ธ์ถœ์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ
๋ช‡ ๊ฐ€์ง€ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

* ์ปดํŒŒ์ผ๋Ÿฌ๋Š” "EIND"๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

* ์ปดํŒŒ์ผ๋Ÿฌ๋Š” "EICAL"/"EIJMP" ๋ช…๋ น์–ด์—์„œ ์•”์‹œ์ ์œผ๋กœ "EIND"๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"RET"๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘ ํ˜ธ์ถœ/์ ํ”„๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ "EIND"
๊ต์ˆ˜.

* ์ปดํŒŒ์ผ๋Ÿฌ๋Š” "EIND"๊ฐ€ ์‹œ์ž‘ ์ฝ”๋“œ ์ค‘ ๋˜๋Š” ์‹คํ–‰ ์ค‘ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜. ํŠนํžˆ "EIND"๋Š” ํ•จ์ˆ˜๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ์— ์ €์žฅ/๋ณต๊ตฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์„œ๋น„์Šค ๋ฃจํ‹ด ํ”„๋กค๋กœ๊ทธ/์—ํ•„๋กœ๊ทธ.

* ํ•จ์ˆ˜ ๋ฐ ๊ณ„์‚ฐ๋œ goto์— ๋Œ€ํ•œ ๊ฐ„์ ‘ ํ˜ธ์ถœ์˜ ๊ฒฝ์šฐ ๋ง์ปค๋Š” ๋‹ค์Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์Šคํ…. ์Šคํ…
์ ํ”„ ํŒจ๋“œ๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค ํŠธ๋žจํด๋ฆฐ. ๋”ฐ๋ผ์„œ ๊ฐ„์ ‘ ํ˜ธ์ถœ/์ ํ”„
๊ทธ๋Ÿฐ ์Šคํ…. ์Šคํ…์—๋Š” ์›ํ•˜๋Š” ์ฃผ์†Œ๋กœ์˜ ์ง์ ‘ ์ ํ”„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

* ๋ง์ปค๊ฐ€ ์Šคํ…์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋ง์ปค ์ด์™„์„ ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์ƒํ™ฉ์—์„œ. ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜ ์ฐธ์กฐ -mrelax ๊ทธ๋ฆฌ๊ณ  ๋ง์ปค ์˜ต์…˜ --์•ˆ์‹ฌํ•˜๋‹ค.
๋ง์ปค๊ฐ€ ์Šคํ…์„ ์ƒ์„ฑํ•ด์•ผ ํ•˜์ง€๋งŒ ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
ํœด์‹ ์—†์ด ์œ ์šฉํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์—†์ด.

* ๊ธฐ๋ณธ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๋Š” "EIND = 0"์ธ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๊ฐ€์ •๋˜๋Š” ๊ฒฝ์šฐ
"EIND != 0" ์„ค์ •์—์„œ ์ž‘๋™ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž ์ง€์ • ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฆ„์ด ".trampolines"๋กœ ์‹œ์ž‘ํ•˜๋Š” ์„น์…˜์„ ์„ธ๊ทธ๋จผํŠธ์— ๋ฐฐ์น˜ํ•˜๋ ค๋ฉด
"EIND"๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

* libgcc์˜ ์‹œ์ž‘ ์ฝ”๋“œ๋Š” "EIND"๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ ์ฝ”๋“œ๋Š” ํ˜ผํ•ฉ์ž…๋‹ˆ๋‹ค.
libgcc ๋ฐ AVR-LibC์˜ ์ฝ”๋“œ. "EIND"์— ๋Œ€ํ•œ AVR-LibC์˜ ์˜ํ–ฅ์— ๋Œ€ํ•ด์„œ๋Š” AVR-
LibC ์‚ฌ์šฉ์ž ๋งค๋‰ด์–ผ("http://nongnu.org/avr-libc/user-manual/").

* ์‚ฌ์šฉ์ž๋ณ„ ์‹œ์ž‘ ์ฝ”๋“œ๊ฐ€ "EIND"๋ฅผ ์ผ์ฐ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ํ•ฉ๋ฒ•์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด
".init3" ์„น์…˜์— ์žˆ๋Š” ์ดˆ๊ธฐํ™” ์ฝ”๋“œ ์ˆ˜๋‹จ. ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋Š” ์ด์ „์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
RAM์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์‹œ์ž‘ ์ฝ”๋“œ
"EIND"๋ฅผ ๋ฒกํ„ฐ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ๋กœ ์„ค์ •ํ•˜๋Š” AVR-LibC์˜ ์‹œ์ž‘ ์ฝ”๋“œ
์œ„์น˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

#ํฌํ•จํ•˜๋‹ค

์ •์  ๊ณต๊ทน
__attribute__((์„น์…˜(".init3"), ์•Œ๋ชธ, ์‚ฌ์šฉ, no_instrument_function))
init3_set_eind(๋ฌดํšจ)
{
__asm โ€‹โ€‹ํœ˜๋ฐœ์„ฑ("ldi r24,pm_hh8(__trampolines_start)\n\t"
"%i0,r24 ์ถœ๋ ฅ" :: "n" (&EIND) : "r24","๋ฉ”๋ชจ๋ฆฌ");
}

"__trampolines_start" ๊ธฐํ˜ธ๋Š” ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

* ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋ฉด ๋ง์ปค์— ์˜ํ•ด ์Šคํ…์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
๋งŒ๋‚œ :

-
( ์ƒ์„ฑ ์Šคํ…) ๋‹ค์Œ๊ณผ ๊ฐ™์ด:

LDI r24, lo8(gs( ))
LDI r25, hi8(gs( ))

-
์™ธ๋ถ€ ์Šคํ…์ด ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ์ž…๋‹ˆ๋‹ค.

* ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์ฝ”๋“œ ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•ด ์ด๋Ÿฌํ•œ "gs" ์ˆ˜์ •์ž๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

-
-
- -mcall-ํ”„๋กค๋กœ๊ทธ>
๋ช…๋ น์ค„ ์˜ต์…˜.

-
์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ” -fno-์ ํ”„ ํ…Œ์ด๋ธ” ๋ช…๋ น์ค„ ์˜ต์…˜.

-
-
* ์ด์™€ ๊ฐ™์ด ๊ธฐํ˜ธ๊ฐ€ ์•„๋‹Œ ์ฃผ์†Œ๋กœ ์ ํ”„ํ•˜๋Š” ๊ฒƒ์€ ์ง€์› ์ง€์› :

์ •์ˆ˜ ๋ฉ”์ธ(๋ฌดํšจ)
{
/* ์›Œ๋“œ ์ฃผ์†Œ 0x2์—์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ */
๋ฐ˜ํ™˜((int(*)(๋ฌดํšจ)) 0x2)();
}

๋Œ€์‹ , ์Šคํ…์ด ์„ค์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•จ์ˆ˜๋Š” ๊ธฐํ˜ธ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
(์˜ˆ์‹œ์—์„œ "func_4"):

์ •์ˆ˜ ๋ฉ”์ธ(๋ฌดํšจ)
{
extern int func_4(๋ฌดํšจ);

/* ๋ฐ”์ดํŠธ ์ฃผ์†Œ 0x4์—์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ */
๋ฐ˜ํ™˜ func_4();
}

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. -Wl,--defsym, func_4=0x4. ๋˜๋Š” "func_4"
๋ง์ปค ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"RAMPD", "RAMPX", "RAMPY" ๋ฐ "RAMPZ" ํŠน์ˆ˜ ๊ธฐ๋Šฅ ๋ ˆ์ง€์Šคํ„ฐ ์ฒ˜๋ฆฌ

์ผ๋ถ€ AVR ๊ธฐ๊ธฐ๋Š” ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” 64@tie{}KiB ๋ฒ”์œ„๋ณด๋‹ค ํฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
16๋น„ํŠธ ํฌ์ธํ„ฐ๋กœ. ์ด 64@tie{}KiB ๋ฒ”์œ„ ๋ฐ–์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด
"RAMP" ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚ด์šฉ์€ ์ฃผ์†Œ์˜ ์ƒ์œ„ ๋ถ€๋ถ„์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. "X", "Y", "Z"
์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” "RAMPX", "RAMPY", "RAMPZ" ํŠน์ˆ˜ ๊ธฐ๋Šฅ๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
๋„“์€ ์ฃผ์†Œ๋ฅผ ์–ป์œผ๋ ค๋ฉด ๊ฐ๊ฐ ๋“ฑ๋กํ•˜์‹ญ์‹œ์˜ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ "RAMPD"๋Š” ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ง์ ‘ ์ฃผ์†Œ ์ง€์ •.

* ์‹œ์ž‘ ์ฝ”๋“œ๋Š” "RAMP" ํŠน์ˆ˜ ๊ธฐ๋Šฅ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ XNUMX์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

* ๋งŒ์•ฝ AVR ์ด๋ฆ„ ์ฃผ์†Œ ๋ช…๋ช…๋œ ๊ณต๊ฐ„ ์ฃผ์†Œ ๊ณต๊ฐ„ ์ผ๋ฐ˜ ๋˜๋Š” "__flash"๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€
์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—… ์ „์— ํ•„์š”์— ๋”ฐ๋ผ "RAMPZ"๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

* ๊ธฐ๊ธฐ๊ฐ€ 64@tie{}KiB๋ณด๋‹ค ํฐ RAM์„ ์ง€์›ํ•˜๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
"RAMPZ"๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  "RAMPZ"๋Š” ์ž‘์—… ํ›„์— XNUMX์œผ๋กœ ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

* ์žฅ์น˜๊ฐ€ ํŠน์ • "RAMP" ๋ ˆ์ง€์Šคํ„ฐ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ ISR ํ”„๋กค๋กœ๊ทธ/์—ํ•„๋กœ๊ทธ
ํ•ด๋‹น SFR์„ ์ €์žฅ/๋ณต์›ํ•˜๊ณ  ISR ์ฝ”๋“œ๊ฐ€
(์•”์‹œ์ ์œผ๋กœ) ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

* 64@tie{}KiB๋ณด๋‹ค ํฐ RAM์€ AVR ๋Œ€์ƒ์šฉ GCC์—์„œ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
16๋น„ํŠธ ์ฃผ์†Œ ๋ฒ”์œ„ ๋ฐ–์˜ ์œ„์น˜์—์„œ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•˜๋Š” ์ธ๋ผ์ธ ์–ด์…ˆ๋ธ”๋Ÿฌ
"RAMP" ๋ ˆ์ง€์Šคํ„ฐ ์ค‘ ํ•˜๋‚˜์— ์•ก์„ธ์Šคํ•œ ํ›„ ์ด๋ฅผ XNUMX์œผ๋กœ ์žฌ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

AVR ๋‚ด์žฅ ๋งคํฌ๋กœ

GCC๋Š” ์‚ฌ์šฉ์ž ์ฝ”๋“œ๊ฐ€ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ ๋‚ด์žฅ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์˜ ๋ถ€์žฌ. ๋‹ค์Œ ๋‚ด์žฅ ๋งคํฌ๋กœ ์ค‘ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์ด ์žฅ์น˜์—์„œ ์ถ”๋ก ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. -mmcu= ๋ช…๋ น์ค„ ์˜ต์…˜.

๋” ๋งŽ์€ AVR ์ „์šฉ ๋‚ด์žฅ ๋งคํฌ๋กœ๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. AVR ์ด๋ฆ„ ์ฃผ์†Œ ๊ณต๊ฐ„ ๊ณผ AVR ๋‚ด์žฅ
๊ธฐ๋Šฅ.

"__AVR_ARCH__"
์•„ํ‚คํ…์ฒ˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” XNUMX์ง„์ˆ˜๋กœ ํ•ด์„๋˜๋Š” ๋‚ด์žฅ ๋งคํฌ๋กœ ๋ฐ
์— ๋”ฐ๋ผ -mmcu=MCU ์˜ต์…˜. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2, 25, 3, 31, 35, 4, 5, 51, 6

for MCU"avr2", "avr25", "avr3", "avr31", "avr35", "avr4", "avr5", "avr51", "avr6",

๊ฐ๊ฐ

100, 102, 104, 105, 106, 107

for MCU"avrtiny", "avrxmega2", "avrxmega4", "avrxmega5", "avrxmega6", "avrxmega7",
๊ฐ๊ธฐ. ๋งŒ์•ฝ์— MCU ์žฅ์น˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ด ๋‚ด์žฅ ๋งคํฌ๋กœ๊ฐ€ ๊ทธ์— ๋”ฐ๋ผ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด -mmcu=atmega8 ๋งคํฌ๋กœ๋Š” 4๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

"__AVR_์žฅ์น˜__"
ํ™˜๊ฒฝ -mmcu=์žฅ์น˜ ์žฅ์น˜์˜ ์ด๋ฆ„์„ ๋ฐ˜์˜ํ•˜๋Š” ์ด ๋‚ด์žฅ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ, -mmcu=atmega8 ๋‚ด์žฅ ๋งคํฌ๋กœ "__AVR_ATmega8__"์„ ์ •์˜ํ•˜๊ณ , -mmcu=attiny261a
"__AVR_ATtiny261A__" ๋“ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด์žฅ ๋งคํฌ๋กœ์˜ ์ด๋ฆ„์€ "__AVR_์žฅ์น˜__" ์–ด๋””์— ์žฅ์น˜ ์ด๋‹ค
AVR ์‚ฌ์šฉ์ž ์„ค๋ช…์„œ์—์„œ์™€ ๊ฐ™์ด ์žฅ์น˜ ์ด๋ฆ„. ์ฐจ์ด์  ์žฅ์น˜ ๋‚ด์žฅ
๋งคํฌ๋กœ ๋ฐ ์žฅ์น˜ in -mmcu=์žฅ์น˜ ํ›„์ž๋Š” ํ•ญ์ƒ ์†Œ๋ฌธ์ž๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

If ์žฅ์น˜ ์žฅ์น˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. avr51, ์ด ๋งคํฌ๋กœ๋Š”
ํ•œ์ •๋œ.

"__AVR_DEVICE_NAME__"
ํ™˜๊ฒฝ -mmcu=์žฅ์น˜ ์ด ๋‚ด์žฅ ๋งคํฌ๋กœ๋ฅผ ์žฅ์น˜ ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
๊ณผ -mmcu=atmega8 ๋งคํฌ๋กœ๋Š” "atmega8"๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

If ์žฅ์น˜ ์žฅ์น˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. avr51, ์ด ๋งคํฌ๋กœ๋Š”
ํ•œ์ •๋œ.

"__AVR_XMEGA__"
์žฅ์น˜/์•„ํ‚คํ…์ฒ˜๋Š” XMEGA ์žฅ์น˜ ์ œํ’ˆ๊ตฐ์— ์†ํ•ฉ๋‹ˆ๋‹ค.

"__AVR_HAVE_ELPM__"
์žฅ์น˜์—๋Š” "ELPM" ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค.

"__AVR_HAVE_ELPMX__"
์žฅ์น˜์—๋Š” "ELPM R์—”,Z" ๊ทธ๋ฆฌ๊ณ  "ELPM R์—”,Z+" ๋„์›€๋ง์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

"__AVR_HAVE_MOVW__"
์žฅ์น˜์—๋Š” 16๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ ์ด๋™์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ "MOVW" ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค.

"__AVR_HAVE_LPMX__"
์žฅ์น˜์—๋Š” "LPM R์—”,Z" ๊ทธ๋ฆฌ๊ณ  "LPM R์—”,Z+" ๋„์›€๋ง์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

"__AVR_HAVE_MUL__"
์žฅ์น˜์—๋Š” ํ•˜๋“œ์›จ์–ด ์Šน์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

"__AVR_HAVE_JMP_CALL__"
์žฅ์น˜์—๋Š” "JMP" ๋ฐ "CALL" ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€ ์žˆ๋Š” ์žฅ์น˜์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
์ตœ์†Œ 16@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ.

"__AVR_HAVE_EIJMP_EICALL__"
"__AVR_3_BYTE_PC__"
์žฅ์น˜์—๋Š” "EIJMP" ๋ฐ "EICALL" ์ง€์นจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์žฅ์น˜์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
128@tie{}KiB ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ. ์ด๊ฒƒ์€ ๋˜ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด
์นด์šดํ„ฐ(PC)์˜ ๋„ˆ๋น„๋Š” 3@tie{}๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค.

"__AVR_2_BYTE_PC__"
ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ(PC)๋Š” 2@tie{}๋ฐ”์ดํŠธ ๋„ˆ๋น„์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ตœ๋Œ€
128@tie{}KiB์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋ชจ๋ฆฌ.

"__AVR_HAVE_8BIT_SP__"
"__AVR_HAVE_16BIT_SP__"
์Šคํƒ ํฌ์ธํ„ฐ(SP) ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 8๋น„ํŠธ ๊ฐ๊ฐ 16๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ. ์ด๋Ÿฌํ•œ ๋งคํฌ๋กœ์˜ ์ •์˜๋Š” ๋‹ค์Œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. -mtiny ์Šคํƒ.

"__AVR_HAVE_SPH__"
"__AVR_SP8__"
์žฅ์น˜์—๋Š” SPH(์Šคํƒ ํฌ์ธํ„ฐ์˜ ์ƒ์œ„ ๋ถ€๋ถ„) ํŠน์ˆ˜ ๊ธฐ๋Šฅ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ๊ฑฐ๋‚˜
๊ฐ๊ฐ 8๋น„ํŠธ ์Šคํƒ ํฌ์ธํ„ฐ. ์ด๋Ÿฌํ•œ ๋งคํฌ๋กœ์˜ ์ •์˜๋Š” ๋‹ค์Œ์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
-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 ์ธํ„ฐ๋ŸฝํŠธ ๋ช…๋ น์ค„ ์˜ต์…˜.

"__AVR_ERRATA_SKIP__"
"__AVR_ERRATA_SKIP_JMP_CALL__"
์ผ๋ถ€ AVR ์žฅ์น˜(AT90S8515, ATmega103)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ 32๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
ํ•˜๋“œ์›จ์–ด ์˜ค๋ฅ˜. ๊ฑด๋„ˆ๋›ฐ๊ธฐ ๋ช…๋ น์–ด๋Š” "SBRS", "SBRC", "SBIS", "SBIC" ๋ฐ "CPSE"์ž…๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ๋งคํฌ๋กœ๋Š” "__AVR_HAVE_JMP_CALL__"๋„ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

"__AVR_ISA_RMW__"
์žฅ์น˜์—๋Š” ์ฝ๊ธฐ-์ˆ˜์ •-์“ฐ๊ธฐ ๋ช…๋ น(XCH, LAC, LAS ๋ฐ LAT)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

"__AVR_SFR_OFFSET__=์˜คํ”„์…‹"
"IN"๊ณผ ๊ฐ™์ด I/O ํŠน์ˆ˜ ๊ธฐ๋Šฅ ๋ ˆ์ง€์Šคํ„ฐ์— ์ง์ ‘ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด,
"OUT", "SBI" ๋“ฑ์€ ๋ช…๋ น์— ์˜ํ•ด ์ฃผ์†Œ๊ฐ€ ์ง€์ •๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"LD" ๋˜๋Š” "STS"์™€ ๊ฐ™์€ ์•ก์„ธ์Šค RAM. ์ด ์˜คํ”„์…‹์€ ์žฅ์น˜ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ
๊ฐ๊ฐ์˜ I/O@tie{}์ฃผ์†Œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด RAM ์ฃผ์†Œ์—์„œ ๋นผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"__WITH_AVRLIBC__"
์ปดํŒŒ์ผ๋Ÿฌ๋Š” AVR-Libc์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ---avrlibc ํฌํ•จ
์˜ต์…˜์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋ž™ ํ•€ ์˜ต์…˜

-mcpu =CPU[-ํ›„๊ฒฌ]
๋Œ€์ƒ 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.

์„ ํƒ์  ํ›„๊ฒฌ ๋Œ€์ƒ Blackfin์˜ ์‹ค๋ฆฌ์ฝ˜ ๋ฒ„์ „์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ. ๋Œ€์ƒ ์‹ค๋ฆฌ์ฝ˜ ๊ฐœ์ •์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
If ํ›„๊ฒฌ is ์—†์Œ, ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ํ›„๊ฒฌ is ์–ด๋–ค๋ชจ๋“ 
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. "__SILICON_REVISION__" ๋งคํฌ๋กœ
๋Š” ์ฃผ์š” ๋ฒˆํ˜ธ์™€ ๋ณด์กฐ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ๊ฐœ์˜ XNUMX์ง„์ˆ˜๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
์‹ค๋ฆฌ์ฝ˜ ์ˆ˜์ •. ๋งŒ์•ฝ์— ํ›„๊ฒฌ is ์—†์Œ, "__SILICON_REVISION__"์ด(๊ฐ€) ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
If ํ›„๊ฒฌ is ์–ด๋–ค, "__SILICON_REVISION__"์€ 0xffff๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ
์„ ํƒ ํ›„๊ฒฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ GCC๋Š” ์ตœ์‹  ์•Œ๋ ค์ง„ ์‹ค๋ฆฌ์ฝ˜ ๊ฐœ์ •ํŒ์„ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ Blackfin ํ”„๋กœ์„ธ์„œ.

GCC๋Š” ์ง€์ •๋œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. CPU. ์— ๋Œ€ํ•œ ๋น„ํ•€ ์—˜ํ”„ ํˆด์ฒด์ธ,
์ด ์˜ต์…˜์€ libgloss๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ•˜๋“œ์›จ์–ด BSP๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ๋งํฌ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. -msim is
์ฃผ์–ด์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์ด ์—†์œผ๋ฉด bf532 ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์„ธ์„œ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์— ๋Œ€ํ•œ ์ง€์›์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค. bf561 ๋ถˆ์™„์ „ํ•˜๋‹ค. ์„์œ„ํ•œ bf561, ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ๋งŒ
ํ•œ์ •๋œ.

-msim
ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‹คํ–‰๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ
๋งํฌํ•  libgloss์—์„œ ์ œ๊ณตํ•˜๋Š” BSP. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋น„ํ•€ ์—˜ํ”„
๋„๊ตฌ ์ฒด์ธ. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ • ๋‹ค๋ฅธ ์˜ต์…˜ -์ค‘๊ฐ„ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณผ -mfdpic, ์•”์‹œํ•˜๋‹ค
-msim.

-momit-๋ฆฌํ”„ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ
๋ฆฌํ”„ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋ ˆ์ง€์Šคํ„ฐ์— ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์œ ์ง€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ํ”ผํ•œ๋‹ค
ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅ, ์„ค์ • ๋ฐ ๋ณต์›ํ•˜๊ณ  ์ถ”๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ช…๋ น
๋ฆฌํ”„ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜ -fomit ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ํ”„๋ ˆ์ž„์„ ์ œ๊ฑฐ
๋””๋ฒ„๊น…์„ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์ž…๋‹ˆ๋‹ค.

-mspecld-์ด์ƒ
ํ™œ์„ฑํ™”๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ƒ์„ฑ๋œ ์ฝ”๋“œ์— ๋‹ค์Œ์ด ํฌํ•จ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์ ํ”„ ์ง€์‹œ ํ›„ ์ถ”์ธก ๋ถ€ํ•˜. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด
"__WORKAROUND_SPECULATIVE_LOADS"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mno-specld-์ด์ƒ
์ถ”์ธก ๋กœ๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mcsync-์ด์ƒ
ํ™œ์„ฑํ™”๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ƒ์„ฑ๋œ ์ฝ”๋“œ์— CSYNC ๋˜๋Š”
์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ ์ดํ›„์— SSYNC ๋ช…๋ น์ด ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด
"__WORKAROUND_SPECULATIVE_SYNCS"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mno-csync-์ด์ƒ
CSYNC ๋˜๋Š” SSYNC ๋ช…๋ น์–ด๋„ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ ์งํ›„.

-mlow-64k
ํ™œ์„ฑํ™”๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ „์ฒด ์ง€์‹์„ ์ž์œ ๋กญ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ฎ์€ 64k์— ๋งž์Šต๋‹ˆ๋‹ค.

-mno-low-64k
ํ”„๋กœ๊ทธ๋žจ์ด ์ž„์˜๋กœ ํฌ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mstack-check-l1
uClinux์— ์˜ํ•ด L1 ์Šคํฌ๋ž˜์น˜ํŒจ๋“œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐฐ์น˜๋œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ ๊ฒ€์‚ฌ ์ˆ˜ํ–‰
ํ•ต์‹ฌ.

-์ค‘๊ฐ„ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ID ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ—ˆ์šฉ
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ์ œ์ž๋ฆฌ ์‹คํ–‰ ๋ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ
๊ด€๋ฆฌ. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. -fPIC. ์™€ ๋น„ํ•€ ์—˜ํ”„ ๋Œ€์ƒ, ์ด ์˜ต์…˜์€
-msim.

-mno-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ID ๊ธฐ๋ฐ˜ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๊ธฐ๋ณธ๊ฐ’.

-mleaf-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ID ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ ๋‹ค์Œ์„ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ์€ ๋‹ค๋ฅธ ID ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ ํ”„ ๋ฐ ํ˜ธ์ถœ์— ๋” ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mno-leaf-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
์ปดํŒŒ์ผ ์ค‘์ธ ์ฝ”๋“œ๊ฐ€ ID ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ๋งํฌ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ ํ”„ ๋ฐ ํ˜ธ์ถœ insns์— ๋Œ€ํ•ด ๋” ๋Š๋ฆฐ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

-mshared-library-id=n
์ปดํŒŒ์ผ ์ค‘์ธ ID ๊ธฐ๋ฐ˜ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‹๋ณ„ ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ’์„ 0์œผ๋กœ ์ง€์ •ํ•˜๋ฉด ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ’ ์ง€์ •ํ•˜๊ธฐ
ํ˜„์žฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๊ทธ ์ˆ˜๋ฅผ ํ• ๋‹นํ•˜์ง€๋งŒ ๋” ์ด์ƒ ๊ณต๊ฐ„ ๋˜๋Š” ์‹œ๊ฐ„์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

-msep-๋ฐ์ดํ„ฐ
๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‹ค๋ฅธ ์˜์—ญ์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ์—์„œ. ์ด๊ฒƒ์€ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ…์ŠคํŠธ ์„น์…˜์— ๋Œ€ํ•œ ์žฌ๋ฐฐ์น˜๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ.

-mno-XNUMX์›”-๋ฐ์ดํ„ฐ
๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋”ฐ๋ฅธ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€
๊ธฐ๋ณธ๊ฐ’.

-mlong-ํ†ตํ™”
-mno-long-ํ†ตํ™”
์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ๋จผ์ € ์ฃผ์†Œ๋ฅผ ๋กœ๋“œํ•˜์—ฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์€ ๋‹ค์Œ ์ด ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ์„œ๋ธŒ๋ฃจํ‹ด ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋Œ€์ƒ ๊ธฐ๋Šฅ์ด 24๋น„ํŠธ ์ฃผ์†Œ ์ง€์ • ๋ฒ”์œ„ ๋ฐ–์— ์žˆ๋Š” ๊ฒฝ์šฐ ์Šค์œ„์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ธŒ๋ฃจํ‹ด ํ˜ธ์ถœ ๋ช…๋ น์–ด์˜ ์˜คํ”„์…‹ ๊ธฐ๋ฐ˜ ๋ฒ„์ „.

์ด ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€์ • -mno-long-ํ†ตํ™” ๋ณต์›
๊ธฐ๋ณธ ๋™์ž‘. ์ด๋Ÿฌํ•œ ์Šค์œ„์น˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ.

-mfast-fp
๋น ๋ฅธ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” IEEE
NAN(Not-a-Number)์— ๋Œ€ํ•œ ์ž…๋ ฅ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ‘œ์ค€ ๊ทœ์น™
์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๊ด€์‹ฌ.

-minline-plt
์•Œ๋ ค์ง€์ง€ ์•Š์€ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ PLT ํ•ญ๋ชฉ ์ธ๋ผ์ธ ์‚ฌ์šฉ
๋กœ์ปฌ๋กœ ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. ์—†์ด๋Š” ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. -mfdpic.

-m๋ฉ€ํ‹ฐ์ฝ”์–ด
๋ฉ€ํ‹ฐ์ฝ”์–ด Blackfin ํ”„๋กœ์„ธ์„œ์šฉ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜์‹ญ์‹œ์˜ค. ์ด ์˜ต์…˜์€
์‚ฌ์šฉํ•  ๋ฉ€ํ‹ฐ์ฝ”์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ์ ์ ˆํ•œ ์‹œ์ž‘ ํŒŒ์ผ ๋ฐ ๋งํฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•˜๊ณ 
๋งคํฌ๋กœ "__BFIN_MULTICORE". ์™€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -mcpu=bf561[-ํ›„๊ฒฌ].

์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์— ์ฝ”๋ฆฌ์•„ or -mcoreb, ํ•˜๋‚˜์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์ฝ”์–ด๋‹น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ. ์—†์ด -์— ์ฝ”๋ฆฌ์•„ or -mcorebWalk Through California ํ”„๋กœ๊ทธ๋žจ,
๋‹จ์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜/๋“€์–ผ ์ฝ”์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์—์„œ ์ฃผ์š”
Core B์˜ ๊ธฐ๋Šฅ ์ด๋ฆ„์€ "coreb_main"์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹จ์ผ ์ฝ”์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-์— ์ฝ”๋ฆฌ์•„
one-application-per-๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ BF561์˜ Core A์— ๋Œ€ํ•œ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
ํ•ต์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ. Core๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ์‹œ์ž‘ ํŒŒ์ผ๊ณผ ๋งํฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
A, ๋งคํฌ๋กœ "__BFIN_COREA"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
~๊ณผ ์—ฐ๊ณ„๋˜์–ด -m๋ฉ€ํ‹ฐ์ฝ”์–ด.

-mcoreb
one-application-per-
ํ•ต์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ. Core๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ์‹œ์ž‘ ํŒŒ์ผ๊ณผ ๋งํฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
B, ๋งคํฌ๋กœ "__BFIN_COREB"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "coreb_main"
"main" ๋Œ€์‹  ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-m๋ฉ€ํ‹ฐ์ฝ”์–ด.

-msdram
SDRAM์šฉ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์‹œ์ž‘ ํŒŒ์ผ๊ณผ ๋งํฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ SDRAM์— ๋„ฃ๊ณ  ๋งคํฌ๋กœ "__BFIN_SDRAM"์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. NS
๋กœ๋”๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋กœ๋“œํ•˜๊ธฐ ์ „์— SDRAM์„ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-micplb
ICPLB๊ฐ€ ๋Ÿฐํƒ€์ž„์— ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŠน์ • ์ด์ƒ ํ˜„์ƒ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•. Linux ๋Œ€์ƒ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ ICPLB๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ~์„์œ„ํ•œ
๋…๋ฆฝ ์‹คํ–‰ํ˜• ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ๊ฐ’์ด ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

C6X ์˜ต์…˜

-ํ–‰์ง„=name
๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ์ด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ
์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ช…๋ น์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ˆ์šฉ
์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ C62x, ์˜ C64x, c64x+, ์˜ C67x, c67x+, ์˜ C674x.

-mbig-์—”๋””์•ˆ
๋น… ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-msim
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ ํ•ฉํ•œ ์‹œ์ž‘ ํŒŒ์ผ๊ณผ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

-msdata=๊ธฐ๋ณธ๊ฐ’
".neardata" ์„น์…˜์— ์ž‘์€ ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.
"B14"๋ฅผ ๋“ฑ๋กํ•˜์‹ญ์‹œ์˜ค. ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ž‘์€ ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ".bss" ์„น์…˜์— ๋„ฃ๊ณ ,
".neardata" ์„น์…˜์— ์ธ์ ‘ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ๋ฅผ
".rodata" ์„น์…˜. ํฐ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์— ์‚ฌ์šฉ๋˜๋Š” ํ•ด๋‹น ์„น์…˜์€
".fardata", ".far" ๋ฐ ".const".

-msdata=๋ชจ๋‘
์ž‘์€ ๊ฐœ์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์€ ๋ฐ์ดํ„ฐ์šฉ์œผ๋กœ ์˜ˆ์•ฝ๋œ ์„น์…˜์— ๋„ฃ๊ณ ,
์•ก์„ธ์Šคํ•˜๋ ค๋ฉด "B14" ๋ ˆ์ง€์Šคํ„ฐ์— ์ƒ๋Œ€์ ์ธ ์ฃผ์†Œ ์ง€์ •์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-msdata=์—†์Œ
์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด ์˜ˆ์•ฝ๋œ ์„น์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ์ ˆ๋Œ€ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋œ ๋ชจ๋“  ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ".fardata"์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
์„น์…˜ ๋ฐ ".far" ์„น์…˜์˜ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ. ๋ชจ๋“  ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ
".const" ์„น์…˜.

CRIS ์˜ต์…˜

์ด๋Ÿฌํ•œ ์˜ต์…˜์€ CRIS ํฌํŠธ์— ๋Œ€ํ•ด ํŠน๋ณ„ํžˆ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-ํ–‰์ง„=๊ฑด์ถ•ํ˜•
-mcpu =๊ฑด์ถ•ํ˜•
์ง€์ •๋œ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ์„ ํƒ ๊ฑด์ถ•ํ˜• are
v3, v8 ๊ณผ v10 ๊ฐ๊ฐ ETAX 4, ETAX 100 ๋ฐ ETAX 100 LX์šฉ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ v0
๊ธฐ๋ณธ๊ฐ’์€ cris-axis-linux-gnu๋ฅผ ์ œ์™ธํ•˜๊ณ  v10.

-mtune=๊ฑด์ถ•ํ˜•
ํŠœ๋‹ ๊ฑด์ถ•ํ˜• ๋‹ค์Œ์„ ์ œ์™ธํ•˜๊ณ  ์ƒ์„ฑ๋œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒƒ
ABI ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ง€์นจ ์„ธํŠธ. ์— ๋Œ€ํ•œ ์„ ํƒ ๊ฑด์ถ•ํ˜• are
์™€ ๋™์ผ -ํ–‰์ง„=๊ฑด์ถ•ํ˜•.

-mmax-์Šคํƒ ํ”„๋ ˆ์ž„=n
ํ•จ์ˆ˜์˜ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ดˆ๊ณผํ•  ๋•Œ ๊ฒฝ๊ณ  n ๋ฐ”์ดํŠธ.

-๋ฉ”ํŠธ๋ ‰์Šค4
-๋ฉ”ํŠธ๋ ‰์Šค100
์˜ต์…˜ -๋ฉ”ํŠธ๋ ‰์Šค4 ๊ณผ -๋ฉ”ํŠธ๋ ‰์Šค100 ์˜ ๋™์˜์–ด์ž…๋‹ˆ๋‹ค -ํ–‰์ง„=v3 ๊ณผ -ํ–‰์ง„=v8
๊ฐ๊ฐ.

-mmul-bug-ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
-mno-mul-bug-ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
CPU ๋ชจ๋ธ์— ๋Œ€ํ•œ "mulu" ๋ฐ "mulu" ๋ช…๋ น์–ด์˜ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด
์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mp๋””๋ฒ„๊ทธ
์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ์—์„œ CRIS ๊ด€๋ จ ์ž์„ธํ•œ ๋””๋ฒ„๊ทธ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ๋˜ํ•œ ๋„๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค #NO_APP ํ˜•์‹ํ™”๋œ ์ฝ”๋“œ ํ‘œ์‹œ๊ธฐ
์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์–ด์…ˆ๋ธ”๋Ÿฌ.

-mcc-์ดˆ๊ธฐํ™”
์ด์ „ ๋ช…๋ น์–ด์˜ ์กฐ๊ฑด ์ฝ”๋“œ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ•ญ์ƒ ๋น„๊ต๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ 
์กฐ๊ฑด ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ง€์นจ์„ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.

-mno ๋ถ€์ž‘์šฉ
์‚ฌํ›„ ์ด์™ธ์˜ ์ฃผ์†Œ ์ง€์ • ๋ชจ๋“œ์—์„œ ๋ถ€์ž‘์šฉ์ด ์žˆ๋Š” ๋ช…๋ น์„ ๋‚ด๋ณด๋‚ด์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ฆ๊ฐ€.

-mstack ์ •๋ ฌ
-mno ์Šคํƒ ์ •๋ ฌ
-mdata ์ •๋ ฌ
-mno-๋ฐ์ดํ„ฐ-์ •๋ ฌ
-mconst-์ •๋ ฌ
-mno-const-์ •๋ ฌ
์ด๋Ÿฌํ•œ ์˜ต์…˜(์•„๋‹ˆ - ์˜ต์…˜) ์Šคํƒ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ๋ฐฐ์—ด(๋ฐฐ์—ด ์ œ๊ฑฐ),
์ตœ๋Œ€ ๋‹จ์ผ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ํฌ๊ธฐ์— ๋Œ€ํ•ด ์ •๋ ฌํ•  ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ์ˆ˜
์„ ํƒํ•œ CPU ๋ชจ๋ธ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ๊ฐ’์€ 32๋น„ํŠธ ์ •๋ ฌ์„ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋น„
๊ตฌ์กฐ ๋ ˆ์ด์•„์›ƒ๊ณผ ๊ฐ™์€ ์„ธ๋ถ€ ์ •๋ณด๋Š” ์ด๋Ÿฌํ•œ ์˜ต์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-m32๋น„ํŠธ
-m16๋น„ํŠธ
-m8๋น„ํŠธ
์œ„์˜ stack-data- ๋ฐ const-align ์˜ต์…˜๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ๋‹ค์Œ์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
์Šคํƒ ํ”„๋ ˆ์ž„, ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ์ˆ˜๋Š” ๋ชจ๋‘ 32๋น„ํŠธ, 16๋น„ํŠธ ๋˜๋Š” 8๋น„ํŠธ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 32๋น„ํŠธ ์ •๋ ฌ์ž…๋‹ˆ๋‹ค.

-mno-ํ”„๋กค๋กœ๊ทธ-์—ํ•„๋กœ๊ทธ
-mprologue-์—ํ•„๋กœ๊ทธ
์™€ -mno-ํ”„๋กค๋กœ๊ทธ-์—ํ•„๋กœ๊ทธ, ์„ค์ •ํ•œ ์ผ๋ฐ˜ ๊ธฐ๋Šฅ ํ”„๋กค๋กœ๊ทธ ๋ฐ ์—ํ•„๋กœ๊ทธ
์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ƒ๋žต๋˜๊ณ  ๋ฐ˜ํ™˜ ๋ช…๋ น์ด๋‚˜ ๋ฐ˜ํ™˜ ์‹œํ€€์Šค๊ฐ€ โ€‹โ€‹์—†์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์œก์•ˆ ๊ฒ€์‚ฌ์™€ ํ•จ๊ป˜๋งŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ: ํ˜ธ์ถœ ์ €์žฅ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•  ๋•Œ ๊ฒฝ๊ณ ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋กœ์ปฌ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ €์žฅ์†Œ๋ฅผ ํ• ๋‹นํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mno-gotplt
-mgotplt
์™€ -fpic ๊ณผ -fPIC, ๋กœ๋“œํ•˜๋Š” ๋ช…๋ น์–ด ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
GOT์˜ PLT ๋ถ€๋ถ„์—์„œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ฃผ์†Œ ๋Œ€์‹  (๋‹ค๋ฅธ
์•„ํ‚คํ…์ฒ˜) PLT๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mgotplt.

-๋ฉœํ”„
cris-axis-elf ๋ฐ cris-axis-linux-gnu์—์„œ๋งŒ ์ธ์‹๋˜๋Š” ๋ ˆ๊ฑฐ์‹œ no-op ์˜ต์…˜
๋ชฉํ‘œ.

-mlinux
๋ ˆ๊ฑฐ์‹œ no-op ์˜ต์…˜์€ cris-axis-linux-gnu ๋Œ€์ƒ์—์„œ๋งŒ ์ธ์‹๋ฉ๋‹ˆ๋‹ค.

-์‹ฌ
cris-axis-elf์— ๋Œ€ํ•ด ์ธ์‹๋œ ์ด ์˜ต์…˜์€ ์ž…์ถœ๋ ฅ๊ณผ ์—ฐ๊ฒฐ๋˜๋„๋ก ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋Šฅ. ์ฝ”๋“œ, ์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ ๋ฐ XNUMX์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ
์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฐ์ •๋ฉ๋‹ˆ๋‹ค.

-sim2
์ฒ˜๋Ÿผ -์‹ฌ๊ทธ๋Ÿฌ๋‚˜ ๋ง์ปค ์˜ต์…˜์„ ์ „๋‹ฌํ•˜์—ฌ 0x40000000 ๋ฐ XNUMX์—์„œ ์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” 0x80000000์ž…๋‹ˆ๋‹ค.

CR16 ์˜ต์…˜

์ด๋Ÿฌํ•œ ์˜ต์…˜์€ CR16 ํฌํŠธ์— ๋Œ€ํ•ด ํŠน๋ณ„ํžˆ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mmac
๊ณฑํ•˜๊ธฐ ๋ˆ„์‚ฐ ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mcr16cplus
-mcr16c
CR16C ๋˜๋Š” CR16C+ ์•„ํ‚คํ…์ฒ˜์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. CR16C+ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค.

-msim
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ํ˜ธํ™˜๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ libsim.a๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ELF์— ์ ์šฉ
์ปดํŒŒ์ผ๋Ÿฌ๋งŒ.

-๋ฏผํŠธ32
์ •์ˆ˜ ์œ ํ˜•์„ 32๋น„ํŠธ ๋„ˆ๋น„๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-mbit-ops
๋น„ํŠธ ์กฐ์ž‘์„ ์œ„ํ•œ "sbit"/"cbit" ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mdata-๋ชจ๋ธ=๋ชจ๋ธ
๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ์„ ํƒ ๋ชจ๋ธ are ..., ๋ฉ€๋ฆฌ or ๋งค์งˆ. ๋งค์งˆ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜, ๋ฉ€๋ฆฌ ์— ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค -mcr16c, CR16C ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
์›๊ฑฐ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ.

๋‹ค์œˆ ์˜ต์…˜

์ด๋Ÿฌํ•œ ์˜ต์…˜์€ Darwin ์šด์˜ ์ฒด์ œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

Darwin์˜ FSF GCC๋Š” "๋šฑ๋šฑํ•œ" ๊ฐœ์ฒด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ๊ฐœ์ฒด ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
GCC๊ฐ€ ๋Œ€์ƒ์œผ๋กœ ๊ตฌ์ถ•ํ•œ ๋‹จ์ผ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. Darwin์— ๋Œ€ํ•œ Apple์˜ GCC๋Š” "์ง€๋ฐฉ"์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ -์•„์น˜ ์˜ต์…˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” ๋ง์ปค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ ๋ฒˆ ๊ฒฐ๊ณผ๋ฅผ ํ•จ๊ป˜ ๊ฒฐํ•ฉ ์ง€๋ฐฉ.

์ƒ์„ฑ๋œ ํŒŒ์ผ์˜ ํ•˜์œ„ ์œ ํ˜•(์˜ˆ: ppc7400 or ppc970 or i686)์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
GCC๊ฐ€ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ISA๋ฅผ ์ง€์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ(์˜ˆ: -mcpu or -XNUMX ์›”. ๊ทธ๋งŒํผ
-force_cpusubtype_ALL ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Darwin ๋„๊ตฌ๋Š” ISA ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ์„ ๋•Œ ๋™์ž‘์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. NS
์–ด์…ˆ๋ธ”๋Ÿฌ, as, ํ•˜์œ„ ์œ ํ˜•์— ์œ ํšจํ•œ ๋ช…๋ น๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ƒ์„ฑํ•˜๋Š” ํŒŒ์ผ์ด๋ฏ€๋กœ 64๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ppc750 ๊ฐœ์ฒด ํŒŒ์ผ. NS
๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ ๋ง์ปค, /usr/bin/libtool, ์‹คํŒจํ•˜๊ณ  ์š”์ฒญํ•˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ ํŒŒ์ผ๋ณด๋‹ค ๋œ ์ œํ•œ์ ์ธ ํ•˜์œ„ ์œ ํ˜•์œผ๋กœ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(
์˜ˆ๋ฅผ ๋“ค์–ด ppc970 ๊ฐœ์ฒด ํŒŒ์ผ ppc7400 ๋„์„œ๊ด€). ๋ง์ปค
์‹คํ–‰ ํŒŒ์ผ, ld, ์กฐ์šฉํžˆ ์‹คํ–‰ ํŒŒ์ผ์— ๊ฐ€์žฅ ์ œํ•œ์ ์ธ ํ•˜์œ„ ์œ ํ˜•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ ํŒŒ์ผ.

-FDIR
ํ”„๋ ˆ์ž„์›Œํฌ ๋””๋ ‰ํ† ๋ฆฌ ์ถ”๊ฐ€ DIR ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์˜ ๋งจ ์•ž์—
ํ—ค๋” ํŒŒ์ผ์˜ ๊ฒฝ์šฐ. ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹ค์Œ์— ์˜ํ•ด ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ์™€ ์ธํ„ฐ๋ฆฌ๋ธŒ๋ฉ๋‹ˆ๋‹ค. -I
์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์Šค์บ”๋ฉ๋‹ˆ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ๋Š”
๋””๋ ‰ํ† ๋ฆฌ ํ—ค๋” ๋ฐ / ๋˜๋Š” ๊ฐœ์ธ ํ—ค๋” ๊ทธ ์•ˆ์— ์ง์ ‘ ํฌํ•จ๋œ ๋””๋ ‰ํ† ๋ฆฌ
๋ .๋ผˆ๋Œ€. ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ด๋ฆ„์€ ๋‹ค์Œ์„ ์ œ์™ธํ•œ ์ด ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
์ „์—, .๋ผˆ๋Œ€. ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๊ด€๋ จ๋œ ํ—ค๋”๋Š” ์ด ๋‘ ๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋””๋ ‰ํ† ๋ฆฌ, ํ—ค๋” ๋จผ์ € ๊ฒ€์ƒ‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.
ํ”„๋ ˆ์ž„์›Œํฌ์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ํ”„๋ ˆ์ž„ ์›Œํฌ ์˜ˆ๋ฐฐ ๊ทœ์น™์„œ. ์„œ๋ธŒํ”„๋ ˆ์ž„์›Œํฌ ํฌํ•จ
ํ—ค๋”๋Š” ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํฌํ•จํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ—ค๋”์—๋งŒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜•์ œ ์„œ๋ธŒํ”„๋ ˆ์ž„์›Œํฌ ํ—ค๋”์—์„œ. ๋‘ ๊ฐœ์˜ ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‹ค์Œ์—์„œ ๋ฐœ์ƒํ•˜๋ฉด ํ˜•์ œ์ž…๋‹ˆ๋‹ค.
๋™์ผํ•œ ํ”„๋ ˆ์ž„์›Œํฌ. ์„œ๋ธŒํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. NS
์ด๋ฅผ ์œ„๋ฐ˜ํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์„œ๋ธŒํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹ค์Œ์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์„œ๋ธŒํ”„๋ ˆ์ž„์›Œํฌ; ์•ž์œผ๋กœ ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NS
ํ‘œ์ค€ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹ค์Œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. / ์‹œ์Šคํ…œ / ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ํ”„๋ ˆ์ž„ ์›Œํฌ ๊ณผ
/ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ํ”„๋ ˆ์ž„ ์›Œํฌ. ์˜ˆ์ œ ํฌํ•จ์€ "#include์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ",
์–ด๋””์— ๋ผˆ๋Œ€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ํ—ค๋”.h ์—์„œ ๋ฐœ๊ฒฌ๋œ๋‹ค
๊ฐœ์ธ ํ—ค๋” or ํ—ค๋” ๋””๋ ‰ํ† ๋ฆฌ.

-iframeworkDIR
์ฒ˜๋Ÿผ -F ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ทจ๊ธ‰๋œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ . ์ฃผ์š” ์ฐจ์ด์ 
์ด ์‚ฌ์ด -iframework ๊ณผ -F ๊ทธ๊ฒƒ์œผ๋กœ -iframework ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๋‹ค์Œ์„ ํ†ตํ•ด ์ฐพ์€ ํ—ค๋” ํŒŒ์ผ์— ํฌํ•จ๋œ ๊ตฌ์„ฑ์— ๋Œ€ํ•ด DIR. ์ด ์˜ต์…˜์€ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค
C ์–ธ์–ด ๊ณ„์—ด์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

-๊ฑฐ์Šค
์‚ฌ์šฉ๋˜๋Š” ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ฐŒ๋ฅด๊ธฐ ๋””๋ฒ„๊น… ํ˜•์‹์˜ ๊ฒฝ์šฐ
์ด๊ฒƒ์€ ๊ฐ€๋Šฅ -feliminate-unused-debug-๊ธฐํ˜ธ. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ON์ž…๋‹ˆ๋‹ค.

-gfull
๋ชจ๋“  ๊ธฐํ˜ธ ๋ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ๋””๋ฒ„๊น… ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

-mmacosx-๋ฒ„์ „-์ตœ์†Œ=๋ฒ„์ „
์ด ์‹คํ–‰ ํŒŒ์ผ์ด ์‹คํ–‰๋  MacOS X์˜ ์ดˆ๊ธฐ ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „. ์ „ํ˜•์ ์ธ
~์˜ ๊ฐ€์น˜ ๋ฒ„์ „ 10.1, 10.2 ๋ฐ 10.3.9๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹œ์Šคํ…œ์˜ ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋นŒ๋“œ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€
์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ์‹œ์Šคํ…œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŽ์€ ์‹œ์Šคํ…œ ๋ฐ ์ฝ”๋“œ ๊ธฐ๋ฐ˜๊ณผ ํ˜ธํ™˜๋˜๋Š” ์„ ํƒ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ˆ˜.

-mkernel
์ปค๋„ ๊ฐœ๋ฐœ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. NS -mkernel ์˜ต์…˜ ์„ธํŠธ -๊ณต์ „, -fno-๊ณตํ†ต,
-fno-use-cxa-atexit, -fno-์˜ˆ์™ธ, -fno-non-call-exception, -fapple-kext,
-fno-์•ฝํ•œ ๊ณผ -fno-rtti ํ•ด๋‹น๋˜๋Š” ๊ฒฝ์šฐ. ์ด ๋ชจ๋“œ๋Š” ๋˜ํ•œ -mno-altivec,
-msoft-float, -fno ๋‚ด์žฅ ๊ณผ -mlong-๋ถ„๊ธฐ PowerPC ํƒ€๊ฒŸ์šฉ.

-mon-byte-bool
"sizeof(bool)==1"์ด ๋˜๋„๋ก "bool"์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ "sizeof(bool)"
Darwin/PowerPC์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ๋Š” 4์ด๊ณ  Darwin/x1์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ๋Š” 86์ด๋ฏ€๋กœ ์ด ๊ฐ’์€
์˜ต์…˜์€ x86์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ใ€€ -mon-byte-bool ์Šค์œ„์น˜๋กœ ์ธํ•ด GCC๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์‚ฌ์šฉ
๊ธฐ๋ณธ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๋”ฐ๋ฅด๋„๋ก ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

-mfix-and-continu
-๊ณ ์ • ๋ฐ ๊ณ„์†
-findirect-๋ฐ์ดํ„ฐ
GDB๊ฐ€
๋™์ ์œผ๋กœ๋กœ๋“œ .o ํŒŒ์ผ์„ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. -findirect-๋ฐ์ดํ„ฐ ๊ณผ
-๊ณ ์ • ๋ฐ ๊ณ„์† ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

-all_load
์ •์  ์•„์นด์ด๋ธŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ชจ๋“  ๊ตฌ์„ฑ์›์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‚จ์ž ์ฐธ์กฐ ld(1) ์ž์„ธํ•œ ๋‚ด์šฉ์€.

-arch_errors_fatal
์ž˜๋ชป๋œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ€์ง„ ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜๊ฐ€ ์น˜๋ช…์ ์ž…๋‹ˆ๋‹ค.

-bind_at_load
๋™์  ๋ง์ปค๊ฐ€ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ฐ”์ธ๋”ฉํ•˜๋„๋ก ์ถœ๋ ฅ ํŒŒ์ผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ์ด ๋กœ๋“œ๋˜๊ฑฐ๋‚˜ ์‹คํ–‰๋  ๋•Œ ์ •์˜๋˜์ง€ ์•Š์€ ์ฐธ์กฐ.

-๋ฌถ์Œ
Mach-o ๋ฒˆ๋“ค ํ˜•์‹ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‚จ์ž ์ฐธ์กฐ ld(1) ์ž์„ธํ•œ ๋‚ด์šฉ์€.

-bundle_loader ์‹คํ–‰ ํŒŒ์ผ
์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ํŒŒ์ผ ๋นŒ๋“œ ์ถœ๋ ฅ ํŒŒ์ผ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ๋จ. ๋‚จ์ž ์ฐธ์กฐ ld(1) ์ž์„ธํ•œ ๋‚ด์šฉ์€.

-๋‹ค์ด๋‚ด๋ฏน ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
์ด ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๋ฉด GCC๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์‹คํ–‰ ํŒŒ์ผ ๋Œ€์‹  ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์—ฐ๊ฒฐ, Darwin์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋„๊ตฌ ๋ช…๋ น.

-force_cpusubtype_ALL
์ด๋กœ ์ธํ•ด GCC์˜ ์ถœ๋ ฅ ํŒŒ์ผ์ด ๋ชจ๋“  ์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” ํ•˜์œ„ ์œ ํ˜• ๋Œ€์‹ 
์ „์—, -mcpu or -XNUMX ์›” ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-allowable_client ๊ณ ๊ฐ ์ด๋ฆ„
-๊ณ ๊ฐ ์ด๋ฆ„
-ํ˜ธํ™˜์„ฑ_๋ฒ„์ „
-ํ˜„์žฌ_๋ฒ„์ „
-dead_strip
-์ข…์†์„ฑ ํŒŒ์ผ
-dylib_file
-dylinker_install_name
-๋™์ 
-๋‚ด๋ณด๋‚ธ_๊ธฐํ˜ธ_๋ชฉ๋ก
-ํŒŒ์ผ ๋ชฉ๋ก
-ํ”Œ๋žซ_๋„ค์ž„์ŠคํŽ˜์ด์Šค
-force_plat_namespace
-headerpad_max_install_names
-์ด๋ฏธ์ง€_๋ฒ ์ด์Šค
-์ดˆ๊ธฐํ™”
-์„ค์น˜ ์ด๋ฆ„
-keep_private_externs
-๋‹ค์ค‘ ๋ชจ๋“ˆ
-๊ณฑํ•˜๊ธฐ_์ •์˜
-multiply_defined_unused
-noall_load
-no_dead_strip_inits_and_terms
-nofix ์‚ฌ์ „ ๋ฐ”์ธ๋”ฉ
-nomultidefs
-๋…ธํ”„๋ฆฌ๋ฐ”์ธ๋“œ
-noseglinkit
-pagezero_size
-์‚ฌ์ „ ๋ฐ”์ธ๋”ฉ
-prebind_all_twolevel_modules
-private_bundle
-read_only_relocs
-๋ถ„ํ•  ์ •๋ ฌ
-์„นํŠธ๊ฐ์ฒด ๊ธฐํ˜ธ
-์™œ ๋กœ๋“œ
-์„ธ๊ทธ1์ฃผ์†Œ
-์„น์…˜ ์ƒ์„ฑ
-์„นํŠธ๊ฐ์ฒด ๊ธฐํ˜ธ
- ๋ถ€๋ฌธ๋ณ„
-segaddr
-segs_read_only_addr
-segs_read_write_addr
-์„ธ๊ทธ_์ฃผ์†Œ_ํ…Œ์ด๋ธ”
-seg_addr_table_filename
-์„ธ๊ทธ๋งํฌ๋“œ์ž‡
-์„ธ๊ทธํ”„๋กœํŠธ
-segs_read_only_addr
-segs_read_write_addr
-๋‹จ์ผ_๋ชจ๋“ˆ
-๊ณต์ „
-ํ•˜์œ„_๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
-sub_umbrella
-twolevel_namespace
-์šฐ์‚ฐ
-์ฐพ์œผ์‹œ๋Š” ์ฃผ์†Œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค
-๋‚ด๋ณด๋‚ด์ง€ ์•Š์€_๊ธฐํ˜ธ_๋ชฉ๋ก
-weak_reference_mismatches
-๋ฌด์—‡์„ ๋กœ๋“œ
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ Darwin ๋ง์ปค๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. Darwin ๋ง์ปค ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํžˆ.

12์›” ์•ŒํŒŒ ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ DEC Alpha ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mno-์†Œํ”„ํŠธ-ํ”Œ๋กœํŠธ
-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)
์ž‘์—…. ์–ธ์ œ -msoft-float ๊ฐ€ ์ง€์ •๋˜๋ฉด ๊ธฐ๋Šฅ libgcc.a ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ. ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๋Š” ๋ฃจํ‹ด์œผ๋กœ ๋Œ€์ฒด๋˜์ง€ ์•Š๋Š” ํ•œ
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ, ๋˜๋Š” ์ด๋Ÿฌํ•œ ์—๋ฎฌ๋ ˆ์ด์…˜์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ปดํŒŒ์ผ
๋ฃจํ‹ด์—์„œ ์ด๋Ÿฌํ•œ ๋ฃจํ‹ด์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์œ„ํ•ด ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒฝ์šฐ
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด ์—†๋Š” Alpha์˜ ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋นŒ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋“ค์„ ๋ถ€๋ฅด์ง€ ์•Š๋„๋ก.

๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด ์—†๋Š” Alpha ๊ตฌํ˜„์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ.

-mfp-reg
-mno-fp-regs
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. -mno-fp-regs
์˜๋ฏธํ•˜๋‹ค -msoft-float. ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ถ€๋™ ์†Œ์ˆ˜์ 
ํ”ผ์—ฐ์‚ฐ์ž๋Š” ์ •์ˆ˜ ๋ฐ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ •์ˆ˜ ๋ ˆ์ง€์Šคํ„ฐ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋Š” $f0 ๋Œ€์‹  $0์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋น„ํ‘œ์ค€ ํ˜ธ์ถœ ์‹œํ€€์Šค์ด๋ฏ€๋กœ
๋ถ€๋™ ์†Œ์ˆ˜์  ์ธ์ˆ˜ ๋˜๋Š” ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์— ์˜ํ•ด ํ˜ธ์ถœ๋œ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜
๊ณผ -mno-fp-regs ๋˜ํ•œ ํ•ด๋‹น ์˜ต์…˜์œผ๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์˜ ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ปค๋„์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅ ๋ฐ ๋ณต์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์ด๋”ฐ
Alpha ์•„ํ‚คํ…์ฒ˜๋Š” ์ตœ๋Œ€์— ์ตœ์ ํ™”๋œ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
์„ฑ๋Šฅ. ๋Œ€๋ถ€๋ถ„ IEEE ๋ถ€๋™ ์†Œ์ˆ˜์  ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ,
์™„์ „ํ•œ ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ์œ„ํ•ด์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ง€์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
์™„์ „ํ•œ IEEE ํ˜ธํ™˜ ์ฝ”๋“œ ์™ธ ๊ทธ ์ •ํ™•ํ•˜์ง€ ์•Š์€ ํ”Œ๋ž˜๊ทธ ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์•„๋ž˜ ์ฐธ์กฐ).
์ด ์˜ต์…˜์ด ์ผœ์ ธ ์žˆ์œผ๋ฉด ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "_IEEE_FP"๊ฐ€
ํŽธ์ง‘. ๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ๋œ ํšจ์œจ์ ์ด์ง€๋งŒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋น„์ •๊ทœํ™”๋œ ์ˆซ์ž ๋ฐ ๋น„์ˆซ์ž ๋ฐ ํ”Œ๋Ÿฌ์Šค/๋งˆ์ด๋„ˆ์Šค์™€ ๊ฐ™์€ ์˜ˆ์™ธ์ ์ธ IEEE ๊ฐ’
๋ฌดํ•œ๋Œ€. ๋‹ค๋ฅธ Alpha ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด ์˜ต์…˜์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. -ieee_with_no_inexact.

- ๋ถ€์ •ํ™•ํ•œ
์ด๊ฒƒ์€ -์ด๋”ฐ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ IEEE๋ฅผ ์œ ์ง€ํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ  ์ •ํ™•ํ•˜์ง€ ์•Š์€ ํ”Œ๋ž˜๊ทธ.
์ด ์˜ต์…˜์„ ์ผœ๋ฉด ์ƒ์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์™„์ „ํžˆ ํ˜ธํ™˜๋˜๋Š” IEEE๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜ํ•™. "_IEEE_FP" ์™ธ์— "_IEEE_FP_EXACT"๊ฐ€ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
์ผ๋ถ€ Alpha ๊ตฌํ˜„์—์„œ ๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๋ณด๋‹ค ํ›จ์”ฌ ๋Š๋ฆฌ๊ฒŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ. ์˜์กดํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—
์ •ํ™•ํ•˜์ง€ ์•Š์€ ํ”Œ๋ž˜๊ทธ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์•ŒํŒŒ ์ปดํŒŒ์ผ๋Ÿฌ ํ˜ธ์ถœ
์ด ์˜ต์…˜ -ieee_with_inexact.

-mfp-ํŠธ๋žฉ ๋ชจ๋“œ=ํŠธ๋žฉ ๋ชจ๋“œ
์ด ์˜ต์…˜์€ ํ™œ์„ฑํ™”๋œ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ด€๋ จ ํŠธ๋žฉ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐํƒ€ ์•ŒํŒŒ
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด ์˜ต์…˜์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. -fptm ํŠธ๋žฉ ๋ชจ๋“œ. ํŠธ๋žฉ ๋ชจ๋“œ๋Š” XNUMX๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ’ :

n ์ด๊ฒƒ์€ ๊ธฐ๋ณธ(์ผ๋ฐ˜) ์„ค์ •์ž…๋‹ˆ๋‹ค. ํ™œ์„ฑํ™”๋œ ์œ ์ผํ•œ ํŠธ๋žฉ์€
์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ(์˜ˆ: ์ œ๋กœ ํŠธ๋žฉ์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ).

u ์— ์˜ํ•ด ํ™œ์„ฑํ™”๋œ ํŠธ๋žฉ ์™ธ์—๋„ n, ์–ธ๋”ํ”Œ๋กœ ํŠธ๋žฉ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

su ์ฒ˜๋Ÿผ u, ๊ทธ๋Ÿฌ๋‚˜ ์ง€์นจ์€ ์†Œํ”„ํŠธ์›จ์–ด ์™„๋ฃŒ์— ์•ˆ์ „ํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์ฐธ์กฐ
์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•ŒํŒŒ ์•„ํ‚คํ…์ฒ˜ ๋งค๋‰ด์–ผ ์ฐธ์กฐ).

์ˆ˜์ด ์ฒ˜๋Ÿผ su, ๊ทธ๋Ÿฌ๋‚˜ ์ •ํ™•ํ•˜์ง€ ์•Š์€ ํŠธ๋žฉ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

-mfp-๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ=๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ
IEEE ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ Alpha ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด ์˜ต์…˜์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. -fprm
๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ. ๊ทธ๋งŒํผ ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

n ์ผ๋ฐ˜ IEEE ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ. ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ชฝ์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๊ณ„ ๋ฒˆํ˜ธ ๋˜๋Š” ๋™์ ์˜ ๊ฒฝ์šฐ ์ง์ˆ˜ ๊ธฐ๊ณ„ ๋ฒˆํ˜ธ์ชฝ์œผ๋กœ.

m ๋งˆ์ด๋„ˆ์Šค ๋ฌดํ•œ๋Œ€๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•ฉ๋‹ˆ๋‹ค.

c ๋‹ค์ง„ ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ. ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋Š” XNUMX์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผ๋ฉ๋‹ˆ๋‹ค.

d ๋™์  ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ. ๋ถ€๋™ ์†Œ์ˆ˜์  ์ œ์–ด ๋ ˆ์ง€์Šคํ„ฐ์˜ ํ•„๋“œ(fpcr์ฐธ์กฐ
์•ŒํŒŒ ์•„ํ‚คํ…์ฒ˜ ์ฐธ์กฐ ์„ค๋ช…์„œ)์—์„œ ๋ฐ˜์˜ฌ๋ฆผ ๋ชจ๋“œ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋” ์”จ
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋”ํ•˜๊ธฐ ๋ฌดํ•œ๋Œ€๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•˜๊ธฐ ์œ„ํ•ด ์ด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ,
ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค์Œ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ fpcr, d ํ”Œ๋Ÿฌ์Šค์ชฝ์œผ๋กœ ๋ฐ˜์˜ฌ๋ฆผ์— ํ•ด๋‹น
๋ฌดํ•œ๋Œ€.

-mtrap-์ •๋ฐ€๋„=ํŠธ๋žฉ ์ •๋ฐ€๋„
Alpha ์•„ํ‚คํ…์ฒ˜์—์„œ ๋ถ€๋™ ์†Œ์ˆ˜์  ํŠธ๋žฉ์€ ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์—†์ด ์˜๋ฏธ
์†Œํ”„ํŠธ์›จ์–ด ์ง€์› ํ”Œ๋กœํŒ… ํŠธ๋žฉ ๋ฐ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ณต๊ตฌ ๋ถˆ๊ฐ€๋Šฅ
์ผ๋ฐ˜์ ์œผ๋กœ ์‹คํ–‰์„ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ๋‹ค์Œ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์šด์˜ ์ฒด์ œ ํŠธ๋žฉ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ์›์ธ์ด ๋œ ์ •ํ™•ํ•œ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ํŠธ๋žฉ. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ
์ •๋ฐ€๋„ ์ˆ˜์ค€์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

p ํ”„๋กœ๊ทธ๋žจ ์ •๋ฐ€๋„. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ ํŠธ๋žฉ ํ•ธ๋“ค๋Ÿฌ๊ฐ€
๋ถ€๋™ ์†Œ์ˆ˜์  ์˜ˆ์™ธ๋ฅผ ์ผ์œผํ‚จ ํ”„๋กœ๊ทธ๋žจ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

f ๊ธฐ๋Šฅ ์ •๋ฐ€๋„. ํŠธ๋žฉ ํ•ธ๋“ค๋Ÿฌ๋Š” ์›์ธ์ด ๋œ ํ•จ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์˜ˆ์™ธ.

i ์ง€์‹œ ์ •๋ฐ€๋„. ํŠธ๋žฉ ํ•ธ๋“ค๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •ํ™•ํ•œ ๋ช…๋ น์–ด๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ Alpha ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™๋“ฑํ•œ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. -scope_safe ๊ณผ
-์žฌ๊ฐœ_์•ˆ์ „.

-mieee-์ค€์ˆ˜
์ด ์˜ต์…˜์€ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋ฅผ IEEE ์ค€์ˆ˜๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ -mtrap-์ •๋ฐ€๋„=i ๊ทธ๋ฆฌ๊ณ  -mfp-ํŠธ๋žฉ-๋ชจ๋“œ=su or
-mfp-ํŠธ๋žฉ-๋ชจ๋“œ=sui. ์œ ์ผํ•œ ํšจ๊ณผ๋Š” ์„ ์„ ๋ฐฉ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .flag 48 ๊ธฐ๋Šฅ์—์„œ
์ƒ์„ฑ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์˜ ํ”„๋กค๋กœ๊ทธ.

-mbuild-์ƒ์ˆ˜
์ผ๋ฐ˜์ ์œผ๋กœ GCC๋Š” 32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ์ •์ˆ˜ ์ƒ์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
XNUMX๊ฐœ ๋˜๋Š” XNUMX๊ฐœ์˜ ๋ช…๋ น์–ด์—์„œ ๋” ์ž‘์€ ์ƒ์ˆ˜์—์„œ. ํ•  ์ˆ˜ ์—†์œผ๋ฉด ๋‹ค์Œ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
์ƒ์ˆ˜๋ฅผ ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋งŒ๋“ค๊ณ  ๋Ÿฐํƒ€์ž„์— ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ์—์„œ ๋กœ๋“œํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ GCC๊ฐ€ ๊ตฌ์„ฑํ•˜๋„๋ก ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ •์ˆ˜ ์ƒ์ˆ˜
๋” ๋งŽ์€ ์ง€์นจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(์ตœ๋Œ€๊ฐ’์€ XNUMX๊ฐœ).

์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋™์  ๋กœ๋”๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ž์ฒด๋กœ
๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋ณ€์ˆ˜๋ฅผ ์ฐพ๊ธฐ ์ „์— ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ž์‹ ์„ ์žฌ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ž์ฒด ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ์˜ ์ƒ์ˆ˜.

-mbwx
-mno-bwx
-mcix
-mno-cix
-mfix
-mno ์ˆ˜์ •
-mmax
-mno-์ตœ๋Œ€
GCC๊ฐ€ ์„ ํƒ์  BWX, CIX, FIX ๋ฐ MAX๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ์„ธํŠธ. ๊ธฐ๋ณธ๊ฐ’์€ CPU์—์„œ ์ง€์›ํ•˜๋Š” ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฅผ ํ†ตํ•ด ์ง€์ •๋œ ์œ ํ˜• -mcpu = ์˜ต์…˜ ๋˜๋Š” GCC๊ฐ€ ๋นŒ๋“œ๋œ CPU์˜ ์˜ต์…˜์ด ์—†๋Š” ๊ฒฝ์šฐ
์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-mfloat-vax
-mfloat-ieee
๋Œ€์‹  VAX F ๋ฐ G ๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ฐ์ˆ ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
IEEE ๋‹จ์ •๋ฐ€๋„ ๋ฐ ๋ฐฐ์ •๋ฐ€๋„.

-mexplicit-relocs
-mno-๋ช…์‹œ์ -relocs
์ด์ „ Alpha ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š”
์–ด์…ˆ๋ธ”๋Ÿฌ ๋งคํฌ๋กœ. ์ด๋Ÿฌํ•œ ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ ์˜ ๋ช…๋ น ์Šค์ผ€์ค„๋ง์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฒ„์ „ 2.12์˜ GNU binutils๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ตฌ๋ฌธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
์–ด๋–ค ์žฌ๋ฐฐ์น˜๊ฐ€ ์–ด๋–ค ๋ช…๋ น์— ์ ์šฉ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œํ•˜์‹ญ์‹œ์˜ค. ์ด ์˜ต์…˜์€
GCC๊ฐ€ ์–ด์…ˆ๋ธ”๋Ÿฌ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ฒ„๊น…์— ๊ฐ€์žฅ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋นŒ๋“œ๋˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-msmall-๋ฐ์ดํ„ฐ
-mlarge-๋ฐ์ดํ„ฐ
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -mexplicit-relocs ์‹ค์ œ๋กœ ์ •์  ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ์•ก์„ธ์Šค๋ฉ๋‹ˆ๋‹ค. gp-์ƒ๋Œ€์ 
์žฌ๋ฐฐ์น˜. ์–ธ์ œ -msmall-๋ฐ์ดํ„ฐ ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด ๊ธธ์ด๊ฐ€ 8๋ฐ”์ดํŠธ ์ดํ•˜์ธ ๊ฐ์ฒด๊ฐ€
a ์ž‘์€ ๋ฐ์ดํ„ฐ ์ง€์—ญ (".sdata" ๋ฐ ".sbss" ์„น์…˜) ๋ฐ 16๋น„ํŠธ๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค
$gp ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ์žฌ๋ฐฐ์น˜. ์ด๊ฒƒ์€ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ๋‹ค์Œ์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
64KB์ด์ง€๋งŒ ๋‹จ์ผ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -mlarge-๋ฐ์ดํ„ฐ. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์˜์—ญ์ด ๋ฐ”๋กœ ์•„๋ž˜๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
2GB. 2GB ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์€ "malloc" ๋˜๋Š” "mmap"์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ ๋Œ€์‹  ํž™์— ๋ฐ์ดํ„ฐ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, -fpic ์˜๋ฏธํ•˜๋‹ค -msmall-๋ฐ์ดํ„ฐ ๊ณผ -fPIC
์˜๋ฏธํ•˜๋‹ค -mlarge-๋ฐ์ดํ„ฐ.

-m์ž‘์€ ํ…์ŠคํŠธ
-mlarge-ํ…์ŠคํŠธ
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -m์ž‘์€ ํ…์ŠคํŠธ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€
(๋˜๋Š” ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋Š” 4MB์— ๋งž์œผ๋ฏ€๋กœ ๋ถ„๊ธฐ ๋ช…๋ น์œผ๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -msmall-๋ฐ์ดํ„ฐ ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ชจ๋“  ๋กœ์ปฌ ๊ธฐํ˜ธ๊ฐ€
๋™์ผํ•œ $gp ๊ฐ’, ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜์— ํ•„์š”ํ•œ ๋ช…๋ น์–ด ์ˆ˜ ๊ฐ์†Œ
4์—์„œ 1๋กœ ์ „ํ™”๋ฅผ ๊ฒ๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -mlarge-ํ…์ŠคํŠธ.

-mcpu =CPU_์œ ํ˜•
๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ์„ธํŠธ ๋ฐ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •
CPU_์œ ํ˜•. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. EV ์Šคํƒ€์ผ ์ด๋ฆ„ ๋˜๋Š” ํ•ด๋‹น ์นฉ ๋ฒˆํ˜ธ.
GCC๋Š” EV4, EV5 ๋ฐ EV6 ํ”„๋กœ์„ธ์„œ ์ œํ’ˆ๊ตฐ์— ๋Œ€ํ•œ ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์›ํ•˜๋ฉฐ
์ง€์ •ํ•œ ํ”„๋กœ์„ธ์„œ์—์„œ ๋ช…๋ น์–ด ์„ธํŠธ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
ํ”„๋กœ์„ธ์„œ ์œ ํ˜•์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด๋‹น ํ”„๋กœ์„ธ์„œ๊ฐ€
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€์›๋˜๋Š” ๊ฐ’ CPU_์œ ํ˜• are

ev4
ev45
21064
EV4๋กœ ์˜ˆ์•ฝ๋˜๋ฉฐ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

ev5
21164
EV5๋กœ ์˜ˆ์•ฝ๋˜๋ฉฐ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

ev56
21164a
EV5๋กœ ์˜ˆ์•ฝํ•˜๊ณ  BWX ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

PCA56
21164pc
21164PC
EV5๋กœ ์˜ˆ์•ฝํ•˜๊ณ  BWX ๋ฐ MAX ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ev6
21264
EV6๋กœ ์˜ˆ์•ฝํ•˜๊ณ  BWX, FIX ๋ฐ MAX ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ev67
21264a
EV6์œผ๋กœ ์˜ˆ์•ฝํ•˜๊ณ  BWX, CIX, FIX ๋ฐ MAX ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋„๊ตฌ ์ฒด์ธ๋„ ๊ฐ€์น˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ถœ์‹ , ์ตœ๊ณ ์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•˜๋Š”
ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. -mcpu=๋„ค์ดํ‹ฐ๋ธŒ GCC๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ.

-mtune=CPU_์œ ํ˜•
๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ์„ค์ • CPU_์œ ํ˜•. ๊ทธ๋งŒํผ
๋ช…๋ น์–ด ์„ธํŠธ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋„๊ตฌ ์ฒด์ธ๋„ ๊ฐ€์น˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ถœ์‹ , ์ตœ๊ณ ์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•˜๋Š”
ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. -mtune=๋„ค์ดํ‹ฐ๋ธŒ GCC๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ.

-๋ฉ”๋ชจ๋ฆฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„=์‹œ๊ฐ„
์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋‹ค์Œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ์— ๋Œ€ํ•ด ๊ฐ€์ •ํ•ด์•ผ ํ•˜๋Š” ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ. ์ด ์ˆซ์ž๋Š” ์‚ฌ์šฉ๋œ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ํŒจํ„ด์— ํฌ๊ฒŒ ์˜์กดํ•ฉ๋‹ˆ๋‹ค.
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์‹œ์Šคํ…œ์˜ ์™ธ๋ถ€ ์บ์‹œ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์œ ํšจํ•œ ์˜ต์…˜ ์‹œ๊ฐ„ are

๋ฒˆํ˜ธ
ํด๋ก ์ฃผ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” XNUMX์ง„์ˆ˜์ž…๋‹ˆ๋‹ค.

L1
L2
L3
๋ณธ๊ด€
์ปดํŒŒ์ผ๋Ÿฌ์—๋Š” "์ „ํ˜•์ ์ธ" EV4 ๋ฐ
๋ ˆ๋ฒจ 5, 1 ๋ฐ 2 ์บ์‹œ์šฉ EV3 ํ•˜๋“œ์›จ์–ด(Dcache, Cache ๋ฐ
Bcache) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฃผ ๋ฉ”๋ชจ๋ฆฌ์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. L3๋Š” EV5์—๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

FR30 ์˜ต์…˜

์ด๋Ÿฌํ•œ ์˜ต์…˜์€ FR30 ํฌํŠธ์— ๋Œ€ํ•ด ํŠน๋ณ„ํžˆ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-m์ž‘์€ ๋ชจ๋ธ
์ž‘์€ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋” ์ž‘์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ
๋ชจ๋“  ๊ธฐํ˜ธ ๊ฐ’๊ณผ ์ฃผ์†Œ๋Š” 20๋น„ํŠธ ๋ฒ”์œ„์— ๋งž์Šต๋‹ˆ๋‹ค.

-mno-lsim
๋Ÿฐํƒ€์ž„ ์ง€์›์ด ์ œ๊ณต๋˜์—ˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ์„ ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(libsim.a) ๋ง์ปค ๋ช…๋ น์ค„์—์„œ.

FRV ์˜ต์…˜

-mgpr-32
์ฒ˜์Œ 32๊ฐœ์˜ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mgpr-64
64๊ฐœ์˜ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mfpr-32
์ฒ˜์Œ 32๊ฐœ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mfpr-64
64๊ฐœ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mhard-float
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์— ํ•˜๋“œ์›จ์–ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-malloc-cc
์กฐ๊ฑด ์ฝ”๋“œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

-mfixed-cc
์กฐ๊ฑด ์ฝ”๋“œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•˜์ง€ ๋ง๊ณ  "icc0"๋งŒ ์‚ฌ์šฉํ•˜๊ณ 
"fcc0".

-mdword
์ด์ค‘ ๋‹จ์–ด insns๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ABI๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

-mno-dword
์ด์ค‘ ๋‹จ์–ด ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-m๋”๋ธ”
๋ถ€๋™ ์†Œ์ˆ˜์  ์ด์ค‘ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mno-๋”๋ธ”
๋ถ€๋™ ์†Œ์ˆ˜์  ์ด์ค‘ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-๋ฏธ๋””์–ด
๋ฏธ๋””์–ด ์ง€์นจ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mno-๋ฏธ๋””์–ด
๋ฏธ๋””์–ด ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mmuladd
๊ณฑํ•˜๊ธฐ ๋ฐ ๋”ํ•˜๊ธฐ/๋นผ๊ธฐ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mno-๋ฌผ๋ผ๋“œ
๊ณฑํ•˜๊ธฐ ๋ฐ ๋”ํ•˜๊ธฐ/๋นผ๊ธฐ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mfdpic
ํ•จ์ˆ˜ ์„ค๋ช…์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ธํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” FDPIC ABI๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ. PIC/PIE ๊ด€๋ จ ์˜ต์…˜์ด ์—†์œผ๋ฉด ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. -fPIE. ๊ณผ -fpic or
-ํŒŒ์ด, GOT ํ•ญ๋ชฉ ๋ฐ ์ž‘์€ ๋ฐ์ดํ„ฐ๊ฐ€ GOT์—์„œ 12๋น„ํŠธ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ฃผ์†Œ; ~์™€ ํ•จ๊ป˜ -fPIC or -fPIE, GOT ์˜คํ”„์…‹์€ 32๋น„ํŠธ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ์™€
๋น„ํ•€ ์—˜ํ”„ ๋Œ€์ƒ, ์ด ์˜ต์…˜์€ -msim.

-minline-plt
์•Œ๋ ค์ง€์ง€ ์•Š์€ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์—์„œ PLT ํ•ญ๋ชฉ ์ธ๋ผ์ธ ์‚ฌ์šฉ
๋กœ์ปฌ๋กœ ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. ์—†์ด๋Š” ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. -mfdpic. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์†๋„ ๋ฐ ์ปดํŒŒ์ผ ์ตœ์ ํ™”(์ฆ‰, -fPIC or -fpic), ๋˜๋Š”
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ตœ์ ํ™” ์˜ต์…˜์ด ์žˆ์„ ๋•Œ -O3 ๋˜๋Š” ์ด์ƒ์ด ๋ช…๋ น์ค„์— ์žˆ์Šต๋‹ˆ๋‹ค.

-mTLS
์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํฐ TLS ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mtls
์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํฐ TLS ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mgprel-๋กœ
์— ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด FDPIC ABI์—์„œ "GPREL" ์žฌ๋ฐฐ์น˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ฝ๊ธฐ ์ „์šฉ ์„น์…˜. ๋‹ค์Œ์„ ์ œ์™ธํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. -fpic or -ํŒŒ์ด: ์ผ์ง€๋ผ๋„
์ „์—ญ ์˜คํ”„์…‹ ํ…Œ์ด๋ธ”์„ ๋” ์ž‘๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ 1 ๋ช…๋ น์–ด๋ฅผ 4๋กœ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค.
-fPIC or -fPIE, 3๊ฐœ์˜ ๋ช…๋ น์— ๋Œ€ํ•ด 4๊ฐœ์˜ ๋ช…๋ น์„ ๊ตํ™˜ํ•˜๋ฉฐ, ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐํ˜ธ์ด๋ฉฐ ์ฐธ์กฐ๋œ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ GOT ํ•ญ๋ชฉ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ
์Šน๋ฆฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ -mno-gprel-ro ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-multilib-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ-pic
(FD๊ฐ€ ์•„๋‹Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ์‚ฌ์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์— ์˜ํ•ด ์•”์‹œ๋œ๋‹ค - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์ง„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
~์— ์˜ํ•ด -fPIC ๊ณผ -fpic ์—†์ด -mfdpic. ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

-Mlinked-FP
์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” EABI ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‹ค์Œ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-mno ์—ฐ๊ฒฐ fp.

-mlong-ํ†ตํ™”
๊ฐ„์ ‘ ์ฃผ์†Œ ์ง€์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์ปดํŒŒ์ผ ๋‹จ์œ„ ์™ธ๋ถ€์—์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
ํ•จ์ˆ˜๋ฅผ 32๋น„ํŠธ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋‚ด ์–ด๋””์—๋‚˜ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-์•…์„ฑ ๋ ˆ์ด๋ธ”
์ด์ „ ํŒจํ‚ท์— NOP๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ๋ ˆ์ด๋ธ”์„ 8๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถ”์‹ญ์‹œ์˜ค.
์ด ์˜ต์…˜์€ VLIW ํŒจํ‚น์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์—๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค
ํŒจํ‚ท; ๊ธฐ์กด์— NOP๋ฅผ ์ถ”๊ฐ€ํ•  ๋ฟ์ž…๋‹ˆ๋‹ค.

- ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์ง„
์œ„์น˜ ๋…๋ฆฝ์ ์ธ EABI ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-๋งฅ-4
์ฒ˜์Œ XNUMX๊ฐœ์˜ ๋ฏธ๋””์–ด ๋ˆ„์‚ฐ๊ธฐ ๋ ˆ์ง€์Šคํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-๋งฅ-8
XNUMX๊ฐœ์˜ ๋ฏธ๋””์–ด ๋ˆ„์‚ฐ๊ธฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mpack
VLIW ์ง€์นจ์„ ํฌ์žฅํ•˜์‹ญ์‹œ์˜ค.

-mno-ํŒฉ
VLIW ์ง€์นจ์„ ํฌ์žฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mno ํ”Œ๋ž˜๊ทธ
e_flags์— ABI ์Šค์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mcond-์ด๋™
์กฐ๊ฑด๋ถ€ ์ด๋™ ๋ช…๋ น ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’).

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mno-cond-์ด๋™
์กฐ๊ฑด๋ถ€ ์ด๋™ ๋ช…๋ น์˜ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mscc
์กฐ๊ฑด๋ถ€ ์ง‘ํ•ฉ ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’).

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mno-scc
์กฐ๊ฑด๋ถ€ ์ง‘ํ•ฉ ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mcond-exec
์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’).

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mno-์กฐ๊ฑด-exec
์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mvliw-๋ถ„๊ธฐ
ํŒจ์Šค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ถ„๊ธฐ๋ฅผ VLIW ๋ช…๋ น์–ด(๊ธฐ๋ณธ๊ฐ’)๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค.

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mno-vliw-๋ถ„๊ธฐ
๋ถ„๊ธฐ๋ฅผ VLIW ๋ช…๋ น์–ด๋กœ ํŒจํ‚นํ•˜๋Š” ํŒจ์Šค๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-m๋‹ค์ค‘ ์กฐ๊ฑด ์‹คํ–‰
"&&" ๋ฐ "||" ์ตœ์ ํ™” ํ™œ์„ฑํ™” ์กฐ๊ฑด๋ถ€ ์‹คํ–‰(๊ธฐ๋ณธ๊ฐ’).

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mno-๋‹ค์ค‘ ์กฐ๊ฑด-exec
"&&" ๋ฐ "||" ์ตœ์ ํ™” ๋น„ํ™œ์„ฑํ™” ์กฐ๊ฑด๋ถ€ ์‹คํ–‰์—์„œ.

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mnested-cond-exec
์ค‘์ฒฉ ์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’).

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-mno-์ค‘์ฒฉ-์กฐ๊ฑด-exec
์ค‘์ฒฉ ์กฐ๊ฑด๋ถ€ ์‹คํ–‰ ์ตœ์ ํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค์œ„์น˜๋Š” ์ฃผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ œ๊ฑฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฏธ๋ž˜ ๋ฒ„์ „.

-moptimize-๋ฉค๋ฐ”
์ด ์Šค์œ„์น˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ์ƒ์„ฑ ์ฝ”๋“œ์—์„œ ์ค‘๋ณต "๋ฉค๋ฐ”" ๋ช…๋ น์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mno-optimize-๋ฉค๋ฐ”
์ด ์Šค์œ„์น˜๋Š” ์ค‘๋ณต "๋ฉค๋ฐ”" ๋ช…๋ น์˜ ์ž๋™ ์ œ๊ฑฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ƒ์„ฑ๋œ ์ฝ”๋“œ.

-mtomcat-ํ†ต๊ณ„
๊ฐ€์Šค๊ฐ€ ๋ฐ”๋žŒ๋‘ฅ์ด ํ†ต๊ณ„๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

-mcpu =CPU
์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ํ”„๋กœ์„ธ์„œ ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ Frv, fr550,
์—ฌ์ž ๊ฝ๋ฌด๋‹ˆ๋ฅผ ์ซ“์•„ ๋‹ค๋‹ˆ๋‹ค, fr500, fr450, fr405, fr400, fr300 ๊ณผ ๊ฐ„ํŽธํ•œ ์„ค์น˜.

GNU / ๋ฆฌ๋ˆ…์Šค ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ GNU/Linux ๋Œ€์ƒ์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mglibc
GNU C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์ œ์™ธํ•˜๊ณ  ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. *-*-๋ฆฌ๋ˆ…์Šค-*ulibc* ๊ณผ
*-*-๋ฆฌ๋ˆ…์Šค-*์•ˆ๋“œ๋กœ์ด๋“œ* ๋ชฉํ‘œ.

-๋ฎคํด๋ฆฝ
uClibc C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค. *-*-๋ฆฌ๋ˆ…์Šค-*ulibc* ๋ชฉํ‘œ.

-์— ๋น„์˜ค๋‹‰
Bionic C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค. *-*-๋ฆฌ๋ˆ…์Šค-*์•ˆ๋“œ๋กœ์ด๋“œ* ๋ชฉํ‘œ.

-๋งจ๋“œ๋กœ์ด๋“œ
Android ํ”Œ๋žซํผ๊ณผ ํ˜ธํ™˜๋˜๋Š” ์ปดํŒŒ์ผ ์ฝ”๋“œ. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค.
*-*-๋ฆฌ๋ˆ…์Šค-*์•ˆ๋“œ๋กœ์ด๋“œ* ๋ชฉํ‘œ.

์ปดํŒŒ์ผํ•  ๋•Œ ์ด ์˜ต์…˜์€ -์— ๋น„์˜ค๋‹‰, -fPIC, -fno-์˜ˆ์™ธ ๊ณผ -fno-rtti by
๊ธฐ๋ณธ. ์—ฐ๊ฒฐํ•  ๋•Œ ์ด ์˜ต์…˜์€ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ Android ์ „์šฉ ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋ง์ปค์—. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__ANDROID__"๊ฐ€
ํ•œ์ •๋œ.

-tno-์•ˆ๋“œ๋กœ์ด๋“œ-cc
์˜ ์ปดํŒŒ์ผ ํšจ๊ณผ ๋น„ํ™œ์„ฑํ™” -๋งจ๋“œ๋กœ์ด๋“œ, ์ฆ‰, ํ™œ์„ฑํ™”ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค -์— ๋น„์˜ค๋‹‰, -fPIC,
-fno-์˜ˆ์™ธ ๊ณผ -fno-rtti ๊ธฐ๋ณธ์ ์œผ๋กœ

-tno-์•ˆ๋“œ๋กœ์ด๋“œ-ld
์—ฐ๊ฒฐ ํšจ๊ณผ ๋น„ํ™œ์„ฑํ™” -๋งจ๋“œ๋กœ์ด๋“œ์ฆ‰, ํ‘œ์ค€ Linux ์—ฐ๊ฒฐ ์˜ต์…˜์„
๋ง์ปค.

H8 / 300 ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ H8/300 ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mrelax
๊ฐ€๋Šฅํ•˜๋ฉด ๋งํฌ ์‹œ๊ฐ„์— ์ผ๋ถ€ ์ฃผ์†Œ ์ฐธ์กฐ๋ฅผ ์ค„์ด์‹ญ์‹œ์˜ค. ๋ง์ปค ์˜ต์…˜์„ ์‚ฌ์šฉ
-ํŽธํ•˜๊ฒŒ ํ•˜๋‹ค.

-mh H8/300H์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-ms H8S์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mn ์ผ๋ฐ˜ ๋ชจ๋“œ์—์„œ H8S ๋ฐ H8/300H์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์–ด๋Š ์ชฝ์ด๋“  -mh or -ms.

-ms2600
H8S/2600์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -ms.

-๋ฉ•์Šค
ํ™•์žฅ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ชจ๋‹ˆํ„ฐ๋กœ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ์ธํ•˜๋‹ค. ๊ธฐ๋ณธ ์˜ต์…˜์€ -๋ฉ•์Šค. ์ด ์˜ต์…˜์€ H8S ๋Œ€์ƒ์—๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

-mno-exr
๋ชจ๋‹ˆํ„ฐ๋กœ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํ™•์žฅ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์Šคํƒ์— ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐ์ธํ•˜๋‹ค. ๊ธฐ๋ณธ ์˜ต์…˜์€ -mno-exr. ์ด ์˜ต์…˜์€ H8S ๋Œ€์ƒ์—๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

-๋ฏผํŠธ32
"int" ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ 32๋น„ํŠธ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

-์•…์„ฑ-300
H8/300H ๋ฐ H8S์—์„œ๋Š” H8/300๊ณผ ๋™์ผํ•œ ์ •๋ ฌ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
H8/300H ๋ฐ H8S์˜ ๊ฒฝ์šฐ 4๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์—์„œ long ๋ฐ float๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
-์•…์„ฑ-300 2๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค
H8/300์—์„œ.

HPPA ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ HPPA ์ปดํ“จํ„ฐ ์ œํ’ˆ๊ตฐ์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-ํ–‰์ง„=๊ฑด์ถ•ํ˜•
์ง€์ •๋œ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ์„ ํƒ ๊ฑด์ถ•ํ˜• are
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์›”=XNUMX, -1.1์›”=XNUMX๋ฐ -2.0์›”=XNUMX ๊ฐ๊ฐ.

-m์ ํ”„-์ธ-์ง€์—ฐ
์ด ์˜ต์…˜์€ ๋ฌด์‹œ๋˜๋ฉฐ ํ˜ธํ™˜์„ฑ ๋ชฉ์ ์œผ๋กœ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

-mdisable-fpregs
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ๋“  ์‚ฌ์šฉ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•„์š”ํ•˜๋‹ค
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ง€์—ฐ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ปดํŒŒ์ผ ์ปค๋„. ๋งŒ์•ฝ์—
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ
์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

-mdisable-์ธ๋ฑ์‹ฑ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ธ๋ฑ์‹ฑ ์ฃผ์†Œ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜คํžˆ๋ ค ์ผ๋ถ€๋ฅผ ํ”ผํ•ฉ๋‹ˆ๋‹ค
MACH์—์„œ MIG ์ƒ์„ฑ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ ๋ชจํ˜ธํ•œ ๋ฌธ์ œ.

-mno-๊ณต๊ฐ„-regs
๋Œ€์ƒ์— ๊ณต๊ฐ„ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด GCC๋Š”
๋” ๋น ๋ฅธ ๊ฐ„์ ‘ ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•˜๊ณ  ํ™•์žฅ๋˜์ง€ ์•Š์€ ์ธ๋ฑ์Šค ์ฃผ์†Œ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋Š” ๋ ˆ๋ฒจ 0 PA ์‹œ์Šคํ…œ ๋ฐ ์ปค๋„์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

-mfast-๊ฐ„์ ‘ ํ˜ธ์ถœ
ํ˜ธ์ถœ์ด ๊ณต๊ฐ„ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด GCC๋Š”
๋” ๋น ๋ฅธ ๊ฐ„์ ‘ ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ์ค‘์ฒฉ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„
์ฃผ์–ด์ง„ ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋ฅผ ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปค๋„์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์•”ํ˜ธ. ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ๋Œ€์‹œ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜
๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mlong-๋กœ๋“œ-์Šคํ† ์–ด
HP-UX 3์—์„œ ํ•„์š”์— ๋”ฐ๋ผ 10๊ฐœ ๋ช…๋ น์–ด ๋กœ๋“œ ๋ฐ ์ €์žฅ ์‹œํ€€์Šค ์ƒ์„ฑ
๋ง์ปค. ์ด๊ฒƒ์€ +k HP ์ปดํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

-๊ฐ€๋™ ๊ฐ€๋Šฅํ•œ ๋Ÿฐํƒ€์ž„
ELF ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด HP์—์„œ ์ œ์•ˆํ•œ ํœด๋Œ€์šฉ ํ˜ธ์ถœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

- ๊ฐ€์Šค
GAS๋งŒ ์ดํ•ดํ•˜๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ ์ง€์‹œ๋ฌธ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-ms์Šค์ผ€์ค„=CPU ์œ ํ˜•
๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ์ œ์•ฝ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. CPU ์œ ํ˜•. ์„ ํƒ
for CPU ์œ ํ˜• are 700 7100, 7100LC, 7200, 7300 ๊ณผ 8000. ์ธ์šฉํ•˜๋‹ค
/usr/lib/sched.models ์ ์ ˆํ•œ ์˜ˆ์•ฝ ์˜ต์…˜์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด HP-UX ์‹œ์Šคํ…œ์—์„œ
๋‹น์‹ ์˜ ๊ธฐ๊ณ„. ๊ธฐ๋ณธ ์ผ์ •์€ 8000.

-mlinker-opt
HP-UX ๋ง์ปค์—์„œ ์ตœ์ ํ™” ๋‹จ๊ณ„๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹ฌ๋ณผ๋ฆญ ๋””๋ฒ„๊น…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋ถˆ๊ฐ€๋Šฅํ•œ. ๋˜ํ•œ HP-UX 8 ๋ฐ HP-UX 9 ๋ง์ปค์—์„œ ๋ฒ„๊ทธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•  ๋•Œ ๊ฐ€์งœ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์ด ํฌํ•จ๋œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ : ํ•„์ˆ˜
๋ชจ๋“  HPPA ๋Œ€์ƒ์— ๋Œ€ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์„ค์˜
๊ธฐ๊ณ„์˜ ์ผ๋ฐ˜์ ์ธ C ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์ด๊ฒƒ์€ ๊ต์ฐจ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํŽธ์ง‘. ์ ์ ˆํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์Šค์Šค๋กœ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํฌ๋กœ์Šค ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ํ•จ์ˆ˜

-msoft-float ์ถœ๋ ฅ ํŒŒ์ผ์˜ ํ˜ธ์ถœ ๊ทœ์น™์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ๊ฒƒ์€ ๋‹จ์ง€
์ปดํŒŒ์ผํ•˜๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ด ์˜ต์…˜์ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํŠนํžˆ, ๋‹น์‹ ์€
ํŽธ์ง‘ํ•˜๋‹ค libgcc.a, GCC์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, -msoft-float ์ด๋ฅผ ์œ„ํ•ด
์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-msio
์„œ๋ฒ„ IO์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ •์˜ "_SIO"๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mwsio. ์ด๊ฒƒ์€ ์ƒ์„ฑ
์›Œํฌ์Šคํ…Œ์ด์…˜ IO์— ๋Œ€ํ•ด "__hp9000s700", "__hp9000s700__" ๋ฐ "_WSIO"๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ HP-UX ๋ฐ HI-UX์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mgnu-ld
GNU์— ํŠน์ •ํ•œ ์˜ต์…˜ ์‚ฌ์šฉ ld. ์ด๊ฒƒ์€ ํ†ต๊ณผ -๊ณต์œ  ์— ld ๊ณต์œ ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ
๋„์„œ๊ด€. GCC๊ฐ€ ๋ช…์‹œ์  ๋˜๋Š” ์•”์‹œ์ ์œผ๋กœ ๊ตฌ์„ฑ๋  ๋•Œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
GNU ๋ง์ปค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ ํ•ญ๋ชฉ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ld ํ˜ธ์ถœ๋œ๋‹ค; ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋ฌด์—‡์„ ๋ณ€๊ฒฝ
๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ld. ๊ทธ๋งŒํผ ld ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
--with-ld ๊ตฌ์„ฑ ์˜ต์…˜, GCC์˜ ํ”„๋กœ๊ทธ๋žจ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ, ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉ์ž์˜ PATH.
GCC์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ง์ปค๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์‡„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋Š `gcc -์ธ์‡„ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„=ld`. ์ด
์˜ต์…˜์€ 64๋น„ํŠธ HP-UX GCC์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
hppa*64*-*-hpux*.

-mhp-ld
HP ์ „์šฉ ์˜ต์…˜ ์‚ฌ์šฉ ld. ์ด๊ฒƒ์€ ํ†ต๊ณผ -b ์— ld ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ
๊ทธ๋ฆฌ๊ณ  ํŒจ์Šค +์ˆ˜๋ฝ ์œ ํ˜• ๋ถˆ์ผ์น˜ ์— ld ๋ชจ๋“  ๋งํฌ์—์„œ. GCC์ผ ๋•Œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
๋ช…์‹œ์ ์ด๋“  ์•”์‹œ์ ์ด๋“  HP ๋ง์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์–ด๋Š ld ํ˜ธ์ถœ๋œ๋‹ค; ์ „๋‹ฌ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ld. ๊ทธ๋งŒํผ ld
์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. --with-ld ๊ตฌ์„ฑ ์˜ต์…˜, GCC์˜ ํ”„๋กœ๊ทธ๋žจ ๊ฒ€์ƒ‰
๊ฒฝ๋กœ, ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉ์ž์˜ PATH. GCC์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ง์ปค๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์‡„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด๋Š `gcc -์ธ์‡„ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„=ld`. ์ด ์˜ต์…˜์€ 64๋น„ํŠธ HP-UX์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GCC, ์ฆ‰ ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ hppa*64*-*-hpux*.

-mlong-ํ†ตํ™”
๊ธด ํ˜ธ์ถœ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ†ตํ™”๊ฐ€ ํ•ญ์ƒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋ง์ปค ์ƒ์„ฑ ์Šคํ…์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ๊ธด ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ˜ธ์ถœ ์‚ฌ์ดํŠธ์—์„œ ํ•จ์ˆ˜ ๋˜๋Š” ๋ฒˆ์—ญ ๋‹จ์œ„์˜ ์‹œ์ž‘ ๋ถ€๋ถ„๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ,
์ด ๊ฒฝ์šฐ ์‚ฌ์šฉ ์ค‘์ธ ๋ถ„๊ธฐ ์œ ํ˜•์— ์˜ํ•ด ์„ค์ •๋œ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ œํ•œ์„ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NS
์ผ๋ฐ˜ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ œํ•œ์€ PA 7,600,000์— ๋Œ€ํ•ด ๊ฐ๊ฐ 240,000 ๋ฐ 2.0๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค.
๋ฐ PA 1.X ์•„ํ‚คํ…์ฒ˜. Sibcall์€ ํ•ญ์ƒ 240,000๋ฐ”์ดํŠธ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

๊ฑฐ๋ฆฌ๋Š” ์‚ฌ์šฉํ•  ๋•Œ ํ•จ์ˆ˜์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ์ธก์ •๋ฉ๋‹ˆ๋‹ค.
-ffunction-์„น์…˜ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ - ๊ฐ€์Šค ๊ณผ -mno-ํœด๋Œ€์šฉ-๋Ÿฐํƒ€์ž„ ์˜ต์…˜
HP-UX์—์„œ SOM ๋ง์ปค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋ฏ€๋กœ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ,
ํŠนํžˆ ๋ถ€๋ถ„ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋˜๋Š” ๊ธด ํ˜ธ์ถœ์˜ ์œ ํ˜•์€ ์–ด์…ˆ๋ธ”๋Ÿฌ์™€ ๋ง์ปค์˜ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ์˜ ์œ ํ˜•. ๊ธด ์‹œ๊ฐ„์„ ์ง€์›ํ•˜๋Š” ์‹œ์Šคํ…œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ
์ ˆ๋Œ€ ํ˜ธ์ถœ ๋ฐ ๊ธด ๊ทธ๋ฆผ ๊ธฐํ˜ธ ์ฐจ์ด ๋˜๋Š” PC ์ƒ๋Œ€ ํ˜ธ์ถœ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ„์ ‘ ํ˜ธ์ถœ์€ pic ์ฝ”๋“œ์˜ 32๋น„ํŠธ ELF ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฝค ๊น๋‹ˆ๋‹ค.

-๋ฎค๋‹‰์Šค=์œ ๋‹‰์Šค ํ‘œ์ค€
์ปดํŒŒ์ผ๋Ÿฌ ์ƒ์„ฑ์€ ์ง€์ •๋œ UNIX ํ‘œ์ค€์— ๋Œ€ํ•œ ์‹œ์ž‘ ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜๊ณ  ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์— ๋Œ€ํ•œ ์„ ํƒ ์œ ๋‹‰์Šค ํ‘œ์ค€ are 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 ์ด์ƒ์šฉ.

-๋ฎค๋‹‰์Šค=93 GCC 3.3 ๋ฐ 3.4์™€ ๋™์ผํ•œ ์‚ฌ์ „ ์ •์˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. -๋ฎค๋‹‰์Šค=95 ์ œ๊ณต
"XOPEN_UNIX" ๋ฐ "_XOPEN_SOURCE_EXTENDED"์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์‚ฌ์ „ ์ •์˜ ๋ฐ ์‹œ์ž‘ ํŒŒ์ผ
์œ ๋‹‰์Šค95.o. -๋ฎค๋‹‰์Šค=98 "_XOPEN_UNIX"์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์‚ฌ์ „ ์ •์˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
"_XOPEN_SOURCE_EXTENDED", "_INCLUDE__STDC_A1_SOURCE" ๋ฐ "_INCLUDE_XOPEN_SOURCE_500",
๊ทธ๋ฆฌ๊ณ  ์‹œ์ž‘ ํŒŒ์ผ ์œ ๋‹‰์Šค98.o.

๊ทธ๊ฒƒ์€ ์ค‘๋Œ€ํ•œ ์ด ์˜ต์…˜์€ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
๋ฃจํ‹ด. ๋˜ํ•œ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ž‘๋™ ๋™์ž‘์—๋„ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๊ทน๋‹จ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‘˜ ์ด์ƒ์˜ UNIX ํ‘œ์ค€์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์˜๋„๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๋Š” ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"__xpg4_extended_mask" ๋ณ€์ˆ˜๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •ํ•˜๊ณ  ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ GNU ์†Œํ”„ํŠธ์›จ์–ด
์ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-nolibdld
libdld.sl์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋งํฌ ์˜ต์…˜์˜ ์ƒ์„ฑ์„ ์–ต์ œํ•ฉ๋‹ˆ๋‹ค. -๊ณต์ „ ์˜ต์…˜์€
HP-UX 10 ์ด์ƒ์—์„œ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

-๊ณต์ „
libc์—์„œ setlocale์˜ HP-UX ๊ตฌํ˜„์€ libdld.sl์— ์ข…์†๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ
libdld.sl์˜ ์•„์นด์ด๋ธŒ ๋ฒ„์ „์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์–ธ์ œ -๊ณต์ „ ์˜ต์…˜์ด ์ง€์ •๋˜๊ณ ,
์ด ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ํŠน์ˆ˜ ๋งํฌ ์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

HP-UX 10 ์ด์ƒ์—์„œ GCC ๋“œ๋ผ์ด๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
libdld.sl์ด -๊ณต์ „ ์˜ต์…˜์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฒฐ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€
์—ญ๋™์ ์ด๋‹ค. 64๋น„ํŠธ ํฌํŠธ์—์„œ ๋ง์ปค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์  ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์–ด๋–ค ๊ฒฝ์šฐ. NS -nolibdld ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ GCC ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋งํฌ ์˜ต์…˜.

- ์Šค๋ ˆ๋“œ
๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ์ง€์› ์ถ”๊ฐ€ ๋””์‹œ ์‹ค HP-UX์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์ด ์˜ต์…˜
์ „์ฒ˜๋ฆฌ๊ธฐ์™€ ๋ง์ปค ๋ชจ๋‘์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

IA-64 ์˜ต์…˜

์ด๋“ค์€ ์žˆ์Šต๋‹ˆ๋‹ค -m Intel IA-64 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ •์˜๋œ ์˜ต์…˜.

-mbig-์—”๋””์•ˆ
๋น… ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ HP-UX์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ AIX5 ๋ฐ GNU/Linux์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mgnu-as
-mno-gnu-as
GNU ์–ด์…ˆ๋ธ”๋Ÿฌ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mgnu-ld
-mno-gnu-ld
GNU ๋ง์ปค์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-๊ทธ๋ฆผ
์ „์—ญ ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์œ„์น˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
๋…๋ฆฝ ์ฝ”๋“œ์ด๋ฉฐ IA-64 ABI๋ฅผ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค.

-mvolatile-asm-์ค‘์ง€
-mno-ํœ˜๋ฐœ์„ฑ-asm-stop
ํœ˜๋ฐœ์„ฑ asm ๋ฌธ ์ง์ „๊ณผ ์งํ›„์— ์ •์ง€ ๋น„ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-m ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„
-mno ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„
์ƒ์„ฑ(๋˜๋Š” ํ•˜์ง€ ์•Š์Œ) in, LOC๋ฐ ์•„์›ƒ ์Šคํƒ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„. ์ด๊ฒƒ
์–ด์…ˆ๋ธ”๋Ÿฌ ์ถœ๋ ฅ์„ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mno-sdata
-msdata
์ž‘์€ ๋ฐ์ดํ„ฐ ์„น์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์ ํ™”๋ฅผ ๋น„ํ™œ์„ฑํ™”(๋˜๋Š” ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์˜ตํ‹ฐ๋งˆ์ด์ € ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด.

-m์ƒ์ˆ˜-gp
๋‹จ์ผ ์ƒ์ˆ˜ ์ „์—ญ ํฌ์ธํ„ฐ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ปค๋„ ์ฝ”๋“œ ์ปดํŒŒ์ผ

-์ž๋™ ์‚ฌ์ง„
์ž์ฒด ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค -m์ƒ์ˆ˜-gp. ์ด๊ฒƒ์€ ์œ ์šฉํ•˜๋‹ค
ํŽŒ์›จ์–ด ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ.

-minline-float-divide-min-latency
์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์˜ ์ธ๋ผ์ธ ๋ถ„ํ• ์„ ์œ„ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ
์—ฐ์‚ฐ.

-minline-float-divide-max-์ฒ˜๋ฆฌ๋Ÿ‰
์ตœ๋Œ€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์˜ ์ธ๋ผ์ธ ๋ถ„ํ• ์„ ์œ„ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ
์—ฐ์‚ฐ.

-mno-inline-float-divide
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์„ ๋‚˜๋ˆ„๊ธฐ ์œ„ํ•ด ์ธ๋ผ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-minline-int-divide-min-latency
์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ˆ˜ ๊ฐ’์˜ ์ธ๋ผ์ธ ๋ถ„ํ• ์„ ์œ„ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ
์—ฐ์‚ฐ.

-minline-int-divide-max-์ฒ˜๋ฆฌ๋Ÿ‰
์ตœ๋Œ€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ˆ˜ ๊ฐ’์˜ ์ธ๋ผ์ธ ๋ถ„ํ• ์„ ์œ„ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ
์—ฐ์‚ฐ.

-mno-์ธ๋ผ์ธ-int-๋‚˜๋ˆ„๊ธฐ
์ •์ˆ˜ ๊ฐ’์„ ๋‚˜๋ˆ„๊ธฐ ์œ„ํ•ด ์ธ๋ผ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-minline-sqrt-์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„
์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๋ผ์ธ ์ œ๊ณฑ๊ทผ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-minline-sqrt-max-์ฒ˜๋ฆฌ๋Ÿ‰
์ตœ๋Œ€ ์ฒ˜๋ฆฌ๋Ÿ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๋ผ์ธ ์ œ๊ณฑ๊ทผ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-์ธ๋ผ์ธ-sqrt
"sqrt"์— ๋Œ€ํ•œ ์ธ๋ผ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ
-mno-์œตํ•ฉ-๋งค๋“œ
์œตํ•ฉ๋œ ๊ณฑํ•˜๊ธฐ/๋”ํ•˜๊ธฐ ๋˜๋Š” ๊ณฑํ•˜๊ธฐ/๋นผ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ง€์นจ. ๊ธฐ๋ณธ๊ฐ’์€ ์ด ์ง€์นจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-mno-dwarf2-asm
-mdwarf2-asm
DWARF 2 ํ–‰ ๋ฒˆํ˜ธ ๋””๋ฒ„๊น… ์ •๋ณด์— ๋Œ€ํ•œ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ด๊ฒƒ์€ GNU ์–ด์…ˆ๋ธ”๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-๊ฑฐ์˜ ์Šคํ†ฑ ๋น„ํŠธ
-mno-์ดˆ๊ธฐ ์ •์ง€ ๋น„ํŠธ
์ •์ง€ ๋น„ํŠธ๊ฐ€ ๋ช…๋ น ๋ฐ”๋กœ ์ด์ „๋ณด๋‹ค ๋จผ์ € ๋ฐฐ์น˜๋˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ •์ง€ ๋น„ํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ช…๋ น ์Šค์ผ€์ค„๋ง์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ฒŒ.

-m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„
์ฃผ์–ด์ง„ ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋ฅผ ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปค๋„์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์•”ํ˜ธ. ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ๋Œ€์‹œ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜
๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mtls-ํฌ๊ธฐ=tls ํฌ๊ธฐ
์ฆ‰์‹œ TLS ์˜คํ”„์…‹์˜ ๋น„ํŠธ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ ๊ฐ’์€ 14, 22 ๋ฐ 64์ž…๋‹ˆ๋‹ค.

-mtune=CPU ์œ ํ˜•
ํŠน์ • CPU์— ๋Œ€ํ•œ ๋ช…๋ น ์Šค์ผ€์ค„๋ง์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Itanium,
์•„์ดํ…Œ๋‹ˆ์—„1, ํ•ฉ๋ณ‘, ์•„์ดํ…Œ๋‹ˆ์—„2๋ฐ ๋งฅํ‚จ๋ฆฌ.

-milp32.
-mlp64
32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ํ™˜๊ฒฝ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 32๋น„ํŠธ ํ™˜๊ฒฝ์€ int,
long ๋ฐ 32๋น„ํŠธ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์ž…๋‹ˆ๋‹ค. 64๋น„ํŠธ ํ™˜๊ฒฝ์€ int๋ฅผ 32๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๊ณ  long ๋ฐ
64๋น„ํŠธ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ. ์ด๋Š” HP-UX ํŠน์ • ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.

-mno-sched-br-data-spec
-msched-br-๋ฐ์ดํ„ฐ-์‚ฌ์–‘
๋‹ค์‹œ ๋กœ๋“œํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ ์ถ”์ธก ์Šค์ผ€์ค„๋ง์„ (๋น„ํ™œ์„ฑํ™”/ํ™œ์„ฑํ™”) ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค์Œ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
"ld.a" ์ง€์นจ ๋ฐ ํ•ด๋‹น ๊ฒ€์‚ฌ ์ง€์นจ("ld.c" / "chk.a"). NS
๊ธฐ๋ณธ๊ฐ’์€ '๋น„ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-msched-ar-๋ฐ์ดํ„ฐ-์‚ฌ์–‘
-mno-sched-ar-data-spec
(En/Dis) ์žฌ๋กœ๋“œ ํ›„ ๋ฐ์ดํ„ฐ ์ถ”์ธก ์Šค์ผ€์ค„๋ง์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค์Œ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
"ld.a" ์ง€์นจ ๋ฐ ํ•ด๋‹น ๊ฒ€์‚ฌ ์ง€์นจ("ld.c" / "chk.a"). NS
๊ธฐ๋ณธ๊ฐ’์€ 'ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-mno-sched-control-spec
-msched-์ œ์–ด-์‚ฌ์–‘
(Dis/En) ์ œ์–ด ์ถ”์ธก ์Šค์ผ€์ค„๋ง. ์ด ๊ธฐ๋Šฅ์€ ๋™์•ˆ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€์—ญ ์Šค์ผ€์ค„๋ง(์ฆ‰, ๋‹ค์‹œ ๋กœ๋“œํ•˜๊ธฐ ์ „). ๊ทธ ๊ฒฐ๊ณผ "ld."๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ง€์นจ ๋ฐ ํ•ด๋‹น ๊ฒ€์‚ฌ ์ง€์นจ "chk.s". ๊ธฐ๋ณธ๊ฐ’์€
'์žฅ์• ๋ฅผ ์ž…ํžˆ๋‹ค'.

-msched-br-in-data-spec
-mno-sched-br-in-data-spec
(En/Dis) ๋ฐ์ดํ„ฐ์— ์˜์กดํ•˜๋Š” ๋ช…๋ น์–ด์˜ ์ถ”์ธก ์Šค์ผ€์ค„๋ง ๊ฐ€๋Šฅ
์žฌ์žฅ์ „ ์ „ ์ถ”์ธก ๋ถ€ํ•˜. ์ด ์žˆ์–ด์•ผ๋งŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. -msched-br-๋ฐ์ดํ„ฐ-์‚ฌ์–‘
ํ™œ์„ฑํ™”. ๊ธฐ๋ณธ๊ฐ’์€ 'ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-msched-ar-in-data-spec
-mno-sched-ar-in-data-spec
(En/Dis) ๋ฐ์ดํ„ฐ์— ์˜์กดํ•˜๋Š” ๋ช…๋ น์–ด์˜ ์ถ”์ธก ์Šค์ผ€์ค„๋ง ๊ฐ€๋Šฅ
์žฌ์žฅ์ „ ํ›„ ์ถ”์ธก ๋ถ€ํ•˜. ์ด ์žˆ์–ด์•ผ๋งŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. -msched-ar-๋ฐ์ดํ„ฐ-์‚ฌ์–‘
ํ™œ์„ฑํ™”. ๊ธฐ๋ณธ๊ฐ’์€ 'ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-msched-in-control-spec
-mno-sched-in-control-spec
(En/Dis)
ํˆฌ๊ธฐ ๋ถ€ํ•˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ์žˆ์–ด์•ผ๋งŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. -msched-์ œ์–ด-์‚ฌ์–‘ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ 'ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-mno-sched prefer-non-data-spec-insns
-msched-prefer-๋น„-๋ฐ์ดํ„ฐ-์‚ฌ์–‘-insns
ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์ถ”์ธก ์ง€์นจ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ผ์ •์— ๋Œ€ํ•ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋‹ค๋ฅธ ์„ ํƒ. ์ด๊ฒƒ์€ ๋ฐ์ดํ„ฐ ์ถ”์ธก์„ ํ›จ์”ฌ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ณด์ˆ˜์  ์ธ. ๊ธฐ๋ณธ๊ฐ’์€ '๋น„ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-mno-sched-prefer-non-control-spec-insns
-msched-prefer-non-control-spec-insns
ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ์ œ์–ด-ํˆฌ๊ธฐ์  ์ง€์นจ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ผ์ •์— ๋Œ€ํ•ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ๋กœ์„œ๋Š” ๋‹ค๋ฅธ ์„ ํƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ œ์–ด ์ถ”์ธก์„ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋” ๋ณด์ˆ˜์ ์ด๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ '๋น„ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-mno-sched-count-spec-in-์ค‘์š” ๊ฒฝ๋กœ
-msched-count-spec-in-์ค‘์š”-๊ฒฝ๋กœ
ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ์˜ˆ์ธก ์ข…์†์„ฑ์ด ๊ณ„์‚ฐ ์ค‘์— ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค.
์ง€์‹œ ์šฐ์„  ์ˆœ์œ„. ์ด๊ฒƒ์€ ์ถ”์ธก์˜ ์‚ฌ์šฉ์„ ์กฐ๊ธˆ ๋” ๋งŒ๋“ญ๋‹ˆ๋‹ค
๋ณด์ˆ˜์  ์ธ. ๊ธฐ๋ณธ๊ฐ’์€ '๋น„ํ™œ์„ฑํ™”'์ž…๋‹ˆ๋‹ค.

-msched-spec-ldc
๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ์ถ”์ธก ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-msched-์ œ์–ด-์‚ฌ์–‘-ldc
์ œ์–ด ์ถ”์ธก์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-๋งค ์ฃผ๊ธฐ ํ›„ msched-stop-bits
์Šค์ผ€์ค„๋งํ•  ๋•Œ ๋ชจ๋“  ์ฃผ๊ธฐ ํ›„์— ์ •์ง€ ๋น„ํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜์‹ญ์‹œ์˜ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-msched-fp-mem-deps-์ œ๋กœ ๋น„์šฉ
๋ถ€๋™ ์†Œ์ˆ˜์  ์ €์žฅ ๋ฐ ๋กœ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ์ผ์œผํ‚ค์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ™์€ ๋ช…๋ น ๊ทธ๋ฃน์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-msel-sched-dont-check-control-spec
์„ ํƒ์  ์Šค์ผ€์ค„๋ง์—์„œ ์ œ์–ด ์ถ”์ธก์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊นƒ๋ฐœ์€
๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-msched-์ตœ๋Œ€-๋ฉ”๋ชจ๋ฆฌ-insns=์ตœ๋Œ€-์ธ์Šค
๋ช…๋ น ๊ทธ๋ฃน๋‹น ๋ฉ”๋ชจ๋ฆฌ ์ธ์Šค์˜ ์ˆ˜๋ฅผ ์ œํ•œํ•˜์—ฌ ๋” ๋‚ฎ์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌ
๋™์ผํ•œ ๋ช…๋ น ๊ทธ๋ฃน์—์„œ ์˜ˆ์•ฝ์„ ์‹œ๋„ํ•˜๋Š” ํ›„์† ๋ฉ”๋ชจ๋ฆฌ ์‹œ์„ค.
์บ์‹œ ๋ฑ…ํฌ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ์ž์ฃผ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

-msched-์ตœ๋Œ€-๋ฉ”๋ชจ๋ฆฌ-insns-ํ•˜๋“œ ์ œํ•œ
์— ์˜ํ•ด ์ง€์ •๋œ ํ•œ๊ณ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. msched-์ตœ๋Œ€-๋ฉ”๋ชจ๋ฆฌ-insns ์—„๊ฒฉํ•œ ์ œํ•œ, ๋” ๋งŽ์€ ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ
๋ช…๋ น ๊ทธ๋ฃน์˜ ํ•ด๋‹น ์ˆซ์ž๋ณด๋‹ค ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•œ๊ณ„๊ฐ€ "์†Œํ”„ํŠธ"์ž…๋‹ˆ๋‹ค.
ํ•œ๊ณ„์— ๋„๋‹ฌํ•˜๋ฉด ๋น„๋ฉ”๋ชจ๋ฆฌ ์ž‘์—…์ด ์„ ํ˜ธ๋˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ
์ž‘์—…์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์˜ˆ์•ฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

LM32 ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ LatticeMico32 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mbarrel-shift ์‚ฌ์šฉ ๊ฐ€๋Šฅ
๋ฐฐ๋Ÿด ์‹œํ”„ํŠธ ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mdivide ์‚ฌ์šฉ
๋‚˜๋ˆ„๊ธฐ ๋ฐ ๋ชจ๋“ˆ๋Ÿฌ์Šค ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-m๊ณฑํ•˜๊ธฐ ๊ฐ€๋Šฅ
๊ณฑํ•˜๊ธฐ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-msign ํ™•์žฅ ๊ฐ€๋Šฅ
๋ถ€ํ˜ธ ํ™•์žฅ ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-muser ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์‚ฌ์šฉ์ž ์ •์˜ ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

M32C ์˜ต์…˜

-mcpu =name
์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” CPU๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. name ์ค‘ ํ•˜๋‚˜ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค r8c R8C/Tiny์šฉ
์—ฐ์†, m16c M16C(์ตœ๋Œ€ /60) ์‹œ๋ฆฌ์ฆˆ์˜ ๊ฒฝ์šฐ, m32cm M16C/80 ์‹œ๋ฆฌ์ฆˆ ๋˜๋Š” m32c
M32C/80 ์‹œ๋ฆฌ์ฆˆ์šฉ.

-msim
ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‹คํ–‰๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋Œ€์ฒด
์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ I/O๋ฅผ ์ง€์›ํ•˜๋Š” ๋งํฌ๋  ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ๋‹น์‹ ์€ํ•˜์ง€ ์•Š์•„์•ผ
์‹ค์ œ ํ•˜๋“œ์›จ์–ด์—์„œ ์‹คํ–‰๋  ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•  ๋•Œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋‹น์‹ ์€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
ํ•„์š”ํ•œ I/O ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ž์ฒด ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-memregs=๋ฒˆํ˜ธ
์ฝ”๋“œ ์ƒ์„ฑ ์ค‘์— GCC๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ์˜์‚ฌ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์˜์‚ฌ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์‹ค์ œ ๋ ˆ์ง€์Šคํ„ฐ์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ
์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ์— ๋งž์ถ”๋Š” GCC์˜ ๋Šฅ๋ ฅ๊ณผ ์„ฑ๋Šฅ ์ €ํ•˜
๋ ˆ์ง€์Šคํ„ฐ ๋Œ€์‹  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ๋ชจ๋“ˆ์€
์ด ์˜ต์…˜์— ๋Œ€ํ•ด ๋™์ผํ•œ ๊ฐ’์œผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
GCC์˜ ๊ธฐ๋ณธ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜ต์…˜.

M32R/D ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ Renesas M32R/D ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-m32r2
M32R/2์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m32rx
M32R/X์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m32r
M32R์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mmodel=์ž‘์€
๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ํ•˜์œ„ 16MB ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
"ld24" ๋ช…๋ น์–ด๋กœ ๋กœ๋“œ๋จ), ๋ชจ๋“  ์„œ๋ธŒ๋ฃจํ‹ด์ด
"bl"์ง€์‹œ. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

ํŠน์ • ๊ฐœ์ฒด์˜ ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅ์„ฑ์€ "๋ชจ๋ธ" ์†์„ฑ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mmodel=์ค‘๊ฐ„
๊ฐ์ฒด๊ฐ€ 32๋น„ํŠธ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ์•„๋ฌด ๊ณณ์—๋‚˜ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑ
์ฃผ์†Œ๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ "seth/add3" ๋ช…๋ น์–ด), ๋ชจ๋“  ์„œ๋ธŒ๋ฃจํ‹ด์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
"bl" ๋ช…๋ น์œผ๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mmodel=๋Œ€ํ˜•
๊ฐ์ฒด๊ฐ€ 32๋น„ํŠธ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ์•„๋ฌด ๊ณณ์—๋‚˜ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค(์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑ
์ฃผ์†Œ๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ "seth/add3" ๋ช…๋ น์–ด), ์„œ๋ธŒ๋ฃจํ‹ด์ด
"bl" ๋ช…๋ น์–ด๋กœ ๋„๋‹ฌ ๊ฐ€๋Šฅ(์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ›จ์”ฌ ๋Š๋ฆฐ
"seth/add3/jl" ๋ช…๋ น ์‹œํ€€์Šค).

-msdata=์—†์Œ
์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋Š” ".data", ".bss" ๋˜๋Š”
".rodata"("์„น์…˜" ์†์„ฑ์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ). ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ".sdata" ๋ฐ ".sbss" ์„น์…˜์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "์„น์…˜" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ๋ช…์‹œ์ ์œผ๋กœ ๋„ฃ์Šต๋‹ˆ๋‹ค.
์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

-msdata=sdata
์ž‘์€ ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ๋„ฃ๋˜ ํŠน๋ณ„ํ•œ ์ƒ์„ฑ์€ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
์ฐธ์กฐํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

-msdata=์‚ฌ์šฉ
์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ์ž‘์€ ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ํŠน์ˆ˜ ์ƒ์„ฑ
์ฐธ์กฐํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

-G NUM
์ „์—ญ ๋ฐ ์ •์  ๊ฐœ์ฒด๋ฅผ ๋‹ค์Œ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ NUM ์ž‘์€ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”์ดํŠธ ๋˜๋Š”
์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋˜๋Š” BSS ์„น์…˜ ๋Œ€์‹  BSS ์„น์…˜. ๊ธฐ๋ณธ๊ฐ’ NUM is
8. ๊ทธ๋งŒํผ -msdata ์˜ต์…˜์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ or ์‚ฌ์šฉ ์ด ์˜ต์…˜์—
ํšจ๊ณผ.

๋ชจ๋“  ๋ชจ๋“ˆ์€ ๋™์ผํ•œ ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -G NUM ๊ฐ’. ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์ปดํŒŒ์ผ
~์˜ ๊ฐ€์น˜ NUM ์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ง์ปค์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”์‹œ์ง€---์ž˜๋ชป๋œ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-m๋””๋ฒ„๊ทธ
์ปดํŒŒ์ผ๋Ÿฌ์˜ M32R ๊ด€๋ จ ์ฝ”๋“œ๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋””๋ฒ„๊น… ํ”„๋กœ๊ทธ๋žจ์—์„œ.

-์•…์„ฑ ๋ฃจํ”„
๋ชจ๋“  ๋ฃจํ”„๋ฅผ 32๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฅ๋‹ˆ๋‹ค.

-mno-align ๋ฃจํ”„
๋ฃจํ”„์— ๋Œ€ํ•ด 32๋ฐ”์ดํŠธ ์ •๋ ฌ์„ ์ ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-์˜ค๋ฅ˜์œจ=๋ฒˆํ˜ธ
๋ฐœํ–‰๋ฌผ ๋ฒˆํ˜ธ ์‚ฌ์ดํด๋‹น ์ง€์นจ. ๋ฒˆํ˜ธ 1 ๋˜๋Š” 2๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-mbranch ๋น„์šฉ=๋ฒˆํ˜ธ
๋ฒˆํ˜ธ 1 ๋˜๋Š” 2๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 1์ด๋ฉด ์กฐ๊ฑด๋ถ€๋ณด๋‹ค ๋ถ„๊ธฐ๊ฐ€ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ๊ฐ€ 2์ด๋ฉด ๋ฐ˜๋Œ€๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

-mflush-ํŠธ๋žฉ=๋ฒˆํ˜ธ
์บ์‹œ๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ํŠธ๋žฉ ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 12์ž…๋‹ˆ๋‹ค. ์œ ํšจ
์ˆซ์ž๋Š” 0์—์„œ 15 ์‚ฌ์ด์ž…๋‹ˆ๋‹ค.

-mno-ํ”Œ๋Ÿฌ์‹œ-ํŠธ๋žฉ
ํŠธ๋žฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์บ์‹œ๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•  ์ˆ˜ ์—†๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mflush-func=name
์บ์‹œ๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœํ•  ์šด์˜ ์ฒด์ œ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. NS
๊ธฐ๋ณธ๊ฐ’์€ _ํ”Œ๋Ÿฌ์‹œ_์บ์‹œํ•˜์ง€๋งŒ ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ ํŠธ๋žฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-mno-ํ”Œ๋Ÿฌ์‹œ-ํŽ‘ํฌ
์บ์‹œ ํ”Œ๋Ÿฌ์‹œ๋ฅผ ์œ„ํ•œ OS ๊ธฐ๋Šฅ์ด ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

M680x0 ์˜ต์…˜

์ด๋“ค์€ ์žˆ์Šต๋‹ˆ๋‹ค -m M680x0 ๋ฐ ColdFire ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ์ •์˜๋œ ์˜ต์…˜. ๊ธฐ๋ณธ ์„ค์ •
์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ์„ ํƒํ•œ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’
๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์„ ํƒ ์‚ฌํ•ญ์€ ์•„๋ž˜์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

-ํ–‰์ง„=์•„์น˜
ํŠน์ • M680x0 ๋˜๋Š” ColdFire ๋ช…๋ น์–ด ์„ธํŠธ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ—ˆ์šฉ ๊ฐ’ ์•„์น˜ M680x0 ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ: 68000, 68010, 68020, 68030,
68040, 68060 ๊ณผ CPU32. ColdFire ์•„ํ‚คํ…์ฒ˜๋Š” Freescale์˜
ISA ๋ถ„๋ฅ˜ ๋ฐ ํ—ˆ์šฉ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์‚ฌ์•ผ, ์ด์‚ฌ ํ”Œ๋Ÿฌ์Šค, ์ด์‚ฌ ๋ธŒ ๊ณผ ์ด์‚ญ.

GCC๋Š” ๋งคํฌ๋กœ "__mcf์•„์น˜__" ColdFire์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค
ํ‘œ์ . NS ์•„์น˜ ์ด ๋งคํฌ๋กœ์—์„œ -XNUMX ์›” ์œ„์— ์ฃผ์–ด์ง„ ์ธ์ˆ˜.

ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด, -XNUMX ์›” ๊ณผ -mtune ์œ ์‚ฌํ•œ ์ œํ’ˆ๊ตฐ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์„ ํƒ
ํ”„๋กœ์„ธ์„œ์ด์ง€๋งŒ ํŠน์ • ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mcpu =CPU
ํŠน์ • M680x0 ๋˜๋Š” ColdFire ํ”„๋กœ์„ธ์„œ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. M680x0 CPUs๋Š”:
68000, 68010, 68020, 68030, 68040, 68060, 68302, 68332 ๊ณผ CPU32. ์ฝœ๋“œํŒŒ์ด์–ด CPUs
CPU๋ฅผ ์ œํ’ˆ๊ตฐ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ์•„๋ž˜ ํ‘œ์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์กฑ : -mcpu ์ธ์ˆ˜
51 : 51 51ac 51ag 51์„ผํŠธ 51em 51je 51jf 51jg 51jm 51mm 51qe 51qm
5206 : 5202 5204 5206
5206e : 5206e
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 SR 523x
5249 : 5249
5250 : 5250
5271 : 5270 5271
5272 : 5272
5275 : 5274 5275
5282 : 5280 5281 5282 SR 528x
53017 : 53011 53012 53013 53014 53015 53016 53017
5307 : 5307
5329 : 5327 5328 5329 SR 532x
5373 : 5372 5373 SR 537x
5407 : 5407
5475 : 5470 5471 5472 5473 5474 5475 SR 547x 5480 5481 5482 5483 5484 5485

-mcpu =CPU ์žฌ์ •์˜ -ํ–‰์ง„=์•„์น˜ if ์•„์น˜ ์™€ ํ˜ธํ™˜ CPU. ๋‹ค๋ฅธ ์กฐํ•ฉ
-mcpu ๊ณผ -XNUMX ์›” ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

GCC๋Š” "__mcf_cpu_" ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.CPU" ColdFire ๋Œ€์ƒ์ด ๋  ๋•Œ CPU ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ
"__mcf_family_๊ฐ€์กฑ", ์—ฌ๊ธฐ์„œ ๊ฐ’ ๊ฐ€์กฑ ์œ„์˜ ํ‘œ์— ์˜ํ•ด ์ฃผ์–ด์ง„๋‹ค.

-mtune=๊ณก์กฐ
์— ์˜ํ•ด ์„ค์ •๋œ ์ œ์•ฝ ์กฐ๊ฑด ๋‚ด์—์„œ ํŠน์ • ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. -XNUMX ์›”
๊ณผ -mcpu. M680x0 ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 68000, 68010, 68020, 68030, 68040,
68060 ๊ณผ CPU32. ColdFire ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. cfv1, cfv2, cfv3, cfv4 ๊ณผ
cfv4e.

VOUS pouvez์˜ aussi ์‚ฌ์šฉ -mtune = 68020-40 68020์—์„œ ๋น„๊ต์  ์ž˜ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ,
68030 ๋ฐ 68040 ๋Œ€์ƒ. -mtune = 68020-60 ์œ ์‚ฌํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 68060๊ฐœ์˜ ๋Œ€์ƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
์ž˜. ์ด ๋‘ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๋™์ผํ•œ ์กฐ์ • ๊ฒฐ์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. -m68020-40 ๊ณผ -m68020-60
๊ฐ๊ฐ.

GCC๋Š” ๋งคํฌ๋กœ "__mc์•„์น˜" ๊ทธ๋ฆฌ๊ณ  "__mc์•„์น˜__" 680x0 ์•„ํ‚คํ…์ฒ˜์— ๋งž๊ฒŒ ์กฐ์ •ํ•  ๋•Œ
์•„์น˜. ๋˜ํ•œ "mc์•„์น˜" ๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด -์•ˆ์‹œ ๋˜๋Š” ๋น„ GNU -ํ‘œ์ค€ ์˜ต์…˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
GCC๊ฐ€ ๋‹ค์Œ์—์„œ ์„ ํƒํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ฒ”์œ„์— ๋Œ€ํ•ด ์กฐ์ • ์ค‘์ธ ๊ฒฝ์šฐ -mtune = 68020-40 or
-mtune = 68020-60, ๋ฒ”์œ„์˜ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

GCC๋Š” ๋˜ํ•œ ๋งคํฌ๋กœ "__m์ผ์ฐ__" ColdFire ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜๋ฅผ ํŠœ๋‹ํ•  ๋•Œ
์ผ์ฐ์–ด๋””๋กœ ์ผ์ฐ ์œ„์— ์ฃผ์–ด์ง„ ์ธ์ˆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

-m68000
-mc68000
68000์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
68000 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -68000์›”=XNUMX.

68000์„ ํฌํ•จํ•˜์—ฌ 000 ๋˜๋Š” EC68008 ์ฝ”์–ด๊ฐ€ ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์— ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
68302, 68306, 68307, 68322, 68328 ๋ฐ 68356.

-m68010
68010์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
68010 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -68010์›”=XNUMX.

-m68020
-mc68020
68020์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
68020 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -68020์›”=XNUMX.

-m68030
68030์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
68030 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -68030์›”=XNUMX.

-m68040
68040์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
68040 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -68040์›”=XNUMX.

์ด ์˜ต์…˜์€ ๋‹ค์Œ์— ์˜ํ•ด ์—๋ฎฌ๋ ˆ์ดํŠธ๋˜์–ด์•ผ ํ•˜๋Š” 68881/68882 ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
68040์˜ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. 68040์— ์—๋ฎฌ๋ ˆ์ดํŠธํ•  ์ฝ”๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๊ทธ ์ง€์‹œ.

-m68060
68060์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
68060 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -68060์›”=XNUMX.

์ด ์˜ต์…˜์€ 68020 ๋ฐ 68881/68882 ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
68060์˜ ์†Œํ”„ํŠธ์›จ์–ด์— ์˜ํ•ด ์—๋ฎฌ๋ ˆ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. 68060์— ์ฝ”๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์ด๋Ÿฌํ•œ ์ง€์นจ์„ ๋ชจ๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

-mcpu32
CPU32์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
CPU32 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -32์›”=cpuXNUMX.

32์„ ํฌํ•จํ•˜์—ฌ CPU32 ๋˜๋Š” CPU68330+ ์ฝ”์–ด๊ฐ€ ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์— ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
68331, 68332, 68333, 68334, 68336, 68340, 68341, 68349 ๋ฐ 68360

-m5200
520X ColdFire CPU์šฉ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
520X ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์šฉ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋™๋“ฑํ•˜๋‹ค -mcpu=5206, ํ˜„์žฌ
ํ•ด๋‹น ์˜ต์…˜์„ ์œ„ํ•ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MCF5200, MCF5202,
MCF5204 ๋ฐ MCF5206.

-m5206e
5206e ColdFire CPU์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ด์ œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋™๋“ฑํ•œ -mcpu=5206e.

-m528x
ColdFire 528X ์ œํ’ˆ๊ตฐ์˜ ๊ตฌ์„ฑ์›์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์€ ์ง€๊ธˆ
๋™๋“ฑํ•œ ๊ฒƒ์„ ์„ ํ˜ธํ•˜์—ฌ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ -mcpu=528x.

-m5307
ColdFire 5307 CPU์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ด์ œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋™๋“ฑํ•œ -mcpu=5307.

-m5407
ColdFire 5407 CPU์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ด์ œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋™๋“ฑํ•œ -mcpu=5407.

-mcfv4e
ColdFire V4e ์ œํ’ˆ๊ตฐ CPU์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: 547x/548x). ์—ฌ๊ธฐ์—๋Š” ์‚ฌ์šฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด. ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -mcpu=547xํ•˜๊ณ ๋Š”
์ด์ œ ๊ทธ ์˜ต์…˜์„ ์œ„ํ•ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-m68020-40
์ƒˆ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  68040์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ
68020/68881 ๋˜๋Š” 68030 ๋˜๋Š”
68040. ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ์—๋ฎฌ๋ ˆ์ดํŠธ๋œ 68881 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
68040.

์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -68020์›”=XNUMX -mtune = 68020-40.

-m68020-60
์ƒˆ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  68060์— ๋Œ€ํ•œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ
68020/68881 ๋˜๋Š” 68030 ๋˜๋Š”
68040. ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ์—๋ฎฌ๋ ˆ์ดํŠธ๋œ 68881 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
68060.

์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -68020์›”=XNUMX -mtune = 68020-60.

-mhard-float
-m68881
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 68020 ์ด์ƒ์˜ ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ,
FPU๊ฐ€ ์žˆ๋Š” ColdFire ์žฅ์น˜์˜ ๊ฒฝ์šฐ. "__HAVE_68881__" ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
M680x0 ๋Œ€์ƒ ๋ฐ ColdFire ๋Œ€์ƒ์˜ "__mcffpu__".

-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋Œ€์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด
68000, 68010 ๋ฐ 68832 ๋Œ€์ƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ColdFire์˜ ๊ธฐ๋ณธ๊ฐ’์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
FPU๊ฐ€ ์—†๋Š” ์žฅ์น˜.

-mdiv
-mno-div
ColdFire ํ•˜๋“œ์›จ์–ด ๋‚˜๋ˆ„๊ธฐ ๋ฐ ๋‚˜๋จธ์ง€ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ). ๋งŒ์•ฝ์—
-XNUMX ์›” ์—†์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค -mcpu, ๊ธฐ๋ณธ๊ฐ’์€ ColdFire ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ "on"์ด๊ณ  "off"์ž…๋‹ˆ๋‹ค.
M680x0 ์•„ํ‚คํ…์ฒ˜์šฉ. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ๋Œ€์ƒ CPU์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค(
๊ธฐ๋ณธ CPU ๋˜๋Š” ๋‹ค์Œ์œผ๋กœ ์ง€์ •๋œ CPU -mcpu). ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ๊ฐ’์€ "๊บผ์ง"์ž…๋‹ˆ๋‹ค.
for -mcpu=5206 ๋ฐ "์ผœ๊ธฐ"์— ๋Œ€ํ•œ -mcpu=5206e.

์ด ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด GCC๋Š” ๋งคํฌ๋กœ "__mcfhwdiv__"๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

-m์งง์€
"int" ์œ ํ˜•์„ "short int"์™€ ๊ฐ™์ด 16๋น„ํŠธ ๋„ˆ๋น„๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜
์Šคํƒ์— ์ „๋‹ฌ๋œ API๋Š” API๊ฐ€ ์žˆ๋Š” ๋Œ€์ƒ์—์„œ๋„ 16๋น„ํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฐ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.
32๋น„ํŠธ๋กœ ์Šน๊ฒฉ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

-mno-์งง์€
"int" ์œ ํ˜•์„ 16๋น„ํŠธ ๋„ˆ๋น„๋กœ ๊ฐ„์ฃผํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mnobitํ•„๋“œ
-mno ๋น„ํŠธ ํ•„๋“œ
๋น„ํŠธ ํ•„๋“œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. NS -m68000, -mcpu32 ๊ณผ -m5200 ์˜ต์…˜ ์•”์‹œ
-mnobitํ•„๋“œ.

-mbitํ•„๋“œ
๋น„ํŠธ ํ•„๋“œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. NS -m68020 ์˜ต์…˜ ์˜๋ฏธ -mbitํ•„๋“œ. ์ด๊ฒƒ์€
68020์šฉ์œผ๋กœ ์„ค๊ณ„๋œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mrtd
๊ณ ์ •๋œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜๋ฅผ ํŒํ•˜๋Š” "rtd" ๋ช…๋ น๊ณผ ํ•จ๊ป˜ ๋ฐ˜ํ™˜๋˜๋Š” ์ธ์ˆ˜์˜ ์ˆ˜
๋Œ์•„์˜ค๋Š” ๋™์•ˆ. ์ด๊ฒƒ์€ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ์ถœ์ž์—๊ฒŒ ํ•˜๋‚˜์˜ ๋ช…๋ น์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
๊ฑฐ๊ธฐ์— ์ธ์ˆ˜๋ฅผ ํŒ๋‹ˆ๋‹ค.

์ด ํ˜ธ์ถœ ๊ทœ์น™์€ Unix์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ
Unix ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ปดํŒŒ์ผ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์— ๋Œ€ํ•ด ํ•จ์ˆ˜ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜์˜ ์ˆ˜("printf" ํฌํ•จ); ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž˜๋ชป๋œ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋„ˆ๋ฌด ๋งŽ์€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์‹ฌ๊ฐํ•˜๊ฒŒ ์ž˜๋ชป๋œ ์ฝ”๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜. (์ผ๋ฐ˜์ ์œผ๋กœ ์ถ”๊ฐ€ ์ธ์ˆ˜๋Š” ๋ฌดํ•ดํ•˜๊ฒŒ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.)

"rtd" ๋ช…๋ น์–ด๋Š” 68010, 68020, 68030, 68040, 68060 ๋ฐ CPU32์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ, ๊ทธ๋Ÿฌ๋‚˜ 68000 ๋˜๋Š” 5200์€ ์•„๋‹™๋‹ˆ๋‹ค.

-mno-rtd
์—์„œ ์„ ํƒํ•œ ํ˜ธ์ถœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. -mrtd. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-์•…์„ฑ-int
-mno-์ •๋ ฌ-int
GCC๊ฐ€ "int", "long", "long long", "float", "double" ๋ฐ "long"์„ ์ •๋ ฌํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
32๋น„ํŠธ ๊ฒฝ๊ณ„์˜ "๋”๋ธ”" ๋ณ€์ˆ˜(-์•…์„ฑ-int) ๋˜๋Š” 16๋น„ํŠธ ๊ฒฝ๊ณ„
(-mno-์ •๋ ฌ-int). 32๋น„ํŠธ ๊ฒฝ๊ณ„์— ๋ณ€์ˆ˜๋ฅผ ์ •๋ ฌํ•˜๋ฉด ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํฌ์ƒํ•˜๋ฉด์„œ 32๋น„ํŠธ ๋ฒ„์Šค๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์„ธ์„œ์—์„œ ๋‹ค์†Œ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ๋‹น์‹ ์ด -์•…์„ฑ-int ์Šค์œ„์น˜, GCC๋Š” ์œ„์˜ ๋‚ด์šฉ์„ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
๋Œ€๋ถ€๋ถ„์˜ ๊ฒŒ์‹œ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์–‘๊ณผ ๋‹ค๋ฅธ ์œ ํ˜•
m68k.

-mprel
์ „์—ญ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  68000์˜ PC ์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ • ๋ชจ๋“œ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์˜คํ”„์…‹ ํ…Œ์ด๋ธ”. ํ˜„์žฌ ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. -fpic, ์ตœ๋Œ€ 16๋น„ํŠธ ์˜คํ”„์…‹ ํ—ˆ์šฉ
PC ์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ •์šฉ. -fPIC ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค -mprelํ•˜์ง€๋งŒ
์ด๊ฒƒ์€ 68020 ์ด์ƒ ํ”„๋กœ์„ธ์„œ์—์„œ ์ง€์›๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mno-์—„๊ฒฉํ•œ ์ •๋ ฌ
-mstrict-์ •๋ ฌ
์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-msep-๋ฐ์ดํ„ฐ
๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‹ค๋ฅธ ์˜์—ญ์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ์—์„œ. ์ด๋ฅผ ํ†ตํ•ด
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. -fPIC.

-mno-XNUMX์›”-๋ฐ์ดํ„ฐ
๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋”ฐ๋ฅธ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€
๊ธฐ๋ณธ๊ฐ’.

-์ค‘๊ฐ„ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ID ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ—ˆ์šฉ
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ์ œ์ž๋ฆฌ ์‹คํ–‰ ๋ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ
๊ด€๋ฆฌ. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. -fPIC.

-mno-id-๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ID ๊ธฐ๋ฐ˜ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
๊ธฐ๋ณธ๊ฐ’.

-mshared-library-id=n
์ปดํŒŒ์ผ ์ค‘์ธ ID ๊ธฐ๋ฐ˜ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‹๋ณ„ ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ’์„ 0์œผ๋กœ ์ง€์ •ํ•˜๋ฉด ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ’ ์ง€์ •ํ•˜๊ธฐ
๊ทธ ์ˆซ์ž๋ฅผ ํ˜„์žฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ• ๋‹นํ•˜์ง€๋งŒ ๋” ์ด์ƒ ๊ณต๊ฐ„ ๋˜๋Š” ์‹œ๊ฐ„์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

-mxgot
-mno-xgot
ColdFire์šฉ ์œ„์น˜ ๋…๋ฆฝ์  ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค.
GOT์—๋Š” 8192๊ฐœ ์ด์ƒ์˜ ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ์ฝ”๋“œ๋ณด๋‹ค ํฌ๊ณ  ๋Š๋ฆฝ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜ ์—†์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. M680x0 ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” ์ด ์˜ต์…˜์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -fPIC
์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

GCC๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์ผ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GOT์—์„œ ๊ฐ’์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์•ˆ
์ƒ๋Œ€์ ์œผ๋กœ ํšจ์œจ์ ์ด๋ฉฐ GOT๊ฐ€ ์•ฝ 64k๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ
ํฌ๋ฉด ๋ง์ปค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋งž๊ฒŒ ์ž˜๋ฆฐ ์žฌ๋ฐฐ์น˜: R_68K_GOT16O foobar

์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -mxgot. ๊ทธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
๋งค์šฐ ํฐ GOT. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ์œผ๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ -mxgot ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.
์ „์—ญ ๊ธฐํ˜ธ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด 4๊ฐœ์˜ ๋ช…๋ น์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์˜ GNU ๋ง์ปค๋ฅผ ํฌํ•จํ•œ ์ผ๋ถ€ ๋ง์ปค๋Š” ๋‹ค์Œ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ GOT ๋ฐ ์ •๋ ฌ GOT ํ•ญ๋ชฉ. ๊ทธ๋Ÿฌํ•œ ๋ง์ปค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ -mxgot 8192๊ฐœ ์ด์ƒ์˜ GOT์— ์ ‘๊ทผํ•˜๋Š” ๋‹จ์ผ ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ
ํ•ญ๋ชฉ. ์•„์ฃผ ์†Œ์ˆ˜๋งŒ์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ GCC๊ฐ€ ์œ„์น˜ ๋…๋ฆฝ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ํ•œ ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์— ์ฝ”์–ด ์˜ต์…˜

์ด๋“ค์€ ์žˆ์Šต๋‹ˆ๋‹ค -m Motorola M*Core ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ์ •์˜๋œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

-mhardlit
-mno-hardlit
XNUMX๊ฐœ ์ดํ•˜์˜ ๋ช…๋ น์–ด๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒ์ˆ˜๋ฅผ ์ฝ”๋“œ ์ŠคํŠธ๋ฆผ์— ์ธ๋ผ์ธํ•˜์‹ญ์‹œ์˜ค.

-mdiv
-mno-div
๋‚˜๋ˆ„๊ธฐ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ).

-mrelax-์ฆ‰์‹œ
-mno-relax-์ฆ‰์‹œ
๋น„ํŠธ ์—ฐ์‚ฐ์—์„œ ์ž„์˜ ํฌ๊ธฐ์˜ ์ฆ‰์‹œ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mwide-๋น„ํŠธ ํ•„๋“œ
-mno ์™€์ด๋“œ ๋น„ํŠธ ํ•„๋“œ
ํ•ญ์ƒ ๋น„ํŠธ ํ•„๋“œ๋ฅผ "int" ํฌ๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

-m4byte-ํ•จ์ˆ˜
-mno-4byte-ํ•จ์ˆ˜
๋ชจ๋“  ๊ธฐ๋Šฅ์„ 4๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฐ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

-mcallgraph-๋ฐ์ดํ„ฐ
-mno-callgraph-๋ฐ์ดํ„ฐ
callgraph ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.

-mslow-๋ฐ”์ดํŠธ
-mno-๋Š๋ฆฐ ๋ฐ”์ดํŠธ
๋ฐ”์ดํŠธ ์ˆ˜๋Ÿ‰์„ ์ฝ์„ ๋•Œ ์›Œ๋“œ ์•ก์„ธ์Šค๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
-mbig-์—”๋””์•ˆ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m210
-m340
210 ํ”„๋กœ์„ธ์„œ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-lsim
๋Ÿฐํƒ€์ž„ ์ง€์›์ด ์ œ๊ณต๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ๋žตํ•˜์‹ญ์‹œ์˜ค.
(libsim.a) ๋ง์ปค ๋ช…๋ น์ค„์—์„œ.

-mstack ์ฆ๊ฐ€=ํฌ๊ธฐ
๋‹จ์ผ ์Šคํƒ ์ฆ๋ถ„ ์ž‘์—…์˜ ์ตœ๋Œ€๋Ÿ‰์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํฐ ๊ฐ’์€
๋งŽ์€ ์–‘์„ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์†๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
์Šคํƒ ๊ณต๊ฐ„์ด์ง€๋งŒ ์Šคํƒ์ด ํ™•์žฅ๋˜๋ฉด ๋ถ„ํ•  ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๋„ˆ๋ฌด ๋งŽ์€. ๊ธฐ๋ณธ๊ฐ’์€ 0x1000์ž…๋‹ˆ๋‹ค.

MeP ์˜ต์…˜

-๋ง™์Šค๋””ํ”„
๋‘ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ„์˜ ์ ˆ๋Œ€ ์ฐจ์ด์ธ "abs" ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋ชฐ ์˜ต์…˜
๋ชจ๋“  ์„ ํƒ์  ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค---ํ‰๊ท , ๊ณฑํ•˜๊ธฐ, ๋‚˜๋ˆ„๊ธฐ, ๋น„ํŠธ ์—ฐ์‚ฐ,
์„ ํ–‰ XNUMX, ์ ˆ๋Œ€ ์ฐจ์ด, ์ตœ์†Œ/์ตœ๋Œ€, ํด๋ฆฝ ๋ฐ ์ฑ„๋„.

-ํ‰๊ท 
๋‘ ๋ ˆ์ง€์Šคํ„ฐ์˜ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜๋Š” "ave" ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-m ๊ธฐ๋ฐ˜=n
ํฌ๊ธฐ ๋ณ€์ˆ˜ n ๋ฐ”์ดํŠธ ์ดํ•˜์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ".based" ์„น์…˜์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ฐ˜ ๋ณ€์ˆ˜๋Š” $tp ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ธฐ๋ณธ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ 128๋ฐ”์ดํŠธ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
".based" ์„น์…˜์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

-์— ๋น„ํƒ‘์Šค
๋น„ํŠธ ์ž‘์—… ๋ช…๋ น ํ™œ์„ฑํ™”---๋น„ํŠธ ํ…Œ์ŠคํŠธ("btstm"), ์„ค์ •("bsetm"), ์ง€์šฐ๊ธฐ
("bclrm"), ๋ฐ˜์ „("bnotm") ๋ฐ ํ…Œ์ŠคํŠธ ๋ฐ ์„ค์ •("tas").

-MC=name
์–ด๋–ค ์„น์…˜ ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜ํ• ์ง€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. name ์ˆ˜ ์ž‘์€, ...๋ฐ ๋ฉ€๋ฆฌ.

-mclip
"ํด๋ฆฝ" ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  -mclip ๋‹น์‹ ๋„ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์ œ๊ณต -mminmax.

-mconfig=name
๊ธฐ๋ณธ ์ œ๊ณต ์ฝ”์–ด ๊ตฌ์„ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ MeP ์นฉ์—๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜
๊ทธ ์•ˆ์— ๋ชจ๋“ˆ; ๊ฐ ๋ชจ๋“ˆ์—๋Š” ์ฝ”์–ด CPU์™€ ๋‹ค์–‘ํ•œ ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€์นจ ๋ฐ ์ฃผ๋ณ€ ์žฅ์น˜. GCC์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ "MeP-Integrator" ๋„๊ตฌ๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ; ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ชจ๋“ 
ํ•ด๋‹น ๋ช…๋ น์ค„ ์˜ต์…˜. ๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ๋””ํดํŠธ ๊ฐ’.

-์— ์บ…
๋ณด์กฐ ํ”„๋กœ์„ธ์„œ ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๊ฒƒ์€ 32๋น„ํŠธ ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ
๋ณด์กฐ ํ”„๋กœ์„ธ์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ํ†ตํ•ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. -mconfig= ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-mcop32
32๋น„ํŠธ ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ์˜ ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mcop64
64๋น„ํŠธ ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ์˜ ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mivc2
IVC2 ์Šค์ผ€์ค„๋ง์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. IVC2๋Š” 64๋น„ํŠธ VLIW ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ์ž…๋‹ˆ๋‹ค.

-MDC
์ƒ์ˆ˜ ๋ณ€์ˆ˜๊ฐ€ ".near" ์„น์…˜์— ๋ฐฐ์น˜๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

-mdiv
"div" ๋ฐ "divu" ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋ฉ”๋ธŒ
๋น… ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-๋ฉœ
๋ฆฌํ‹€ ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mio-ํœ˜๋ฐœ์„ฑ
"io" ์†์„ฑ์œผ๋กœ ํ‘œ์‹œ๋œ ๋ชจ๋“  ๋ณ€์ˆ˜๊ฐ€
ํœ˜๋ฐœ์„ฑ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

-ml ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ€์ˆ˜๊ฐ€ ".far" ์„น์…˜์— ํ• ๋‹น๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

-mleadz
"leadz"(์„ ํ–‰ XNUMX) ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mm ๋ณ€์ˆ˜๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ".near" ์„น์…˜์— ํ• ๋‹น๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

-mminmax
"์ตœ์†Œ" ๋ฐ "์ตœ๋Œ€" ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋ฉ€ํ‹ฐ
๊ณฑํ•˜๊ธฐ ๋ฐ ๊ณฑํ•˜๊ธฐ ๋ˆ„์‚ฐ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mno ์˜ต์…˜
์— ์˜ํ•ด ํ™œ์„ฑํ™”๋œ ๋ชจ๋“  ์„ ํƒ์  ์ง€์นจ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -๋ชฐ ์˜ต์…˜.

-mrepeat
๋‚ฎ์€ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฃจํ•‘์— ์‚ฌ์šฉ๋˜๋Š” "๋ฐ˜๋ณต" ๋ฐ "erepeat" ๋ช…๋ น์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-ms ๋ชจ๋“  ๋ณ€์ˆ˜๊ฐ€ ".tiny" ์„น์…˜์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ •๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์žˆ์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”
์ด ์„น์…˜์— ๋Œ€ํ•œ 65536๋ฐ”์ดํŠธ ์ œํ•œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋Š” %gp ๊ธฐ๋ฐ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋“ฑ๋กํ•˜์‹ญ์‹œ์˜ค.

-msatur
ํฌํ™” ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ˜„์žฌ
์ž์ฒด์ ์œผ๋กœ ์ƒ์„ฑํ•˜์ง€๋งŒ ์ด ์˜ต์…˜์€ ๋‹ค๋ฅธ ๋„๊ตฌ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
"์ฒ˜๋Ÿผ"์ฒ˜๋Ÿผ.

-msdram
๊ธฐ๋ณธ ROM ๊ธฐ๋ฐ˜ ๋Ÿฐํƒ€์ž„ ๋Œ€์‹  SDRAM ๊ธฐ๋ฐ˜ ๋Ÿฐํƒ€์ž„์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

-msim
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

-msimnovec
์žฌ์„ค์ •์„ ์œ„ํ•œ ๋‚ด์žฅ ์ง€์›์„ ์ œ์™ธํ•˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ 
์˜ˆ์™ธ ๋ฒกํ„ฐ ๋ฐ ํ…Œ์ด๋ธ”.

-MTF
๋ชจ๋“  ํ•จ์ˆ˜๊ฐ€ ".far" ์„น์…˜์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ •๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์ด ์—†์œผ๋ฉด ๊ธฐ๋Šฅ
๊ธฐ๋ณธ๊ฐ’์€ ".near" ์„น์…˜์ž…๋‹ˆ๋‹ค.

-์ตœ์†Œ =n
๋ณ€์ˆ˜ n ๋ฐ”์ดํŠธ ์ดํ•˜๊ฐ€ ".tiny" ์„น์…˜์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค
๋ณ€์ˆ˜๋Š” $gp ๊ธฐ๋ณธ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ 4์ด์ง€๋งŒ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค.
".tiny" ์„น์…˜์—๋Š” 65536๋ฐ”์ดํŠธ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ๋ธ”๋ ˆ์ด์ฆˆ ์˜ต์…˜

-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์ ์— ์†Œํ”„ํŠธ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’).

-mhard-float
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mmemcpy
๋ธ”๋ก ์ด๋™์„ ์ตœ์ ํ™”ํ•˜์ง€ ๋ง๊ณ  "memcpy"๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mno-clearbss
์ด ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -fno-zero-initialized-in-bss ๋Œ€์‹ .

-mcpu =CPU ์œ ํ˜•
์ฃผ์–ด์ง„ CPU์˜ ๊ธฐ๋Šฅ๊ณผ ์ผ์ • ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ๊ฐ’์€
์ฒด์žฌ vX.YY.Z์–ด๋””๋กœ X ๋ฉ”์ด์ € ๋ฒ„์ „์ด๋ฉฐ, YY ๋Š” ๋ถ€ ๋ฒ„์ „์ด๊ณ  Z is
ํ˜ธํ™˜์„ฑ ์ฝ”๋“œ. ์˜ˆ์‹œ ๊ฐ’์€ v3.00.a, v4.00.b, v5.00.a, v5.00.b, v5.00.b,
v6.00.a.

-mxl-์†Œํ”„ํŠธ-๋ฎฌ
์†Œํ”„ํŠธ์›จ์–ด ๊ณฑํ•˜๊ธฐ ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’).

-mxl-์†Œํ”„ํŠธ-div
๋ถ„ํ• ์— ์†Œํ”„ํŠธ์›จ์–ด ์—๋ฎฌ๋ ˆ์ด์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’).

-mxl-๋ฐฐ๋Ÿด ์‹œํ”„ํŠธ
ํ•˜๋“œ์›จ์–ด ๋ฐฐ๋Ÿด ์‹œํ”„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mxl-ํŒจํ„ด-๋น„๊ต
ํŒจํ„ด ๋น„๊ต ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-m์ž‘์€ ๋‚˜๋ˆ„๊ธฐ
์ž‘์€ ๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ์— ๋Œ€ํ•ด ํ…Œ์ด๋ธ” โ€‹โ€‹์กฐํšŒ ์ตœ์ ํ™”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mxl-์Šคํƒ ๊ฒ€์‚ฌ
์ด ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -fstack-์ฒดํฌ ๋Œ€์‹ .

-mxl-gp-opt
GP ๊ธฐ์ค€ ".sdata"/".sbss" ์„น์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mxl-๊ณฑํ•˜๊ธฐ-๋†’์Œ
32x32 ๊ณฑ์…ˆ์˜ ๋†’์€ ๋ถ€๋ถ„์— ๋†’์€ ๊ณฑ์…ˆ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mxl-ํ”Œ๋กœํŠธ ๋ณ€ํ™˜
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ณ€ํ™˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mxl-ํ”Œ๋กœํŠธ-sqrt
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ์ œ๊ณฑ๊ทผ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mbig-์—”๋””์•ˆ
๋น… ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mxl-์žฌ์ฃผ๋ฌธ
์žฌ์ •๋ ฌ ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค(์Šค์™‘ ๋ฐ ๋ฐ”์ดํŠธ ์—ญ ๋กœ๋“œ/์ €์žฅ).

-mxl-๋ชจ๋“œ-์•ฑ ๋ชจ๋ธ
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋ธ ์„ ํƒ ์•ฑ ๋ชจ๋ธ. ์œ ํšจํ•œ ๋ชจ๋ธ์€

์‹คํ–‰ ํŒŒ์ผ
์ผ๋ฐ˜ ์‹คํ–‰ ํŒŒ์ผ(๊ธฐ๋ณธ๊ฐ’), ์‹œ์ž‘ ์ฝ”๋“œ ์‚ฌ์šฉ crt0.o.

xmdstub
Xilinx XMD(Microprocessor Debugger) ๊ธฐ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด ์นจ์ž… ๋””๋ฒ„๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ
xmdstub๋ผ๋Š” ์—์ด์ „ํŠธ. ์ด๊ฒƒ์€ ์‹œ์ž‘ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค crt1.o ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์„ 0x800์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ถ€ํŠธ ์ŠคํŠธ๋žฉ
๋ถ€ํŠธ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ. ์ด ๋ชจ๋ธ์€ ์‹œ์ž‘ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
crt2.o ํ”„๋กœ์„ธ์„œ ๋ฆฌ์…‹ ๋ฒกํ„ฐ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ํ•ฉํ•˜๋‹ค
ํ”„๋กœ์„ธ์„œ ๋ฆฌ์…‹์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ๋ถ€ํŠธ๋กœ๋”๊ฐ€ ์•„๋‹Œ ๋ถ€ํŠธ๋กœ๋”๋กœ ์ด์ „ํ•˜๊ธฐ ์œ„ํ•ด
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ.

๋…ธ๋ฒกํ„ฐ
MicroBlaze ๋ฒกํ„ฐ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ. ์ด ์˜ต์…˜
๋ชจ๋‹ˆํ„ฐ๋ง ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ
์‚ฌ์šฉ crt3.o ์‹œ์ž‘ ํŒŒ์ผ๋กœ.

์„ ํƒ๊ถŒ -xl-๋ชจ๋“œ-์•ฑ ๋ชจ๋ธ ์— ๋Œ€ํ•œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ณ„์นญ์ž…๋‹ˆ๋‹ค. -mxl-๋ชจ๋“œ-์•ฑ ๋ชจ๋ธ.

MIPS ์˜ต์…˜

-EB ๋น… ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-์—˜์ž ๋ฆฌํ‹€ ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋ฐ‰์Šค*์—˜-*-* ๊ตฌ์„ฑ.

-ํ–‰์ง„=์•„์น˜
์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ์•„์น˜, ์ผ๋ฐ˜ MIPS ISA์˜ ์ด๋ฆ„์ด๊ฑฐ๋‚˜
ํŠน์ • ํ”„๋กœ์„ธ์„œ์˜ ์ด๋ฆ„. ISA ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐ‰์Šค1, ๋ฐ‰์Šค2, ๋ฐ‰์Šค3, ๋ฐ‰์Šค4,
๋ฐ‰์Šค32, ๋ฐ‰์Šค32r2, ๋ฐ‰์Šค32r3, ๋ฐ‰์Šค32r5, ๋ฐ‰์Šค32r6, ๋ฐ‰์Šค64, ๋ฐ‰์Šค64r2, ๋ฐ‰์Šค64r3, ๋ฐ‰์Šค64r5
๊ณผ ๋ฐ‰์Šค64r6. ํ”„๋กœ์„ธ์„œ ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 4kc, 4km, 4kp, 4ksc, 4kec, 4์ผ, 4ํ‚ต, 4ksd,
5kc, 5 ๋…„, 20kc, 24kc, 24kf2_1, 24kf1_1, 24kec, 24kef2_1, 24kef1_1, 34kc, 34kf2_1,
34kf1_1, 34kn, 74kc, 74kf2_1, 74kf1_1, 74kf3_2, 1004kc, 1004kf2_1, 1004kf1_1,
๋ฃฝ์†2e, ๋ฃฝ์†2f, ๋ฃฝ์†3a, m4k, m14k, m14kc, m14ke, m14kec, ์˜ฅํ…Œ์˜จ, ์˜ฅํ…Œ์˜จ+,
์˜ฅํ…Œ์˜จ2, ์˜ฅํ…Œ์˜จ3, ์˜ค๋ฆฌ์˜จ, p5600, r2000, r3000, r3900, r4000, r4400, r4600, r4650,
r4700, r6000, r8000, rm7000, rm9000, r10000, r12000, r14000, r16000, sb1, sr71000,
vr4100, vr4111, vr4120, vr4130, vr4300, vr5000, vr5400, vr5500, xlr ๊ณผ xlp. ๊ทธ๋งŒํผ
ํŠน๋ณ„ํ•œ ๊ฐ€์น˜ ํ”„๋กฌ์•„๋น„ ์„ ํƒํ•œ ABI์— ๋Œ€ํ•ด ๊ฐ€์žฅ ํ˜ธํ™˜๋˜๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
(๊ทธ๊ฑด, ๋ฐ‰์Šค1 32๋น„ํŠธ ABI ๋ฐ ๋ฐ‰์Šค3 64๋น„ํŠธ ABI์šฉ).

๊ธฐ๋ณธ Linux/GNU ๋„๊ตฌ ์ฒด์ธ๋„ ๊ฐ’์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ถœ์‹ , ์ตœ๊ณ ์˜ ์„ ํƒ
ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜ ์˜ต์…˜. -march = ๋„ค์ดํ‹ฐ๋ธŒ GCC๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์„œ ์ด๋ฆ„์—์„œ ์ตœ์ข… 000 ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ•์•ฝ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. k (์˜ˆ : -ํ–‰์ง„=r2k).
์ ‘๋‘์‚ฌ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ vr ์“ฐ์—ฌ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค r.

์–‘์‹์˜ ์ด๋ฆ„ nf2_1 FPU๊ฐ€ ํด๋Ÿญ์˜ ์ ˆ๋ฐ˜์œผ๋กœ ํด๋Ÿญ๋œ ํ”„๋กœ์„ธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
ํ•ต์‹ฌ, ์–‘์‹์˜ ์ด๋ฆ„ nf1_1 ๋™์ผํ•œ ์†๋„๋กœ ํด๋Ÿญ๋œ FPU๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์„ธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
ํ•ต์‹ฌ์œผ๋กœ, ํ˜•์‹์˜ ์ด๋ฆ„ nf3_2 ๋น„์œจ๋กœ ํด๋Ÿญ๋œ FPU๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์„ธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ฝ”์–ด์— ๋Œ€ํ•ด 3:2์˜ ๋น„์œจ์ž…๋‹ˆ๋‹ค. ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด, nf ๋กœ ๋ฐ›์•„๋“ค์—ฌ์ง„๋‹ค.
๋™์˜์–ด nf2_1 ๋™์•ˆ nx ๊ณผ bfx ์˜ ๋™์˜์–ด๋กœ ๋ฐ›์•„๋“ค์—ฌ์ง‘๋‹ˆ๋‹ค. nf1_1.

GCC๋Š” ์ด ์˜ต์…˜์˜ ๊ฐ’์— ๋”ฐ๋ผ ๋‘ ๊ฐœ์˜ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” "_MIPS_ARCH"์ž…๋‹ˆ๋‹ค.
๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฆ„์„ ๋ฌธ์ž์—ด๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” ํ˜•์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.
"_MIPS_ARCH_ํ‘ธ"์–ด๋””๋กœ ํ‘ธ "_MIPS_ARCH"์˜ ๋Œ€๋ฌธ์ž ๊ฐ’์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,
-2000์›”=rXNUMX "_MIPS_ARCH"๋ฅผ "r2000"์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๋งคํฌ๋กœ "_MIPS_ARCH_R2000"์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

"_MIPS_ARCH" ๋งคํฌ๋กœ๋Š” ์œ„์— ์ œ๊ณต๋œ ํ”„๋กœ์„ธ์„œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐํƒ€์—์„œ
๋‹จ์–ด, ์ „์ฒด ์ ‘๋‘์‚ฌ๊ฐ€ ์žˆ๊ณ  ์•ฝ์–ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. 000 as k. ์˜ ๊ฒฝ์šฐ ์—์„œ-
ABI, ๋งคํฌ๋กœ๋Š” ํ™•์ธ๋œ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค("mips1" ๋˜๋Š” "mips3"). ๊ทธ๊ฒƒ์€ ์ด๋ฆ„
์•„๋‹ˆ์˜ค์ผ ๋•Œ ๊ธฐ๋ณธ ์•„ํ‚คํ…์ฒ˜ -XNUMX ์›” ์˜ต์…˜์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

-mtune=์•„์น˜
์ตœ์ ํ™” ์•„์น˜. ๋ฌด์—‡๋ณด๋‹ค๋„ ์ด ์˜ต์…˜์€ ๋ช…๋ น์ด ์‹คํ–‰๋˜๋Š” ๋ฐฉ์‹์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ์ •๋œ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์˜ ์ธ์ง€๋œ ๋น„์šฉ. ๋ชฉ๋ก ์•„์น˜ ๊ฐ’
์™€ ๋™์ผํ•˜๋‹ค -XNUMX ์›”.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด GCC๋Š” ๋‹ค์Œ์—์„œ ์ง€์ •ํ•œ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. -XNUMX ์›”. ๋กœ
์‚ฌ์šฉ -XNUMX ์›” ๊ณผ -mtune ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ ์ œํ’ˆ๊ตฐ์ด์ง€๋งŒ ํ•ด๋‹น ์ œํ’ˆ๊ตฐ์˜ ํŠน์ • ๊ตฌ์„ฑ์›์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mtune ๋งคํฌ๋กœ "_MIPS_TUNE" ๋ฐ "_MIPS_TUNE_ ์ •์˜ํ‘ธ", ๋™์ผํ•œ ์ž‘์—…
๋ฐฉ๋ฒ• -XNUMX ์›” ์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๋“ค.

-๋ฐ‰์Šค1
์— ํ•ด๋‹น -march=๋ฐ‰์Šค1.

-๋ฐ‰์Šค2
์— ํ•ด๋‹น -march=๋ฐ‰์Šค2.

-๋ฐ‰์Šค3
์— ํ•ด๋‹น -march=๋ฐ‰์Šค3.

-๋ฐ‰์Šค4
์— ํ•ด๋‹น -march=๋ฐ‰์Šค4.

-๋ฐ‰์Šค32
์— ํ•ด๋‹น -march=๋ฐ‰์Šค32.

-mips32r3
์— ํ•ด๋‹น -ํ–‰์ง„=mips32r3.

-mips32r5
์— ํ•ด๋‹น -ํ–‰์ง„=mips32r5.

-mips32r6
์— ํ•ด๋‹น -ํ–‰์ง„=mips32r6.

-๋ฐ‰์Šค64
์— ํ•ด๋‹น -march=๋ฐ‰์Šค64.

-mips64r2
์— ํ•ด๋‹น -ํ–‰์ง„=mips64r2.

-mips64r3
์— ํ•ด๋‹น -ํ–‰์ง„=mips64r3.

-mips64r5
์— ํ•ด๋‹น -ํ–‰์ง„=mips64r5.

-mips64r6
์— ํ•ด๋‹น -ํ–‰์ง„=mips64r6.

-๋ฐ‰์Šค16
-mno-mips16
MIPS16 ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค. GCC๊ฐ€ MIPS32 ๋˜๋Š” MIPS64๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ
์•„ํ‚คํ…์ฒ˜์—์„œ MIPS16e ASE๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

MIPS16 ์ฝ”๋“œ ์ƒ์„ฑ์€ ๋‹ค์Œ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ๋ณ„๋กœ ์ œ์–ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
"mips16" ๋ฐ "nomips16" ์†์„ฑ.

-mflip-mips16
๊ต๋Œ€ ๊ธฐ๋Šฅ์—์„œ MIPS16 ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํšŒ๊ท€์šฉ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
ํ˜ผํ•ฉ MIPS16/๋น„ MIPS16 ์ฝ”๋“œ ์ƒ์„ฑ ํ…Œ์ŠคํŠธ, ์ผ๋ฐ˜์šฉ์ด ์•„๋‹™๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-minterlink ์••์ถ•
-mno-interlink-์••์ถ•
ํ‘œ์ค€(๋น„์••์ถ•) MIPS ISA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋งํฌ-
MIPS16 ๋ฐ microMIPS ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋˜๋ฉฐ ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํ‘œ์ค€ ISA ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋Š” MIPS16 ๋˜๋Š”
๋งˆ์ดํฌ๋กœMIPS ์ฝ”๋“œ; ํ˜ธ์ถœ ๋˜๋Š” ๊ฐ„์ ‘ ์ ํ”„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -minterlink ์••์ถ•
๋”ฐ๋ผ์„œ GCC๊ฐ€ ์ ํ”„ ๋Œ€์ƒ์ด ์•„๋‹Œ ๊ฒƒ์„ ์•Œ์ง€ ๋ชปํ•˜๋Š” ํ•œ ์ง์ ‘ ์ ํ”„๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์••์ถ•.

-minterlink-mips16
-mno-interlink-mips16
๋ณ„์นญ -minterlink ์••์ถ• ๊ณผ -mno-interlink-์••์ถ•. ์ด๋Ÿฌํ•œ ์˜ต์…˜
microMIPS ASE ์ด์ „ ๋ฒ„์ „์ด๋ฉฐ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

-๋งˆ๋น„=32
-๋งˆ๋น„=o64
-๋งˆ๋น„=n32
-๋งˆ๋น„=64
-๋งˆ๋น„=์—๋น„
์ฃผ์–ด์ง„ ABI์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

EABI์—๋Š” 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ ๋ณ€ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. GCC๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 64๋น„ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
64๋น„ํŠธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•  ๋•Œ ์ฝ”๋“œ๋ฅผ -mgp32 32๋น„ํŠธ ์ฝ”๋“œ๋ฅผ ์–ป์œผ๋ ค๋ฉด
๋Œ€์‹ .

O64 ABI์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.http://gcc.gnu.org/projects/mipso64-abi.html>.

GCC๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ 32๊ฐ€ ์•„๋‹Œ o64 ABI์˜ ๋ณ€ํ˜•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
32๋น„ํŠธ๋ณด๋‹ค ๋„“์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด ์กฐํ•ฉ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -๋งˆ๋น„=32 -mfp64. ์ด ABI
"mthc1" ๋ฐ "mfhc1" ๋ช…๋ น์–ด์— ์˜์กดํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
MIPS32R2, MIPS32R3 ๋ฐ MIPS32R5 ํ”„๋กœ์„ธ์„œ.

์ธ์ˆ˜ ๋ฐ ๋ฐ˜ํ™˜ ๊ฐ’์— ๋Œ€ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜์ง€๋งŒ ๊ฐ๊ฐ
์Šค์นผ๋ผ ๊ฐ’์€ ํ•œ ์Œ์˜ 64๋น„ํŠธ๊ฐ€ ์•„๋‹Œ ๋‹จ์ผ 32๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ. ์˜ˆ๋ฅผ ๋“ค์–ด ์Šค์นผ๋ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์€ $f0 ๋งŒ์ด ์•„๋‹ˆ๋ผ
$f0/$f1 ์Œ. ํ˜ธ์ถœ ์ €์žฅ๋œ ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๋Š” ์ง์ˆ˜-
๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„ ๋ฐฐ์ •๋ฐ€๋„ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

o32 ABI์˜ ๋‘ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๋ณ€ํ˜•์ด ์ง€์›๋˜์–ด
32๋น„ํŠธ ~ 64๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ. FPXX(-mfpxx) ๋ฐ FP64A(-mfp64
-mno-ํ™€์ˆ˜-spreg). FPXX ํ™•์žฅ์€ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋˜์–ด์•ผ ํ•จ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.
32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ๋•Œ. ์ฝ”๋“œ๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์™€ ์ƒํ˜ธ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
FP32 ๋˜๋Š” FP64(๋‘˜ ๋‹ค ์•„๋‹˜). FP64A ํ™•์žฅ์€ FP64 ํ™•์žฅ๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ
ํ™€์ˆ˜ ๋‹จ์ •๋ฐ€๋„ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
MIPS32R5 ํ”„๋กœ์„ธ์„œ์—์„œ FPU์˜ "FRE" ๋ชจ๋“œ์™€ ํ•จ๊ป˜ FP32 ๋‘˜ ๋‹ค ํ—ˆ์šฉ
๋ฐ FP64A ์ฝ”๋“œ๋Š” FPU ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋™์ผํ•œ ํ”„๋กœ์„ธ์Šค์—์„œ ์ƒํ˜ธ ์—ฐ๊ฒฐ ๋ฐ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

-๋งˆ๋น„์ฝœ
-mno-abicals
SVR4 ์Šคํƒ€์ผ์˜ ๋™์  ๊ฐ์ฒด์— ์ ํ•ฉํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค.
-๋งˆ๋น„์ฝœ SVR4 ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-m๊ณต์œ 
-mno ๊ณต์œ 
์™„์ „ํžˆ ์œ„์น˜ ๋…๋ฆฝ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. -๋งˆ๋น„์ฝœ.

All -๋งˆ๋น„์ฝœ ์ฝ”๋“œ๋Š” ์ „ํ†ต์ ์œผ๋กœ ์˜ต์…˜์— ๊ด€๊ณ„์—†์ด ์œ„์น˜ ๋…๋ฆฝ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
์ฒ˜๋Ÿผ -fPIC ๊ณผ -fpic. ๊ทธ๋Ÿฌ๋‚˜ ํ™•์žฅ์œผ๋กœ์„œ GNU ํˆด์ฒด์ธ์€ ์‹คํ–‰ ํŒŒ์ผ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋กœ์ปฌ ๋ฐ”์ธ๋”ฉ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์ ˆ๋Œ€ ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋” ์งง์€ GP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ดˆ๊ธฐํ™” ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋กœ์ปฌ๋กœ ์ •์˜๋œ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ง์ ‘ ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋ชจ๋“œ๋Š” ์— ์˜ํ•ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. -mno ๊ณต์œ .

-mno ๊ณต์œ  binutils 2.16 ์ด์ƒ์— ์˜์กดํ•˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด๋งŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
GNU ๋ง์ปค์— ์˜ํ•ด ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ต์…˜์€ ์ตœ์ข… ABI์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹คํ–‰ ๊ฐ€๋Šฅ; ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•œ ๊ฐœ์ฒด์˜ ABI์—๋งŒ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ์‚ฌ์šฉ -mno ๊ณต์œ 
์ผ๋ฐ˜์ ์œผ๋กœ ์‹คํ–‰ ํŒŒ์ผ์„ ๋” ์ž‘๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

-m๊ณต์œ  ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-MPLT
-mno-plt
์ •์  ๋ฐ ๋™์  ๋ง์ปค๊ฐ€ PLT ๋ฐ ๋ณต์‚ฌ๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ๊ฐ€์ •(๊ฐ€์ •ํ•˜์ง€ ์•Š์Œ)
์žฌ๋ฐฐ์น˜. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. -mno ๊ณต์œ  -๋งˆ๋น„์ฝœ. n64 ABI์˜ ๊ฒฝ์šฐ ์ด
์˜ต์…˜์ด ์—†์œผ๋ฉด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. -msym32.

๋‹น์‹ ์€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -MPLT GCC๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๊ธฐ๋ณธ๊ฐ’ --mips-plt ํฌํ•จ. ๊ธฐ๋ณธ๊ฐ’
is -mno-plt ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด.

-mxgot
-mno-xgot
์ „์—ญ ์˜คํ”„์…‹ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ œํ•œ์„ ๋“ค์–ด ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค(๋“ค์–ด ์˜ฌ๋ฆฌ์ง€ ์•Š์Œ).

GCC๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์ผ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GOT์—์„œ ๊ฐ’์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์•ˆ
์ƒ๋Œ€์ ์œผ๋กœ ํšจ์œจ์ ์ด๋ฉฐ GOT๊ฐ€ ์•ฝ 64k๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ
ํฌ๋ฉด ๋ง์ปค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋งž๊ฒŒ ์ž˜๋ฆฐ ์žฌ๋ฐฐ์น˜: R_MIPS_GOT16 foobar

์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -mxgot. ์ด๊ฒƒ์€ ๋งค์šฐ
์ฝ”๋“œ๊ฐ€ ๋œ ํšจ์œจ์ ์ด์ง€๋งŒ ํฐ GOT๋Š” ์„ธ
์ „์—ญ ๊ธฐํ˜ธ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น.

์ผ๋ถ€ ๋ง์ปค๋Š” ์—ฌ๋Ÿฌ GOT๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ง์ปค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
๋งŒ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค -mxgot ๋‹จ์ผ ๊ฐœ์ฒด ํŒŒ์ผ์ด 64k ์ด์ƒ์˜ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ๋•Œ
GOT ํ•ญ๋ชฉ์˜ ๊ฐ€์น˜. ์•„์ฃผ ์†Œ์ˆ˜๋งŒ์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์˜ต์…˜์€ GCC๊ฐ€ ์œ„์น˜ ๋…๋ฆฝ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ํ•œ ์•„๋ฌด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

-mgp32
๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋„ˆ๋น„๊ฐ€ 32๋น„ํŠธ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mgp64
๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋„ˆ๋น„๊ฐ€ 64๋น„ํŠธ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mfp32
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋„ˆ๋น„๊ฐ€ 32๋น„ํŠธ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mfp64
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋„ˆ๋น„๊ฐ€ 64๋น„ํŠธ๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mfpxx
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋„ˆ๋น„๋ฅผ ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mhard-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ตฌํ˜„
๋Œ€์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

-mno-float
์— ํ•ด๋‹น -msoft-float, ๊ทธ๋Ÿฌ๋‚˜ ์ถ”๊ฐ€๋กœ ์ปดํŒŒ์ผ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํ˜„์žฌ ์ง€์›๋ฉ๋‹ˆ๋‹ค
ํŠน๋ณ„ํ•œ ์„ธํŠธ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€ ๋ฒ ์–ด๋ฉ”ํƒˆ MIPS ๊ตฌ์„ฑ์— ์˜ํ•ด์„œ๋งŒ
๋ชจ๋“  ๋ถ€๋™ ์†Œ์ˆ˜์  ์ง€์›์ด ์—†๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์˜ˆ: ๋ถ€๋™ ์†Œ์ˆ˜์ 
ํฌ์ธํŠธ "printf" ํ˜•์‹). ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๊ฒฝ์šฐ -mno-float ์‹ค์ˆ˜๋กœ ํฌํ•จ
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ๋งํฌ ํƒ€์ž„ ๋˜๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-msingle-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋‹จ์ •๋ฐ€๋„ ์—ฐ์‚ฐ๋งŒ ์ง€์›ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-m๋”๋ธ” ํ”Œ๋กœํŠธ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋ฐฐ์ •๋ฐ€๋„ ์—ฐ์‚ฐ์„ ์ง€์›ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-modd-spreg
-mno-ํ™€์ˆ˜-spreg
o32์— ๋Œ€ํ•ด ํ™€์ˆ˜ ๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์•„๋น„. ์ด๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ ํ”„๋กœ์„ธ์„œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
o32 FPXX ABI๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, -mno-ํ™€์ˆ˜-spreg ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-๋ง™์Šค=2008
-mabs=๋ ˆ๊ฑฐ์‹œ
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ํŠน์ˆ˜ NaN(์ˆซ์ž ์•„๋‹˜) IEEE 754์˜ ์ฒ˜๋ฆฌ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
"abs.ํ”„ํ‹ฐ" ๊ทธ๋ฆฌ๊ณ  "๋„ค.ํ”„ํ‹ฐ" ๊ธฐ๊ณ„ ์ง€์นจ.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋˜๋Š” ์–ธ์ œ -mabs=๋ ˆ๊ฑฐ์‹œ ๋ ˆ๊ฑฐ์‹œ ์ฒ˜๋ฆฌ๊ฐ€ ์„ ํƒ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด์—
์ด๋Ÿฌํ•œ ๋ช…๋ น์ด ์‚ฐ์ˆ ๋กœ ๊ฐ„์ฃผ๋˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์ด ํ”ผํ•˜๋Š” ๊ฒฝ์šฐ
ํ•„์ˆ˜์ด๋ฉฐ ์ž…๋ ฅ ํ”ผ์—ฐ์‚ฐ์ž๋Š” NaN์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๊ธด ๋ช…๋ น ์‹œํ€€์Šค
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐ์ดํ„ฐ์˜ ๋ถ€ํ˜ธ ๋น„ํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๋Œ€์‹  ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ „์—, - ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ ์˜ต์…˜๋„ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ใ€€ -๋ง™์Šค=2008 ์˜ต์…˜์€ IEEE 754-2008 ์ฒ˜๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ด๋“ค
๋ช…๋ น์–ด๋Š” ์‚ฐ์ˆ ์ ์ด์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฏ€๋กœ ๋ชจ๋“  ๋ช…๋ น์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํŠนํžˆ ์ž…๋ ฅ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ NaN์ธ ๊ฒฝ์šฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ์ง€์นจ
๋”ฐ๋ผ์„œ ํ•ญ์ƒ ํ•ด๋‹น ์ž‘์—…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-mnan=2008
-mnan=๋ ˆ๊ฑฐ์‹œ
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ํŠน์ˆ˜ NaN(์ˆซ์ž ์•„๋‹˜) IEEE 754์˜ ์ธ์ฝ”๋”ฉ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐ์ดํ„ฐ.

ใ€€ -mnan=๋ ˆ๊ฑฐ์‹œ ์˜ต์…˜์€ ๋ ˆ๊ฑฐ์‹œ ์ธ์ฝ”๋”ฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์กฐ์šฉํ•œ NaN(qNaN)
ํ›„ํ–‰ ์œ ํšจ ํ•„๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ๋น„ํŠธ๊ฐ€ 0์ธ ๋ฐ˜๋ฉด
์‹œ๊ทธ๋„๋ง NaN(sNaN)์€ ํ›„ํ–‰ ์œ ํšจ ์ˆซ์ž์˜ ์ฒซ ๋ฒˆ์งธ ๋น„ํŠธ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
ํ•„๋“œ๋Š” 1์ž…๋‹ˆ๋‹ค.

ใ€€ -mnan=2008 ์˜ต์…˜์€ IEEE 754-2008 ์ธ์ฝ”๋”ฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ qNaN์€
ํ›„ํ–‰ ์œ ํšจ ํ•„๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ๋น„ํŠธ๊ฐ€ 1์ธ ๋ฐ˜๋ฉด sNaN์€
ํ›„ํ–‰ ์œ ํšจ ํ•„๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ๋น„ํŠธ๊ฐ€ 0์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -mnan=๋ ˆ๊ฑฐ์‹œ GCC๊ฐ€ ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ --with-nan=2008.

-mllsc
-mno-llsc
์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ) ll, sc๋ฐ ๋™๊ธฐํ™” ์›์ž ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์žฅ ๊ตฌํ˜„ ์ง€์นจ
๊ธฐ๋Šฅ. ๋‘ ์˜ต์…˜์ด ๋ชจ๋‘ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ GCC๋Š” ๋Œ€์ƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ง€์นจ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ทธ๋“ค์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-mllsc ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด ์ง€์นจ์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•  ์ˆ˜ ์žˆ๊ณ  -mno-llsc
๋น„ํ‘œ์ค€ ISA์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ---llsc ํฌํ•จ ๊ณผ --llsc ์—†์ด ๊ฐ๊ฐ.
---llsc ํฌํ•จ ์ผ๋ถ€ ๊ตฌ์„ฑ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ์„ค์น˜ ๋ฌธ์„œ ์ฐธ์กฐ
์ž์„ธํ•œ ๋‚ด์šฉ์€.

-mdsp
-mno-dsp
MIPS DSP ASE์˜ ๊ฐœ์ •ํŒ 1์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค).
์ด ์˜ต์…˜์€ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__mips_dsp"๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋˜ํ•œ ์ •์˜
"__mips_dsp_rev"๋ฅผ 1๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

-MDSPR2
-mno-dspr2
MIPS DSP ASE์˜ ๊ฐœ์ •ํŒ 2์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค).
์ด ์˜ต์…˜์€ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__mips_dsp" ๋ฐ "__mips_dspr2"๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ
๋˜ํ•œ "__mips_dsp_rev"๋ฅผ 2๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

-msmartmips
-mno-smartmips
MIPS SmartMIPS ASE๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค).

-mpaired-๋‹จ์ผ
-mno ์Œ ๋‹จ์ผ
์Œ์„ ์ด๋ฃจ๋Š” ๋‹จ์ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ์ง€์›์ด ํ™œ์„ฑํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mdmx
-mno-mdmx
MIPS ๋””์ง€ํ„ธ ๋ฏธ๋””์–ด ํ™•์žฅ ์ง€์นจ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ). ์ด ์˜ต์…˜์€
64๋น„ํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ์ง€์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-mips3d
-mno-mips3d
MIPS-3D ASE๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค(์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค). ์˜ต์…˜ -mips3d ์˜๋ฏธํ•˜๋‹ค -mpaired-๋‹จ์ผ.

-mmmicromips
-mno-micromip
microMIPS ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค.

MicroMIPS ์ฝ”๋“œ ์ƒ์„ฑ์€ ๋‹ค์Œ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ๋ณ„๋กœ ์ œ์–ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
"micromips" ๋ฐ "nomicromips" ์†์„ฑ.

-mmt
-mno-mt
MT ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).

-mmcu
-mno-mcu
MIPS MCU ASE ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค).

-๋ฉ”๋ฐ”
-mno-์—๋ฐ”
MIPS ํ–ฅ์ƒ๋œ ๊ฐ€์ƒ ์ฃผ์†Œ ์ง€์ • ์ง€์นจ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).

-mvirt
-mno-virt
MIPS ๊ฐ€์ƒํ™” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋ณ„ ์ง€์นจ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค.

-mxpa
-mno-xpa
MIPS XPA(eXtended Physical Address) ์ง€์นจ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค.

-mlong64
"๊ธด" ์œ ํ˜•์„ 64๋น„ํŠธ ๋„ˆ๋น„๋กœ ๊ฐ•์ œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค -mlong32 ๊ธฐ๋ณธ๊ฐ’์— ๋Œ€ํ•œ ์„ค๋ช…
ํฌ์ธํ„ฐ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๋ฐฉ์‹.

-mlong32
"long", "int" ๋ฐ ํฌ์ธํ„ฐ ์œ ํ˜•์„ 32๋น„ํŠธ ๋„ˆ๋น„๋กœ ๊ฐ•์ œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

"int", "long" ๋ฐ ํฌ์ธํ„ฐ์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ๋Š” ABI์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“ 
์ง€์›๋˜๋Š” ABI๋Š” 32๋น„ํŠธ "int"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. n64 ABI๋Š” 64๋น„ํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 64๋น„ํŠธ "long"์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์—๋น„; ๋‚˜๋จธ์ง€๋Š” 32๋น„ํŠธ "long"์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋Š” "long"๊ณผ ํฌ๊ธฐ๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜
์ •์ˆ˜ ๋ ˆ์ง€์Šคํ„ฐ์™€ ๊ฐ™์€ ํฌ๊ธฐ ์ค‘ ๋” ์ž‘์€ ๊ฒƒ.

-msym32
-mno-sym32
์„ ํƒํ•œ ๊ธฐํ˜ธ์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ๊ธฐํ˜ธ์— 32๋น„ํŠธ ๊ฐ’์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •(๊ฐ€์ •ํ•˜์ง€ ์•Š์Œ)
์•„๋น„. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. -๋งˆ๋น„=64 ๊ณผ -mno-abicals ๋•Œ๋ฌธ์—
GCC๋Š” ๊ธฐํ˜ธ ์ฃผ์†Œ์— ๋Œ€ํ•œ ๋” ์งง๊ณ  ๋น ๋ฅธ ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-G NUM
๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ •์˜๋ฅผ ์ž‘์€ ๋ฐ์ดํ„ฐ ์„น์…˜์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
๋ณด๋‹ค ํฐ NUM ๋ฐ”์ดํŠธ. ๊ทธ๋Ÿฌ๋ฉด GCC๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์•ก์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค
-mgpopt ์ž์„ธํ•œ ๋‚ด์šฉ์€.

๊ธฐ๋ณธ๊ฐ’์€ -G ์˜ต์…˜์€ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

-mlocal-sdata
-mno-๋กœ์ปฌ-sdata
์—ฐ์žฅ(์—ฐ์žฅํ•˜์ง€ ์•Š์Œ) -G ์ •์  ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ์—๋„ ๋™์ž‘
C. -mlocal-sdata ๋ชจ๋“  ๊ตฌ์„ฑ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

๋ง์ปค๊ฐ€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋„ˆ๋ฌด ๋งŽ์€ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋ถˆํ‰ํ•˜๋Š” ๊ฒฝ์šฐ
์„ฑ๋Šฅ์— ๋œ ์ค‘์š”ํ•œ ๋ถ€ํ’ˆ์„ -mno-๋กœ์ปฌ-sdata. ๋‹น์‹ 
๋กœ ํฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -mno-๋กœ์ปฌ-sdata, ๊ทธ๋ž˜์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š”
๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ๋” ๋งŽ์€ ๊ณต๊ฐ„์„ ๋‚จ๊ฒจ๋‘์‹ญ์‹œ์˜ค.

-mextern-sdata
-mno-์™ธ๋ถ€-sdata
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์™ธ๋ถ€ ์ •์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž‘์€ ๋ฐ์ดํ„ฐ ์„น์…˜์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •(๊ฐ€์ •ํ•˜์ง€ ์•Š์Œ)
ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋Š” -G ํ•œ๋„. -mextern-sdata ๋ชจ๋‘์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค
๊ตฌ์„ฑ.

๋ชจ๋“ˆ์„ ์ปดํŒŒ์ผํ•˜๋ฉด ๋ฐฉ๋ฒ• ๊ณผ -mextern-sdata -G NUM -mgpopt๋ฐ ๋ฐฉ๋ฒ• ์ฐธ์กฐ
๋ณ€์ˆ˜ ๋ฐ”๋ฅด ๊ทธ๋ณด๋‹ค ํฌ์ง€ ์•Š๋‹ค NUM ๋‹ค์Œ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋ฅด ๋ฐฐ์น˜๋˜๋‹ค
์ž‘์€ ๋ฐ์ดํ„ฐ ์„น์…˜์—์„œ. ๋งŒ์•ฝ์— ๋ฐ”๋ฅด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์˜ํ•ด ์ •์˜๋œ ๊ฒฝ์šฐ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ถฉ๋ถ„ํžˆ ๋†’์€ ๋ชจ๋“ˆ -G "์„น์…˜" ์†์„ฑ ์„ค์ • ๋˜๋Š” ์ฒจ๋ถ€ ๋ฐ”๋ฅด's
์ •์˜. ๋งŒ์•ฝ์— ๋ฐ”๋ฅด ์ผ๋ฐ˜์ ์ด๋ฏ€๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ถฉ๋ถ„ํžˆ ๋†’์€ -G
ํ™˜๊ฒฝ.

์ด๋Ÿฌํ•œ ์ œํ•œ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ์ปดํŒŒ์ผํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ฐ™์€๊ณผ -G ์˜ต์…˜. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ์„ ์ง€์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์ž‘์€ ๋ฐ์ดํ„ฐ ์ œํ•œ. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ€์žฅ ๋†’์€ ์ง€์› -G ์„ค์ • ๋ฐ ์ถ”๊ฐ€ ์‚ฌ์šฉ -mno-์™ธ๋ถ€-sdata ์ค‘์ง€ํ•˜๋ ค๋ฉด
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์™ธ๋ถ€ ์ •์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๊ฐ€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mgpopt
-mno-gpopt
์ž‘์€ ๋ฐ์ดํ„ฐ์— ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ ๊ธฐํ˜ธ์— ๋Œ€ํ•ด GP ๊ด€๋ จ ์•ก์„ธ์Šค ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)
๋ถ€๋ถ„; ๋ณด๋‹ค -G, -mlocal-sdata ๊ณผ -mextern-sdata. -mgpopt ๋ชจ๋‘์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค
๊ตฌ์„ฑ.

-mno-gpopt $gp ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋‹ค์Œ ๊ฐ’์„ ๋ณด์œ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
"_gp". ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ๊ฐ€ ๋ถ€ํŒ…์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ
๋ชจ๋‹ˆํ„ฐ์—์„œ ๋ถ€ํŠธ ๋ชจ๋‹ˆํ„ฐ ๋ฃจํ‹ด์„ ํ˜ธ์ถœํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์€ $gp์—์„œ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. (์—
์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๋ถ€ํŠธ ๋ชจ๋‹ˆํ„ฐ ์ž์ฒด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. -G0.)

-mno-gpopt ์˜๋ฏธํ•˜๋‹ค -mno-๋กœ์ปฌ-sdata ๊ณผ -mno-์™ธ๋ถ€-sdata.

-ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ
-mno-embedded-๋ฐ์ดํ„ฐ
๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋จผ์ € ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ ์„น์…˜์— ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹นํ•œ ๋‹ค์Œ
๊ฐ€๋Šฅํ•˜๋ฉด ์ž‘์€ ๋ฐ์ดํ„ฐ ์„น์…˜, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ์—์„œ. ์ด๊ฒƒ์€ ์•ฝ๊ฐ„ ๋Š๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค
๊ธฐ๋ณธ๊ฐ’๋ณด๋‹ค ํฌ์ง€๋งŒ ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ RAM์˜ ์–‘์ด ์ค„์–ด๋“ค๋ฏ€๋กœ
์ผ๋ถ€ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค.

-muninit-const-in-rodata
-mno-unit-const-in-rodata
์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ ์„น์…˜์— ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ "const" ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
์™€ ํ•จ๊ป˜๋งŒ ์˜๋ฏธ ์žˆ๋Š” -ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ.

-mcode ํŒ๋… ๊ฐ€๋Šฅ=์„ค์ •
GCC๊ฐ€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„น์…˜์—์„œ ์ฝ๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์žˆ๋‹ค
์„ธ ๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ์„ค์ •:

-mcode-readable=์˜ˆ
์ง€์นจ์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„น์…˜์— ์ž์œ ๋กญ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค.

-mcode-ํŒ๋… ๊ฐ€๋Šฅ=pcrel
MIPS16 PC ๊ธฐ์ค€ ๋กœ๋“œ ๋ช…๋ น์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„น์…˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ
์ง€์‹œ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ 4KSc ๋ฐ 4KSd ํ”„๋กœ์„ธ์„œ์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ TLB์— ์ฝ๊ธฐ ๊ธˆ์ง€ ๋น„ํŠธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์„ ๋•Œ. ํ”„๋กœ์„ธ์„œ์—์„œ๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด์ค‘ ๋ช…๋ น/๋ฐ์ดํ„ฐ SRAM ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
M4K์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ PC ๊ด€๋ จ ๋กœ๋“œ๋ฅผ ๋ช…๋ น RAM์œผ๋กœ ์ž๋™ ๋ฆฌ๋””๋ ‰์…˜ํ•ฉ๋‹ˆ๋‹ค.

-mcode ํŒ๋… ๊ฐ€๋Šฅ=์•„๋‹ˆ์š”
์ง€์นจ์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„น์…˜์— ์•ก์„ธ์Šคํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—์„œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ค‘ ๋ช…๋ น/๋ฐ์ดํ„ฐ SRAM ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–๋„๋ก ๊ตฌ์„ฑ๋œ ๋Œ€์ƒ์ด์ง€๋งŒ
(M4K์™€ ๋‹ฌ๋ฆฌ) PC ๊ด€๋ จ ๋ถ€ํ•˜๋ฅผ ์ž๋™์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ๋žจ.

-msplit ์ฃผ์†Œ
-mno-๋ถ„ํ•  ์ฃผ์†Œ
"%hi()" ๋ฐ "%lo()" ์–ด์…ˆ๋ธ”๋Ÿฌ ์žฌ๋ฐฐ์น˜ ์—ฐ์‚ฐ์ž์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์ด ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -mexplicit-relocs ๊ทธ๋Ÿฌ๋‚˜ ๋’ค๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
ํ˜ธํ™˜์„ฑ.

-mexplicit-relocs
-mno-๋ช…์‹œ์ -relocs
๊ธฐํ˜ธ ์ฃผ์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์–ด์…ˆ๋ธ”๋Ÿฌ ์žฌ๋ฐฐ์น˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).
์—์„œ ์„ ํƒํ•œ ๋Œ€์•ˆ -mno-๋ช…์‹œ์ -relocs, ๋Œ€์‹  ์–ด์…ˆ๋ธ”๋Ÿฌ ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-mexplicit-relocs GCC๊ฐ€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
์žฌ๋ฐฐ์น˜ ์—ฐ์‚ฐ์ž๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-mcheck-XNUMX ๋‚˜๋ˆ—์…ˆ
-mno-check-zero-division
XNUMX์œผ๋กœ ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ํŠธ๋žฉ(ํŠธ๋žฉํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -mcheck-XNUMX ๋‚˜๋ˆ—์…ˆ.

-mdivide-ํŠธ๋žฉ
-mdivide-break
MIPS ์‹œ์Šคํ…œ์€ ์กฐ๊ฑด๋ถ€ ํŠธ๋žฉ ๋˜๋Š”
ํœด์‹ ์ง€์‹œ. ํŠธ๋žฉ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ž‘์•„์ง€์ง€๋งŒ MIPS์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
II ์ดํ›„. ๋˜ํ•œ ์ผ๋ถ€ Linux ์ปค๋„ ๋ฒ„์ „์—๋Š” ํŠธ๋žฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ ์ ˆํ•œ ์‹ ํ˜ธ("SIGFPE")๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -mdivide-ํŠธ๋žฉ ์กฐ๊ฑด๋ถ€ ํ—ˆ์šฉ
์ด๋ฅผ ์ง€์›ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜์˜ ํ•จ์ •๊ณผ -mdivide-break ๊ฐ•์ œ๋กœ ์‚ฌ์šฉ
ํœด์‹.

๊ธฐ๋ณธ๊ฐ’์€ ์ผ๋ฐ˜์ ์œผ๋กœ -mdivide-ํŠธ๋žฉ, ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๊ตฌ์„ฑํ•  ๋•Œ ์žฌ์ •์˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ --with-divide=๋‚˜๋ˆ„๊ธฐ. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ XNUMX์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ๊ฒ€์‚ฌ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-mno-check-zero-division.

-mmemcpy
-mno-memcpy
์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋ธ”๋ก ์ด๋™์— "memcpy"๋ฅผ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ฐ•์ œํ•˜์ง€ ์•Š์Œ). ๊ธฐ๋ณธ๊ฐ’์€
-mno-memcpy, ์ด๋ฅผ ํ†ตํ•ด GCC๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ๋ณต์‚ฌ๋ณธ์„ ์ธ๋ผ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mlong-ํ†ตํ™”
-mno-long-ํ†ตํ™”
"jal" ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค. "jal"์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ
๋” ํšจ์œจ์ ์ด์ง€๋งŒ ํ˜ธ์ถœ์ž์™€ ์ˆ˜์‹ ์ž๊ฐ€ ๋™์ผํ•œ 256MB์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์„ธ๊ทธ๋จผํŠธ.

์ด ์˜ต์…˜์€ abcalls ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mno-long-ํ†ตํ™”.

-mmad
-mno-mad
"mad", "madu" ๋ฐ "mul" ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค.
R4650 ์ด์‚ฌ.

-๋งˆ๋งˆ๋“œ
-mno-imadd
"madd" ๋ฐ "msub" ์ •์ˆ˜ ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
-๋งˆ๋งˆ๋“œ 74k๋ฅผ ์ œ์™ธํ•˜๊ณ  "madd" ๋ฐ "msub"๋ฅผ ์ง€์›ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜์—์„œ
๋” ๋Š๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์ง„ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค.

-๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ
-mno-์œตํ•ฉ-๋งค๋“œ
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณฑํ•˜๊ธฐ ๋ˆ„์‚ฐ ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ.

R8000 CPU์—์„œ ๊ณฑ์…ˆ ๋ˆ„์‚ฐ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ค‘๊ฐ„
์ œํ’ˆ์€ ๋ฌดํ•œ์ • ์ •๋ฐ€๋„๋กœ ๊ณ„์‚ฐ๋˜๋ฉฐ FCSR ํ”Œ๋Ÿฌ์‹œ ๋Œ€์ƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ œ๋กœ ๋น„ํŠธ. ์ด๊ฒƒ์€ ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋Š” ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ์—์„œ
๊ฒฐ๊ณผ๋Š” ๋ณ„๋„์˜ ๊ณฑ์…ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๋“ฑ๊ฐ€ ๊ณ„์‚ฐ๊ณผ ์ˆ˜์น˜์ ์œผ๋กœ ๋™์ผํ•˜๋ฉฐ,
๋ช…๋ น์„ ๋”ํ•˜๊ณ , ๋นผ๊ณ , ๋ถ€์ •ํ•ฉ๋‹ˆ๋‹ค.

-nocpp
์‚ฌ์šฉ์ž ์–ด์…ˆ๋ธ”๋Ÿฌ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋„๋ก MIPS ์–ด์…ˆ๋ธ”๋Ÿฌ์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค(
.s ์ ‘๋ฏธ์‚ฌ) ์กฐ๋ฆฝํ•  ๋•Œ.

-mfix-24k
-mno-fix-24k
24K E48(์ถฉ์ „ ์ค‘ ๋งค์žฅ ๋ฐ์ดํ„ฐ ์†์‹ค) ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
GCC๊ฐ€ ์•„๋‹Œ ์–ด์…ˆ๋ธ”๋Ÿฌ์— ์˜ํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

-mfix-r4000
-mno-fix-r4000
ํŠน์ • R4000 CPU ์—๋ผํƒ€ ํ•ด๊ฒฐ:

- ๋”๋ธ” ์›Œ๋“œ ๋˜๋Š” ๋ณ€์ˆ˜ ์‹œํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ์‹œ์ž‘ํ•œ ์งํ›„.

- ๋”๋ธ” ์›Œ๋“œ ๋˜๋Š” ๋ณ€์ˆ˜ ์‹œํ”„ํŠธ๋Š” ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ •์ˆ˜ ๊ณฑ์…ˆ์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

- ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๋Š” ์˜ ์ง€์—ฐ ์Šฌ๋กฏ์—์„œ ์‹œ์ž‘ํ•˜๋ฉด ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ทจํ•œ ์ง€์  ๋˜๋Š” ์ ํ”„.

-mfix-r4400
-mno-fix-r4400
ํŠน์ • R4400 CPU ์—๋ผํƒ€ ํ•ด๊ฒฐ:

- ๋”๋ธ” ์›Œ๋“œ ๋˜๋Š” ๋ณ€์ˆ˜ ์‹œํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ์‹œ์ž‘ํ•œ ์งํ›„.

-mfix-r10000
-mno-fix-r10000
ํŠน์ • R10000 ์—๋ผํƒ€ ํ•ด๊ฒฐ:

- "ll"/"sc" ์‹œํ€€์Šค๋Š” 3.0 ์ด์ „ ๋ฒ„์ „์—์„œ ์›์ž์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์•„๋งˆ๋„
๊ฐœ์ •ํŒ 2.6 ๋ฐ ์ด์ „ ๋ฒ„์ „์—์„œ ๊ต์ฐฉ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋ถ„๊ธฐ ๊ฐ€๋Šฅ์„ฑ์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋„์›€๋ง์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. -mfix-r10000 ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -10000์›”=rXNUMX ์‚ฌ์šฉ; -mno-fix-r10000
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mfix-rm7000
-mno-fix-rm7000
RM7000 "dmult"/"dmultu" ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
GCC๊ฐ€ ์•„๋‹Œ ์–ด์…ˆ๋ธ”๋Ÿฌ.

-mfix-vr4120
-mno-fix-vr4120
ํŠน์ • VR4120 ์ •์˜คํ‘œ ํ•ด๊ฒฐ:

- "dmultu"๊ฐ€ ํ•ญ์ƒ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

- "div" ๋ฐ "ddiv"๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜๊ฐ€
๋ถ€์ •์ ์ด๋‹ค.

๋ถ„ํ•  ์ •์˜คํ‘œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ์˜ ํŠน์ˆ˜ ๊ธฐ๋Šฅ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. libgcc.a. ์—
ํ˜„์žฌ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ "mips64vr*-elf" ๊ตฌ์„ฑ์—์„œ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ VR4120 ์ •์˜คํ‘œ๋Š” ํŠน์ • ์Œ ์‚ฌ์ด์— NOP๋ฅผ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ง€์นจ. ์ด๋Ÿฌํ•œ ์ •์˜คํ‘œ๋Š” GCC ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

-mfix-vr4130
VR4130 "mflo"/"mfhi" ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€
GCC๊ฐ€ ์•„๋‹Œ ์–ด์…ˆ๋ธ”๋Ÿฌ์ด์ง€๋งŒ GCC๊ฐ€ "mflo" ๋ฐ "mfhi"๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
VR4130 "macc", "macchi", "dmacc" ๋ฐ "dmacchi" ๋ช…๋ น์–ด๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mfix-sb1
-mno-fix-sb1
ํŠน์ • SB-1 CPU ์ฝ”์–ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. (์ด ํ”Œ๋ž˜๊ทธ๋Š” ํ˜„์žฌ SB-1 ์ฃผ๋ณ€์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ฐœ์ • 2 "F1" ๋ฐ "F2" ๋ถ€๋™ ์†Œ์ˆ˜์  ์ •์˜คํ‘œ.)

-mr10k-์บ์‹œ-๋ฐฐ๋ฆฌ์–ด=์„ค์ •
GCC๊ฐ€ ๋‹ค์Œ์˜ ๋ถ€์ž‘์šฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹œ ์žฅ๋ฒฝ์„ ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
R10K ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ถ”์ธก.

๋งŽ์€ ํ”„๋กœ์„ธ์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ R10K๋Š” ์กฐ๊ฑด๋ถ€ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
๋ถ„๊ธฐํ•˜๊ณ  ์ถ”์ธก์ ์œผ๋กœ "์ทจํ•œ" ๋ถ„๊ธฐ์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์—
์˜ˆ์ธก๋œ ๊ฒฐ๊ณผ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ R10K์—์„œ๋Š”
์ค‘๋‹จ๋œ ๋ช…๋ น์—๋„ ๋ถ€์ž‘์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ปค๋„ ์ €์žฅ์†Œ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉฐ ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ์ปค๋„ ๋กœ๋“œ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ํˆฌ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋œ ์ €์žฅ์†Œ๋Š” ๋Œ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์บ์‹œ์— ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ €์žฅ์†Œ ์ž์ฒด๊ฐ€ ๋‚˜์ค‘์— ์ค‘๋‹จ๋˜๋”๋ผ๋„ ์บ์‹œ ๋ผ์ธ์„ ๋”ํ‹ฐ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. DMA๋ผ๋ฉด
์ž‘์—…์€ "๋”ํ‹ฐ" ๋ผ์ธ์ด ํ”Œ๋Ÿฌ์‹œ๋˜๊ธฐ ์ „์— ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋Š” DMA ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์”๋‹ˆ๋‹ค. ์ „์ฒด ๋‚ด์šฉ์€ R10K ํ”„๋กœ์„ธ์„œ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
๋‹ค๋ฅธ ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๋ฅผ ํฌํ•จํ•œ ์„ค๋ช….

ํ•œ ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ์ „์— ์บ์‹œ ๋ฐฐ๋ฆฌ์–ด ๋ช…๋ น์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํˆฌ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ค‘๋‹จ๋˜๋”๋ผ๋„ ๋ถ€์ž‘์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-mr10k-์บ์‹œ-๋ฐฐ๋ฆฌ์–ด=์„ค์ • ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์˜ GCC ๊ตฌํ˜„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ
๋‹ค์Œ ์˜์—ญ์˜ ๋ฐ”์ดํŠธ์— ๋Œ€ํ•œ ์ค‘๋‹จ๋œ ์•ก์„ธ์Šค์—๋Š” ์ธก๋ฉด์ด ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํšจ๊ณผ :

1. ํ˜„์žฌ ํ•จ์ˆ˜์˜ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ

2. ๋“ค์–ด์˜ค๋Š” ์Šคํƒ ์ธ์ˆ˜๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ;

3. ๋งํฌ ์‹œ๊ฐ„ ์ƒ์ˆ˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ.

์ด๋Ÿฌํ•œ ์˜์—ญ์— ๋Œ€ํ•œ ์ถ”์ธก์  ์•ก์„ธ์Šค๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ์ปค๋„์˜ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ ํ”„๋กœ๊ทธ๋žจ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜ ์„ ์–ธ์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ:

๋ฌดํšจ foo(๋ฌดํšจ);

๊ทธ๋Ÿฐ ๋‹ค์Œ "foo"์˜ ๊ตฌํ˜„์€ "j foo" ๋ฐ "jal foo"๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ถ”์ธก์œผ๋กœ. GCC๋Š” ์ž์ฒด ์ปดํŒŒ์ผํ•˜๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ด ์ œํ•œ์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ
GCC๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜(์˜ˆ: ์†์œผ๋กœ ์ž‘์„ฑํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ)๋„ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์˜ต์…˜์—๋Š” ์„ธ ๊ฐ€์ง€ ํ˜•์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mr10k-cache-barrier=๋กœ๋“œ-์Šคํ† ์–ด
์ถ”์ธก์— ๋”ฐ๋ผ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๋กœ๋“œ ๋˜๋Š” ์ €์žฅ ์•ž์— ์บ์‹œ ์žฅ๋ฒฝ์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
์ค‘๋‹จํ•˜๋”๋ผ๋„ ๋ถ€์ž‘์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mr10k-cache-barrier=์ €์žฅ
ํˆฌ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ ์•ž์— ์บ์‹œ ์žฅ๋ฒฝ์„ ์‚ฝ์ž…ํ•˜๊ณ 
์ค‘๋‹จํ•˜๋”๋ผ๋„ ๋ถ€์ž‘์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mr10k-cache-barrier=์—†์Œ
์บ์‹œ ๋ฐฐ๋ฆฌ์–ด ์‚ฝ์ž…์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค.

-mflush-func=ํŽ‘ํฌ
-mno-ํ”Œ๋Ÿฌ์‹œ-ํŽ‘ํฌ
I ๋ฐ D ์บ์‹œ๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•˜๊ฑฐ๋‚˜ ์ด๋Ÿฌํ•œ ์บ์‹œ๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋„๋ก ํ˜ธ์ถœํ•  ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ. ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ ํ•จ์ˆ˜๋Š” ๊ณตํ†ต ์ธ์ˆ˜์™€ ๋™์ผํ•œ ์ธ์ˆ˜๋ฅผ ์ทจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"_flush_func", ์ฆ‰ ์บ์‹œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฒ”์œ„์˜ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.
flushed, ๋ฉ”๋ชจ๋ฆฌ ๋ฒ”์œ„์˜ ํฌ๊ธฐ, ์ˆซ์ž 3(๋‘ ์บ์‹œ๋ฅผ ๋ชจ๋‘ ํ”Œ๋Ÿฌ์‹œํ•˜๊ธฐ ์œ„ํ•ด). NS
๊ธฐ๋ณธ๊ฐ’์€ ๋Œ€์ƒ GCC๊ฐ€ ๊ตฌ์„ฑ๋œ ๋Œ€์ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅด์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
"_flush_func" ๋˜๋Š” "__cpu_flush".

mbranch ๋น„์šฉ =NUM
๋ถ„๊ธฐ ๋น„์šฉ์„ ๋Œ€๋žต์ ์œผ๋กœ ์„ค์ • NUM "๊ฐ„๋‹จํ•œ" ์ง€์นจ. ์ด ๋น„์šฉ์€ ๋‹จ์ง€
๋ฐœ๊ฒฌ์ ์ด๋ฉฐ ๋ฆด๋ฆฌ์Šค ๊ฐ„์— ์ผ๊ด€๋œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๋กœ
๋น„์šฉ์€ ์ค‘๋ณต์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. -mtune ํ™˜๊ฒฝ.

-mbranch ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”
-mno-branch-like
๊ธฐ๋ณธ๊ฐ’์— ๊ด€๊ณ„์—†์ด ๋ถ„๊ธฐ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์„ ํƒํ•œ ์•„ํ‚คํ…์ฒ˜. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ถ„๊ธฐ ๊ฐ€๋Šฅ์„ฑ ์ง€์นจ์ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์„ ํƒํ•œ ์•„ํ‚คํ…์ฒ˜์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. MIPS32 ๋ฐ
MIPS64 ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์ด๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํ”„๋กœ์„ธ์„œ ๊ทธ๋“ค์„ ์œ„ํ•ด,
๋ถ„๊ธฐ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ช…๋ น์–ด๋Š” MIPS32 ๋ฐ
MIPS64 ์•„ํ‚คํ…์ฒ˜๋Š” ํŠนํžˆ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mfp-์˜ˆ์™ธ
-mno-fp-์˜ˆ์™ธ
FP ์˜ˆ์™ธ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ FP ๋ช…๋ น์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
์ผ๋ถ€ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ FP ์˜ˆ์™ธ๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, SB-1์—์„œ FP ์˜ˆ์™ธ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜๊ณ  64๋น„ํŠธ
์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋‘ FP ํŒŒ์ดํ”„๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•˜๋‚˜์˜ FP ํŒŒ์ดํ”„๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mvr4130-์ •๋ ฌ
-mno-vr4130-์ •๋ ฌ
VR4130 ํŒŒ์ดํ”„๋ผ์ธ์€ ์–‘๋ฐฉํ–ฅ ์Šˆํผ์Šค์นผ๋ผ์ด์ง€๋งŒ ๋‘ ๊ฐœ์˜ ๋ช…๋ น์–ด๋งŒ ๋ฐœํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ ๊ฒƒ์ด 8๋ฐ”์ดํŠธ๋กœ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ ํ•จ๊ป˜. ์ด ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด GCC๋Š”
๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ช…๋ น์–ด ์Œ.

์ด ์˜ต์…˜์€ VR4130์— ์ตœ์ ํ™”ํ•  ๋•Œ๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
๋” ๋น ๋ฅด์ง€๋งŒ ๋” ํฌ๊ฒŒ ๋งŒ๋“œ๋Š” ๋Œ€๊ฐ€๋ฅผ ์น˜๋Ÿฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™” ์ˆ˜์ค€ -O3.

-msynci
-mno-synci
์ง€์›ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜์—์„œ "synci" ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค.
"__builtin__clear_cache"๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด "synci" ๋ช…๋ น์–ด(ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ)๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ.

์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ -mno-synci, ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ์„ ๊ตฌ์„ฑํ•˜์—ฌ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GCC --synci์™€ ํ•จ๊ป˜.

๋‹จ์ผ ํ”„๋กœ์„ธ์„œ ์‹œ์Šคํ…œ์šฉ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ "synci"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋งŽ์€ ๋‹ค์ค‘ ์ฝ”์–ด(SMP) ์‹œ์Šคํ…œ์—์„œ ๋ช…๋ น์„ ๋ฌดํšจํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์ฝ”์–ด์— ์บ์‹œ๋˜์–ด ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mrelax-ํ”ฝ-์ฝœ
-mno-relax-pic-calls
์ผ๋ฐ˜์ ์œผ๋กœ $25 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” PIC ํ˜ธ์ถœ์„ ์ง์ ‘ ํ˜ธ์ถœ๋กœ ์ „ํ™˜ํ•˜์‹ญ์‹œ์˜ค.
์ด๋Š” ๋ง์ปค๊ฐ€ ๋งํฌ ํƒ€์ž„์— ๋Œ€์ƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ์ด ์ง์ ‘ ํ˜ธ์ถœ ๋ฒ”์œ„ ๋‚ด์— ์žˆ์Šต๋‹ˆ๋‹ค.

-mrelax-ํ”ฝ-์ฝœ GCC๊ฐ€ ์–ด์…ˆ๋ธ”๋Ÿฌ์™€
".reloc" ์–ด์…ˆ๋ธ”๋ฆฌ ์ง€์‹œ๋ฌธ์„ ์ง€์›ํ•˜๋Š” ๋ง์ปค ๋ฐ -mexplicit-relocs ์—
ํšจ๊ณผ. ์™€ ํ•จ๊ป˜ -mno-๋ช…์‹œ์ -relocs, ์ด ์ตœ์ ํ™”๋Š”
์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋„์›€ ์—†์ด ์–ด์…ˆ๋ธ”๋Ÿฌ์™€ ๋ง์ปค๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mmcount-ra-์ฃผ์†Œ
-mno-mcount-ra-์ฃผ์†Œ
"_mcount"๊ฐ€ ํ˜ธ์ถœ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค(๋‚ด๋ณด๋‚ด์ง€ ์•Š์Œ).
์ฃผ์†Œ. ํ™œ์„ฑํ™”๋˜๋ฉด ์ด ์˜ต์…˜์€ ์ƒˆ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ผ๋ฐ˜์ ์ธ "_mcount" ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์†Œ "intptr_t *" ์œ ํ˜•์ด ์žˆ๊ณ  ๋ ˆ์ง€์Šคํ„ฐ $12์— ์ „๋‹ฌ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
"_mcount"๋Š” ๋‹ค์Œ์„ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

* ๋ ˆ์ง€์Šคํ„ฐ $31์˜ ์ƒˆ ์ฃผ์†Œ ๋ฐ˜ํ™˜.

* "*์— ์ƒˆ ์ฃผ์†Œ ์ €์žฅ์ฃผ์†Œ"๋งŒ์•ฝ ์ฃผ์†Œ null์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋””ํดํŠธ๋Š” -mno-mcount-ra-์ฃผ์†Œ.

์— ๋ฏน์Šค ์˜ต์…˜

์ด๋Ÿฌํ•œ ์˜ต์…˜์€ MMIX์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mlibfuncs
-mno-libfuncs
๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๊ฐ€ ์ปดํŒŒ์ผ ์ค‘์ž„์„ ์ง€์ •ํ•˜๊ณ  ๋ชจ๋“  ๊ฐ’์„
ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ๋ ˆ์ง€์Šคํ„ฐ.

-๋ฉค์‹ค๋ก 
-mno-์—ก์‹ค๋ก 
"rE"์™€ ๊ด€๋ จํ•˜์—ฌ ๋น„๊ตํ•˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋น„๊ต ๋ช…๋ น์–ด ์ƒ์„ฑ
์—ก์‹ค๋ก  ๋ ˆ์ง€์Šคํ„ฐ.

-๋งˆ๋น„=mmixware
-๋งˆ๋น„=๋ˆ„
ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  (ํ˜ธ์ถœ๋œ
ํ•จ์ˆ˜)๋Š” ์ „์—ญ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” GNU ABI์™€ ๋‹ฌ๋ฆฌ $0 ์ด์ƒ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
$231 ์ด์ƒ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

-mzero ํ™•์žฅ
-mno-์ œ๋กœ ํ™•์žฅ
64๋น„ํŠธ๋ณด๋‹ค ์งง์€ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ XNUMX์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)
๋ถ€ํ˜ธ ํ™•์žฅ์ด ์•„๋‹Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ๋“œ ๋ช…๋ น์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

-mknuthdiv
-mno-knuthdiv
๋‚˜๋จธ์ง€๋ฅผ ์‚ฐ์ถœํ•˜๋Š” ๋‚˜๋ˆ—์…ˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ œ์ˆ˜์™€ ๊ฐ™์€ ๋ถ€ํ˜ธ๋ฅผ ๊ฐ–๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์œผ๋กœ, -mno-knuthdiv, ๋‚˜๋จธ์ง€ ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ ๊ธฐํ˜ธ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
ํ”ผ์ œ์ˆ˜. ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ์‚ฐ์ˆ ์ ์œผ๋กœ ์œ ํšจํ•˜๋ฉฐ ํ›„์ž๋Š” ๊ฑฐ์˜ ๋…์ ์ ์ž…๋‹ˆ๋‹ค.
์ต์ˆ™ํ•œ.

-mtoplevel-์‹ฌ๋ณผ
-mno-toplevel-๊ธฐํ˜ธ
์•ž์— ์ถ”๊ฐ€(์•ž์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Œ) : ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“  ์ „์—ญ ๊ธฐํ˜ธ์—
"PREFIX" ์–ด์…ˆ๋ธ”๋ฆฌ ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-๋ฉœํ”„
๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹Œ ELF ํ˜•์‹์œผ๋กœ ์‹คํ–‰ ํŒŒ์ผ ์ƒ์„ฑ mmo ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹
์ „์—, ๋ฏน์Šค ๋ชจ์˜ ์‹คํ—˜ ์žฅ์น˜.

-mbranch ์˜ˆ์ธก
-mno-๋ถ„๊ธฐ-์˜ˆ์ธก
์ •์  ๋ถ„๊ธฐ ์˜ˆ์ธก ์‹œ ๊ฐ€๋Šฅํ•œ ๋ถ„๊ธฐ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)
๊ฐ€๋Šฅํ•œ ๋ถ„๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

-mbase ์ฃผ์†Œ
-mno-base-์ฃผ์†Œ
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ) ๊ธฐ์ง€ ๊ตฌ์• . ๊ธฐ๋ณธ ์ฃผ์†Œ ์‚ฌ์šฉ
์ž๋™์œผ๋กœ ์š”์ฒญ(์–ด์…ˆ๋ธ”๋Ÿฌ์™€ ๋ง์ปค์—์„œ ์ฒ˜๋ฆฌ)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ „์—ญ ๋ ˆ์ง€์Šคํ„ฐ์— ์„ค์ •ํ•  ์ƒ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฒ ์ด์Šค์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ’์—์„œ 0์—์„œ 255 ์‚ฌ์ด์˜ ์ฃผ์†Œ ์š”์ฒญ. NS
์ผ๋ฐ˜์ ์œผ๋กœ ์งง๊ณ  ๋น ๋ฅธ ์ฝ”๋“œ๋กœ ์ด์–ด์ง€์ง€๋งŒ,
์ œํ•œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -mno-base-์ฃผ์†Œ.

-ms๋‹จ์ผ ์ข…๋ฃŒ
-mno-๋‹จ์ผ ์ข…๋ฃŒ
์ƒ์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ๊ฐ ํ•จ์ˆ˜์— ๋‹จ์ผ ์ข…๋ฃŒ ์ง€์ ์„ ๊ฐ–๋„๋ก ๊ฐ•์ œ(๊ฐ•์ œํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค.

MN10300 ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ Matsushita MN10300 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

- ๋ณตํ•ฉ ๋ฒ„๊ทธ
MN10300 ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ๊ณฑ์…ˆ ๋ช…๋ น์–ด์˜ ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-multi-bug
MN10300์— ๋Œ€ํ•œ ๊ณฑํ•˜๊ธฐ ๋ช…๋ น์–ด์˜ ๋ฒ„๊ทธ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
ํ”„๋กœ์„ธ์„œ.

-mam33
AM33 ํ”„๋กœ์„ธ์„œ์— ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-am33
AM33 ํ”„๋กœ์„ธ์„œ์— ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด
ํƒœ๋งŒ.

-mam33-2
AM33/2.0 ํ”„๋กœ์„ธ์„œ์— ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mam34
AM34 ํ”„๋กœ์„ธ์„œ์— ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mtune=CPU ์œ ํ˜•
๋ช…๋ น์„ ์Šค์ผ€์ค„๋งํ•  ๋•Œ ํ‘œ์‹œ๋œ CPU ์œ ํ˜•์˜ ํƒ€์ด๋ฐ ํŠน์„ฑ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ ์œ ํ˜•์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CPU ์œ ํ˜•์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
mn10300, am33, ์˜ค์ „33-2 or am34.

-mreturn-ํฌ์ธํ„ฐ-on-d0
ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ "a0"๊ณผ "aXNUMX" ๋ชจ๋‘์— ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
"d0". ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํฌ์ธํ„ฐ๋Š” "a0"์—์„œ๋งŒ ๋ฐ˜ํ™˜๋˜๊ณ  ์ด๋Ÿฌํ•œ ํ˜ธ์ถœ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœํ† ํƒ€์ž…์ด ์—†๋Š” ํ•จ์ˆ˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
๊ธฐ๋ณธ; ์‚ฌ์šฉํ•˜๋‹ค -mno-return-pointer-on-d0 ๊ทธ๊ฒƒ์„ ํ•ด์ œํ•˜์‹ญ์‹œ์˜ค.

-mno-crt0
C ๋Ÿฐํƒ€์ž„ ์ดˆ๊ธฐํ™” ๊ฐœ์ฒด ํŒŒ์ผ์— ์—ฐ๊ฒฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mrelax
์ด์™„ ์ตœ์ ํ™” ์ „๋‹ฌ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ์„ ๋ง์ปค์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ถ„๊ธฐ, ํ˜ธ์ถœ ๋ฐ ์ ˆ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํšจ๊ณผ๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค
์ตœ์ข… ๋งํฌ ๋‹จ๊ณ„์˜ ๋ช…๋ น์ค„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ.

์ด ์˜ต์…˜์€ ์‹ฌ๋ณผ๋ฆญ ๋””๋ฒ„๊น…์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

-๋ฐ€๋ฆฌ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•˜๋„๋ก ํ—ˆ์šฉ ๊ธด ๊ต์ˆ˜ ์›Œ๋“œ ๋Œ€์ƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ง€์นจ
AM33 ๋˜๋Š” ๋‚˜์ค‘์—. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
"__LIW__".

-mnoliw
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ ๊ธด ๊ต์ˆ˜ ์›Œ๋“œ ์ง€์นจ. ์ด ์˜ต์…˜
์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__NO_LIW__"๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

-msetlb
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ SETLB ๊ณผ LCC ๋Œ€์ƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ง€์นจ
AM33 ๋˜๋Š” ๋‚˜์ค‘์—. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
"__SETLB__".

-mnosetlb
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ SETLB or LCC ์ง€์นจ. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ "__NO_SETLB__".

์šฉ๊ฐ ์˜ต์…˜

-๋ฉ”๋ธŒ
๋น… ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋ชฉ์‹œ-*-* ๊ตฌ์„ฑ.

-๋ฉœ
๋ฆฌํ‹€ ์—”๋””์•ˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mmul.x
mul.x ๋ฐ umul.x ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋ชฉ์‹œ๋ฐ•์Šค-*-*
๊ตฌ์„ฑ.

-mno-crt0
C ๋Ÿฐํƒ€์ž„ ์ดˆ๊ธฐํ™” ๊ฐœ์ฒด ํŒŒ์ผ์— ์—ฐ๊ฒฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

MSP430 ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ MSP430์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-masm-hex
์–ด์…ˆ๋ธ”๋ฆฌ ์ถœ๋ ฅ์ด ํ•ญ์ƒ XNUMX์ง„์ˆ˜ ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ƒ์ˆ˜๋Š” ๋ถ€ํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์†Œ์ˆ˜์ด์ง€๋งŒ ์ด ์˜ต์…˜์€ testsuite ๋ฐ/๋˜๋Š” ๋ฏธ์  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mmcu=
๋Œ€์ƒ MCU๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
MCU ์ด๋ฆ„, ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ๋ฐ __. ์ด ์ฐจ๋ก€๋กœ
์— ์˜ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค msp430.h MCU๋ณ„ ์ถ”๊ฐ€ ํ—ค๋”๋ฅผ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•œ ํ—ค๋” ํŒŒ์ผ
ํŒŒ์ผ.

์ด ์˜ต์…˜์€ ์‚ฌ์šฉํ•  ISA๋„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. MCU ์ด๋ฆ„์ด ์ž์‹ ์—๊ฒŒ๋งŒ ์•Œ๋ ค์ง„ ์ด๋ฆ„์ธ ๊ฒฝ์šฐ
430 ISA๋ฅผ ์ง€์›ํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ์„ ํƒ๋˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 430X ISA๊ฐ€ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. NS
์ผ๋ฐ˜ MCU ์ด๋ฆ„ msp430 430 ISA๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ
์ผ๋ฐ˜์ ์ธ msp430x MCU ์ด๋ฆ„์€ 430X ISA๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ MCU๋ณ„ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ง์ปค ๋ช…๋ น์ค„์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. NS
์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„์€ MCU์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. .ld ์ถ”๊ฐ€๋จ. ๋”ฐ๋ผ์„œ ์ง€์ • -mmcu=xxx on
์ „์—, GCC ๋ช…๋ น์ค„์€ C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__XXX__"๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ง์ปค๊ฐ€
๋ผ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด xxx.ld.

์ด ์˜ต์…˜์€ ์–ด์…ˆ๋ธ”๋Ÿฌ์—๋„ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

-mcpu =
์‚ฌ์šฉํ•  ISA๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ msp430, msp430x ๊ณผ msp430xv2. ์ด
์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. NS -mmcu= ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ISA๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-msim
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์— ์˜ํ•ด ์„ ํƒ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. -mmcu= ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-๋Œ€ํ˜•
๋Œ€ํ˜• ๋ชจ๋ธ ์ฃผ์†Œ ์ง€์ •(20๋น„ํŠธ ํฌ์ธํ„ฐ, 32๋น„ํŠธ "size_t")์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-m์ž‘์€
์†Œํ˜• ๋ชจ๋ธ ์ฃผ์†Œ ์ง€์ •(16๋น„ํŠธ ํฌ์ธํ„ฐ, 16๋น„ํŠธ "size_t")์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mrelax
์ด ์˜ต์…˜์€ ์–ด์…ˆ๋ธ”๋Ÿฌ์™€ ๋ง์ปค์— ์ „๋‹ฌ๋˜๋ฉฐ ๋ง์ปค๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์ตœ์ข… ๋งํฌ๊นŒ์ง€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ํŠน์ • ์ตœ์ ํ™”.

mhwmult=
๋Œ€์ƒ์—์„œ ์ง€์›ํ•˜๋Š” ๋‹ค์ค‘ ํ•˜๋“œ์›จ์–ด ์œ ํ˜•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€
์—†์Œ ํ•˜๋“œ์›จ์–ด ์ฆ์‹์ด ์—†๋Š” ๊ฒฝ์šฐ, 16bit ์›๋ž˜ 16๋น„ํŠธ ์ „์šฉ ๊ณฑ์…ˆ ์ง€์›
์ดˆ๊ธฐ MCU์— ์˜ํ•ด 32bit ์ตœ์‹  MCU์—์„œ ์ง€์›ํ•˜๋Š” 16/32๋น„ํŠธ ๊ณฑ์…ˆ ๋ฐ f5์‹œ๋ฆฌ์ฆˆ
F16 ์‹œ๋ฆฌ์ฆˆ MCU์—์„œ ์ง€์›ํ•˜๋Š” 32/5๋น„ํŠธ ๊ณฑ์…ˆ์šฉ. ๊ฐ’ ์ž๋™ ๋˜ํ•œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์ฃผ์–ด์ง„. ์ด๊ฒƒ์€ GCC๊ฐ€ MCU ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋“œ์›จ์–ด ๊ณฑ์…ˆ ์ง€์›์„ ์ถ”๋ก ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์ œ๊ณต ํ•œ -mmcu ์˜ต์…˜. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ -mmcu ์˜ต์…˜์ด ์ง€์ •๋œ ๋‹ค์Œ 32bit ํ•˜๋“œ์›จ์–ด
๊ณฑํ•˜๊ธฐ ์ง€์›์ด ๊ฐ€์ •๋ฉ๋‹ˆ๋‹ค. ์ž๋™ ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค.

ํ•˜๋“œ์›จ์–ด ๊ณฑ์…ˆ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฃจํ‹ด์„ ํ˜ธ์ถœํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ €์žฅ
์ƒ์„ฑ๋œ ์ฝ”๋“œ์˜ ๊ณต๋ฐฑ ์—์„œ ์ปดํŒŒ์ผํ•  ๋•Œ -O3 ์ด์ƒ ๊ทธ๋Ÿฌ๋‚˜ ํ•˜๋“œ์›จ์–ด
์Šน์ˆ˜๋Š” ์ธ๋ผ์ธ์œผ๋กœ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋” ํฌ์ง€๋งŒ ๋” ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

ํ•˜๋“œ์›จ์–ด ๊ณฑ์…ˆ ๋ฃจํ‹ด์€ ์‹คํ–‰ ์ค‘ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
์™„๋ฃŒ๋  ๋•Œ ์ด์ „ ์ธํ„ฐ๋ŸฝํŠธ ์ƒํƒœ. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‚ด๋ถ€์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ์™€ ์ผ๋ฐ˜ ์ฝ”๋“œ.

-๋ฏผํŠธ
์ตœ์†Œ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ ์‚ฌ์šฉ ๊ฐ€๋Šฅ - ์ •์  ์ด๋‹ˆ์…œ๋ผ์ด์ € ์—†์Œ ๋˜๋Š”
์ƒ์„ฑ์ž. ์ด๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ œํ•œ๋œ ์žฅ์น˜๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
๋ง์ปค์™€ ๋Ÿฐํƒ€์ž„์— ์ฝ”๋“œ ์กฐ๊ฐ์„ ์•Œ๋ ค์ฃผ๋Š” ์ผ๋ถ€ ๊ฐœ์ฒด์˜ ํŠน์ˆ˜ ๊ธฐํ˜ธ
ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

NDS32 ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ NDS32 ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mbig-์—”๋””์•ˆ
๋น… ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mreduced-regs
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ์œ„ํ•ด ์ถ•์†Œ ์„ธํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mfull-regs
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ์œ„ํ•ด ์ „์ฒด ์„ธํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mcmov
์กฐ๊ฑด๋ถ€ ์ด๋™ ์ง€์นจ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-cmov
์กฐ๊ฑด๋ถ€ ์ด๋™ ๋ช…๋ น์„ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mperf-ext
์„ฑ๋Šฅ ํ™•์žฅ ์ง€์นจ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-perf-ext
์„ฑ๋Šฅ ํ™•์žฅ ์ง€์นจ์„ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mv3push
v3 push25/pop25 ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-v3push
v3 push25/pop25 ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-m16๋น„ํŠธ
16๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mno-16๋น„ํŠธ
16๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-misr-๋ฒกํ„ฐ-ํฌ๊ธฐ=NUM
4 ๋˜๋Š” 16์ด์–ด์•ผ ํ•˜๋Š” ๊ฐ ์ธํ„ฐ๋ŸฝํŠธ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mcache-๋ธ”๋ก ํฌ๊ธฐ=NUM
๊ฐ ์บ์‹œ ๋ธ”๋ก์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ํฌ๊ธฐ๋Š” 2์—์„œ 4 ์‚ฌ์ด์˜ 512์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-ํ–‰์ง„=์•„์น˜
๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mc๋ชจ๋ธ=์ฝ”๋“œ ๋ชจ๋ธ
์ฝ”๋“œ ๋ชจ๋ธ์„ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์€
๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ฐ ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” 512KB ์ฃผ์†Œ ์ง€์ • ๊ณต๊ฐ„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ๋Š” 16MB ์ฃผ์†Œ ์ง€์ • ๊ณต๊ฐ„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งค์งˆ
๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” 512KB ์ด๋‚ด์—ฌ์•ผ ํ•˜๋ฉฐ ์ฝ๊ธฐ ์ „์šฉ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋Š”
4GB ์ฃผ์†Œ ๊ณต๊ฐ„ ๋‚ด. ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ๋Š” ์—ฌ์ „ํžˆ 16MB ์ด๋‚ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์†Œ ๊ณต๊ฐ„.

๋„“์€
๋ชจ๋“  ํ…์ŠคํŠธ ๋ฐ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” 4GB ์ฃผ์†Œ ์ง€์ • ๊ณต๊ฐ„ ๋‚ด์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mctor-dtor
์ƒ์„ฑ์ž/์†Œ๋ฉธ์ž ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mrelax
์ง€์นจ์„ ์™„ํ™”ํ•˜๋Š” ๊ฐ€์ด๋“œ ๋ง์ปค.

๋‹ˆ์˜ค์Šค II ์˜ต์…˜

Altera Nios II ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ์ •์˜๋œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

-G NUM
์ „์—ญ ๋ฐ ์ •์  ๊ฐœ์ฒด๋ฅผ ๋‹ค์Œ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ NUM ์ž‘์€ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”์ดํŠธ ๋˜๋Š”
์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋˜๋Š” BSS ์„น์…˜ ๋Œ€์‹  BSS ์„น์…˜. ๊ธฐ๋ณธ๊ฐ’ NUM is
8.

-mgpopt=์„ ํƒ๊ถŒ
-mgpopt
-mno-gpopt
GP ๊ด€๋ จ ์•ก์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ). ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ ํƒ๊ถŒ ์ด๋ฆ„์€
์ธ์‹:

์—†์Œ
GP ๊ด€๋ จ ์•ก์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ง€๋ฐฉ์˜
์™ธ๋ถ€ ๋˜๋Š”
์•ฝํ•œ. ๋˜ํ•œ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋œ ๊ฐœ์ฒด์— ๋Œ€ํ•ด GP ์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
"์„น์…˜" ์†์„ฑ์„ ํ†ตํ•ด ์ž‘์€ ๋ฐ์ดํ„ฐ ์„น์…˜์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.

๊ธ€๋กœ๋ฒŒ
~์— ๊ด€ํ•ด์„œ๋Š” ์ง€๋ฐฉ์˜, ๊ทธ๋Ÿฌ๋‚˜ ๋˜ํ•œ ์ž‘์€ ๋ฐ์ดํ„ฐ ๊ฐœ์ฒด์— ๋Œ€ํ•œ GP ๊ด€๋ จ ์•ก์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์™ธ์ ์ด๊ฑฐ๋‚˜ ์•ฝํ•˜๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์˜ ๋ชจ๋“  ๋ถ€๋ถ„์ด
๊ท€ํ•˜์˜ ํ”„๋กœ๊ทธ๋žจ(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํฌํ•จ)์€ ๋™์ผํ•œ ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. -G ํ™˜๊ฒฝ.

๋ฐ์ดํ„ฐ
ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ฐœ์ฒด์— ๋Œ€ํ•œ GP ๊ด€๋ จ ์•ก์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ ๋ฐ BSS ์„ธ๊ทธ๋จผํŠธ๊ฐ€ 64K์— ๋งž์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ ์ ˆํ•œ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ํ• ๋‹นํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ „์—ญ ํฌ์ธํ„ฐ์˜ ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅ ๋ฒ”์œ„.

๋ชจ๋“  ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์™€ ๋ฐ์ดํ„ฐ ํฌ์ธํ„ฐ์— ๋Œ€ํ•œ GP ์ƒ๋Œ€ ์ฃผ์†Œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์ฒด ํ…์ŠคํŠธ, ๋ฐ์ดํ„ฐ ๋ฐ BSS ์„ธ๊ทธ๋จผํŠธ๊ฐ€
64K ๋ฉ”๋ชจ๋ฆฌ์— ์ ํ•ฉํ•˜๋ฉฐ ์ ์ ˆํ•œ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
์ „์—ญ ํฌ์ธํ„ฐ์˜ ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„ ๋‚ด์— ์žˆ์Šต๋‹ˆ๋‹ค.

-mgpopt ์— ํ•ด๋‹นํ•˜๋Š” -mgpopt=๋กœ์ปฌ๋ฐ -mno-gpopt ์— ํ•ด๋‹นํ•˜๋Š” -mgpopt=์—†์Œ.

๋””ํดํŠธ๋Š” -mgpopt ๋•Œ๋ฅผ ์ œ์™ธํ•˜๊ณ  -fpic or -fPIC ์œ„์น˜๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ์ง€์ •๋ฉ๋‹ˆ๋‹ค.
๋…๋ฆฝ ์ฝ”๋“œ. Nios II ABI๋Š” GP ๊ด€๋ จ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.

์ง€์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -mno-gpopt ๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•  ๋•Œ ๋ช…์‹œ์ ์œผ๋กœ
ํฐ GOT ๋ฐ์ดํ„ฐ ์„น์…˜์„ ํฌํ•จํ•œ ๋งŽ์€ ์–‘์˜ ์ž‘์€ ๋ฐ์ดํ„ฐ. ์ด ๊ฒฝ์šฐ,
GP ์ƒ๋Œ€ ์ฃผ์†Œ ์ง€์ •์„ ์œ„ํ•œ 16๋น„ํŠธ ์˜คํ”„์…‹์€ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฌ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „์ฒด ์ž‘์€ ๋ฐ์ดํ„ฐ ์„น์…˜.

-๋ฉœ
-๋ฉ”๋ธŒ
๋ฆฌํ‹€ ์—”๋””์•ˆ(๊ธฐ๋ณธ๊ฐ’) ๋˜๋Š” ๋น… ์—”๋””์•ˆ(์‹คํ—˜) ์ฝ”๋“œ๋ฅผ ๊ฐ๊ฐ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mbypass-์บ์‹œ
-mno ์šฐํšŒ ์บ์‹œ
I/O ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋กœ๋“œ ๋ฐ ์ €์žฅ ๋ช…๋ น์ด ํ•ญ์ƒ ์บ์‹œ๋ฅผ ์šฐํšŒํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
์ง€์‹œ ์‚ฌํ•ญ. ๊ธฐ๋ณธ๊ฐ’์€ ์บ์‹œ๋ฅผ ์šฐํšŒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-mno-์บ์‹œ-ํœ˜๋ฐœ์„ฑ
-mcache-ํœ˜๋ฐœ์„ฑ
ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋Š” ๋กœ๋“œ ๋ฐ ์ €์žฅ์˜ I/O ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ์บ์‹œ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.
์ง€์นจ. ๊ธฐ๋ณธ๊ฐ’์€ ์บ์‹œ๋ฅผ ์šฐํšŒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-mno-๋น ๋ฅธ-sw-div
-mfast-sw-div
์ž‘์€ ์ˆซ์ž์— ๋Œ€ํ•ด ํ…Œ์ด๋ธ” โ€‹โ€‹๊ธฐ๋ฐ˜ ๋น ๋ฅธ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’์€ ๋น ๋ฅธ
๋‚˜๋ˆ„๋‹ค -O3 ์ด์ƒ.

-mno-hw-๋ฌผ
-mhw-๋ฌผ
-mno-hw-mux
-mhw-mux
-mno-hw-div
-mhw-div
"mul", "mulx" ๋ฐ "div" ๋ช…๋ น์–ด ์ œํ’ˆ๊ตฐ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ. ๊ธฐ๋ณธ๊ฐ’์€ "mul"์„ ๋‚ด๋ณด๋‚ด๊ณ  "div" ๋ฐ "mulx"๋ฅผ ๋‚ด๋ณด๋‚ด์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-์— ์ปค์Šคํ…€-์—ฌ๊ด€=N
-mno-์ปค์Šคํ…€-์—ฌ๊ด€
๊ฐ๊ฐ์˜ -์— ์ปค์Šคํ…€-์—ฌ๊ด€=N ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฝ”๋”ฉ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž ์ง€์ • ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. N ์–ธ์ œ
์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ์—ฌ๊ด€. ์˜ˆ๋ฅผ ๋“ค์–ด, -mcustom-fadds=253 ์ปค์Šคํ…€ ์ƒ์„ฑ
๋Œ€์‹  ๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ถ”๊ฐ€ ์—ฐ์‚ฐ์„ ์œ„ํ•œ ๋ช…๋ น์–ด 253
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ๋™์ž‘.

๋‹ค์Œ ๊ฐ’ ์—ฌ๊ด€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๋‹ฌ๋ฆฌ ๋ช…์‹œ๋œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋ถ€๋™ ์†Œ์ˆ˜์ 
์ž‘์—…์€ ์ผ๋ฐ˜์ ์ธ IEEE 754 ์˜๋ฏธ ์ฒด๊ณ„๋กœ ๊ตฌํ˜„๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋ฉฐ
C ์—ฐ์‚ฐ์ž ๋˜๋Š” ์ด์— ์ƒ์‘ํ•˜๋Š” GCC ๋‚ด์žฅ ํ•จ์ˆ˜์— ์ง์ ‘ ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค.

๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ :

์œ ํ–‰, fsub, fdiv, fmuls
์ด์ง„ ์‚ฐ์ˆ  ์—ฐ์‚ฐ.

๋„ค๊ทธ
๋‹จํ•ญ ๋ถ€์ •.

ํŒน
๋‹จํ•ญ ์ ˆ๋Œ€๊ฐ’.

fcmpeq, fcmpges, fmpgts, fcmples, fcmplts, fmpnes
๋น„๊ต ์ž‘์—….

๋ถ„๋‹น, fmax
๋ถ€๋™ ์†Œ์ˆ˜์  ์ตœ์†Œ ๋ฐ ์ตœ๋Œ€. ์ด ์ง€์นจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
- ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ ์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

fsqrts
๋‹จํ•ญ ์ œ๊ณฑ๊ทผ ์—ฐ์‚ฐ.

fcos, fsin, ํ”„ํƒ„, ํŒŒํƒ„, ํŽ™์Šค, ํ”Œ๋ก์Šค
๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ผ๊ฐ ๋ฐ ์ง€์ˆ˜ ํ•จ์ˆ˜. ์ด๋Ÿฌํ•œ ์ง€์นจ์€
๊ฒฝ์šฐ์—๋งŒ ์ƒ์„ฑ -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ๋„ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ :

ํŒจ๋“œ, fsubd, fdivd, ๊ณฐํŒก์ด
์ด์ง„ ์‚ฐ์ˆ  ์—ฐ์‚ฐ.

fnegd
๋‹จํ•ญ ๋ถ€์ •.

ํŒน์ฆˆ
๋‹จํ•ญ ์ ˆ๋Œ€๊ฐ’.

fcmpeqd, fcmpged, fmpgtd, fcmled, fcmpltd, fmpned
๋น„๊ต ์ž‘์—….

๋งˆ์Œ, fmaxd
๋ฐฐ์ •๋ฐ€๋„ ์ตœ์†Œ๊ฐ’ ๋ฐ ์ตœ๋Œ€๊ฐ’. ์ด ์ง€์นจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
- ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ ์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

fsqrtd
๋‹จํ•ญ ์ œ๊ณฑ๊ทผ ์—ฐ์‚ฐ.

fcosd, fsind, ํ”ผํŠธ, ํŒŒํƒ„๋“œ, fexpd, ์ฑ„์ฐ์งˆ
๋ฐฐ์ •๋„ ์‚ผ๊ฐ ๋ฐ ์ง€์ˆ˜ ํ•จ์ˆ˜. ์ด๋Ÿฌํ•œ ์ง€์นจ์€
๊ฒฝ์šฐ์—๋งŒ ์ƒ์„ฑ -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ๋„ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์ „ํ™˜ :

์„น์Šค
๋‹จ์ •๋ฐ€๋„์—์„œ ๋ฐฐ์ •๋ฐ€๋„๋กœ์˜ ๋ณ€ํ™˜.

ftruncd
๋ฐฐ์ •๋ฐ€๋„์—์„œ ๋‹จ์ •๋ฐ€๋„๋กœ ๋ณ€ํ™˜.

ํ”ฝ์‹œ, ์ˆ˜์ •, ๊ณ ์ •, ํ”ฝ์Šค
๋ถ€๋™ ์†Œ์ˆ˜์ ์—์„œ ๋ถ€ํ˜ธ ์žˆ๋Š” ๋˜๋Š” ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ ์œ ํ˜•์œผ๋กœ์˜ ๋ณ€ํ™˜,
XNUMX์œผ๋กœ ์ž˜๋ฆผ.

๋ฐ˜์˜ฌ๋ฆผ
๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์—์„œ ๋ถ€ํ˜ธ ์žˆ๋Š” ์ •์ˆ˜๋กœ ๋ณ€ํ™˜, ๋ฐ˜์˜ฌ๋ฆผ
๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ •์ˆ˜์ด๋ฉฐ XNUMX์—์„œ ๋ฉ€์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Š” ํ•ด๋‹น
"__builtin_lroundf" ํ•จ์ˆ˜ -fno-์ˆ˜ํ•™-errno ์‚ฌ์šฉ.

ํ”Œ๋กœํ‹ฐ์Šค, ํ”Œ๋กœํ„ฐ์Šค, ๋– ๋‹ค๋‹ˆ๋Š”, ํ”Œ๋กœํŠธ
๋ถ€ํ˜ธ ์žˆ๋Š” ๋˜๋Š” ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ ์œ ํ˜•์—์„œ ๋ถ€๋™ ์†Œ์ˆ˜์  ์œ ํ˜•์œผ๋กœ์˜ ๋ณ€ํ™˜.

๋˜ํ•œ ๋‚ด๋ถ€ ๋ ˆ์ง€์Šคํ„ฐ X ๋ฐ Y์— ๋Œ€ํ•œ ๋‹ค์Œ ์ „์†ก ๋ช…๋ น์€ ๋ชจ๋‘
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๊ฐœ์˜ ๋ฐฐ์ •๋ฐ€๋„ ์†Œ์Šค ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ช…๋ น์–ด๋Š” ์ฒซ ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.
64๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ X์˜ ํ”ผ์—ฐ์‚ฐ์ž. ๋‹ค๋ฅธ ํ”ผ์—ฐ์‚ฐ์ž(๋˜๋Š” ๋‹จํ•ญ์˜ ์œ ์ผํ•œ ํ”ผ์—ฐ์‚ฐ์ž
์—ฐ์‚ฐ)์€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž ์ •์˜ ์‚ฐ์ˆ  ๋ช…๋ น์–ด์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
์†Œ์Šค ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ ˆ๋ฐ˜ srcxnumx ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ˆ๋ฐ˜ srcxnumx. ์‚ฌ์šฉ์ž ์ง€์ •
๋ฐฐ์ •๋ฐ€๋„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ 32๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋น„ํŠธ์™€ 32๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋‚˜๋จธ์ง€ ์ ˆ๋ฐ˜ Y. GCC
๋ ˆ์ง€์Šคํ„ฐ X ์“ฐ๊ธฐ ๋ฐ/๋˜๋Š” ์ฝ๊ธฐ์— ํ•„์š”ํ•œ ์ฝ”๋“œ ์‹œํ€€์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ
๋ฐฐ์ •๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ Y๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

fwrx
์“ฐ๋‹ค srcxnumx X์˜ ์ตœํ•˜์œ„ ์ ˆ๋ฐ˜์œผ๋กœ srcxnumx ๊ฐ€์žฅ ์ค‘์š”ํ•œ
X์˜ ์ ˆ๋ฐ˜.

๋‚ ๋ ตํ•œ
์“ฐ๋‹ค srcxnumx Y๋กœ.

frdxhi, frdxlo
X์˜ ์ตœ๋Œ€ ๋˜๋Š” ์ตœ์†Œ(๊ฐ๊ฐ) ์ค‘์š”ํ•œ ์ ˆ๋ฐ˜์„ ์ฝ๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ์ ์ง€.

ํ”„๋ ˆ๋””
Y ๊ฐ’์„ ์ฝ๊ณ  ์ €์žฅ ๋ชฉ์ ์ง€.

Nios II ์‚ฌ์šฉ์ž ์ •์˜ ์ƒ์„ฑ์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ๋กœ์ปฌ ์ œ์–ด ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"target("custom-์ธ์Šค = N")" ๋ฐ "target("์‚ฌ์šฉ์ž ์ง€์ • ์—†์Œ-์—ฌ๊ด€")"
ํ•จ์ˆ˜ ์†์„ฑ ๋˜๋Š” ํ”„๋ผ๊ทธ๋งˆ.

-mcustom-fpu-cfg=name
์ด ์˜ต์…˜์€ ๋ฏธ๋ฆฌ ์ •์˜๋˜๊ณ  ๋ช…๋ช…๋œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ช…๋ น์–ด ์ธ์ฝ”๋”ฉ ์ง‘ํ•ฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(์ฐธ์กฐ
-์— ์ปค์Šคํ…€-์—ฌ๊ด€ ์œ„์—). ํ˜„์žฌ ๋‹ค์Œ ์„ธํŠธ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mcustom-fpu-cfg=60-1 ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -mcustom-fmuls=252 -mcustom-fadds=253
-mcustom-fssubs=254 -fsingle-precision-์ƒ์ˆ˜

-mcustom-fpu-cfg=60-2 ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -mcustom-fmuls=252 -mcustom-fadds=253
-mcustom-fssubs=254 -mcustom-fdivs=255 -fsingle-precision-์ƒ์ˆ˜

-mcustom-fpu-cfg=72-3 ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -mcustom-floatus=243 -mcustom-fixsi=244
-mcustom-floatis=245 -mcustom-fcmpgts=246 -mcustom-fcmple=249 -mcustom-fcmpeqs=250
-mcustom-fcmpnes=251 -mcustom-fmuls=252 -mcustom-fadds=253 -mcustom-fssubs=254
-mcustom-fdivs=255 -fsingle-precision-์ƒ์ˆ˜

๊ฐœ์ธ์ด ์ œ๊ณตํ•˜๋Š” ๋งž์ถคํ˜• ์ง€์นจ ํ• ๋‹น -์— ์ปค์Šคํ…€-์—ฌ๊ด€= ์˜ต์…˜ ์žฌ์ •์˜
์— ์˜ํ•ด ์ฃผ์–ด์ง„ ๊ฒƒ๋“ค -mcustom-fpu-cfg=, ์˜ต์…˜์˜ ์ˆœ์„œ์— ๊ด€๊ณ„์—†์ด
๋ช…๋ น ํ–‰.

๋‹ค์Œ์„ ํ†ตํ•ด FPU ๊ตฌ์„ฑ ์„ ํƒ์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ๋กœ์ปฌ ์ œ์–ด ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"target("custom-fpu-cfg=์ด๋ฆ„")" ํ•จ์ˆ˜ ์†์„ฑ ๋˜๋Š” ํ”„๋ผ๊ทธ๋งˆ.

์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ -m Altera Nios II ELF(๋ฒ ์–ด๋ฉ”ํƒˆ) ํƒ€๊ฒŸ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜:

-๋ง
HAL BSP์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด GCC ์ œ๊ณต C ๋Ÿฐํƒ€์ž„ ์‹œ์ž‘๊ณผ์˜ ์—ฐ๊ฒฐ์ด ์–ต์ œ๋ฉ๋‹ˆ๋‹ค.
๋ฐ ์ข…๋ฃŒ ์ฝ”๋“œ์ด๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. -msys-crt0= ์ง€์ •ํ•˜๋‹ค
HAL BSP์—์„œ ์ œ๊ณตํ•˜๋Š” ๋Œ€์ฒด ์‹œ์ž‘ ์ฝ”๋“œ์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

-msmallc
C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ œํ•œ๋œ ๋ฒ„์ „๊ณผ ๋งํฌ, -lsmallc, ๋Œ€์‹  Newlib.

-msys-crt0=์‹œ์ž‘ ํŒŒ์ผ
์‹œ์ž‘ ํŒŒ์ผ ๋งํฌํ•  ๋•Œ ์‚ฌ์šฉํ•  ์‹œ์ž‘ ํŒŒ์ผ(crt0)์˜ ํŒŒ์ผ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜
์™€ ํ•จ๊ป˜๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. -๋ง.

-msys-lib=์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ €์ˆ˜์ค€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด "์ฝ๊ธฐ" ๋ฐ "์“ฐ๊ธฐ"์™€ ๊ฐ™์ด C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ
HAL BSP์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์—”๋น„๋””์•„ PTX ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ Nvidia PTX์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-m32
-m64
32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ABI์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mmainkernel
__main ์ปค๋„์šฉ ์ฝ”๋“œ์— ๋งํฌํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”„๋กœ๋”ฉ์ด ์•„๋‹Œ ๋…๋ฆฝ ์‹คํ–‰ํ˜•์ž…๋‹ˆ๋‹ค.
์‹คํ–‰.

PDP-11 ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ PDP-11์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mfpu
ํ•˜๋“œ์›จ์–ด FPP ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. (FIS ๋ถ€๋™ ์†Œ์ˆ˜์ 
PDP-11/40์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

-msoft-float
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mac0
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฒฐ๊ณผ๋ฅผ ac0(Unix ์–ด์…ˆ๋ธ”๋Ÿฌ ๊ตฌ๋ฌธ์˜ fr0)์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

-mno-ac0
๋ฉ”๋ชจ๋ฆฌ์— ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-m40
PDP-11/40์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m45
PDP-11/45์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-m10
PDP-11/10์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mbcopy ๋‚ด์žฅ
๋ฉ”๋ชจ๋ฆฌ ๋ณต์‚ฌ์— ์ธ๋ผ์ธ "movmemhi" ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mbcopy
๋ฉ”๋ชจ๋ฆฌ ๋ณต์‚ฌ์— ์ธ๋ผ์ธ "movmemhi" ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-๋ฏผํŠธ16
-mno-int32
16๋น„ํŠธ "int"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-๋ฏผํŠธ32
-mno-int16
32๋น„ํŠธ "int"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mfloat64
-mno-float32
64๋น„ํŠธ "๋ถ€๋™"์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mfloat32
-mno-float64
32๋น„ํŠธ "๋ถ€๋™"์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-๋ง›์‹œ
"abshi2" ํŒจํ„ด์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-abshi
"abshi2" ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mbranch-๋น„์‹ผ
๊ฐ€์ง€๊ฐ€ ๋น„์‹ผ ์ฒ™ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ฝ”๋“œ ์ƒ์„ฑ์„ ์‹คํ—˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋กœ ์ž‘์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mbranch-์ €๋ ดํ•œ
๊ฐ€์ง€๊ฐ€ ๋น„์‹ผ ์ฒ™ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-munix-asm
Unix ์–ด์…ˆ๋ธ”๋Ÿฌ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. pdp11-*-bsd.

-mdec-asm
DEC ์–ด์…ˆ๋ธ”๋Ÿฌ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ชจ๋“  PDP-11 ๋Œ€์ƒ์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
์ด์™ธ์˜ pdp11-*-bsd.

ํ”ผ์ฝ”์นฉ ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ PicoChip ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-๋งค=ae_type
์–ด๋ ˆ์ด์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ์„ธํŠธ, ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ ๋ฐ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •
์š”์†Œ ์œ ํ˜• ae_type. ์ง€์›๋˜๋Š” ๊ฐ’ ae_type are ์ด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ด์šฉํ•˜์„ธ์š”, MUL๋ฐ ๋งฅ.

-๋งค=ANY ์™„์ „ํžˆ ์ผ๋ฐ˜์ ์ธ AE ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ ์‹คํ–‰
๋‹ค๋ฅธ AE ์œ ํ˜• ์ค‘ ํ•˜๋‚˜์—์„œ. ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ๋œ ๊ฒฝ์šฐ๋งŒํผ ํšจ์œจ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํŠน์ • AE ์œ ํ˜•์— ๋Œ€ํ•ด ์ผ๋ถ€ ์œ ํ˜•์˜ ์—ฐ์‚ฐ(์˜ˆ: ๊ณฑ์…ˆ)์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
๋ชจ๋“  ์œ ํ˜•์˜ AE์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-๋งค=MUL MUL AE ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์— ๊ฐ€์žฅ ์œ ์šฉํ•œ AE ์œ ํ˜•์ž…๋‹ˆ๋‹ค.
๋ฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-๋งค=๋งฅ DSP ์Šคํƒ€์ผ์˜ MAC AE๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
DSP AE๊ฐ€ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”์ดํŠธ(char) ์กฐ์ž‘์˜ ์—ด์•…ํ•œ ์„ฑ๋Šฅ
๋ฐ”์ดํŠธ ๋กœ๋“œ/์ €์žฅ์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด ์ง€์›.

-msymbol-์ฃผ์†Œ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋กœ๋“œ/์ €์žฅ์—์„œ ์ฃผ์†Œ๋กœ ๊ธฐํ˜ธ ์ด๋ฆ„์„ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ์— ๋จผ์ € ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ๋ช…๋ น. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์‚ฌ์šฉ
์˜ต์…˜์€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋Š” ๋” ํฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋‹จ, ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ์„ ํƒ์‚ฌํ•ญ์œผ๋กœ ๋‚จ๊ฒจ๋‘๊ณ ,
์˜๊ตฌ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ

-mno-inefficiency-warnings
๋น„ํšจ์œจ์ ์ธ ์ฝ”๋“œ ์ƒ์„ฑ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋Š”
์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ”์ดํŠธ ์ˆ˜์ค€ ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
MAC AE ์œ ํ˜•์—์„œ. MAC AE๋Š” ๋ฐ”์ดํŠธ ์ˆ˜์ค€ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด ์ง€์›์ด ์—†์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ๋ฐ”์ดํŠธ ๋กœ๋“œ/์ €์žฅ์€ ์›Œ๋“œ ๋กœ๋“œ/์ €์žฅ์—์„œ ํ•ฉ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ž‘์—…. ์ด๋Š” ๋น„ํšจ์œจ์ ์ด๋ฉฐ ๋‹ค์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
๋ฐ”์ดํŠธ ์—ฐ์‚ฐ์„ ํ”ผํ•˜๊ฑฐ๋‚˜
ํ•„์š”ํ•œ ํ•˜๋“œ์›จ์–ด ์ง€์›. ์ด ์˜ต์…˜์€ ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

PowerPC ์˜ต์…˜

์ด๋“ค์€ ์•„๋ž˜์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค

RL78 ์˜ต์…˜

-msim
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋‚ด์—์„œ ์ž‘์—…์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๋Œ€์ƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋งํฌ.

-mmul=์—†์Œ
-mmul=g13
-mmul=rl78
์‚ฌ์šฉํ•  ํ•˜๋“œ์›จ์–ด ๊ณฑ์…ˆ ์ง€์› ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
์—†์Œ, ์†Œํ”„ํŠธ์›จ์–ด ๊ณฑ์…ˆ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. NS g13 ์˜ต์…˜์€
ํ•˜๋“œ์›จ์–ด๋Š” RL78/G13 ํƒ€๊ฒŸ์—์„œ๋งŒ ์ฃผ๋ณ€ ์žฅ์น˜๋ฅผ ๊ณฑํ•˜๊ฑฐ๋‚˜ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. NS rl78 ์˜ต์…˜์€
RL78 ์†Œํ”„ํŠธ์›จ์–ด ๋งค๋‰ด์–ผ์— ์ •์˜๋œ ํ‘œ์ค€ ํ•˜๋“œ์›จ์–ด ๊ณฑ์…ˆ์šฉ.

-m64bit-๋”๋ธ”
-m32bit-๋”๋ธ”
"์ด์ค‘" ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ 64๋น„ํŠธ(-m64bit-๋”๋ธ”) ๋˜๋Š” 32๋น„ํŠธ(-m32bit-๋”๋ธ”)
ํฌ๊ธฐ์—. ๊ธฐ๋ณธ๊ฐ’์€ -m32bit-๋”๋ธ”.

IBM RS/6000 ๊ณผ PowerPC ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ IBM RS/6000 ๋ฐ PowerPC์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mpowerpc-gpopt
-mno-powerpc-gpopt
-mpowerpc-gfxopt
-mno-powerpc-gfxopt
-mpowerpc64
-mno-powerpc64
-mmfcrf
-mno-mfcrf
-mpopcntb
-mno-popcntb
-mpopcntd
-mno-popcntd
-mfprnd
-mno-fprnd
-mcmpb
-mno-cmpb
-mmfpgpr
-mno-mfpgpr
-mhard-dfp
-mno-ํ•˜๋“œ-dfp
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์„œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ต์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ GCC๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
์ง€์ • -mcpu =CPU_์œ ํ˜• ์ด๋Ÿฌํ•œ ์˜ต์…˜์˜ ์‚ฌ์–‘์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ
๋‹น์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค -mcpu =CPU_์œ ํ˜• ์œ„์— ๋‚˜์—ด๋œ ์˜ต์…˜์ด ์•„๋‹Œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์ง€์ • -mpowerpc-gpopt GCC๊ฐ€ ์˜ต์…˜์ธ PowerPC ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์ œ๊ณฑ๊ทผ์„ ํฌํ•จํ•œ ๋ฒ”์šฉ ๊ทธ๋ฃน์˜ ๋ช…๋ น์–ด.
์ง€์ • -mpowerpc-gfxopt GCC๊ฐ€ ์˜ต์…˜์ธ PowerPC ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์„ ํƒ์„ ํฌํ•จํ•œ ๊ทธ๋ž˜ํ”ฝ ๊ทธ๋ฃน์˜ ๋ช…๋ น์–ด.

ใ€€ -mmfcrf ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ์กฐ๊ฑด ๋ ˆ์ง€์Šคํ„ฐ ํ•„๋“œ์—์„œ ์ด๋™์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
POWER4 ํ”„๋กœ์„ธ์„œ ๋ฐ ์ง€์›ํ•˜๋Š” ๊ธฐํƒ€ ํ”„๋กœ์„ธ์„œ์—์„œ ๊ตฌํ˜„๋œ ๋ช…๋ น
PowerPC V2.01 ์•„ํ‚คํ…์ฒ˜. NS -mpopcntb ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ํŒ์นด์šดํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
POWER5์— ๊ตฌํ˜„๋œ ๋ฐฐ์ •๋ฐ€๋„ FP ์—ญ์ถ”์ • ๋ช…๋ น์–ด
PowerPC V2.02 ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœ์„ธ์„œ ๋ฐ ๊ธฐํƒ€ ํ”„๋กœ์„ธ์„œ. NS
-mpopcntd ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC์—์„œ ๊ตฌํ˜„๋œ popcount ๋ช…๋ น์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
PowerPC V7 ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•˜๋Š” POWER2.06 ํ”„๋กœ์„ธ์„œ ๋ฐ ๊ธฐํƒ€ ํ”„๋กœ์„ธ์„œ.
ใ€€ -mfprnd ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ FP๋ฅผ ์ •์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
POWER5+ ํ”„๋กœ์„ธ์„œ ๋ฐ PowerPC๋ฅผ ์ง€์›ํ•˜๋Š” ๊ธฐํƒ€ ํ”„๋กœ์„ธ์„œ์—์„œ ๊ตฌํ˜„
V2.03 ์•„ํ‚คํ…์ฒ˜. NS -mcmpb ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ๋น„๊ต ๋ฐ”์ดํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
POWER6 ํ”„๋กœ์„ธ์„œ ๋ฐ ์ง€์›ํ•˜๋Š” ๊ธฐํƒ€ ํ”„๋กœ์„ธ์„œ์—์„œ ๊ตฌํ˜„๋œ ๋ช…๋ น
PowerPC V2.05 ์•„ํ‚คํ…์ฒ˜. NS -mmfpgpr ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ FP ์ด๋™์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
POWER6X ํ”„๋กœ์„ธ์„œ์— ๊ตฌํ˜„๋œ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ ๋ช…๋ น์–ด ๋ฐ
ํ™•์žฅ๋œ PowerPC V2.05 ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ. NS -mhard-dfp
์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC์—์„œ ๊ตฌํ˜„๋œ XNUMX์ง„์ˆ˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ถ€ POWER ํ”„๋กœ์„ธ์„œ.

ใ€€ -mpowerpc64 ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ์ถ”๊ฐ€ 64๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „์ฒด PowerPC64 ์•„ํ‚คํ…์ฒ˜์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ GPR์„ 64๋น„ํŠธ, ๋”๋ธ”์›Œ๋“œ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜๋Ÿ‰. GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ -mno-powerpc64.

-mcpu =CPU_์œ ํ˜•
์•„ํ‚คํ…์ฒ˜ ์œ ํ˜•, ๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์šฉ ๋ฐ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •
๊ธฐ๊ณ„ ์œ ํ˜• CPU_์œ ํ˜•. ์ง€์›๋˜๋Š” ๊ฐ’ CPU_์œ ํ˜• are 401, 403, 405, 405fp, 440,
440fp, 464, 464fp, 476, 476fp, 505, 601, 602, 603, 603e, 604, 604e, 620, 630, 740,
7400, 7450, 750, 801, 821, 823, 860, 970, 8540, a2, e300c2, e300c3, e500mc, e500mc64,
e5500, e6500, EC603e, G3, G4, G5, ํƒ€์ดํƒ„, power3, power4, power5, ํŒŒ์›Œ5+, power6,
ํŒŒ์›Œ6x, power7, power8, ์ „์›, ํŒŒ์›Œ pc64, ํŒŒ์›Œ pc64le๋ฐ rs64.

-mcpu=ํŒŒ์›ŒPC, -mcpu=powerpc64๋ฐ -mcpu=powerpc64le ์ˆœ์ˆ˜ 32๋น„ํŠธ PowerPC ์ง€์ •
(๋‘˜ ์ค‘ ํ•˜๋‚˜), 64๋น„ํŠธ ๋น… ์—”๋””์•ˆ PowerPC ๋ฐ 64๋น„ํŠธ ๋ฆฌํ‹€ ์—”๋””์•ˆ PowerPC
์ ์ ˆํ•œ ์ผ๋ฐ˜ ํ”„๋กœ์„ธ์„œ ๋ชจ๋ธ์ด ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ๋จธ์‹  ์œ ํ˜•
์Šค์ผ€์ค„๋ง ๋ชฉ์ .

๋‹ค๋ฅธ ์˜ต์…˜์€ ํŠน์ • ํ”„๋กœ์„ธ์„œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜ต์…˜์—์„œ ์ƒ์„ฑ๋œ ์ฝ”๋“œ
ํ•ด๋‹น ํ”„๋กœ์„ธ์„œ์—์„œ ๊ฐ€์žฅ ์ž˜ ์‹คํ–‰๋˜๋ฉฐ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ใ€€ -mcpu options๋Š” ๋‹ค์Œ ์˜ต์…˜์„ ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋งํ‹ฐ๋ฒก -mfprnd -mhard-float -mmfcrf -m๋‹ค์ค‘ -mpopcntb -mpopcntd -mpowerpc64
-mpowerpc-gpopt -mpowerpc-gfxopt -msingle-float -m๋”๋ธ” ํ”Œ๋กœํŠธ -ms๋‹จ์ˆœ-fpu -mstring
-mmulhw -mdlmzb -mmfpgpr -mvsx -mcrypto -mdirect-์ด๋™ -mpower8-ํ“จ์ „
-mpower8-๋ฒกํ„ฐ -mquad-๋ฉ”๋ชจ๋ฆฌ -mquad-๋ฉ”๋ชจ๋ฆฌ-์›์ž

ํŠน์ • CPU์— ๋Œ€ํ•ด ์„ค์ •๋œ ํŠน์ • ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์–ด๋–ค ์„ค์ •์ด ํ•ด๋‹น CPU์— ๋Œ€ํ•œ ์ตœ์ ์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š”์ง€์— ๋”ฐ๋ผ; ๊ทธ๊ฒƒ์€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๋ฐ˜๋“œ์‹œ ์‹ค์ œ ํ•˜๋“œ์›จ์–ด์˜ ๊ธฐ๋Šฅ์„ ๋ฐ˜์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์„ ์›ํ•˜์‹œ๋ฉด
๊ฐœ๋ณ„ ์˜ต์…˜์„ ํŠน์ • ๊ฐ’์œผ๋กœ ์ง€์ •ํ•˜๋ ค๋ฉด -mcpu ์„ ํƒ๊ถŒ,
์ฒ˜๋Ÿผ -mcpu=970 -mno-altivec.

AIX์—์„œ๋Š” -๋งํ‹ฐ๋ฒก ๊ณผ -mpowerpc64 ์˜ต์…˜์€ -mcpu
AIX๋Š” ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ํ•  ์ˆ˜์žˆ๋‹ค
์—ฌ์ „ํžˆ ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐœ๋ณ„์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mtune=CPU_์œ ํ˜•
๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • CPU_์œ ํ˜•, ๊ทธ๋Ÿฌ๋‚˜ ์„ค์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค
์•„ํ‚คํ…์ฒ˜ ์œ ํ˜• ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์šฉ -mcpu =CPU_์œ ํ˜• ํ•˜๋‹ค. ์— ๋Œ€ํ•œ ๋™์ผํ•œ ๊ฐ’
CPU_์œ ํ˜• ์— ์‚ฌ์šฉ๋œ๋‹ค -mtune ์— ๊ด€ํ•ด์„œ -mcpu. ๋‘˜ ๋‹ค ์ง€์ •ํ•˜๋ฉด ์ƒ์„ฑ๋œ ์ฝ”๋“œ
์— ์˜ํ•ด ์„ค์ •๋œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. -mcpu, ๊ทธ๋Ÿฌ๋‚˜ ์— ์˜ํ•ด ์„ค์ •๋œ ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜
-mtune.

-mcmodel=์ž‘์€
์†Œํ˜• ๋ชจ๋ธ์šฉ PowerPC64 ์ฝ”๋“œ ์ƒ์„ฑ: TOC๋Š” 64k๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

-mcmodel=์ค‘๊ฐ„
์ค‘ํ˜• ๋ชจ๋ธ์— ๋Œ€ํ•œ PowerPC64 ์ฝ”๋“œ ์ƒ์„ฑ: TOC ๋ฐ ๊ธฐํƒ€ ์ •์  ๋ฐ์ดํ„ฐ๊ฐ€ ์ž‘๋™ ์ค‘์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด 4G ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.

-mcmodel=๋Œ€ํ˜•
๋Œ€ํ˜• ๋ชจ๋ธ์— ๋Œ€ํ•œ PowerPC64 ์ฝ”๋“œ ์ƒ์„ฑ: TOC์˜ ํฌ๊ธฐ๋Š” ์ตœ๋Œ€ 4G์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ
๋ฐ์ดํ„ฐ์™€ ์ฝ”๋“œ๋Š” 64๋น„ํŠธ ์ฃผ์†Œ ๊ณต๊ฐ„์— ์˜ํ•ด์„œ๋งŒ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

-๋งํ‹ฐ๋ฒก
-mno-altivec
AltiVec ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”(์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”) ์ฝ”๋“œ ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
AltiVec ๋ช…๋ น์–ด ์„ธํŠธ์— ๋Œ€ํ•œ ๋ณด๋‹ค ์ง์ ‘์ ์ธ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜.
์„ค์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -๋งˆ๋น„=์•Œํ‹ฐ๋ฒก AltiVec ABI๋กœ ํ˜„์žฌ ABI ์กฐ์ •
ํ–ฅ์ƒ.

์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -๋งํ‹ฐ๋ฒก ๋ณด๋‹ค๋Š” ์‚ฌ์šฉ๋œ๋‹ค -maltivec=๋ฅด or -maltivec=๋ฒ , ์š”์†Œ ์ˆœ์„œ
"vec_splat", "vec_extract" ๋ฐ "vec_insert" ์ผ์น˜์™€ ๊ฐ™์€ Altivec ๋‚ด์žฅ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ
๋Œ€์ƒ์˜ ์—”๋””์•ˆ(endianness)์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด ์š”์†Œ ์ˆœ์„œ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์š”์†Œ
XNUMX์€ ๋น… ์—”๋””์•ˆ์„ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ ๋ฒกํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๊ฐ€์žฅ ์™ผ์ชฝ ์š”์†Œ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
ํ”Œ๋žซํผ์„ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ ๋ฒกํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์š”์†Œ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
๋ฆฌํ‹€ ์—”๋””์•ˆ ํ”Œ๋žซํผ.

-maltivec=๋ฒ 
์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋น… ์—”๋””์•ˆ ์š”์†Œ ์ˆœ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Altivec ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ์€ ๋น… ์—”๋””์•ˆ ๋˜๋Š” ๋ฆฌํ‹€ ์—”๋””์•ˆ์ž…๋‹ˆ๋‹ค. ๋น… ์—”๋””์•ˆ์„ ํƒ€๊ฒŸํŒ…ํ•  ๋•Œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

์š”์†Œ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ Altivec ๋‚ด์žฅ ํ•จ์ˆ˜์—์„œ ์š”์†Œ ๋ฒˆํ˜ธ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
"vec_splat", "vec_extract" ๋ฐ "vec_insert". ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ผ์น˜ ๋ฐฐ์—ด ์š”์†Œ๋Š”
๋Œ€์ƒ์— ๋Œ€ํ•œ ์—”๋””์•ˆ(endianness)์— ํ•ด๋‹นํ•˜๋Š” ์ˆœ์„œ.

-maltivec=๋ฅด
์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋ฆฌํ‹€ ์—”๋””์•ˆ ์š”์†Œ ์ˆœ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Altivec ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ์€ ๋น… ์—”๋””์•ˆ ๋˜๋Š” ๋ฆฌํ‹€ ์—”๋””์•ˆ์ž…๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ํƒ€๊ฒŸํŒ…ํ•  ๋•Œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
์—”๋””์•ˆ ํ”Œ๋žซํผ. ์ด ์˜ต์…˜์€ ํ˜„์žฌ ๋น… ์—”๋””์•ˆ์„ ํƒ€๊ฒŸํŒ…ํ•  ๋•Œ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

์š”์†Œ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ Altivec ๋‚ด์žฅ ํ•จ์ˆ˜์—์„œ ์š”์†Œ ๋ฒˆํ˜ธ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
"vec_splat", "vec_extract" ๋ฐ "vec_insert". ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ผ์น˜ ๋ฐฐ์—ด ์š”์†Œ๋Š”
๋Œ€์ƒ์— ๋Œ€ํ•œ ์—”๋””์•ˆ(endianness)์— ํ•ด๋‹นํ•˜๋Š” ์ˆœ์„œ.

-mvrsave
-mno-vrsave
AltiVec ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ VRSAVE ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mgen-cell-๋งˆ์ดํฌ๋กœ์ฝ”๋“œ
Cell ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mwarn-cell-๋งˆ์ดํฌ๋กœ์ฝ”๋“œ
Cell ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ ๋ช…๋ น์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. Cell ๋งˆ์ดํฌ๋กœ์ฝ”๋“œ์˜ ์˜ˆ
๋ช…๋ น์–ด๋Š” ๊ฐ€๋ณ€ ์‹œํ”„ํŠธ์ž…๋‹ˆ๋‹ค.

-msecure-plt
ํ—ˆ์šฉํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ld ๊ณผ ld.so ์‹คํ–‰ ํŒŒ์ผ ๋ฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋นŒ๋“œ
์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ".plt" ๋ฐ ".got" ์„น์…˜. ์ด๊ฒƒ์€ PowerPC 32๋น„ํŠธ SYSV ABI ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

-mbss-plt
BSS ".plt" ์„น์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ld.so ์ฑ„์šฐ๊ณ  ".plt"๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ".got" ์„น์…˜. ์ด๊ฒƒ์€ PowerPC 32๋น„ํŠธ์ž…๋‹ˆ๋‹ค.
SYSV ABI ์˜ต์…˜.

-๋ฏธ์ ค
-mno-isel
์ด ์Šค์œ„์น˜๋Š” ISEL ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋ฏธ์ ค=์˜ˆ ์•„๋‹ˆ์˜ค
์ด ์Šค์œ„์น˜๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -๋ฏธ์ ค ๊ณผ -mno-isel ๋Œ€์‹ .

-mspe
-mno-sp
์ด ์Šค์œ„์น˜๋Š” SPE simd ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-์ง์ด ๋œ
-mno ์Œ
์ด ์Šค์œ„์น˜๋Š” PAIRED simd ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mspe=์˜ˆ ์•„๋‹ˆ์˜ค
์ด ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋‹ค -mspe ๊ณผ -mno-sp ๋Œ€์‹ .

-mvsx
-mno-vsx
๋ฒกํ„ฐ/์Šค์นผ๋ผ(VSX) ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”(์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”) ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
VSX์— ๋Œ€ํ•œ ๋ณด๋‹ค ์ง์ ‘์ ์ธ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋‚ด์žฅ ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ์„ธํŠธ.

-mcrypto
-mno-์•”ํ˜ธํ™”
์ง์ ‘ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋‚ด์žฅ ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”(๋น„ํ™œ์„ฑํ™”)
PowerPC ISA ๋ฒ„์ „ 2.07์— ์ถ”๊ฐ€๋œ ์•”ํ˜ธํ™” ๋ช…๋ น.

-mdirect-์ด๋™
-mno-์ง์ ‘ ์ด๋™
๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š”(์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”) ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ
๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ์— ์ถ”๊ฐ€๋œ ๋ฒกํ„ฐ/์Šค์นผ๋ผ(VSX) ๋ ˆ์ง€์Šคํ„ฐ
PowerPC ISA ๋ฒ„์ „ 2.07.

-mpower8-ํ“จ์ „
-mno-power8-ํ“จ์ „
์ผ๋ถ€ ์ •์ˆ˜ ์—ฐ์‚ฐ์„ ์ธ์ ‘ํ•˜๊ฒŒ ์œ ์ง€(์œ ์ง€ํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ
๋ช…๋ น์€ power8 ์ด์ƒ ํ”„๋กœ์„ธ์„œ์—์„œ ํ•จ๊ป˜ ์œตํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mpower8-๋ฒกํ„ฐ
-mno-power8-๋ฒกํ„ฐ
๋ฒกํ„ฐ ๋ฐ ์Šค์นผ๋ผ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
PowerPC ISA ๋ฒ„์ „ 2.07์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •
๋ฒกํ„ฐ ๋ช…๋ น์–ด์— ๋ณด๋‹ค ์ง์ ‘์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mquad-๋ฉ”๋ชจ๋ฆฌ
-mno ์ฟผ๋“œ ๋ฉ”๋ชจ๋ฆฌ
๋น„์›์ž ์ฟผ๋“œ ์›Œ๋“œ ๋ฉ”๋ชจ๋ฆฌ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”(์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”) ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ใ€€ -mquad-๋ฉ”๋ชจ๋ฆฌ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 64๋น„ํŠธ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mquad-๋ฉ”๋ชจ๋ฆฌ-์›์ž
-mno-์ฟผ๋“œ-๋ฉ”๋ชจ๋ฆฌ-์›์ž
์›์ž ์ฟผ๋“œ ์›Œ๋“œ ๋ฉ”๋ชจ๋ฆฌ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”(์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”) ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. NS
-mquad-๋ฉ”๋ชจ๋ฆฌ-์›์ž ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 64๋น„ํŠธ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mupper-regs-df
-mno-upper-regs-df
์Šค์นผ๋ผ ๋ฐฐ์ •๋ฐ€๋„ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ฒกํ„ฐ/์Šค์นผ๋ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ์˜ ๋ชจ๋“  64๊ฐœ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
PowerPC ISA ๋ฒ„์ „ 2.06์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -mupper-regs-df ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉ -mcpu=ํŒŒ์›Œ7, -mcpu=ํŒŒ์›Œ8๋ฐ -mvsx ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mupper-regs-sf
-mno-upper-regs-sf
์Šค์นผ๋ผ ๋‹จ์ •๋ฐ€๋„ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ฒกํ„ฐ/์Šค์นผ๋ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ์˜ ๋ชจ๋“  64๊ฐœ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
PowerPC ISA ๋ฒ„์ „ 2.07์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -mupper-regs-sf ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉ -mcpu=ํŒŒ์›Œ8 or -mpower8-๋ฒกํ„ฐ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mupper-regs
-mno-์ƒ์œ„-regs
64๊ฐœ ๋ชจ๋‘๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์Šค์นผ๋ผ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
์˜ ๋ชจ๋ธ์— ๋”ฐ๋ผ ๋ฒกํ„ฐ/์Šค์นผ๋ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ์˜ ๋ ˆ์ง€์Šคํ„ฐ
๊ธฐ๊ณ„.

๊ฒฝ์šฐ -mno-์ƒ์œ„-regs ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‘˜ ๋‹ค ๊บผ์ง‘๋‹ˆ๋‹ค. -mupper-regs-sf ๊ณผ
-mupper-regs-df ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mfloat-gprs=์˜ˆ/์‹ฑ๊ธ€/๋”๋ธ”/์•„๋‹ˆ์š”
-mfloat-gprs
์ด ์Šค์œ„์น˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์ง€์›ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜์šฉ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ.

๋…ผ์Ÿ ๊ฑฐ๋ฆฌ ์˜ˆ or ๋‹จ์ผ ๋‹จ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ž‘์—….

๋…ผ์Ÿ ๊ฑฐ๋ฆฌ ๋”๋ธ” ๋‹จ์ •๋ฐ€๋„ ๋ฐ ๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ž‘์—….

๋…ผ์Ÿ ๊ฑฐ๋ฆฌ ์•„๋‹ˆ ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ํ˜„์žฌ MPC854x์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-m32
-m64
Darwin ๋ฐ SVR32 ๋Œ€์ƒ์˜ 64๋น„ํŠธ ๋˜๋Š” 4๋น„ํŠธ ํ™˜๊ฒฝ์šฉ ์ฝ”๋“œ ์ƒ์„ฑ(ํฌํ•จ
GNU/๋ฆฌ๋ˆ…์Šค). 32๋น„ํŠธ ํ™˜๊ฒฝ์€ int, long ๋ฐ ํฌ์ธํ„ฐ๋ฅผ 32๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๊ณ 
๋ชจ๋“  PowerPC ๋ณ€ํ˜•์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 64๋น„ํŠธ ํ™˜๊ฒฝ์€ int๋ฅผ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
32๋น„ํŠธ ๋ฐ long ๋ฐ 64๋น„ํŠธ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด PowerPC64์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
-mpowerpc64.

-mfull-toc
-mno-fp-in-toc
-mno-ํ•ฉ๊ณ„-๋ชฉ์ฐจ
-์ตœ์†Œ-toc
๋ชจ๋“  ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ƒ์„ฑ๋˜๋Š” TOC(๋ชฉ์ฐจ) ์ƒ์„ฑ ์ˆ˜์ •
์‹คํ–‰ ๊ฐ€๋Šฅ ํŒŒ์ผ. NS -mfull-toc ์˜ต์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ GCC๋Š”
๊ฐ ๊ณ ์œ ํ•œ ๋น„์ž๋™ ๋ณ€์ˆ˜ ์ฐธ์กฐ์— ๋Œ€ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ TOC ํ•ญ๋ชฉ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ. GCC๋Š” ๋˜ํ•œ TOC์— ๋ถ€๋™ ์†Œ์ˆ˜์  ์ƒ์ˆ˜๋ฅผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ,
16,384๊ฐœ์˜ ํ•ญ๋ชฉ์ด TOC์— ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์˜ค๋ฒ„ํ”Œ๋กœํ–ˆ๋‹ค๋Š” ๋ง์ปค ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ
TOC ๊ณต๊ฐ„, ๋‹น์‹ ์€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” TOC ๊ณต๊ฐ„์˜ ์–‘์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -mno-fp-in-toc ๊ณผ
-mno-ํ•ฉ๊ณ„-๋ชฉ์ฐจ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. -mno-fp-in-toc GCC๊ฐ€ ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ๋„ฃ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋ชฉ์ฐจ์˜ ์ƒ์ˆ˜ ๋ฐ -mno-ํ•ฉ๊ณ„-๋ชฉ์ฐจ GCC๊ฐ€ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ํ•ฉ๊ณ„๋ฅผ TOC์— ๋„ฃ๋Š” ๋Œ€์‹  ๋Ÿฐํƒ€์ž„์— ์ฃผ์†Œ์™€ ์ƒ์ˆ˜์˜ ํ•ฉ๊ณ„.
์ด ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋‘˜ ๋‹ค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์€ GCC๊ฐ€ ๋งค์šฐ
TOC ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๋Š” ๋Œ€์‹  ์•ฝ๊ฐ„ ๋” ๋Š๋ฆฌ๊ณ  ๋” ํฐ ์ฝ”๋“œ.

์ด ๋‘ ์˜ต์…˜์„ ๋ชจ๋‘ ์ง€์ •ํ–ˆ๋Š”๋ฐ๋„ ๋ชฉ์ฐจ์˜ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด
์ง€์ •ํ•˜๋‹ค -์ตœ์†Œ-toc ๋Œ€์‹ ์—. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ๋‹ค์Œ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ TOC ํ•ญ๋ชฉ๋งŒ
๋ชจ๋“  ํŒŒ์ผ. ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜๋ฉด GCC๋Š” ๋” ๋Š๋ฆฌ๊ณ  ๋” ํฐ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋งค์šฐ ์ ์€ TOC ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋œ ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ.

-maix64
-maix32
64๋น„ํŠธ AIX ABI ๋ฐ ํ˜ธ์ถœ ๊ทœ์น™ ์‚ฌ์šฉ: 64๋น„ํŠธ ํฌ์ธํ„ฐ, 64๋น„ํŠธ "long" ์œ ํ˜• ๋ฐ
๊ทธ๋“ค์„ ์ง€์›ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ธํ”„๋ผ. ์ง€์ • -maix64 ์˜๋ฏธํ•˜๋‹ค -mpowerpc64,
๋™์•ˆ -maix32 64๋น„ํŠธ ABI๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  -mno-powerpc64. GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ
-maix32.

-mxl-ํ˜ธํ™˜
-mno-xl-์ปดํŒจํŠธ
AIX-
ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ABI. ๋ถ€๋™ ์†Œ์ˆ˜์  ์ธ์ˆ˜๋ฅผ ๋‹ค์Œ์„ ๋„˜์–ด ํ”„๋กœํ† ํƒ€์ž…๋œ ํ•จ์ˆ˜์— ์ „๋‹ฌ
์ธ์ˆ˜ FPR ์™ธ์— ์Šคํƒ์— ์ €์žฅ ์˜์—ญ(RSA)์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค
128๋น„ํŠธ long double ๊ฐ’์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ double์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ ์ ˆํ•˜๊ฒŒ ๋ฐ˜์˜ฌ๋ฆผ๋ฉ๋‹ˆ๋‹ค.
๊ฐ’์„ ๋น„๊ตํ•˜๊ณ  double๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. long double์— XL ๊ธฐํ˜ธ ์ด๋ฆ„ ์‚ฌ์šฉ
๋ฃจํ‹ด์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

AIX ํ˜ธ์ถœ ๊ทœ์น™์ด ํ™•์žฅ๋˜์—ˆ์ง€๋งŒ ์ฒ˜์Œ์—๋Š” ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ธ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์ทจํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ชจํ˜ธํ•œ K&R C ์‚ฌ๋ก€
์„ ์–ธ๋œ ๊ฒƒ๋ณด๋‹ค ์ ์€ ์ธ์ˆ˜. IBM XL ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ์ธ์ˆ˜์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ธŒ๋ฃจํ‹ด์ด ๋‹ค์Œ ์—†์ด ์ปดํŒŒ์ผ๋  ๋•Œ ์Šคํƒ์˜ RSA์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™”. ์Šคํƒ์— ๋ถ€๋™ ์†Œ์ˆ˜์  ์ธ์ˆ˜๋ฅผ ํ•ญ์ƒ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€
๋น„ํšจ์œจ์ ์ด๊ณ  ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™” ์—†์ด IBM XL ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ปดํŒŒ์ผ๋œ ์„œ๋ธŒ๋ฃจํ‹ด์„ ํ˜ธ์ถœํ•  ๋•Œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

-mp
๊ณ ๊ฐ ์ง€์› IBM RS/6000 SP ํ‰ํ–‰ ํ™˜๊ฒฝ (์ฒด์œก). ์‚ฌ์šฉํ•˜๋„๋ก ์ž‘์„ฑ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์—ฐ๊ฒฐ
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠน์ˆ˜ ์‹œ์ž‘ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. NS
์‹œ์Šคํ…œ์—๋Š” ํ‘œ์ค€ ์œ„์น˜(/usr/lpp/ppe.poe/), ์•„๋‹ˆ๋ฉด ๊ทธ
๋ช…์„ธ์„œ ํŒŒ์ผ์€ ๋‹ค์Œ์œผ๋กœ ์žฌ์ •์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -์‚ฌ์–‘= ์ ์ ˆํ•œ ์ง€์ • ์˜ต์…˜
๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜. ๋ณ‘๋ ฌ ํ™˜๊ฒฝ์€ ์Šค๋ ˆ๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ -mp
์˜ต์…˜๊ณผ -pthread ์˜ต์…˜์ด ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์•…์„ฑ - ์ž์—ฐ
-์•…์˜๋ ฅ
AIX, 32๋น„ํŠธ Darwin ๋ฐ 64๋น„ํŠธ PowerPC GNU/Linux์—์„œ ์˜ต์…˜ -์•…์„ฑ - ์ž์—ฐ
๋ถ€๋™ ์†Œ์ˆ˜์  double๊ณผ ๊ฐ™์€ ๋” ํฐ ์œ ํ˜•์˜ ABI ์ •์˜ ์ •๋ ฌ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ž์—ฐ ํฌ๊ธฐ ๊ธฐ๋ฐ˜ ๊ฒฝ๊ณ„์—์„œ. ์˜ต์…˜ -์•…์˜๋ ฅ GCC์— ์ง€์‹œ
ABI ์ง€์ • ์ •๋ ฌ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‘œ์ค€ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ABI์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

64๋น„ํŠธ Darwin์—์„œ๋Š” ์ž์—ฐ ์ •๋ ฌ์ด ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ -์•…์˜๋ ฅ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์ง€์›.

-msoft-float
-mhard-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉ)ํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—๋ฎฌ๋ ˆ์ด์…˜์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. -msoft-float ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  ํ†ต๊ณผ
๋งํฌํ•  ๋•Œ GCC์— ์˜ต์…˜.

-msingle-float
-m๋”๋ธ” ํ”Œ๋กœํŠธ
๋‹จ์ •๋ฐ€๋„ ๋˜๋Š” ๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
-m๋”๋ธ” ํ”Œ๋กœํŠธ ์˜๋ฏธํ•˜๋‹ค -msingle-float.

-ms๋‹จ์ˆœ-fpu
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„์— ๋Œ€ํ•ด "sqrt" ๋ฐ "div" ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

-mfpu=name
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„์˜ ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ ๊ฐ’ name are sp_lite ์— (๋™๋“ฑํ•œ
-msingle-float -ms๋‹จ์ˆœ-fpu), dp_lite ์— (๋™๋“ฑํ•œ -m๋”๋ธ” ํ”Œ๋กœํŠธ -ms๋‹จ์ˆœ-fpu),
sp_full ์— (๋™๋“ฑํ•œ -msingle-float), ๊ทธ๋ฆฌ๊ณ  dp_๊ฐ€๋“ ์— (๋™๋“ฑํ•œ -m๋”๋ธ” ํ”Œ๋กœํŠธ).

-mxilinx-fpu
Xilinx PPC 405/440์—์„œ ๋ถ€๋™ ์†Œ์ˆ˜์  ์žฅ์น˜์— ๋Œ€ํ•œ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

-m๋‹ค์ค‘
-mno-๋‹ค์ค‘
์—ฌ๋Ÿฌ ๋‹จ์–ด ๋กœ๋“œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ๋ฐ
์—ฌ๋Ÿฌ ๋‹จ์–ด ๋ช…๋ น์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์ง€์นจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
POWER ์‹œ์Šคํ…œ์ด๋ฉฐ PowerPC ์‹œ์Šคํ…œ์—์„œ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š” -m๋‹ค์ค‘ ์กฐ๊ธˆ์—-
์—”๋””์•ˆ PowerPC ์‹œ์Šคํ…œ์€ ํ”„๋กœ์„ธ์„œ๊ฐ€
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ. ์˜ˆ์™ธ๋Š” ๋‹ค์Œ์„ ํ—ˆ์šฉํ•˜๋Š” PPC740 ๋ฐ PPC750์ž…๋‹ˆ๋‹ค.
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์˜ ๋ช…๋ น์–ด.

-mstring
-mno-๋ฌธ์ž์—ด
๋กœ๋“œ ๋ฌธ์ž์—ด ๋ช…๋ น์–ด์™€ ์Šคํ† ์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
์—ฌ๋Ÿฌ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ž‘์€ ๋ธ”๋ก ์ด๋™์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฌธ์ž์—ด ์›Œ๋“œ ๋ช…๋ น์–ด. ์ด๊ฒƒ๋“ค
๋ช…๋ น์–ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ POWER ์‹œ์Šคํ…œ์—์„œ ์ƒ์„ฑ๋˜๋ฉฐ PowerPC์—์„œ๋Š” ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ. ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š” -mstring ๋ฆฌํ‹€ ์—”๋””์•ˆ PowerPC ์‹œ์Šคํ…œ์—์„œ๋Š”
ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์— ์žˆ์„ ๋•Œ ๋ช…๋ น์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ํ—ˆ์šฉํ•˜๋Š” PPC740 ๋ฐ PPC750์ž…๋‹ˆ๋‹ค.

-์—…๋ฐ์ดํŠธ
-mno-์—…๋ฐ์ดํŠธ
์—…๋ฐ์ดํŠธํ•˜๋Š” ๋กœ๋“œ ๋˜๋Š” ์ €์žฅ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
๊ธฐ๋ณธ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ณ„์‚ฐ๋œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์˜ ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด ์ง€์นจ
๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -mno-์—…๋ฐ์ดํŠธ, ์‚ฌ์ด์— ์ž‘์€ ์ฐฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์Šคํƒ ํฌ์ธํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์ด์ „ ํ”„๋ ˆ์ž„์˜ ์ฃผ์†Œ๊ฐ€
์ด๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๋˜๋Š” ์‹ ํ˜ธ๋ฅผ ๊ฐ€๋กœ์งˆ๋Ÿฌ ์Šคํƒ ํ”„๋ ˆ์ž„์„ ์ด๋™ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€
์†์ƒ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

-mavoid-์ƒ‰์ธ ์ฃผ์†Œ
-mno-avoid-์ƒ‰์ธ ์ฃผ์†Œ
์ธ๋ฑ์‹ฑ๋œ ๋กœ๋“œ ๋˜๋Š” ์ €์žฅ์˜ ์‚ฌ์šฉ์„ ํ”ผํ•˜๋ ค๋Š”(ํšŒํ”ผํ•˜์ง€ ์•Š๋Š”) ์ฝ”๋“œ ์ƒ์„ฑ
์ง€์นจ. ์ด๋Ÿฌํ•œ ๋ช…๋ น์€ Power6 ํ”„๋กœ์„ธ์„œ์—์„œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
16M์„ ๋„˜๋Š” ๋Œ€ํ˜• ์–ด๋ ˆ์ด๋ฅผ ํ†ต๊ณผํ•  ๋•Œ์™€ ๊ฐ™์€ ํŠน์ • ์ƒํ™ฉ์—์„œ
๊ฒฝ๊ณ„. ์ด ์˜ต์…˜์€ Power6์„ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜๊ณ  ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด.

-๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ
-mno-์œตํ•ฉ-๋งค๋“œ
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณฑํ•˜๊ธฐ ๋ฐ ๋ˆ„์ ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
์ง€์นจ. ์ด๋Ÿฌํ•œ ๋ช…๋ น์–ด๋Š” ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ. ๊ธฐ๊ณ„ ์˜์กด -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ ์ด์ œ ์˜ต์…˜์ด ์‹œ์Šคํ…œ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
๋…๋ฆฝ -ffp-๊ณ„์•ฝ=๋น ๋ฅธ ์˜ต์…˜ ๋ฐ -mno-์œตํ•ฉ-๋งค๋“œ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค
-ffp-๊ณ„์•ฝ=ํ•ด์ œ.

-mmulhw
-mno-๋ฌผํ
ํ•˜ํ”„์›Œ๋“œ ๊ณฑ์…ˆ ๋ฐ ๊ณฑ์…ˆ ๋ˆ„์‚ฐ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
IBM 405, 440, 464 ๋ฐ 476 ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ง€์นจ. ์ด๋Ÿฌํ•œ ์ง€์นจ์€
ํ•ด๋‹น ํ”„๋กœ์„ธ์„œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

-mdlmzb
-mno-dlmzb
๋ฌธ์ž์—ด ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ dlmzb IBM์— ๋Œ€ํ•œ ์ง€์‹œ
405, 440, 464 ๋ฐ 476 ํ”„๋กœ์„ธ์„œ. ์ด ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ํ”„๋กœ์„ธ์„œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

-mno ๋น„ํŠธ ์ •๋ ฌ
-mbit ์ •๋ ฌ
System V.4์™€ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ๊ตฌ์กฐ์™€ ๊ฒฐํ•ฉ์„ ๊ฐ•์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋น„ํŠธ ํ•„๋“œ์˜ ๊ธฐ๋ณธ ์œ ํ˜•์— ๋งž์ถฐ ์ •๋ ฌ๋  ๋น„ํŠธ ํ•„๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ์ ์œผ๋กœ 8๊ฐœ์˜ "๋ถ€ํ˜ธ ์—†๋Š”" ๋น„ํŠธ ํ•„๋“œ๋งŒ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ
๊ธธ์ด 1์€ 4๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฐ ์ •๋ ฌ๋˜๋ฉฐ ํฌ๊ธฐ๋Š” 4๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์—ฌ
-mno ๋น„ํŠธ ์ •๋ ฌ, ๊ตฌ์กฐ๋Š” 1๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฐ ์ •๋ ฌ๋˜๊ณ  ํฌ๊ธฐ๋Š” 1๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค.

-mno-์—„๊ฒฉํ•œ ์ •๋ ฌ
-mstrict-์ •๋ ฌ
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ฐธ์กฐ๋Š” ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

-m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ
-mno ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ
์ •์  ์‹คํ–‰ ํŒŒ์ผ์„
๋Ÿฐํƒ€์ž„์— ๋‹ค๋ฅธ ์ฃผ์†Œ. ๊ฐ„๋‹จํ•œ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ ๋กœ๋”๋Š”
".got2"์˜ ์ „์ฒด ๋‚ด์šฉ๊ณผ ".fixup"์— ๋‚˜์—ด๋œ 4๋ฐ”์ดํŠธ ์œ„์น˜๋ฅผ ์žฌ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
์„น์…˜, ์ด ์˜ต์…˜์— ์˜ํ•ด ์ƒ์„ฑ๋œ 32๋น„ํŠธ ์ฃผ์†Œ ํ…Œ์ด๋ธ”. ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ๋ชจ๋“ 
ํ•จ๊ป˜ ์—ฐ๊ฒฐ๋œ ๊ฐœ์ฒด๋Š” ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ or -mrelocateable-lib.
-m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์ฝ”๋“œ๋Š” ์Šคํƒ์„ 8๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฅ๋‹ˆ๋‹ค.

-mrelocateable-lib
-mno-relocateable-lib
์ฒ˜๋Ÿผ -m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ, -mrelocateable-lib ์ •์ ์„ ํ—ˆ์šฉํ•˜๋Š” ".fixup"์„น์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์‹คํ–‰ ํŒŒ์ผ์€ ๋Ÿฐํƒ€์ž„์— ์žฌ๋ฐฐ์น˜๋˜์ง€๋งŒ -mrelocateable-lib ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค
๋” ์ž‘์€ ์Šคํƒ ์ •๋ ฌ -m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ. ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๊ฐ์ฒด -mrelocateable-lib ๏ผ•์›”
๋ชจ๋“  ์กฐํ•ฉ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๊ฐœ์ฒด์™€ ์—ฐ๊ฒฐ -m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mno-toc
-mtoc
System V.4์™€ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ 2๊ฐ€ ๋‹ค์Œ์„ ํฌํ•จํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ „์—ญ ์˜์—ญ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ.

-์กฐ๊ธˆ
-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ํ”„๋กœ์„ธ์„œ์šฉ ์ฝ”๋“œ๋ฅผ ์•ฝ๊ฐ„์˜ ์ปดํŒŒ์ผ
์—”๋””์•ˆ ๋ชจ๋“œ. NS -๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -์กฐ๊ธˆ.

-mbig
-mbig-์—”๋””์•ˆ
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ํ”„๋กœ์„ธ์„œ์šฉ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
์—”๋””์•ˆ ๋ชจ๋“œ. NS -mbig-์—”๋””์•ˆ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -mbig.

-mdynamic-no-pic
Darwin ๋ฐ Mac OS X ์‹œ์Šคํ…œ์—์„œ๋Š” ์žฌ๋ฐฐ์น˜ํ•  ์ˆ˜ ์—†๋„๋ก ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์ง€๋งŒ
์™ธ๋ถ€ ์ฐธ์กฐ๋Š” ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ๋‹ค์Œ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด์ง€๋งŒ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

-msingle-pic-base
PIC ์ฃผ์†Œ ์ง€์ •์— ์‚ฌ์šฉ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค.
๊ฐ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ”„๋กค๋กœ๊ทธ. ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ์€ ์ด๊ฒƒ์„ ์ดˆ๊ธฐํ™”ํ•  ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์‹คํ–‰์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ ์ ˆํ•œ ๊ฐ’์œผ๋กœ ๋“ฑ๋กํ•˜์‹ญ์‹œ์˜ค.

- ์šฐ์„  ์ˆœ์œ„ ์ œํ•œ - inns =์šฐ์„ 
์ด ์˜ต์…˜์€ ๋””์ŠคํŒจ์น˜ ์Šฌ๋กฏ ์ œํ•œ์— ํ• ๋‹น๋˜๋Š” ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ์Šค์ผ€์ค„๋ง ํŒจ์Šค ๋™์•ˆ ์ง€์‹œ. ๋…ผ์Ÿ ๊ฑฐ๋ฆฌ ์šฐ์„  ๊ฐ€์น˜๋ฅผ ์ทจํ•˜๋‹ค
0, 1๋ฐ 2 ์•„๋‹ˆ์˜ค, ๊ฐ€์žฅ ๋†’๊ฑฐ๋‚˜ ๋‘ ๋ฒˆ์งธ๋กœ ๋†’์€(๊ฐ๊ฐ) ์šฐ์„  ์ˆœ์œ„๋ฅผ ํ• ๋‹น
๋””์ŠคํŒจ์น˜ ์Šฌ๋กฏ ์ œํ•œ ์ง€์นจ.

-msched-๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š”-dep=์˜์กด ์œ ํ˜•
์ด ์˜ต์…˜์€ ๋Œ€์ƒ์—์„œ ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์ข…์†์„ฑ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋ช…๋ น ์Šค์ผ€์ค„๋ง. ๋…ผ์Ÿ ๊ฑฐ๋ฆฌ ์˜์กด ์œ ํ˜• ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค.
๊ฐ’ :

์•„๋‹ˆ ์˜์กด์„ฑ ๋น„์šฉ์ด ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ชจ๋“  ์˜์กด์„ฑ์€ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค.

true_store_to_load
์ƒ์ ์—์„œ ๋กœ๋“œ๊นŒ์ง€์˜ ์ง„์ •ํ•œ ์˜์กด์€ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค.

store_to_load
์ €์žฅ์†Œ์—์„œ ๋กœ๋“œ๊นŒ์ง€์˜ ๋ชจ๋“  ์ข…์†์„ฑ์€ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค.

๋ฒˆํ˜ธ
๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋‹ค์Œ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ชจ๋“  ์ข…์†์„ฑ ๋ฒˆํ˜ธ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค.

-minsert-sched-nops=๊ณ„ํš
์ด ์˜ต์…˜์€ ๋‘ ๋ฒˆ์งธ ์Šค์ผ€์ค„๋ง ์ค‘์— ์‚ฌ์šฉ๋˜๋Š” NOP ์‚ฝ์ž… ๋ฐฉ์‹์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
ํ†ต๊ณผํ•˜๋‹ค. ๋…ผ์Ÿ ๊ฑฐ๋ฆฌ ๊ณ„ํš ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ NOP๋ฅผ ์‚ฝ์ž…ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ธ์ฃผ ์— ๋”ฐ๋ผ ๋นˆ ๋ฌธ์ œ ์Šฌ๋กฏ์ด ์žˆ๋Š” ๋ชจ๋“  ๋””์ŠคํŒจ์น˜ ๊ทธ๋ฃน์„ NOP๋กœ ์ฑ„์šฐ์‹ญ์‹œ์˜ค.
์Šค์ผ€์ค„๋Ÿฌ์˜ ๊ทธ๋ฃนํ™”.

์žฌ๊ทธ๋ฃน_์ •ํ™•
๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ข…์† ์ˆ™๋ฐ• ์‹œ์„ค์„ ๋ณ„๋„์˜ ๊ทธ๋ฃน์œผ๋กœ ๊ฐ•์ œํ•˜๋ ค๋ฉด NOP๋ฅผ ์‚ฝ์ž…ํ•˜์„ธ์š”. ์ •ํ™•ํžˆ ์‚ฝ์ž…
์ถ”์ •์— ๋”ฐ๋ผ ์ƒˆ ๊ทธ๋ฃน์— ์—ฌ๊ด€์„ ๊ฐ•์ œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋งŒํผ์˜ NOP
ํ”„๋กœ์„ธ์„œ ๊ทธ๋ฃนํ™”.

๋ฒˆํ˜ธ
๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ข…์† ์ˆ™๋ฐ• ์‹œ์„ค์„ ๋ณ„๋„์˜ ๊ทธ๋ฃน์œผ๋กœ ๊ฐ•์ œํ•˜๋ ค๋ฉด NOP๋ฅผ ์‚ฝ์ž…ํ•˜์„ธ์š”. ๋ผ์›Œ ๋„ฃ๋‹ค ๋ฒˆํ˜ธ
NOP๋Š” ์—ฌ๊ด€์„ ์ƒˆ ๊ทธ๋ฃน์— ๊ฐ•์ œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mcall-sysv
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜ธ์ถœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
System V Application Binary Interface, PowerPC์˜ 1995๋…„ XNUMX์›” ์ดˆ์•ˆ ์ค€์ˆ˜
ํ”„๋กœ์„ธ์„œ ๋ณด์ถฉ. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ GCC๋ฅผ ๊ตฌ์„ฑํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
powerpc-*-eabiaix.

-mcall-sysv-eabi
-mcall-eabi
๋‘˜ ๋‹ค ์ง€์ • -mcall-sysv ๊ณผ -๋ฉ”์ด๋น„ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mcall-sysv-noeabi
๋‘˜ ๋‹ค ์ง€์ • -mcall-sysv ๊ณผ -mno-eabi ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mcall-aixdesc
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ AIX ์šด์˜ ์ฒด์ œ์šฉ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

-mcall-๋ฆฌ๋ˆ…์Šค
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ Linux ๊ธฐ๋ฐ˜ GNU์šฉ ์ปดํŒŒ์ผ ์ฝ”๋“œ
์‹œ์Šคํ…œ.

-mcall-freebsd
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ FreeBSD ์šด์˜์„ ์œ„ํ•œ ์ฝ”๋“œ ์ปดํŒŒ์ผ
์‹œ์Šคํ…œ.

-mcall-netbsd
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ NetBSD ์šด์˜์„ ์œ„ํ•œ ์ฝ”๋“œ ์ปดํŒŒ์ผ
์‹œ์Šคํ…œ.

-mcall-openbsd
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ OpenBSD ์šด์˜์„ ์œ„ํ•œ ์ฝ”๋“œ ์ปดํŒŒ์ผ
์‹œ์Šคํ…œ.

-maix-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜
๋ฉ”๋ชจ๋ฆฌ์˜ ๋ชจ๋“  ๊ตฌ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค(AIX ABI์—์„œ ์ง€์ •ํ•œ ๋Œ€๋กœ).

-msvr4-๊ตฌ์กฐ์ฒด ๋ฐ˜ํ™˜
๋ ˆ์ง€์Šคํ„ฐ์—์„œ 8๋ฐ”์ดํŠธ๋ณด๋‹ค ์ž‘์€ ๊ตฌ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค(SVR4 ABI์— ์˜ํ•ด ์ง€์ •๋จ).

-๋งˆ๋น„=์•„๋น„ํ˜•
ํŠน์ • ํ™•์žฅ์œผ๋กœ ํ˜„์žฌ ABI๋ฅผ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Ÿฌํ•œ ํ™•์žฅ์„ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค. ์œ ํšจํ•œ
๊ฐ’์€ ์•Œํ‹ฐ๋ฒก, ๋ฌด์•Œํ‹ฐ๋ฒก, spe, ๋…ธ์ŠคํŽ˜, ibmlongdouble, ieeelongdouble, ์—˜ํ”„1,
์—˜ํ”„2.

-๋งˆ๋น„=์ŠคํŽ˜
SPE ABI ํ™•์žฅ์œผ๋กœ ํ˜„์žฌ ABI๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ ABI๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉฐ,
๋Œ€์‹  ํ˜„์žฌ ABI์— SPE ABI ํ™•์žฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

-๋งˆ๋น„=๋…ธ์ŠคํŽ˜
ํ˜„์žฌ ABI์— ๋Œ€ํ•ด Book-E SPE ABI ํ™•์žฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋งˆ๋น„=ibmlongdouble
IBM ํ™•์žฅ ์ •๋ฐ€๋„ long double์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ˜„์žฌ ABI๋ฅผ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค. ํŒŒ์›Œํ”ผ์”จ์ž…๋‹ˆ๋‹ค
32๋น„ํŠธ SYSV ABI ์˜ต์…˜.

-mabi=์ด์—๋กฑ๋”๋ธ”
IEEE ํ™•์žฅ ์ •๋ฐ€๋„ long double์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ˜„์žฌ ABI๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์›Œํ”ผ์”จ์ž…๋‹ˆ๋‹ค
32๋น„ํŠธ Linux ABI ์˜ต์…˜.

-๋งˆ๋น„=์—˜ํ”„v1
ELFv1 ABI๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ˜„์žฌ ABI๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋น… ์—”๋””์•ˆ์˜ ๊ธฐ๋ณธ ABI์ž…๋‹ˆ๋‹ค.
PowerPC 64๋น„ํŠธ ๋ฆฌ๋ˆ…์Šค. ๊ธฐ๋ณธ ABI๋ฅผ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด ํŠน๋ณ„ํ•œ ์‹œ์Šคํ…œ ์ง€์›์ด ํ•„์š”ํ•˜๋ฉฐ
๋†€๋ผ์šด ๋ฐฉ์‹์œผ๋กœ ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

-๋งˆ๋น„=์—˜ํ”„v2
ELFv2 ABI๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ˜„์žฌ ABI๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž‘์€-
endian PowerPC 64๋น„ํŠธ Linux. ๊ธฐ๋ณธ ABI๋ฅผ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด ํŠน๋ณ„ํ•œ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ง€์›ํ•˜๊ณ  ๋†€๋ผ์šด ๋ฐฉ์‹์œผ๋กœ ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

-mํ”„๋กœํ† ํƒ€์ž…
-mno ํ”„๋กœํ† ํƒ€์ž…
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ๋ชจ๋“  ํ˜ธ์ถœ์€ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์ด ์ œ๋Œ€๋กœ ํ”„๋กœํ† ํƒ€์ž…๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์กฐ๊ฑด ์ฝ”๋“œ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๋น„ํŠธ 6์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์ง€์šฐ๊ธฐ ์œ„ํ•ด ํ”„๋กœํ† ํƒ€์ž…์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ํ˜ธ์ถœ ์ „์—
("CR") ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์ด ๋ถ€๋™ ์†Œ์ˆ˜์ ์œผ๋กœ ์ „๋‹ฌ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๊ฐ€ ๋ณ€์ˆ˜ ์ธ์ˆ˜๋ฅผ ์ทจํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ -mํ”„๋กœํ† ํƒ€์ž…, ํ†ตํ™”๋งŒ
ํ”„๋กœํ† ํƒ€์ž…๋œ ๊ฐ€๋ณ€ ์ธ์ˆ˜ ํ•จ์ˆ˜์— ๋น„ํŠธ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์ง€์›๋‹ˆ๋‹ค.

-msim
์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์‹œ์ž‘ ๋ชจ๋“ˆ์ด ํ˜ธ์ถœ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. sim-crt0.o ๊ณผ
ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” libsim.a ๊ณผ libc.a. ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
powerpc-*-์—๋น„์‹ฌ ๊ตฌ์„ฑ.

-mmvme
์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์‹œ์ž‘ ๋ชจ๋“ˆ์ด ํ˜ธ์ถœ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. crt0.o ๊ทธ๋ฆฌ๊ณ 
ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” libmvme.a ๊ณผ libc.a.

- ๋ฏธ์นœ
์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์‹œ์ž‘ ๋ชจ๋“ˆ์ด ํ˜ธ์ถœ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. crt0.o ๊ทธ๋ฆฌ๊ณ 
ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” libads.a ๊ณผ libc.a.

-๊ณจ์ˆ˜์นผ
์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์‹œ์ž‘ ๋ชจ๋“ˆ์ด ํ˜ธ์ถœ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. crt0.o ๊ทธ๋ฆฌ๊ณ 
ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” libyk.a ๊ณผ libc.a.

-mvxworks
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์ปดํŒŒ์ผ ์ค‘์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.
VxWorks ์‹œ์Šคํ…œ.

-๋ฉค๋ฒ„
์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ELF ํ”Œ๋ž˜๊ทธ ํ—ค๋”์˜ "PPC_EMB" ๋น„ํŠธ๋ฅผ ์„ค์ •ํ•˜์—ฌ
๊ทธ ์—๋น„ ํ™•์žฅ ์žฌ๋ฐฐ์น˜๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-๋ฉ”์ด๋น„
-mno-eabi
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ Embedded
์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์„ธํŠธ์ธ EABI(Application Binary Interface)
V.4 ์‚ฌ์–‘. ์„ ํƒ -๋ฉ”์ด๋น„ ์Šคํƒ์ด 8๋ฐ”์ดํŠธ๋กœ ์ •๋ ฌ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ„์—์„œ "__eabi" ํ•จ์ˆ˜๋Š” "main"์—์„œ ํ˜ธ์ถœ๋˜์–ด EABI ํ™˜๊ฒฝ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  -msdata ์˜ต์…˜์€ "r2"์™€ "r13"์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€์—ญ. ์„ ํƒ -mno-eabi ์Šคํƒ์ด 16๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฐ ์ •๋ ฌ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
EABI ์ดˆ๊ธฐํ™” ํ•จ์ˆ˜๋Š” "main"์—์„œ ํ˜ธ์ถœ๋˜๋ฉฐ, -msdata ์˜ต์…˜๋งŒ ์‚ฌ์šฉ
"r13"์€ ํ•˜๋‚˜์˜ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. NS -๋ฉ”์ด๋น„ ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋œ GCC powerpc*-*-eabi* ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-msdata=์—๋น„
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์ดˆ๊ธฐํ™”๋œ ์ž‘์€ "const" ์ „์—ญ ๋ฐ
๋ ˆ์ง€์Šคํ„ฐ "r2"๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ".sdata2" ์„น์…˜์˜ ์ •์  ๋ฐ์ดํ„ฐ. ์ž‘๊ฒŒ ๋„ฃ์–ด
".sdata" ์„น์…˜์—์„œ ์ดˆ๊ธฐํ™”๋œ ๋น„ "const" ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ
๋ ˆ์ง€์Šคํ„ฐ "r13"์ด ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ž‘์€ ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ
".sdata" ์„น์…˜์— ์ธ์ ‘ํ•œ ".sbss" ์„น์…˜. NS -msdata=์—๋น„ ์„ ํƒ๊ถŒ
์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค -m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์„ ํƒ๊ถŒ. ๊ทธ๋งŒํผ -msdata=์—๋น„ ์˜ต์…˜์€ ๋˜ํ•œ
-๋ฉค๋ฒ„ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-msdata=sysv
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์ž‘์€ ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ
๋ ˆ์ง€์Šคํ„ฐ "r13"์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ".sdata" ์„น์…˜. ์ž‘์€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋„ฃ์–ด
".sdata"์— ์ธ์ ‘ํ•œ ".sbss" ์„น์…˜์˜ ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ
๋ถ€๋ถ„. NS -msdata=sysv ์˜ต์…˜์ด ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -m ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-msdata=๊ธฐ๋ณธ๊ฐ’
-msdata
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ -๋ฉ”์ด๋น„ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ๋™์ผํ•˜๊ฒŒ ์ปดํŒŒ์ผ
as -msdata=์—๋น„, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. -msdata=sysv.

-msdata=๋ฐ์ดํ„ฐ
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ".sdata"์— ์ž‘์€ ์ „์—ญ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.
๋ถ€๋ถ„. ".sbss" ์„น์…˜์— ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ž‘์€ ์ „์—ญ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”
๊ทธ๋Ÿฌ๋‚˜ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด "r13"์„ ๋“ฑ๋กํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์Œ์ด ์•„๋‹ˆ๋ฉด ๊ธฐ๋ณธ ๋™์ž‘์ž…๋‹ˆ๋‹ค.
other -msdata ์˜ต์…˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-msdata=์—†์Œ
-mno-sdata
์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์ดˆ๊ธฐํ™”๋œ ๋ชจ๋“  ์ „์—ญ ๋ฐ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ".data"์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
์„น์…˜ ๋ฐ ".bss" ์„น์…˜์˜ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ.

-mblock-์ด๋™-์ธ๋ผ์ธ-์ œํ•œ=NUM
๋ชจ๋“  ๋ธ”๋ก ์ด๋™(์˜ˆ: "memcpy" ๋˜๋Š” ๊ตฌ์กฐ ๋ณต์‚ฌ๋ณธ ํ˜ธ์ถœ)์„ ์ธ๋ผ์ธํ•˜๊ฑฐ๋‚˜
๋™์ผ NUM ๋ฐ”์ดํŠธ. ์— ๋Œ€ํ•œ ์ตœ์†Œ๊ฐ’ NUM 32๋น„ํŠธ ๋Œ€์ƒ์—์„œ๋Š” 32๋ฐ”์ดํŠธ์ด๊ณ  64๋น„ํŠธ์—์„œ๋Š”
64๋น„ํŠธ ๋Œ€์ƒ์—์„œ ๋ฐ”์ดํŠธ. ๊ธฐ๋ณธ๊ฐ’์€ ๋Œ€์ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

-G NUM
์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ์ „์—ญ ๋ฐ ์ •์  ํ•ญ๋ชฉ์„ ๋‹ค์Œ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ NUM
์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋˜๋Š” BSS ์„น์…˜ ๋Œ€์‹  ์ž‘์€ ๋ฐ์ดํ„ฐ ๋˜๋Š” BSS ์„น์…˜์— ๋ฐ”์ดํŠธ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ, NUM 8์ž…๋‹ˆ๋‹ค. -G NUM ์Šค์œ„์น˜๋„ ๋ง์ปค๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ชจ๋“ˆ
๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ปดํŒŒ์ผํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค -G NUM ๊ฐ’.

-mregnames
-mno-regnames
System V.4 ๋ฐ ์ž„๋ฒ ๋””๋“œ PowerPC ์‹œ์Šคํ…œ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„์„ ๋‚ด๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐํ˜ธ ํ˜•์‹์„ ์‚ฌ์šฉํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด ์ถœ๋ ฅ

-mlongcall
-mno-longcall
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ํ˜ธ์ถœ์ด ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ ๋” ๊ธธ๊ณ  ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค.
ํ˜ธ์ถœ ์ˆœ์„œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. 32MB ์ด์ƒ์˜ ํ†ตํ™”์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
(33,554,432๋ฐ”์ดํŠธ) ํ˜„์žฌ ์œ„์น˜์—์„œ. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์งง์€ ํ†ตํ™”๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ˜ธ์ถœ์ด ๊ทธ๋ ‡๊ฒŒ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ๋‹ค์Œ์œผ๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"๋‹จ๊ธฐ ํ˜ธ์ถœ" ๊ธฐ๋Šฅ ์†์„ฑ ๋˜๋Š” "#pragma" ๋กฑ์ฝœ(0)".

์ผ๋ถ€ ๋ง์ปค๋Š” ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ํ˜ธ์ถœ์„ ๊ฐ์ง€ํ•˜๊ณ  ๊ธ€๋ฃจ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ๋ฆฌ. ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ธด ํ˜ธ์ถœ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋” ๋Š๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์ด
์ด ๊ธ€์—์„œ AIX ๋ง์ปค๋Š” PowerPC/64์šฉ GNU ๋ง์ปค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ
32๋น„ํŠธ PowerPC ์‹œ์Šคํ…œ์šฉ GNU ๋ง์ปค์—๋„ ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

Darwin/PPC ์‹œ์Šคํ…œ์—์„œ "#pragma longcall"์€ "jbsr callee, L42"๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ง€์‚ฌ
์„ฌ (์ ‘์ฐฉ ์ฝ”๋“œ). ๋‘ ๊ฐœ์˜ ๋Œ€์ƒ ์ฃผ์†Œ๋Š” ์ˆ˜์‹ ์ž์™€ ๋ถ„๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์„ฌ. Darwin/PPC ๋ง์ปค๋Š” ์ฒซ ๋ฒˆ์งธ ์ฃผ์†Œ๋ฅผ ์„ ํ˜ธํ•˜๊ณ  "bl callee"๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
PPC "bl" ๋ช…๋ น์ด ์ˆ˜์‹ ์ž์—๊ฒŒ ์ง์ ‘ ๋„๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ; ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ง์ปค
๋ธŒ๋žœ์น˜ ์•„์ผ๋žœ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด "bl L42"๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋žœ์น˜ ์•„์ผ๋žœ๋“œ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
ํ˜ธ์ถœ ํ•จ์ˆ˜์˜ ๋ณธ์ฒด; ํ˜ธ์ถœ ์ˆ˜์‹ ์ž์˜ ์ „์ฒด 32๋น„ํŠธ ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ 
๊ทธ๊ฒƒ์— ์ ํ”„.

Mach-O(Darwin) ์‹œ์Šคํ…œ์—์„œ ์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธ€๋ฃจ๋กœ ๋ฐฉ์ถœํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์ง์ ‘ ํ˜ธ์ถœ, ๊ทธ๋ฆฌ๊ณ  Darwin ๋ง์ปค๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๋ฒ„๋ฆด์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์•ž์œผ๋กœ GCC๋Š” ๋ง์ปค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ ๋ชจ๋“  longcall ์‚ฌ์–‘์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์ ‘์ฐฉ์ œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mtls-๋งˆ์ปค
-mno-tls-๋งˆ์ปค
๊ธฐ๋Šฅ์„ ์ง€์ •ํ•˜๋Š” ์žฌ๋ฐฐ์น˜๋กœ "__tls_get_addr"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ํ‘œ์‹œ(ํ‘œ์‹œํ•˜์ง€ ์•Š์Œ)
๋…ผ์Ÿ. ์žฌ๋ฐฐ์น˜๋Š” ๋ง์ปค๊ฐ€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋‹ค์Œ๊ณผ ์•ˆ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
TLS ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์ธ์ˆ˜ ์„ค์ • ์ง€์นจ์„ ํ†ตํ•ด GCC๊ฐ€ ๋” ๋‚˜์€
์ˆœ์„œ๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.

-pthread
๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ์ง€์› ์ถ”๊ฐ€ pthread ๋„์„œ๊ด€. ์ด ์˜ต์…˜์€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ „์ฒ˜๋ฆฌ๊ธฐ์™€ ๋ง์ปค ๋ชจ๋‘.

-mrecip
-mno-recipe
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ญ ์ถ”์ • ๋ฐ ์—ญ ์ œ๊ณฑ๊ทผ ์ถ”์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋Œ€์‹  ์ •๋ฐ€๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ Newton-Raphson ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋œ ์ง€์นจ
๋ถ€๋™ ์†Œ์ˆ˜์  ์ธ์ˆ˜์— ๋Œ€ํ•ด ๋‚˜๋ˆ„๊ธฐ ๋˜๋Š” ์ œ๊ณฑ๊ทผ ๋ฐ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
์ „์—, -๋น ๋ฅธ ์ˆ˜ํ•™ ์‚ฌ์šฉ์‹œ ์˜ต์…˜ -mrecip (์•„๋‹ˆ๋ฉด ์ ์–ด๋„ -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™”,
- ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ, - ๋ถ„์ˆ˜ ์ˆ˜ํ•™ ๊ณผ -fno ํŠธ๋ž˜ํ•‘ ์ˆ˜ํ•™). ๋™์•ˆ ์ฐธ๊ณ 
์‹œํ€€์Šค์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„ ์ฒ˜๋ฆฌ๋Ÿ‰์˜ ์ฒ˜๋ฆฌ๋Ÿ‰๋ณด๋‹ค ๋†’์Šต๋‹ˆ๋‹ค.
์ƒํ˜ธ ๋ช…๋ น, ์‹œํ€€์Šค์˜ ์ •๋ฐ€๋„๋Š” ์ตœ๋Œ€ 2ulp๊นŒ์ง€ ๊ฐ์†Œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(์ฆ‰, 1.0์˜ ์—ญ์ˆ˜๋Š” 0.99999994์™€ ๊ฐ™์Œ) ์—ญ์ œ๊ณฑ๊ทผ์˜ ๊ฒฝ์šฐ.

-mrecip=๊ณ ๋ฅด๋‹ค
์ด ์˜ต์…˜์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ˜ธ ์ถ”์ • ์ง€์นจ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๋ฅด๋‹ค ํ•˜๋Š”
"!"๊ฐ€ ์•ž์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์˜ต์…˜ ๋ชฉ๋ก ์˜ต์…˜์„ ๋ฐ˜์ „์‹œํ‚ค๋ ค๋ฉด:

๋ชจ๋“  ๋ชจ๋“  ๊ฒฌ์  ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ ๊ฐ’
์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋ณธ ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -mrecip.

์—†์Œ
์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์ถ”์ • ์ง€์นจ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -mno-recipe.

DIV ๋‹จ์ผ ๋ฐ ์ด์ค‘ ๋ชจ๋‘์— ๋Œ€ํ•ด ์—ญ ๊ทผ์‚ฌ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ •๋„.

๋””๋ธŒ
๋‹จ์ •๋ฐ€๋„ ์—ญ ๊ทผ์‚ฌ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„ํ• 
๋ฐฐ์ •๋ฐ€๋„ ์—ญ์ˆ˜ ๊ทผ์‚ฌ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

RSQRT
๋‹จ์ผ ๋ฐ
์ด์ค‘ ์ •๋ฐ€๋„.

RSQRTF
๋‹จ์ •๋ฐ€๋„ ์—ญ์ œ๊ณฑ๊ทผ ๊ทผ์‚ฌ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

RSQRTD
๋ฐฐ์ •๋ฐ€๋„ ์—ญ์ œ๊ณฑ๊ทผ ๊ทผ์‚ฌ ๋ช…๋ น์–ด๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด -mrecip=๋ชจ๋‘,!rsqrtd ๋ชจ๋“  ์ƒํ˜ธ ์ถ”์ •์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
"FRSQRTE", "XSRSQRTEDP" ๋ฐ "XVRSQRTEDP" ๋ช…๋ น์–ด ์ œ์™ธ
๋ฐฐ์ •๋ฐ€๋„ ์—ญ ์ œ๊ณฑ๊ทผ ๊ณ„์‚ฐ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

-mrecip-์ •๋ฐ€๋„
-mno-precision.
์ƒํ˜ธ ์ถ”์ • ์ง€์นจ์ด ๋” ๋†’์€ ๊ฐ’์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๊ฐ€์ •(๊ฐ€์ •ํ•˜์ง€ ์•Š์Œ)
PowerPC ABI์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ •ํ™•ํ•œ ์ถ”์ •์น˜. ์„ ํƒ -mcpu=ํŒŒ์›Œ6,
-mcpu=ํŒŒ์›Œ7 or -mcpu=ํŒŒ์›Œ8 ์ž๋™์œผ๋กœ ์„ ํƒ -mrecip-์ •๋ฐ€๋„. ๋‘๋ฐฐ-
์ •๋ฐ€๋„ ์ œ๊ณฑ๊ทผ ์ถ”์ • ๋ช…๋ น์–ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ฎ์€ ๊ฐ’์—์„œ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ •๋ฐ€ ๊ธฐ๊ณ„๋Š” XNUMX ํ›„์— ์ˆ˜๋ ดํ•˜๋Š” ์ถ”์ •์น˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
๋‹จ๊ณ„.

-mveclibabi=์œ ํ˜•
์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ๋ฒกํ„ฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ABI ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ ์ง€์›๋˜๋Š” ์œ ์ผํ•œ ์œ ํ˜•์€ ์งˆ๋Ÿ‰, IBM์˜ ์ˆ˜ํ•™์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์™ธ๋ถ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ๋ฒกํ„ฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ MASS(๊ฐ€์† ํ•˜์œ„ ์‹œ์Šคํ…œ) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
๋„์„œ๊ด€. 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" ๋ฐ
power4์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ "tanhf7". ๋‘˜ ๋‹ค -ftree ๋ฒกํ„ฐํ™” ๊ณผ
-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ๋„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. MASS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋งํฌ ์‹œ๊ฐ„์— ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

-mfriz
-mno-friz
"friz" ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)ํ•  ๋•Œ -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™”
์˜ต์…˜์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์˜ ๋ฐ˜์˜ฌ๋ฆผ์„ 64๋น„ํŠธ ์ •์ˆ˜๋กœ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ
๋ถ€๋™ ์†Œ์ˆ˜์ ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. "friz" ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋™์ผํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ์ •์ˆ˜์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์ค‘์ฒฉ ํ•จ์ˆ˜์— ๋Œ€ํ•œ mpointers
-์ค‘์ฒฉ ํ•จ์ˆ˜์— ๋Œ€ํ•œ mno ํฌ์ธํ„ฐ
์ •์  ์ฒด์ธ ๋ ˆ์ง€์Šคํ„ฐ("r11")๋ฅผ ๋กœ๋“œํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)ํ•  ๋•Œ
ํ•จ์ˆ˜ ํฌ์ธํ„ฐ๊ฐ€ ์žˆ๋Š” AIX ๋ฐ 64๋น„ํŠธ Linux ์‹œ์Šคํ…œ์—์„œ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ
ํ•จ์ˆ˜ ์ฃผ์†Œ, ๋กœ๋“œํ•  TOC ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” 3์›Œ๋“œ ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ "r2" ๋ฐ ๋ ˆ์ง€์Šคํ„ฐ "r11"์— ๋กœ๋“œํ•  ์ •์  ์ฒด์ธ ๊ฐ’. NS
-์ค‘์ฒฉ ํ•จ์ˆ˜์— ๋Œ€ํ•œ mpointers ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ค‘์ฒฉ๋œ ํ•จ์ˆ˜ ๋˜๋Š” ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ •์  ์ฒด์ธ -์ค‘์ฒฉ ํ•จ์ˆ˜์— ๋Œ€ํ•œ mno ํฌ์ธํ„ฐ.

-msave-toc-๊ฐ„์ ‘
-mno-save-toc-๊ฐ„์ ‘
์˜ˆ์•ฝ๋œ ์Šคํƒ ์œ„์น˜์— TOC ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)
ํ•จ์ˆ˜๊ฐ€ AIX ๋ฐ 64๋น„ํŠธ์˜ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ํ•จ์ˆ˜ ํ”„๋กค๋กœ๊ทธ์—์„œ
๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ. TOC ๊ฐ’์ด ํ”„๋กค๋กœ๊ทธ์— ์ €์žฅ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ง์ „์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•œ ํ˜ธ์ถœ NS -mno-save-toc-๊ฐ„์ ‘ ์˜ต์…˜์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mcompat-์ •๋ ฌ-parm
-mno-compat-align-parm
์ตœ๋Œ€ ์ •๋ ฌ๋กœ ๊ตฌ์กฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ(์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)
์ด์ „ ๋ฒ„์ „์˜ GCC์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด 64๋น„ํŠธ์ž…๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์˜ GCC(4.9.0 ์ด์ „)๋Š” ๊ตฌ์กฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ž˜๋ชป ์ •๋ ฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น ๊ตฌ์กฐ์— 128๋น„ํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋ฉค๋ฒ„๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ 128๋น„ํŠธ ๊ฒฝ๊ณ„์—์„œ
์กฐ์ •. ์ด๊ฒƒ์€ ์ตœ์‹  ๋ฒ„์ „์˜ GCC์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์˜ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜์™€ ํ˜ธํ™˜๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด
gcc.

ใ€€ -mno-compat-align-parm ์˜ต์…˜์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

RX ์˜ต์…˜

๋‹ค์Œ ๋ช…๋ น์ค„ ์˜ต์…˜์€ RX ๋Œ€์ƒ์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-m64bit-๋”๋ธ”
-m32bit-๋”๋ธ”
"์ด์ค‘" ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ 64๋น„ํŠธ(-m64bit-๋”๋ธ”) ๋˜๋Š” 32๋น„ํŠธ(-m32bit-๋”๋ธ”)
ํฌ๊ธฐ์—. ๊ธฐ๋ณธ๊ฐ’์€ -m32bit-๋”๋ธ”. ์ฃผ์˜ ์‚ฌํ•ญ RX ๋ถ€๋™ ์†Œ์ˆ˜์  ํ•˜๋“œ์›จ์–ด๋งŒ ์ž‘๋™
32๋น„ํŠธ ๊ฐ’์—์„œ ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -m32bit-๋”๋ธ”.

-fpu
-๋…ธํ‘ธ
ํ™œ์„ฑํ™”(-fpu) ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”(-๋…ธํ‘ธ) RX ๋ถ€๋™ ์†Œ์ˆ˜์  ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ. NS
๊ธฐ๋ณธ๊ฐ’์€ RX600 ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋˜๊ณ  RX200 ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋Š” 32๋น„ํŠธ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์— ๋Œ€ํ•ด์„œ๋งŒ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ FPU ํ•˜๋“œ์›จ์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ณต์‹์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -m64bit-๋”๋ธ” ์˜ต์…˜์€
์ต์ˆ™ํ•œ.

์ฃผ์˜ ์‚ฌํ•ญ ๊ฒฝ์šฐ -fpu ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ๋„ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค
์ž๋™์œผ๋กœ. RX FPU ๋ช…๋ น์–ด ์ž์ฒด๊ฐ€ ์•ˆ์ „ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-mcpu =name
๋Œ€์ƒ์œผ๋กœ ํ•  RX CPU ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์ด ์ง€์›๋˜๋ฉฐ,
์ผ๋ฐ˜์ ์ธ RX600 ๊ณผ RX200 ์‹œ๋ฆฌ์ฆˆ ํ•˜๋“œ์›จ์–ด ๋ฐ ํŠน์ • RX610 CPU. ๊ธฐ๋ณธ๊ฐ’์€
RX600.

์œ ์ผํ•œ ์ฐจ์ด์ ์€ RX600 ๊ณผ RX610 ๋™๋ถ€ ํ‘œ์ค€์‹œ ๊ฐ€์•ผ ๋ฅด RX610 ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
"MVTIPL" ๋ช…๋ น.

ใ€€ RX200 ์‹œ๋ฆฌ์ฆˆ์—๋Š” ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ์—†์œผ๋ฏ€๋กœ -๋…ธํ‘ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ด ์œ ํ˜•์„ ์„ ํƒํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ

-mbig-endian-๋ฐ์ดํ„ฐ
-mlittle-endian-๋ฐ์ดํ„ฐ
๋น… ์—”๋””์•ˆ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ(์ฝ”๋“œ ์ œ์™ธ)๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
-mlittle-endian-๋ฐ์ดํ„ฐ, ์ฆ‰, ๋ฆฌํ‹€ ์—”๋””์•ˆ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

-m์ž‘์€ ๋ฐ์ดํ„ฐ ์ œํ•œ=N
๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ „์—ญ ๋ฐ ์ •์  ๋ณ€์ˆ˜์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์œผ๋กœ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์ž‘๊ณ  ๋นจ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ์ด์ง€๋งŒ ์˜์—ญ์˜ ํฌ๊ธฐ๋Š” ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ด๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€
์˜์—ญ์ด ๋„˜์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์ด RX ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
๋ ˆ์ง€์Šคํ„ฐ(๋ณดํ†ต "r13")๋Š” ์ด ์˜์—ญ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์šฉ๋„๋กœ ์˜ˆ์•ฝ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋” ์˜ค๋ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ฑฐ๋‚˜ ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๊ฐ€ ์ด ๋ ˆ์ง€์Šคํ„ฐ์— ์œ ์ง€๋˜๋Š” ๋Œ€์‹  ์Šคํƒ์— ํ‘ธ์‹œ๋˜๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

๊ณตํ†ต ๋ณ€์ˆ˜(์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜)์™€ ์ƒ์ˆ˜๋Š”
๋‹ค๋ฅธ ์„น์…˜์— ํ• ๋‹น๋˜๋ฏ€๋กœ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ๋ฐฐ์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ถœ๋ ฅ ์‹คํ–‰ ๊ฐ€๋Šฅ.

๊ธฐ๋ณธ๊ฐ’์€ ์ด ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” XNUMX์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ด ๊ธฐ๋Šฅ์€
๋” ๋†’์€ ์ตœ์ ํ™” ์ˆ˜์ค€์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋จ(-O2 ๋“ฑ) ๋•Œ๋ฌธ์—
๋ ˆ์ง€์Šคํ„ฐ ์˜ˆ์•ฝ์˜ ์ž ์žฌ์ ์œผ๋กœ ํ•ด๋กœ์šด ์˜ํ–ฅ. ๊ทธ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ๋‹ฌ๋ ค์žˆ๋‹ค.
์ด ๊ธฐ๋Šฅ์ด ํ”„๋กœ๊ทธ๋žจ์— ์œ ์šฉํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ์‹คํ—˜ํ•˜๊ณ  ๋ฐœ๊ฒฌํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค
์— ๋Œ€ํ•œ ์„ค๋ช… -mpid ์‹ค์ œ ๋“ฑ๋ก ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์œ„ํ•œ ์˜ต์…˜
์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ ํฌ์ธํ„ฐ๊ฐ€ ์„ ํƒ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

-msim
-mno-sim
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’์€ libgloss ๋ณด๋“œ๋ณ„ ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-mas100-๊ตฌ๋ฌธ
-mno-as100-๊ตฌ๋ฌธ
์–ด์…ˆ๋ธ”๋Ÿฌ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•  ๋•Œ Renesas์˜ AS100๊ณผ ํ˜ธํ™˜๋˜๋Š” ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์–ด์…ˆ๋ธ”๋Ÿฌ. ์ด ๊ตฌ๋ฌธ์€ GAS ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ๋„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ถ€
๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋˜์ง€ ์•Š๋„๋ก ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

-mmax-์ผ์ • ํฌ๊ธฐ=N
์—์„œ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์ˆ˜์˜ ์ตœ๋Œ€ ํฌ๊ธฐ(๋ฐ”์ดํŠธ)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
RX ๋ช…๋ น. RX ๋ช…๋ น์–ด ์„ธํŠธ๋Š” ์ตœ๋Œ€ 4์˜ ์ƒ์ˆ˜๋ฅผ ํ—ˆ์šฉํ•˜์ง€๋งŒ
๋ช…๋ น์–ด์—์„œ ์‚ฌ์šฉํ•  ๊ธธ์ด์˜ ๋ฐ”์ดํŠธ, ๋” ๊ธด ๊ฐ’์€ ๋” ๊ธด ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
์ง€์นจ. ๋”ฐ๋ผ์„œ ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋Š” ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์–ด์— ์‚ฌ์šฉ๋˜๋Š” ์ƒ์ˆ˜. ๋„ˆ๋ฌด ํฐ ์ƒ์ˆ˜๋Š” ๋Œ€์‹ 
์ƒ์ˆ˜ ํ’€์— ๋ฐฐ์น˜๋˜๊ณ  ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์น˜ N 0๊ณผ 4 ์‚ฌ์ด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 0(๊ธฐ๋ณธ๊ฐ’) ๋˜๋Š” 4 ๊ฐ’์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ํฌ๊ธฐ์˜ ์ƒ์ˆ˜๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

-mrelax
๋ง์ปค ์ด์™„์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ง์ปค ์ด์™„์€ ๋ง์ปค๊ฐ€
๋‹ค์–‘ํ•œ ๋ช…๋ น์–ด์˜ ๋” ์งง์€ ๋ฒ„์ „์„ ์ฐพ์•„ ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ.
๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-๋ฏผํŠธ ๋ ˆ์ง€์Šคํ„ฐ=N
๊ณ ์† ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ์˜ˆ์•ฝํ•  ๋ ˆ์ง€์Šคํ„ฐ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. NS
๊ฐ€์น˜ N 0๊ณผ 4 ์‚ฌ์ด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด 1์ด๋ฉด ๋ ˆ์ง€์Šคํ„ฐ "r13"์ด ์˜ˆ์•ฝ๋˜์–ด ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๊ณ ์† ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ ์ „์šฉ. 2์˜ ๊ฐ’์€ "r13"์„ ์˜ˆ์•ฝํ•˜๊ณ 
"r12". ๊ฐ’ 3์€ "r13", "r12" ๋ฐ "r11"์„ ์˜ˆ์•ฝํ•˜๊ณ  ๊ฐ’ 4๋Š” "r13"์„ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.
"r10"์„ ํ†ตํ•ด. ๊ธฐ๋ณธ๊ฐ’์ธ 0 ๊ฐ’์€ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์˜ˆ์•ฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-msave-ACC -์— - ์ธํ„ฐ๋ŸฝํŠธ
์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ์ด ๋ˆ„์‚ฐ๊ธฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋ณด์กดํ•ด์•ผ ํ•จ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์ผ๋ฐ˜ ์ฝ”๋“œ๊ฐ€ ๋ˆ„์‚ฐ๊ธฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
64๋น„ํŠธ ๊ณฑ์…ˆ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๋ˆ„์‚ฐ๊ธฐ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-mpid
-mno-pid
์œ„์น˜ ๋…๋ฆฝ ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์•ก์„ธ์Šค๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด
์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ธฐ๋ณธ ์ฃผ์†Œ์˜ ์˜คํ”„์…‹์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
ํ•„์š” ์—†์ด ๋Ÿฐํƒ€์ž„์— ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹คํ–‰ ํŒŒ์ผ์„ ์žฌ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ธด๋ฐ€ํ•œ
๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ. ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ด ์˜ต์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋ ˆ์ง€์Šคํ„ฐ(๋ณดํ†ต "r13")๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ฃผ์†Œ. ์ด๊ฒƒ์€ ํŠนํžˆ ๋ณต์žกํ•œ ์ฝ”๋“œ์—์„œ ๋” ๋Š๋ฆฌ๊ฑฐ๋‚˜ ๋” ํฐ ์ฝ”๋“œ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ.

์ผ์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ๋œ ์‹ค์ œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋‹ค์Œ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ „์—, -m์ž‘์€ ๋ฐ์ดํ„ฐ ์ œํ•œ ๋ฐ / ๋˜๋Š” -๋ฏผํŠธ ๋ ˆ์ง€์Šคํ„ฐ ๋ช…๋ น์ค„ ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ "r13"๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์•„๋ž˜์ชฝ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋จผ์ € ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด -๋ฏผํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋‹ค์Œ, -mpid ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ
-m์ž‘์€ ๋ฐ์ดํ„ฐ ์ œํ•œ. ๋”ฐ๋ผ์„œ ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ ๋ ˆ์ง€์Šคํ„ฐ๋Š” "r8"์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‘˜ ๋‹ค -๋ฏผํŠธ ๋ ˆ์ง€์Šคํ„ฐ=4 ๊ณผ -mpid ๋ช…๋ น์ค„์— ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๊ธฐ๋Šฅ์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ์„ ํ†ตํ•ด ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -mno-pid
๋ช…๋ น์ค„ ์˜ต์…˜.

-mno-warn-๋‹ค์ค‘ ๊ณ ์†-์ธํ„ฐ๋ŸฝํŠธ
-mwarn-๋‹ค์ค‘ ๊ณ ์† ์ธํ„ฐ๋ŸฝํŠธ
ํ•˜๋‚˜ ์ด์ƒ์˜ ๋น ๋ฅธ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด GCC๊ฐ€ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•  ๋•Œ ํ•ธ๋“ค๋Ÿฌ. ๊ธฐ๋ณธ๊ฐ’์€ ๊ฐ ์ถ”๊ฐ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
RX๋Š” ์ด๋Ÿฌํ•œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ•˜๋‚˜๋งŒ ์ง€์›ํ•˜๋ฏ€๋กœ ๋น ๋ฅธ ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  : ์ผ๋ฐ˜ GCC ๋ช…๋ น์ค„ โ€‹โ€‹์˜ต์…˜ -๊ณ ์ •-๋“ฑ๋ก ๋ฒˆํ˜ธ RX์— ํŠน๋ณ„ํ•œ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
"์ธํ„ฐ๋ŸฝํŠธ" ๊ธฐ๋Šฅ ์†์„ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ํฌํŠธ์ž…๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ ๋‹ค์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
๋น ๋ฅธ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. GCC๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
"r10", "r11", "r12" ๋ฐ/๋˜๋Š” "r13" ๋ฐ/๋˜๋Š” "rXNUMX" ๋ฐ
ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. -๊ณ ์ •-๋“ฑ๋ก ๋ฒˆํ˜ธ or -๋ฏผํŠธ ๋ ˆ์ง€์Šคํ„ฐ
๋ช…๋ น์ค„ ์˜ต์…˜.

S / 390 ๊ณผ z ์‹œ๋ฆฌ์ฆˆ ์˜ต์…˜

์ด๋“ค์€ ์žˆ์Šต๋‹ˆ๋‹ค -m S/390 ๋ฐ zSeries ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์ •์˜๋œ ์˜ต์…˜.

-mhard-float
-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด ๋ฐ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)
ํฌ์ธํŠธ ์ž‘์—…. ์–ธ์ œ -msoft-float ๊ฐ€ ์ง€์ •๋˜๋ฉด ๊ธฐ๋Šฅ libgcc.a ~์— ์ต์ˆ™ํ•˜๋‹ค
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ -mhard-float ์ง€์ •๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ
IEEE ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mhard-dfp
-mno-ํ•˜๋“œ-dfp
XNUMX์ง„์ˆ˜์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด XNUMX์ง„์ˆ˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ. ์–ธ์ œ -mno-ํ•˜๋“œ-dfp ๊ฐ€ ์ง€์ •๋˜๋ฉด ๊ธฐ๋Šฅ libgcc.a are
์†Œ์ˆ˜์  ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์–ธ์ œ -mhard-dfp ์ง€์ •๋˜๊ณ ,
์ปดํŒŒ์ผ๋Ÿฌ๋Š” XNUMX์ง„์ˆ˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ•˜๋“œ์›จ์–ด ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค
for -ํ–‰์ง„=z9-ec ์ด์ƒ.

-mlong-๋”๋ธ”-64
-mlong-๋”๋ธ”-128
์ด ์Šค์œ„์น˜๋Š” "๋กฑ ๋”๋ธ”" ์œ ํ˜•์˜ ํฌ๊ธฐ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. 64๋น„ํŠธ์˜ ํฌ๊ธฐ๋Š”
"long double" ์œ ํ˜•์€ "double" ์œ ํ˜•์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mbackchain
-mno-๋ฐฑ์ฒด์ธ
ํ˜ธ์ถœ์ž์˜ ํ”„๋ ˆ์ž„ ์ฃผ์†Œ๋ฅผ ๋ฐฑ์ฒด์ธ ํฌ์ธํ„ฐ๋กœ ์ €์žฅ(์ €์žฅํ•˜์ง€ ์•Š์Œ)
์ˆ˜์‹ ์ž์˜ ์Šคํƒ ํ”„๋ ˆ์ž„. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ฒ„๊น…์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ๋ฐฑ์ฒด์ธ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
DWARF 2 ํ˜ธ์ถœ ํ”„๋ ˆ์ž„ ์ •๋ณด๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ -mno-packed-์Šคํƒ ์—
ํšจ๊ณผ, ๋ฐฑ์ฒด์ธ ํฌ์ธํ„ฐ๋Š” ์Šคํƒ ํ”„๋ ˆ์ž„์˜ ๋งจ ์•„๋ž˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์–ธ์ œ
-mpacked-์Šคํƒ ์‹ค์ œ๋กœ ๋ฐฑ์ฒด์ธ์€ ์ตœ์ƒ์œ„ ๋‹จ์–ด์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.
96/160๋ฐ”์ดํŠธ ๋ ˆ์ง€์Šคํ„ฐ ์ €์žฅ ์˜์—ญ.

์ผ๋ฐ˜์ ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋Š” -mbackchain ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์™€ ํ˜ธ์ถœ ํ˜ธํ™˜ ๊ฐ€๋Šฅ
-mmo-๋ฐฑ์ฒด์ธ; ๊ทธ๋Ÿฌ๋‚˜ ๋””๋ฒ„๊น… ๋ชฉ์ ์œผ๋กœ ๋ฐฑ์ฒด์ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์ „์ฒด ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ -mbackchain. ์˜ ์กฐํ•ฉ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.
-mbackchain, -mpacked-์Šคํƒ ๊ณผ -mhard-float ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์‚ฌ์šฉ -msoft-float.

๊ธฐ๋ณธ๊ฐ’์€ ๋ฐฑ์ฒด์ธ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-mpacked-์Šคํƒ
-mno-packed-์Šคํƒ
ํŒจํ‚น๋œ ์Šคํƒ ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ -mno-packed-์Šคํƒ ์ง€์ •๋˜๊ณ ,
์ปดํŒŒ์ผ๋Ÿฌ๋Š” 96/160๋ฐ”์ดํŠธ ๋ ˆ์ง€์Šคํ„ฐ ์ €์žฅ ์˜์—ญ์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ๋ชฉ์ ; ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•„๋“œ๋Š” ์—ฌ์ „ํžˆ ์Šคํƒ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ -mpacked-์Šคํƒ is
์ง€์ •๋˜๋ฉด ๋ ˆ์ง€์Šคํ„ฐ ์ €์žฅ ์Šฌ๋กฏ์€ ๋ ˆ์ง€์Šคํ„ฐ ์ €์žฅ ์ƒ๋‹จ์— ์กฐ๋ฐ€ํ•˜๊ฒŒ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.
์ง€์—ญ; ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ณต๊ฐ„์€ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์žฌ์‚ฌ์šฉ๋˜์–ด ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šคํƒ ๊ณต๊ฐ„ ๊ทธ๋Ÿฌ๋‚˜ ์–ธ์ œ -mbackchain ๋„ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„
์ €์žฅ ์˜์—ญ์˜ ๋‹จ์–ด๋Š” ํ•ญ์ƒ ๋ฐฑ์ฒด์ธ์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ๋ฐ˜ํ™˜ ์ฃผ์†Œ
๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ•ญ์ƒ ๋ฐฑ์ฒด์ธ ์•„๋ž˜์— ๋‘ ๋‹จ์–ด๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์Šคํƒ ํ”„๋ ˆ์ž„ ๋ฐฑ์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ๋‹ค์Œ์œผ๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” -mpacked-์Šคํƒ
๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ํ†ตํ™” ํ˜ธํ™˜ ๊ฐ€๋Šฅ -mno-packed-์Šคํƒ. ์ผ๋ถ€ ๋น„ FSF
์Šคํƒ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•˜๋Š” S/2.95 ๋˜๋Š” zSeries ์ƒ์„ฑ ์ฝ”๋“œ์šฉ GCC 390 ๋ฆด๋ฆฌ์Šค
๋””๋ฒ„๊น… ๋ชฉ์ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Ÿฐํƒ€์ž„์— ๋ฐฑ์ฒด์ธ. ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์™€ ํ˜ธํ™˜ ๊ฐ€๋Šฅ -mpacked-์Šคํƒ. ๋˜ํ•œ, ๋‹ค์Œ์˜ ์กฐํ•ฉ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.
-mbackchain, -mpacked-์Šคํƒ ๊ณผ -mhard-float ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์‚ฌ์šฉ -msoft-float.

๊ธฐ๋ณธ๊ฐ’์€ ํŒจํ‚น๋œ ์Šคํƒ ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-msmall-exec
-mno-์†Œํ˜•-exec
์„œ๋ธŒ๋ฃจํ‹ด์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด "bras" ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ƒ์„ฑ(๋˜๋Š” ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)
์ „ํ™”. ์ด๊ฒƒ์€ ์ „์ฒด ์‹คํ–‰ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ 64k๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ ๋Œ€์‹  "basr" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํ•œ์ •.

-m64
-m31
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -m31 ์ง€์ •๋˜๋ฉด S/390 ABI์šฉ GNU/Linux์™€ ํ˜ธํ™˜๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ
-m64 ์ง€์ •๋˜๋ฉด zSeries ABI์šฉ GNU/Linux์™€ ํ˜ธํ™˜๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
GCC๋Š” ํŠนํžˆ 64๋น„ํŠธ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฅผ ์œ„ํ•ด s390 ๋Œ€์ƒ,
๊ธฐ๋ณธ๊ฐ’์€ -m31๋ฐ˜๋ฉด, s390x ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€์ƒ -m64.

-mzarch
-๋ฉ”์‚ฌ
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -mzarch ๊ฐ€ ์ง€์ •๋˜๋ฉด ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
z/์•„ํ‚คํ…์ฒ˜. ์–ธ์ œ -๋ฉ”์‚ฌ ์ง€์ •๋œ ๊ฒฝ์šฐ ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ƒ์„ฑ
ESA/390์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  -๋ฉ”์‚ฌ ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅ -m64. ์ƒ์„ฑํ•  ๋•Œ
S/390 ABI์šฉ GNU/Linux์™€ ํ˜ธํ™˜๋˜๋Š” ์ฝ”๋“œ, ๊ธฐ๋ณธ๊ฐ’์€ -๋ฉ”์‚ฌ. ์ƒ์„ฑํ•  ๋•Œ
zSeries ABI์šฉ GNU/Linux์™€ ํ˜ธํ™˜๋˜๋Š” ์ฝ”๋“œ, ๊ธฐ๋ณธ๊ฐ’์€ -mzarch.

-mmvcle
-mno-mvcle
๋ธ”๋ก์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด "mvcle" ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ƒ์„ฑ(๋˜๋Š” ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ)
์›€์ง์ธ๋‹ค. ์–ธ์ œ -mno-mvcle ์ง€์ •๋œ ๊ฒฝ์šฐ ๋Œ€์‹  "mvc" ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค
ํฌ๊ธฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์ง€ ์•Š๋Š” ํ•œ.

-m๋””๋ฒ„๊ทธ
-mno ๋””๋ฒ„๊ทธ
์ปดํŒŒ์ผํ•  ๋•Œ ์ถ”๊ฐ€ ๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ธ์‡„ํ•˜๊ฑฐ๋‚˜ ์ธ์‡„ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’์€
๋””๋ฒ„๊ทธ ์ •๋ณด๋ฅผ ์ธ์‡„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-ํ–‰์ง„=CPU ์œ ํ˜•
์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ CPU ์œ ํ˜•๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‹œ์Šคํ…œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
ํŠน์ • ํ”„๋กœ์„ธ์„œ ์œ ํ˜•. ๊ฐ€๋Šฅํ•œ ๊ฐ’ CPU ์œ ํ˜• are g5, g6, z900, z990, z9-109,
Z9-EC, z10, z196, ZEC12๋ฐ z13. ์ง€์นจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ
z/Architecture์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ -ํ–‰์ง„=z900. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€
-ํ–‰์ง„=g5.

-mtune=CPU ์œ ํ˜•
ํŠœ๋‹ CPU ์œ ํ˜• ABI๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ƒ์„ฑ๋œ ์ฝ”๋“œ์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒƒ
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ง€์นจ ์„ธํŠธ. ๋ชฉ๋ก CPU ์œ ํ˜• ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
-XNUMX ์›”. ๊ธฐ๋ณธ๊ฐ’์€ ๋‹ค์Œ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. -XNUMX ์›”.

-mtpf ์ถ”์ 
-mno-tpf-์ถ”์ 
์ถ”์  ๋ฃจํ‹ด์— TPF OS ํŠน์ • ๋ถ„๊ธฐ์— ์ถ”๊ฐ€(์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
์šด์˜ ์ฒด์ œ์—์„œ. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด์ œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
TPF OS.

-๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ
-mno-์œตํ•ฉ-๋งค๋“œ
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณฑํ•˜๊ธฐ ๋ฐ ๋ˆ„์ ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
์ง€์นจ. ์ด๋Ÿฌํ•œ ๋ช…๋ น์–ด๋Š” ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ.

-mwarn-ํ”„๋ ˆ์ž„ ํฌ๊ธฐ=ํ”„๋ ˆ์ž„ ํฌ๊ธฐ
ํ˜„์žฌ ๊ธฐ๋Šฅ์ด ์ฃผ์–ด์ง„ ํ”„๋ ˆ์ž„ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์€
์ปดํŒŒ์ผ ํƒ€์ž„ ์ฒดํฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ์‹ค์ œ ๋ฌธ์ œ๊ฐ€ ๋  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ
์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๊ฐ€์žฅ ๋†’์€ ํ•จ์ˆ˜๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€์ด๋‹ค
Linux ์ปค๋„๊ณผ ๊ฐ™์ด ์Šคํƒ ํฌ๊ธฐ๊ฐ€ ์ œํ•œ๋œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mwarn-๋™์  ์Šคํƒ
ํ•จ์ˆ˜๊ฐ€ "alloca"๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ๋™์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋œ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ
์ผ๋ฐ˜์ ์œผ๋กœ ์Šคํƒ ํฌ๊ธฐ๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฉด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mstack-๊ฐ€๋“œ=์Šคํƒ ๊ฐ€๋“œ
-mstack-ํฌ๊ธฐ=์Šคํƒ ํฌ๊ธฐ
์ด๋Ÿฌํ•œ ์˜ต์…˜์ด ์ œ๊ณต๋˜๋ฉด S/390 ๋ฐฑ์—”๋“œ๋Š”
์Šคํƒ ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ํŠธ๋žฉ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ํ•จ์ˆ˜ ํ”„๋กค๋กœ๊ทธ ์Šคํƒ ๊ฐ€๋“œ ์œ„์˜ ๋ฐ”์ดํŠธ
์Šคํƒ ํฌ๊ธฐ (S/390์˜ ์Šคํƒ์€ ์•„๋ž˜์ชฝ์œผ๋กœ ์ปค์ง‘๋‹ˆ๋‹ค.) ๋งŒ์•ฝ ์Šคํƒ ๊ฐ€๋“œ
์˜ต์…˜์€ ์ปดํŒŒ์ผ๋œ ํ”„๋ ˆ์ž„ ํฌ๊ธฐ๋ณด๋‹ค ํฐ 2์˜ ์ตœ์†Œ ๊ฑฐ๋“ญ์ œ๊ณฑ์ด ์ƒ๋žต๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์Šคํƒ ๋””๋ฒ„๊น…์„ ๋•๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์˜ค๋ฒ„ํ”Œ๋กœ ๋ฌธ์ œ. ์ถ”๊ฐ€๋กœ ๋ฐฉ์ถœ๋œ ์ฝ”๋“œ๋Š” ์•ฝ๊ฐ„์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋งŒ ๋ฐœ์ƒ์‹œํ‚ค๊ณ 
๋”ฐ๋ผ์„œ ๋” ๋‚˜์€ ์„ฑ๋Šฅ ์—†์ด ํ”„๋กœ๋•์…˜๊ณผ ์œ ์‚ฌํ•œ ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜๋ฝ. ์ฃผ์–ด์ง„ ๊ฐ’์€ 2์˜ ์ •ํ™•ํ•œ ๊ฑฐ๋“ญ์ œ๊ณฑ์ด์–ด์•ผ ํ•˜๋ฉฐ ์Šคํƒ ํฌ๊ธฐ ์ด์–ด์•ผํ•œ๋‹ค
๋ณด๋‹ค ํฐ ์Šคํƒ ๊ฐ€๋“œ 64k๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํšจ์œจ์ ์ธ ์ถ”๊ฐ€ ์ž‘์—…์„ ์œ„ํ•ด
์ฝ”๋“œ๋Š” ์Šคํƒ์ด ๊ฐ’์— ์ •๋ ฌ๋œ ์ฃผ์†Œ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์–ด์ง„ ์Šคํƒ ํฌ๊ธฐ. ๊ทธ๋งŒํผ ์Šคํƒ ๊ฐ€๋“œ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์Šคํƒ ํฌ๊ธฐ.

-mhotpatch=๋ฐ˜๋ง,ํ›„๋ฐ˜๋ถ€
ํ•ซํŒจ์น˜ ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด "ํ•ซํŒจ์นญ" ๊ธฐ๋Šฅ ํ”„๋กค๋กœ๊ทธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ์œ ๋‹›์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ. ํ•จ์ˆ˜ ๋ ˆ์ด๋ธ” ์•ž์— ์ฃผ์–ด์ง„
XNUMX๋ฐ”์ดํŠธ NOP ๋ช…๋ น์–ด ์ˆ˜(๋ฐ˜๋ง, ์ตœ๋Œ€ 1000000). ํ›„
๋ ˆ์ด๋ธ”, 2 * ํ›„๋ฐ˜๋ถ€ ๋ช…๋ น๊ณผ ๊ฐ™์€ ๊ฐ€์žฅ ํฐ NOP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”์ดํŠธ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
์•„ํ‚คํ…์ฒ˜์—์„œ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(์ตœ๋Œ€ 1000000).

๋‘ ์ธ์ˆ˜๊ฐ€ ๋ชจ๋‘ XNUMX์ด๋ฉด ํ•ซํŒจ์นญ์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ "hotpatch" ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์ˆ˜ ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ ์ ์ˆ˜ ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-๋ฉ”๋ธŒ
๋น… ์—”๋””์•ˆ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-๋ฉœ
๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

-mnhwloop
"bcnz" ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-๋ฌผ
์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋กœ๋“œ ๋ฐ ์ €์žฅ ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mmac
๊ณฑํ•˜๊ธฐ ๋ˆ„์‚ฐ ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

-mscore5
SCORE5๋ฅผ ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mscore5u
๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์˜ SCORE5U๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-mscore7
SCORE7์„ ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mscore7d
SCORE7D๋ฅผ ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

SH ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ SH ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-m1 SH1์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m2 SH2์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m2e
SH2e์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m2a-๋…ธํ‘ธ
FPU ์—†์ด SH2a์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ SH2a-FPU์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-m2a-๋‹จ์ผ ์ „์šฉ
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๋ฐฉ์‹์œผ๋กœ SH2a-FPU์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ž‘์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-m2a-๋‹จ์ผ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ๋‹จ์ •๋ฐ€๋„๋ผ๊ณ  ๊ฐ€์ •ํ•˜์—ฌ SH2a-FPU์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“œ.

-m2a
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ๋ฐฐ์ •๋ฐ€๋„๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  SH2a-FPU์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“œ.

-m3 SH3์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m3e
SH3e์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m4-๋…ธํ‘ธ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„ ์—†์ด SH4์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m4-๋‹จ์ผ ์ „์šฉ
๋‹จ์ผ ์ง€์›๋งŒ ์ง€์›ํ•˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๋กœ SH4์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
์ •๋ฐ€ ์‚ฐ์ˆ .

-m4-๋‹จ์ผ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ๋‹จ์ •๋ฐ€๋„ ๋ชจ๋“œ์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ SH4์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
๊ธฐ๋ณธ์ ์œผ๋กœ

-m4 SH4์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m4-100
SH4-100์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m4-100-๋…ธํ‘ธ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ SH4-100์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค.

-m4-100-๋‹จ์ผ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ๋‹จ์ •๋ฐ€๋„ ๋ชจ๋“œ์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ SH4-100์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
๊ธฐ๋ณธ์ ์œผ๋กœ

-m4-100-๋‹จ์ผ ์ „์šฉ
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๋ฐฉ์‹์œผ๋กœ SH4-100์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ž‘์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-m4-200
SH4-200์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m4-200-๋…ธํ‘ธ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ฐฉ์‹์œผ๋กœ SH4-200์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
์ต์ˆ™ํ•œ.

-m4-200-๋‹จ์ผ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ๋‹จ์ •๋ฐ€๋„ ๋ชจ๋“œ์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ SH4-200์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
๊ธฐ๋ณธ์ ์œผ๋กœ

-m4-200-๋‹จ์ผ ์ „์šฉ
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๋ฐฉ์‹์œผ๋กœ SH4-200์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ž‘์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-m4-300
SH4-300์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m4-300-๋…ธํ‘ธ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ฐฉ์‹์œผ๋กœ SH4-300์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
์ต์ˆ™ํ•œ.

-m4-300-๋‹จ์ผ
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๋ฐฉ์‹์œผ๋กœ SH4-300์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ž‘์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-m4-300-๋‹จ์ผ ์ „์šฉ
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๋ฐฉ์‹์œผ๋กœ SH4-300์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ž‘์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-m4-340
SH4-340์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(MMU ์—†์Œ, FPU ์—†์Œ).

-m4-500
SH4-500์šฉ ์ฝ”๋“œ ์ƒ์„ฑ(FPU ์—†์Œ). ํŒจ์Šค -isa=sh4-๋…ธํ”„ํ‘ธ ์–ด์…ˆ๋ธ”๋Ÿฌ์—๊ฒŒ.

-m4a-๋…ธํ‘ธ
SH4al-dsp ๋˜๋Š” SH4a์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด
๋‹จ์œ„๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-m4a-๋‹จ์ผ ์ „์šฉ
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด ์—†๋Š” ๋ฐฉ์‹์œผ๋กœ SH4a์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ž‘์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-m4a-๋‹จ์ผ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ๋‹จ์ •๋ฐ€๋„๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  SH4a์— ๋Œ€ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“œ.

-m4a
SH4a์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m4al
๊ณผ ๋™์ผ -m4a-๋…ธํ‘ธ, ์•”์‹œ์ ์œผ๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  -dsp ์–ด์…ˆ๋ธ”๋Ÿฌ์—๊ฒŒ. GCC
ํ˜„์žฌ๋กœ์„œ๋Š” DSP ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-m5-32๋ฏธ๋””์–ด
SHmedia์šฉ 32๋น„ํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m5-32๋ฏธ๋””์–ด-๋…ธํ‘ธ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ฐฉ์‹์œผ๋กœ SHmedia์šฉ 32๋น„ํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ต์ˆ™ํ•œ.

-m5-64๋ฏธ๋””์–ด
SHmedia์šฉ 64๋น„ํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m5-64๋ฏธ๋””์–ด-๋…ธํ‘ธ
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ฐฉ์‹์œผ๋กœ SHmedia์šฉ 64๋น„ํŠธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ต์ˆ™ํ•œ.

-m5-์ปดํŒฉํŠธ
SHcompact์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-m5-์ปดํŒฉํŠธ-nofpu
๋ถ€๋™ ์†Œ์ˆ˜์  ๋‹จ์œ„๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ SHcompact์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค.

-mb ๋น… ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

-ml ๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ํ”„๋กœ์„ธ์„œ์šฉ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

-mdalign
64๋น„ํŠธ ๊ฒฝ๊ณ„์—์„œ ๋‘ ๋ฐฐ๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜ธ์ถœ ๊ทœ์น™์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๋Š” ํ•œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์œผ๋กœ ๋จผ์ € -mdalign.

-mrelax
๊ฐ€๋Šฅํ•˜๋ฉด ๋งํฌ ์‹œ๊ฐ„์— ์ผ๋ถ€ ์ฃผ์†Œ ์ฐธ์กฐ๋ฅผ ์ค„์ด์‹ญ์‹œ์˜ค. ๋ง์ปค ์˜ต์…˜์„ ์‚ฌ์šฉ
-ํŽธํ•˜๊ฒŒ ํ•˜๋‹ค.

-mbigtable
"์Šค์œ„์น˜" ํ…Œ์ด๋ธ”์—์„œ 32๋น„ํŠธ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ๊ฐ’์€ 16๋น„ํŠธ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-์— ๋น„ํƒ‘์Šค
SH2A์—์„œ ๋น„ํŠธ ์กฐ์ž‘ ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mfmovd
"fmovd" ๋ช…๋ น ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธํ•˜๋‹ค -mdalign ์ •๋ ฌ ์ œ์•ฝ ์กฐ๊ฑด์— ๋Œ€ํ•ด.

-๋ฏ€๋ ˆ๋„ค์‚ฌ์Šค
Renesas๊ฐ€ ์ •์˜ํ•œ ํ˜ธ์ถœ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

-mno-๋ฅด๋„ค์‚ฌ์Šค
Renesas ๊ทœ์น™ ์ด์ „์— GCC์— ๋Œ€ํ•ด ์ •์˜๋œ ํ˜ธ์ถœ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.
์ด์šฉ ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ SH ๋„๊ตฌ ์ฒด์ธ์˜ ๋ชจ๋“  ๋Œ€์ƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mnomac์ €์žฅ
"MAC" ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ call-clobbed๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. -๋ฏ€๋ ˆ๋„ค์‚ฌ์Šค ์ฃผ์–ด์ง„๋‹ค.

-์ด๋”ฐ
-mno-ieee
์ฒ˜๋ฆฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋น„๊ต์˜ IEEE ๊ทœ์ • ์ค€์ˆ˜ ์ œ์–ด
๋น„๊ต ๊ฒฐ๊ณผ๊ฐ€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ. ๊ธฐ๋ณธ์ ์œผ๋กœ -์ด๋”ฐ is
์•”์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— - ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ ์‚ฌ์šฉ ๊ฐ€๋Šฅ -mno-ieee ์•”์‹œ์ ์œผ๋กœ ์„ค์ •๋˜๋ฉฐ,
๊ฒฐ๊ณผ์ ์œผ๋กœ ๋” ๋น ๋ฅธ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋น„๊ต๊ฐ€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. NS
์•”์‹œ์  ์„ค์ •์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -์ด๋”ฐ or -mno-ieee.

-minline-ic_invalidate
์ค‘์ฒฉ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•œ ํ›„ ๋ช…๋ น์–ด ์บ์‹œ ํ•ญ๋ชฉ์„ ๋ฌดํšจํ™”ํ•˜๋Š” ์ธ๋ผ์ธ ์ฝ”๋“œ
ํŠธ๋žจํด๋ฆฐ. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. -muser ๋ชจ๋“œ ์œ ํšจํ•˜๊ณ  ์„ ํƒ๋œ
์ฝ”๋“œ ์ƒ์„ฑ ์˜ต์…˜(์˜ˆ: -m4) "icbi" ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์„ ํƒํ•œ ์ฝ”๋“œ ์ƒ์„ฑ ์˜ต์…˜์ด "icbi"์˜ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
์ง€์‹œ, ๊ทธ๋ฆฌ๊ณ  -muser ๋ชจ๋“œ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ธ๋ผ์ธ ์ฝ”๋“œ๋Š”
์—ฐ๊ด€ ์“ฐ๊ธฐ์™€ ์ง์ ‘ ๋ช…๋ น์–ด ์บ์‹œ ์ฃผ์†Œ ๋ฐฐ์—ด. ์ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
๋Ÿฐํƒ€์ž„์— ํŠน๊ถŒ ๋ชจ๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ์บ์‹œ ๋ผ์ธ์ด
TLB๋ฅผ ํ†ตํ•ด ๋งคํ•‘๋˜๊ณ  ๋งคํ•‘ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-์‚ฌ์ด์ฆˆ๋ฅผ ์ž˜๋ชป ๋งž์ถ”๋‹ค
์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ์˜ ๋คํ”„ ๋ช…๋ น์–ด ํฌ๊ธฐ ๋ฐ ์œ„์น˜.

-mpadstruct
์ด ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐ๋ฅผ 4๋ฐ”์ดํŠธ์˜ ๋ฐฐ์ˆ˜๋กœ ์ฑ„์›๋‹ˆ๋‹ค.
SH ABI์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-์›์ž ๋ชจ๋ธ=๋ชจ๋ธ
์›์ž ์—ฐ์‚ฐ ๋ชจ๋ธ๊ณผ ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
๋ชฉ๋ก. ์›์ž ๋‚ด์žฅ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. __์›์ž ๋นŒํŠธ์ธ. ๊ทธ๋งŒํผ
๋‹ค์Œ ๋ชจ๋ธ ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์—†์Œ
์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑ๋œ ์›์ž ์‹œํ€€์Šค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์›์ž์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
์ž‘์—…. ๋Œ€์ƒ์ด "sh*-*-linux*"๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ๊ตฌ์‚ฌ
์›์ž ๋‚ด์žฅ์„ ์œ„ํ•œ GNU/Linux ํ˜ธํ™˜ gUSA ์†Œํ”„ํŠธ์›จ์–ด ์›์ž ์‹œํ€€์Šค ์ƒ์„ฑ
๊ธฐ๋Šฅ์—์„œ. ์ƒ์„ฑ๋œ ์›์ž ์‹œํ€€์Šค๋Š” ์ถ”๊ฐ€ ์ง€์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ์˜ ์ธํ„ฐ๋ŸฝํŠธ/์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ์ด๋ฉฐ SH3* ๋ฐ
SH4* ๋‹จ์ผ ์ฝ”์–ด ์‹œ์Šคํ…œ. ์ด ์˜ต์…˜์€ ๋Œ€์ƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
"sh*-*-linux*" ๋ฐ SH3* ๋˜๋Š” SH4*. ๋Œ€์ƒ์ด SH4A์ธ ๊ฒฝ์šฐ ์ด ์˜ต์…˜๋„
ํ•˜๋“œ์›จ์–ด ์›์ž ๋ช…๋ น์–ด "movli.l" ๋ฐ "movco.l"์„ ๋ถ€๋ถ„์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ
๋” ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ํ•œ ์—„๊ฒฉํ•œ ์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ tcb
์Šค๋ ˆ๋“œ ์ œ์–ด์—์„œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์›์ž ์‹œํ€€์Šค ์ƒ์„ฑ
๋ธ”๋ก. ์ด๊ฒƒ์€ SH1*์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” gUSA ์‹œํ€€์Šค์˜ ๋ณ€ํ˜•์ž…๋‹ˆ๋‹ค.
๋ฐ SH2* ํ‘œ์ . ์ƒ์„ฑ๋œ ์›์ž ์‹œํ€€์Šค์—์„œ ์ถ”๊ฐ€ ์ง€์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์‹œ์Šคํ…œ์˜ ์ธํ„ฐ๋ŸฝํŠธ/์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ์ด๋ฉฐ ๋‹ค์Œ์—๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
๋‹จ์ผ ์ฝ”์–ด ์‹œ์Šคํ…œ. ์ด ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ๋•Œ, gbr ์˜คํ”„์…‹ = ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ ์•„์ด๋งˆ์Šคํฌ
์„ค์ •ํ•˜์—ฌ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์›์ž ์‹œํ€€์Šค ์ƒ์„ฑ
"SR.IMASK = 1111". ์ด ๋ชจ๋ธ์€ ํ”„๋กœ๊ทธ๋žจ์ด ํŠน๊ถŒ ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋  ๋•Œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ์ผ ์ฝ”์–ด ์‹œ์Šคํ…œ์—๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ง€์›
์‹œ์Šคํ…œ์˜ ์ธํ„ฐ๋ŸฝํŠธ/์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€
๋Œ€์ƒ์ด "sh*-*-linux*"์ด๊ณ  SH1* ๋˜๋Š” SH2*์ธ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

ํ•˜๋“œ-llcs
"movli.l" ๋ฐ "movco.l" ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด ์›์ž ์‹œํ€€์Šค ์ƒ์„ฑ
์˜ค์ง. ์ด๊ฒƒ์€ SH4A์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฉ€ํ‹ฐ ์ฝ”์–ด ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
ํ•˜๋“œ์›จ์–ด ๋ช…๋ น์–ด๋Š” 32์— ๋Œ€ํ•œ 8๋น„ํŠธ ์›์ž ๋ณ€์ˆ˜ ์•ก์„ธ์Šค๋งŒ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
๋˜๋Š” 16๋น„ํŠธ ๋ณ€์ˆ˜๋Š” 32๋น„ํŠธ ์•ก์„ธ์Šค๋กœ ์—๋ฎฌ๋ ˆ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ
์˜ต์…˜์€ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์›์ž ๋ชจ๋ธ ์ธํ„ฐ๋ŸฝํŠธ/์˜ˆ์™ธ์™€๋„ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.
SH4A ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ. ์ถ”๊ฐ€ ์ง€์›
์ด ๋ชจ๋ธ์—๋Š” ์‹œ์Šคํ…œ์˜ ์ธํ„ฐ๋ŸฝํŠธ/์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

gbr ์˜คํ”„์…‹ =
์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์Šค๋ ˆ๋“œ ์ œ์–ด์—์„œ ๋ณ€์ˆ˜์˜ ์˜คํ”„์…‹(๋ฐ”์ดํŠธ)์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ƒ์„ฑ๋œ ์›์ž ์‹œํ€€์Šค์— ์˜ํ•ด ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋Š” ๋ธ”๋ก ๊ตฌ์กฐ
์†Œํ”„ํŠธ tcb ๋ชจ๋ธ์ด ์„ ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
์ง€์ •๋œ ๊ฐ’์€ 0์˜ ์ •์ˆ˜ ๋ฐฐ์ˆ˜์—ฌ์•ผ ํ•˜๋ฉฐ ๋ฒ”์œ„๋Š” 1020-XNUMX์ž…๋‹ˆ๋‹ค.

์—„๊ฒฉํ•œ
์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์—ฌ๋Ÿฌ ์›์ž ๋ชจ๋ธ์˜ ํ˜ผํ•ฉ ์‚ฌ์šฉ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ง€์ •๋œ ์›์ž ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋ธ๋งŒ.

-mtas
"__atomic_test_and_set"์— ๋Œ€ํ•œ "tas.b" opcode๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์— ๋”ฐ๋ผ ์ฃผ์˜
ํŠน์ • ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์œผ๋กœ ์ธํ•ด ์ „์ฒด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"tas.b" ๋ช…๋ น์–ด๊ฐ€ ์•”์‹œํ•˜๋Š” ํ”ผ์—ฐ์‚ฐ์ž ์บ์‹œ ๋ผ์ธ ํ”Œ๋Ÿฌ์‹œ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์—
๋ฉ€ํ‹ฐ ์ฝ”์–ด SH4A ํ”„๋กœ์„ธ์„œ "ta.b" ๋ช…๋ น์–ด๋Š” ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ • ์บ์‹œ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์†์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mpfergot
์œ„์น˜ ๋…๋ฆฝ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ „์—ญ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
ํ”„๋กœ์‹œ์ € ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ” ๋Œ€์‹  ํ…Œ์ด๋ธ”.

-muser ๋ชจ๋“œ
-mno-์‚ฌ์šฉ์ž ๋ชจ๋“œ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํŠน๊ถŒ ๋ชจ๋“œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉ(ํ—ˆ์šฉ)ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ง€์ •
-muser ๋ชจ๋“œ ๋˜ํ•œ ์˜๋ฏธ -mno-inline-ic_invalidate ์ธ๋ผ์ธ ์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ. -muser ๋ชจ๋“œ ๋Œ€์ƒ์ด "sh*-*-linux*"์ธ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ
๋Œ€์ƒ์€ SH1* ๋˜๋Š” SH2*์ž…๋‹ˆ๋‹ค. -muser ๋ชจ๋“œ ์‚ฌ์šฉ์ž ๋ชจ๋“œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

-๋‹ค์ค‘ ๋น„์šฉ=๋ฒˆํ˜ธ
๋‹ค์ค‘ ์ˆ™๋ฐ• ์‹œ์„ค์— ๋Œ€ํ•ด ๊ฐ€์ •ํ•  ๋น„์šฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

-mdiv=์ „๋žต
์ •์ˆ˜ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์— ์‚ฌ์šฉํ•  ๋‚˜๋ˆ—์…ˆ ์ „๋žต์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. SH๋ฏธ๋””์–ด์šฉ
์ „๋žต ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

fp ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ๋†’์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๊ฐ–์ง€๋งŒ ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋ช‡ ๊ฐ€์ง€ ์ง€์นจ๋งŒ ์žˆ์œผ๋ฏ€๋กœ ์ฝ”๋“œ์— ์ถฉ๋ถ„ํ•œ
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์˜ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋„๋ก ์‰ฝ๊ฒŒ ์•…์šฉํ•  ์ˆ˜ ์žˆ๋Š” ILP
๋‹ค๋ฅธ ์ง€์นจ๊ณผ ํ•จ๊ป˜ ์ง€์นจ. XNUMX์œผ๋กœ ๋‚˜๋ˆ„๋ฉด
๋ถ€๋™ ์†Œ์ˆ˜์  ์˜ˆ์™ธ.

INV ์ •์ˆ˜ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์ˆ˜์˜ ์—ญ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ
๋ฐฐ๋‹น๊ธˆ์— ์—ญ์ˆ˜๋ฅผ ๊ณฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „๋žต์€ CSE ๋ฐ ํ˜ธ์ด์ŠคํŒ…์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
์—ญ ๊ณ„์‚ฐ์˜. XNUMX์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๋Š” ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ ,
๊ทธ๋Ÿฌ๋‚˜ ํŠธ๋žฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ธ๋ณด์ด์Šค:๋ฏผ๋ผํŠธ
์˜ ๋ณ€ํ˜• INV CSE ๋˜๋Š” ํ˜ธ์ด์ŠคํŒ… ๊ธฐํšŒ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋˜๋Š”
์ „์ฒด ์ž‘์—…์ด ๊ฐ™์€ ์žฅ์†Œ๋กœ ํ˜ธ์ด์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์—ญ ๊ณ„์‚ฐ์€ ์ „์ฒด๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ตœ์ข… ๊ณฑ์…ˆ๊ณผ ์–ฝํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ช‡ ๊ฐ€์ง€ ๋” ๋งŽ์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋” ์ ์€ ์ˆ˜์˜
๋‹ค๋ฅธ ์ฝ”๋“œ๋กœ ๊ธฐํšŒ๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.

์ „ํ™”
์ผ๋ฐ˜์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ณด์ด์Šค:๋ฏผ๋ผํŠธ ์ „๋žต. ์ด๊ฒƒ
"m5-*media-nofpu" ์ปดํŒŒ์ผ์— ๋†’์€ ์ฝ”๋“œ ๋ฐ€๋„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

call2
๋™์ผํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์˜ ๋‹ค๋ฅธ ์ง„์ž…์ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ฃฉ์—… ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ์ด๋ฏธ ์„ค์ •๋˜์–ด ์žˆ์–ด ํฌ์ธํ„ฐ ๋กœ๋“œ๊ฐ€ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
CSE ๋ฐ ์ฝ”๋“œ ํ˜ธ์ด์ŠคํŒ… ์ตœ์ ํ™”.

์ธ๋ณด์ด์Šค:์ฝœ
์ธ๋ณด์ด์Šค:์ฝœ2
์ธ๋ณด์ด์Šค:FP
์‚ฌ์šฉ INV ์ดˆ๊ธฐ ์ฝ”๋“œ ์ƒ์„ฑ์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ์œ ์ง€๋˜๋Š” ๊ฒฝ์šฐ
์ตœ์ ํ™”๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ ์ „ํ™”, call2๋ฐ fp ์ „๋žต, ๊ฐ๊ฐ. ์ฐธ๊ณ 
XNUMX์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ์˜ ์ž ์žฌ์ ์ธ ํŠธ๋ž˜ํ•‘ ๋ถ€์ž‘์šฉ์€ ๋ณ„๋„์˜
๋ชจ๋“  ์ •์ˆ˜ ๋ช…๋ น์–ด๊ฐ€ ํ˜ธ์ด์ŠคํŠธ ์•„์›ƒ๋˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ถ€์ž‘์šฉ์— ๋Œ€ํ•œ ๋งˆ์ปค๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์— ๋Œ€ํ•œ ์žฌ์กฐํ•ฉ
์ด ๊ฒฝ์šฐ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด๋‚˜ ํ˜ธ์ถœ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

inv20u
inv20l
์˜ ๋ณ€์ข… ์ธ๋ณด์ด์Šค:๋ฏผ๋ผํŠธ ์ „๋žต. ์—ญ๊ณ„์‚ฐ์˜ ๊ฒฝ์šฐ
๊ณฑํ•˜๊ธฐ์—์„œ ๋ถ„๋ฆฌ๋˜์ง€ ์•Š๊ณ  ๋ฐฐ๋‹น๊ธˆ์ด ๋งž๋Š” ๋‚˜๋ˆ—์…ˆ์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ ๋ฒˆํ˜ธ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ 20๋น„ํŠธ(ํ•ด๋‹น๋˜๋Š” ๊ฒฝ์šฐ ๋”ํ•˜๊ธฐ ๊ธฐํ˜ธ)๋กœ
์ด ๊ฒฝ์šฐ ์ž‘์—…; ์ด ํ…Œ์ŠคํŠธ๋Š” ๋” ํฐ ๋ฐฐ๋‹น๊ธˆ์˜ ๊ฒฝ์šฐ ์†๋„๋ฅผ ๋Šฆ์ถฅ๋‹ˆ๋‹ค.
inv20u ๊ทธ๋Ÿฌํ•œ ์ž‘์€ ๋ฐฐ๋‹น๊ธˆ์˜ ๊ฒฝ์šฐ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , inv20l
๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

SHmedia ์ด์™ธ์˜ ๋Œ€์ƒ์šฉ ์ „๋žต ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „ํ™” div1
๋‹จ์ผ ๋‹จ๊ณ„ ๋‚˜๋ˆ„๊ธฐ ๋ช…๋ น "div1"์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ
์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. XNUMX์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๋Š” ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํŠธ๋žฉ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ SH4, SH2A ๋ฐ SHcompact๋ฅผ ์ œ์™ธํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

ํ˜ธ์ถœ fp
๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™์—์„œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋ฆฌํ‚ค๋‹ค. XNUMX์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ๋ถ€๋™ ์†Œ์ˆ˜์  ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค
FPU๊ฐ€ ์žˆ๋Š” SHcompact์šฉ. double์ด ์—†๋Š” ๋Œ€์ƒ์— ๋Œ€ํ•ด ์ด๊ฒƒ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ •๋ฐ€๋„ FPU์˜ ๊ธฐ๋ณธ๊ฐ’์€ "call-div1"์ž…๋‹ˆ๋‹ค.

์ฝœ ํ…Œ์ด๋ธ”
์ž‘์€ ์ œ์ˆ˜์— ๋Œ€ํ•œ ์กฐํšŒ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ 
๋” ํฐ ์ œ์ˆ˜์— ๋Œ€ํ•œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์žˆ๋Š” "div1" ๋ช…๋ น์–ด. XNUMX์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ
์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํŠธ๋žฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ SH4์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
๋™์  ์ด๋™ ์ง€์นจ ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋Œ€์ƒ์— ๋Œ€ํ•ด ์ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
"call-div1"์—.

๋ถ„ํ•  ์ „๋žต์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ „๋žต์ด ๋‹ค์Œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋Œ€์ƒ์—. SH2A์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ „๋žต์€ "divs" ๋ฐ "divu"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋Œ€์‹  ๋ช…๋ น.

-maccumulate-outgoing-args
์ฃผ๋ณ€์ด ์•„๋‹Œ ํ•จ์ˆ˜ ํ”„๋กค๋กœ๊ทธ์—์„œ ๋‚˜๊ฐ€๋Š” ์ธ์ˆ˜๋ฅผ ์œ„ํ•ด ๊ณต๊ฐ„์„ ํ•œ ๋ฒˆ ์˜ˆ์•ฝํ•˜์‹ญ์‹œ์˜ค.
๊ฐ ํ˜ธ์ถœ. ์ผ๋ฐ˜์ ์œผ๋กœ ์„ฑ๋Šฅ๊ณผ ํฌ๊ธฐ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ธด์žฅ์„ ํ‘ธ๋Š” ๋ฐ์—๋„ ํ•„์š”
์กฐ๊ฑด๋ถ€ ์ฝ”๋“œ ์ฃผ๋ณ€์˜ ์Šคํƒ ํ”„๋ ˆ์ž„ ๋ณ€๊ฒฝ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

-mdivsi3_libfunc=name
32๋น„ํŠธ ๋ถ€ํ˜ธ ์žˆ๋Š” ๋‚˜๋ˆ„๊ธฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. name. ์ด
์— ์‚ฌ์šฉ๋œ ์ด๋ฆ„์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ „ํ™” ๊ณผ ์ธ๋ณด์ด์Šค:์ฝœ ๋ถ„ํ•  ์ „๋žต, ๊ทธ๋ฆฌ๊ณ 
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์ž…๋ ฅ/์ถœ๋ ฅ/ํด๋กœ๋ฒ„ ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ๋ฅผ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.
์˜ต์…˜์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

-m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„
์ฃผ์–ด์ง„ ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋ฅผ ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปค๋„์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์•”ํ˜ธ. ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ๋Œ€์‹œ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜
๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mindexed ์ฃผ์†Œ ์ง€์ •
SHmedia32/SHcompact์— ๋Œ€ํ•ด ์ธ๋ฑ์Šค ์ฃผ์†Œ ์ง€์ • ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ง€
ํ•˜๋“œ์›จ์–ด ๋ฐ/๋˜๋Š” OS๊ฐ€ ์ธ๋ฑ์‹ฑ๋œ 32๋น„ํŠธ ๋žฉ์–ด๋ผ์šด๋“œ ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์†Œ ์ง€์ • ๋ชจ๋“œ. ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด 64๋น„ํŠธ ํ”„๋กœ์„ธ์„œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
OS๊ฐ€ 32๋น„ํŠธ ์ฃผ์†Œ ์ง€์ •์„ ์–ป๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ˜„์žฌ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— MMU
๊ตฌํ˜„์€ ์ธ๋ฑ์‹ฑ๋œ ์ฃผ์†Œ ์ง€์ • ๋ชจ๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ด ๋ฐฉ๋ฒ• ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
32๋น„ํŠธ ABI์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ -mno ์ธ๋ฑ์Šค ์ฃผ์†Œ ์ง€์ •.

-mgettr๋น„์šฉ=๋ฒˆํ˜ธ
"gettr" ๋ช…๋ น์— ๋Œ€ํ•ด ๊ฐ€์ •ํ•œ ๋น„์šฉ์„ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฒˆํ˜ธ. ๊ธฐ๋ณธ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.
-mpt ๊ณ ์ • ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด 100์ž…๋‹ˆ๋‹ค.

-mpt ๊ณ ์ •
"pt*" ๋ช…๋ น์–ด๊ฐ€ ํŠธ๋žฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋‚˜์€ ์Šค์ผ€์ค„๋ง๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ ํ•˜๋“œ์›จ์–ด์—์„œ๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์•„ํ‚คํ…์ฒ˜ ์ •์˜์— ๋”ฐ๋ฅด๋ฉด
"ptabs" ๋ฐ "ptrel"์€ ๋Œ€์ƒ anded๊ฐ€ 3์ผ ๋•Œ ํŠธ๋žฉ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์ „์— ์ด๋Ÿฌํ•œ ์ง€์นจ์„ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“œ๋Š” ์˜๋„ํ•˜์ง€ ์•Š์€ ์˜ํ–ฅ
๋ถ„๊ธฐํ•˜๊ฑฐ๋‚˜ ๋ฃจํ”„์—์„œ ๋Œ์–ด์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "__do_global_ctors"๋Š”
libgcc ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ์ƒ์„ฑ์ž๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชฉ๋ก์˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
-1๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์ด๋ž‘ -mpt ๊ณ ์ • ์˜ต์…˜, "ptabs"๋Š” ํ…Œ์ŠคํŠธ ์ „์— ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋Œ€ -1. ์ฆ‰, ๋ชจ๋“  ์ƒ์„ฑ์ž๊ฐ€ ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜์ง€๋งŒ
๋ฃจํ”„๊ฐ€ ๋ชฉ๋ก์˜ ๋์— ์˜ค๋ฉด "ptabs"๊ฐ€ -1์„ ๋กœ๋“œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ.

์ด ์˜ต์…˜์€ ํ˜„์žฌ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด์— ์•ˆ์ „ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
์‚ฌ์–‘, ๊ธฐ๋ณธ๊ฐ’์€ -mno-pt ๊ณ ์ •. ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ
-mgettr๋น„์šฉ, -mno-pt ๊ณ ์ • ๋˜ํ•œ ์˜๋ฏธ -mgtrcost=100; ์ด๊ฒƒ์€ ๋“ฑ๋ก์„ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค
์ผ๋ฐ˜ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์ƒ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

-์ตœ์†Œ ์œ ํšจ ๊ธฐํ˜ธ
๊ธฐํ˜ธ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑํ•œ ์ผ๋ฐ˜ ํ•จ์ˆ˜ ๊ธฐํ˜ธ
"movi"/"shori"/"ptabs" ๋˜๋Š” "movi"/"shori"/"ptrel"๋กœ ๋กœ๋“œํ•˜๋Š” ๋ฐ ํ•ญ์ƒ ์œ ํšจํ•˜์ง€๋งŒ
์–ด์…ˆ๋ธ”๋Ÿฌ ๋ฐ/๋˜๋Š” ๋ง์ปค ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•˜๋ฉด
"ptabs" ๋˜๋Š” "ptrel"์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. -mno-pt ๊ณ ์ • ์—
ํšจ๊ณผ. ๊ธฐ๋ณธ ๋ธ”๋ก ๊ฐ„ CSE, ํ˜ธ์ด์ŠคํŒ… ๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ์‹ฌ๋ณผ ์Šค์ผ€์ค„๋ง์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ž”๋œฉ. ๊ธฐ๋ณธ๊ฐ’์€ -mno-๋ฌดํšจ ๊ธฐํ˜ธ.

-mbranch ๋น„์šฉ=NUM
์ทจํ•˜๋‹ค NUM ๋ถ„๊ธฐ ๋ช…๋ น์— ๋Œ€ํ•œ ๋น„์šฉ์ด ๋ฉ๋‹ˆ๋‹ค. ์ˆซ์ž๊ฐ€ ๋†’์„์ˆ˜๋ก ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
๊ฐ€๋Šฅํ•˜๋ฉด ๋” ๋งŽ์€ ๋ถ„๊ธฐ ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค. ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ฐ’์€
์ปดํŒŒ์ผ๋˜๋Š” ํ”„๋กœ์„ธ์„œ ์œ ํ˜•์— ๋”ฐ๋ผ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

-mzdc๋ถ„๊ธฐ
-mno-zdc๋ธŒ๋žœ์น˜
์ œ๋กœ ๋ณ€์œ„ ์กฐ๊ฑด ๋ถ„๊ธฐ ๋ช…๋ น์–ด "bt" ๋ฐ
"bf"๋Š” ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— -mzdc๋ถ„๊ธฐ ๊ฐ€ ์ง€์ •๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” XNUMX ๋ณ€์œ„๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
๋ถ„๊ธฐ ์ฝ”๋“œ ์‹œํ€€์Šค. SH4 ๋ฐ
SH4A. ๋‹ค์Œ์„ ์ง€์ •ํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -mno-zdc๋ธŒ๋žœ์น˜.

-mcbranch-force-delay-slot
์ง€์—ฐ ์Šฌ๋กฏ์„ ์ฑ„์šฐ๋Š” ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ์— ๋Œ€ํ•ด ์ง€์—ฐ ์Šฌ๋กฏ์„ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ ์ ˆํ•œ ์ง€์นจ์„ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ "์•„๋‹ˆ์˜ค"์™€ ํ•จ๊ป˜. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์˜ต์…˜์€
์žฅ์• ๊ฐ€์žˆ๋Š”. ์›๋ณธ์—์„œ ๋ฐœ๊ฒฌ๋œ ํ•˜๋“œ์›จ์–ด ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
SH7055.

-๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ
-mno-์œตํ•ฉ-๋งค๋“œ
๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณฑํ•˜๊ธฐ ๋ฐ ๋ˆ„์ ์„ ์‚ฌ์šฉ(์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
์ง€์นจ. ์ด๋Ÿฌํ•œ ๋ช…๋ น์–ด๋Š” ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ. ๊ธฐ๊ณ„ ์˜์กด -๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ ์ด์ œ ์˜ต์…˜์ด ์‹œ์Šคํ…œ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
๋…๋ฆฝ -ffp-๊ณ„์•ฝ=๋น ๋ฅธ ์˜ต์…˜ ๋ฐ -mno-์œตํ•ฉ-๋งค๋“œ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค
-ffp-๊ณ„์•ฝ=ํ•ด์ œ.

-mfsca
-mno-fsca
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์ธ ๋ฐ ์ฝ”์‚ฌ์ธ์— ๋Œ€ํ•ด "fsca" ๋ช…๋ น์„ ๋‚ด๋ณด๋‚ด๋„๋ก ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทผ์‚ฌ์น˜. ์˜ต์…˜ -mfsca ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™”. SH4A์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ -mno-fsca ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ์‚ฌ์ธ ๋ฐ ์ฝ”์‚ฌ์ธ ๊ทผ์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

-mfsrra
-mno-fsrra
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์—ญ์ œ๊ณฑ์— ๋Œ€ํ•ด "fsrra" ๋ช…๋ น์„ ๋‚ด๋ณด๋‚ด๋„๋ก ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ฃจํŠธ ๊ทผ์‚ฌ. ์˜ต์…˜ -mfsrra ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ๊ณผ - ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
SH4A์šฉ ์ฝ”๋“œ ์ƒ์„ฑ. ์‚ฌ์šฉ -mno-fsrra ์—ญ ์ œ๊ณฑ๊ทผ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ์šฐ์—๋„ ๊ทผ์‚ฌ์น˜ -์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ๊ณผ - ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ ์—์žˆ๋‹ค
ํšจ๊ณผ.

-์ฒ™-cmove
์กฐ๊ฑด๋ถ€ ์ด๋™ ๋ช…๋ น์— ๋Œ€ํ•ด ์ œ๋กœ ๋ณ€์œ„ ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
ํŒจํ„ด. ์ด๋กœ ์ธํ•ด SH4 ํ”„๋กœ์„ธ์„œ์—์„œ ๋” ๋น ๋ฅธ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†”๋ผ๋ฆฌ์Šค 2 ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ Solaris 2์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-mclear-hwcap
-mclear-hwcap ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์†”๋ผ๋ฆฌ์Šค ์–ด์…ˆ๋ธ”๋Ÿฌ. ์ด๊ฒƒ์€ ๋ชฉ์  ํŒŒ์ผ์ด ISA ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ ์‹œ์Šคํ…œ์—์„œ ์ง€์›ํ•˜์ง€๋งŒ ๋Ÿฐํƒ€์ž„์— ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

-๋ถˆ์ˆœํ•œ ํ…์ŠคํŠธ
-๋ถˆ์ˆœํ•œ ํ…์ŠคํŠธ, ์ด์™ธ์— ์‚ฌ์šฉ -๊ณต์œ , ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์ „๋‹ฌํ•˜์ง€ ์•Š๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. -z ๋ณธ๋ฌธ ์—
๊ณต์œ  ๊ฐœ์ฒด๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ ๋ง์ปค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ข…์† ์ฝ”๋“œ๋ฅผ ๊ณต์œ  ๊ฐœ์ฒด๋กœ.

-๋ถˆ์ˆœํ•œ ํ…์ŠคํŠธ "์žฌ๋ฐฐ์น˜๋Š” ํ• ๋‹น ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์“ฐ๊ธฐ ๋ถˆ๊ฐ€๋Šฅ์— ๋Œ€ํ•ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
์„น์…˜" ๋ง์ปค ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•„์š”ํ•œ ์žฌ๋ฐฐ์น˜๋Š” copy-on-
์“ฐ๊ธฐ ๋ฐ ๊ณต์œ  ๊ฐœ์ฒด๋Š” ์‹ค์ œ๋กœ ํ”„๋กœ์„ธ์Šค ๊ฐ„์— ๊ณต์œ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์—
์‚ฌ์šฉ -๋ถˆ์ˆœํ•œ ํ…์ŠคํŠธ, ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -fpic or -fPIC.

์ด๋Ÿฌํ•œ ์Šค์œ„์น˜๋Š” Solaris 2์—์„œ ์œ„์— ์ถ”๊ฐ€๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-pthread
POSIX ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€
์ „์ฒ˜๋ฆฌ๊ธฐ์™€ ๋ง์ปค ๋ชจ๋‘์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์Šค๋ ˆ๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๊ฐœ์ฒด ์ฝ”๋“œ์˜ ์•ˆ์ „์„ฑ.

-pthread
์ด๊ฒƒ์€ ๋™์˜์–ด์ž…๋‹ˆ๋‹ค -pthread.

SPARC ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ SPARC์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-mno-app-regs
-map-regs
์ง€์ • -map-regs ์ „์—ญ ๋ ˆ์ง€์Šคํ„ฐ 2~4๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
SPARC SVR4 ABI๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ์œผ๋กœ ์˜ˆ์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์—ญ ๋ ˆ์ง€์Šคํ„ฐ 1๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ ์ „์—ญ
๋ ˆ์ง€์Šคํ„ฐ 2์—์„œ 4๋Š” ๋‹ค์Œ์œผ๋กœ ํด๋กœ๋ฒ„๋˜๋Š” ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ํ˜ธ์ถœ. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ผ๋ถ€ ์„ฑ๋Šฅ ์†์‹ค์„ ๊ฐ์ˆ˜ํ•˜๊ณ  ์™„์ „ํžˆ SVR4 ABI๋ฅผ ์ค€์ˆ˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.
-mno-app-regs. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mํ”Œ๋žซ
-mno-ํ”Œ๋žซ
์™€ -mํ”Œ๋žซ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ €์žฅ/๋ณต์› ๋ช…๋ น์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ 
"ํ”Œ๋žซ" ๋˜๋Š” ๋‹จ์ผ ๋ ˆ์ง€์Šคํ„ฐ ์ฐฝ ๋ชจ๋ธ. ์ด ๋ชจ๋ธ์€ ์ผ๋ฐ˜
์œˆ๋„์šฐ ๋ชจ๋ธ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋ ˆ์ง€์Šคํ„ฐ์™€ ์ž…๋ ฅ ๋ ˆ์ง€์Šคํ„ฐ(0--5)๋Š” ์—ฌ์ „ํžˆ
"ํ˜ธ์ถœ ์ €์žฅ" ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ทจ๊ธ‰๋˜๋ฉฐ ํ•„์š”์— ๋”ฐ๋ผ ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์™€ -mno-ํ”Œ๋žซ (๊ธฐ๋ณธ๊ฐ’), ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ €์žฅ/๋ณต์› ๋ช…๋ น์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(์˜ˆ์™ธ
๋ฆฌํ”„ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ). ์ด๊ฒƒ์€ ์ •์ƒ ์ž‘๋™ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.

-mfpu
-mhard-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๊ฐ€ ํฌํ•จ๋œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-fpu
-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์ด ํฌํ•จ๋œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ : ํ•„์ˆ˜
๋ชจ๋“  SPARC ๋Œ€์ƒ์— ๋Œ€ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์„ค์˜
๊ธฐ๊ณ„์˜ ์ผ๋ฐ˜์ ์ธ C ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์ด๊ฒƒ์€ ๊ต์ฐจ์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํŽธ์ง‘. ์ ์ ˆํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์Šค์Šค๋กœ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํฌ๋กœ์Šค ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ํ•จ์ˆ˜ ์ž„๋ฒ ๋””๋“œ ํƒ€๊ฒŸ ์ŠคํŒŒํฌ-*-์•„์›ƒ ๊ณผ ์ŠคํŒŒํด๋ผ์ดํŠธ-*-*
์†Œํ”„ํŠธ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ์ง€์›์„ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

-msoft-float ์ถœ๋ ฅ ํŒŒ์ผ์˜ ํ˜ธ์ถœ ๊ทœ์น™์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ๊ฒƒ์€ ๋‹จ์ง€
์ปดํŒŒ์ผํ•˜๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ด ์˜ต์…˜์ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํŠนํžˆ, ๋‹น์‹ ์€
ํŽธ์ง‘ํ•˜๋‹ค libgcc.a, GCC์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, -msoft-float ์ด๋ฅผ ์œ„ํ•ด
์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-mhard-quad-float
์ฟผ๋“œ ์›Œ๋“œ(long double) ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-msoft-์ฟผ๋“œ-ํ”Œ๋กœํŠธ
์ฟผ๋“œ ์›Œ๋“œ(long double) ๋ถ€๋™ ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ํฌํ•จํ•˜๋Š” ์ถœ๋ ฅ ์ƒ์„ฑ
์ง€์นจ. ํ˜ธ์ถœ๋œ ๊ธฐ๋Šฅ์€ SPARC ABI์— ์ง€์ •๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด
ํƒœ๋งŒ.

์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” SPARC ๊ตฌํ˜„์€ ์—†์Šต๋‹ˆ๋‹ค.
์ฟผ๋“œ ์›Œ๋“œ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด. ๊ทธ๋“ค์€ ๋ชจ๋‘ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•œ ํŠธ๋žฉ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ํŠธ๋žฉ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๋ช…๋ น์˜ ํšจ๊ณผ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
ํŠธ๋žฉ ํ•ธ๋“ค๋Ÿฌ ์˜ค๋ฒ„ํ—ค๋“œ๋กœ ์ธํ•ด ABI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋Š๋ฆฝ๋‹ˆ๋‹ค.
๋ฃจํ‹ด. ๊ทธ๋ž˜์„œ -msoft-์ฟผ๋“œ-ํ”Œ๋กœํŠธ ์˜ต์…˜์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-unaligned-double
-munaligned-๋”๋ธ”
double์—๋Š” 8๋ฐ”์ดํŠธ ์ •๋ ฌ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

์™€ -munaligned-๋”๋ธ”, GCC๋Š” double์ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ 8๋ฐ”์ดํŠธ ์ •๋ ฌ์„ ๊ฐ–๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์œ ํ˜•์— ํฌํ•จ๋˜๊ฑฐ๋‚˜ ์ ˆ๋Œ€ ์ฃผ์†Œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
4๋ฐ”์ดํŠธ ์ •๋ ฌ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜๋ฉด ์ผ๋ถ€ ํฌ๊ท€
๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ. ๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค.
ํŠนํžˆ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

-muser ๋ชจ๋“œ
-mno-์‚ฌ์šฉ์ž ๋ชจ๋“œ
๊ฐ๋…์ž ๋ชจ๋“œ์—์„œ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
LEON3 ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด ๋‚ด๋ณด๋‚ธ "casa" ๋ช…๋ น. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-๋น ๋ฅธ ๊ตฌ์กฐ
-mfaster-๊ตฌ์กฐ์ฒด
์™€ -mfaster-๊ตฌ์กฐ์ฒด, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ตฌ์กฐ์— 8๋ฐ”์ดํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ •. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ๋ณธ์— ๋Œ€ํ•ด "ldd" ๋ฐ "std" ๋ช…๋ น์–ด ์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ตฌ์กฐ ํ• ๋‹น์—์„œ "ld" ๋ฐ "st" ์Œ์˜ ๋‘ ๋ฐฐ ๋Œ€์‹ . ๊ทธ๋Ÿฌ๋‚˜, ๊ทธ
์ด ๋ณ€๊ฒฝ๋œ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๋ฉด SPARC ABI๋ฅผ ์ง์ ‘ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜๋„๋œ
๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฒฐ๊ณผ ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ์ธ์ •ํ•˜๋Š” ๋Œ€์ƒ์—๋งŒ ์‚ฌ์šฉ
ABI์˜ ๊ทœ์น™๊ณผ ์ง์ ‘์ ์œผ๋กœ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mcpu =CPU_์œ ํ˜•
๋ช…๋ น์–ด ์„ธํŠธ, ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ ๋ฐ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •
๊ธฐ๊ณ„ ์œ ํ˜• CPU_์œ ํ˜•. ์ง€์›๋˜๋Š” ๊ฐ’ CPU_์œ ํ˜• are v7, ์‚ฌ์ดํ”„๋Ÿฌ์Šค, v8, ์ดˆ์„,
ํ•˜์ดํผ์ŠคํŒŒํฌ, ๋ ˆ์˜จ, leon3, ๋ ˆ์˜จ3v7, ์ŠคํŒŒํด๋ผ์ดํŠธ, f930, f934, ์ŠคํŒŒํด๋ผ์ดํŠธ86x, ์ŠคํŒŒํด๋ ›,
tsc701, v9, ๊ทน์ดˆ๋‹จํŒŒ, ๊ทน์ดˆ๋‹จํŒŒ3, ๋‚˜์ด์•„๊ฐ€๋ผ, ๋‚˜์ด์•„๊ฐ€๋ผ 2, ๋‚˜์ด์•„๊ฐ€๋ผ 3 ๊ณผ ๋‚˜์ด์•„๊ฐ€๋ผ 4.

๊ธฐ๋ณธ Solaris ๋ฐ GNU/Linux ๋„๊ตฌ ๋ชจ์Œ๋„ ๊ฐ’์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ถœ์‹ , ์„ ํƒ
ํ˜ธ์ŠคํŠธ ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์•„ํ‚คํ…์ฒ˜ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. -mcpu=๋„ค์ดํ‹ฐ๋ธŒ ๊ฒฝ์šฐ์—๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค
GCC๊ฐ€ ํ”„๋กœ์„ธ์„œ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ์„ ์„ ํƒํ•˜๋Š” ๊ฐ’์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ตฌํ˜„์ด ์•„๋‹ˆ๋ผ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ v7, v8, ์ŠคํŒŒํด๋ผ์ดํŠธ, ์ŠคํŒŒํด๋ ›, v9.

๋‹ค์Œ์€ ์ง€์›๋˜๋Š” ๊ฐ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์ง€์›๋˜๋Š” ๊ตฌํ˜„ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

v7 ์‚ฌ์ดํ”„๋Ÿฌ์Šค, leon3v7

v8 ์Šˆํผ์ŠคํŒŒํฌ, ํ•˜์ดํผ์ŠคํŒŒํฌ, ๋ ˆ์˜จ, ๋ ˆ์˜จ3

์ŠคํŒŒํด๋ผ์ดํŠธ
f930, f934, ์ŠคํŒŒํด๋ผ์ดํŠธ86x

์ŠคํŒŒํด๋ ›
tsc701

v9 ultrasparc, ultrasparc3, โ€‹โ€‹๋‚˜์ด์•„๊ฐ€๋ผ, ๋‚˜์ด์•„๊ฐ€๋ผ2, ๋‚˜์ด์•„๊ฐ€๋ผ3, ๋‚˜์ด์•„๊ฐ€๋ผ4

๊ธฐ๋ณธ์ ์œผ๋กœ(๋‹ฌ๋ฆฌ ๊ตฌ์„ฑํ•˜์ง€ ์•Š๋Š” ํ•œ) GCC๋Š” V7 ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
SPARC ์•„ํ‚คํ…์ฒ˜. ์™€ ํ•จ๊ป˜ -mcpu=์‚ฌ์ดํ”„๋Ÿฌ์Šค, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
SPARCStation/SPARCServer 7xx ์‹œ๋ฆฌ์ฆˆ์—์„œ ์‚ฌ์šฉ๋˜๋Š” Cypress CY602C3 ์นฉ. ์ด๊ฒƒ์€
๋˜ํ•œ ์ด์ „ SPARCStation 1, 2, IPX ๋“ฑ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์™€ -mcpu=v8, GCC๋Š” SPARC ์•„ํ‚คํ…์ฒ˜์˜ V8 ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. NS
V7 ์ฝ”๋“œ์™€์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ •์ˆ˜ ๊ณฑํ•˜๊ธฐ ๋ฐ
SPARC-V8์—๋Š” ์žˆ์ง€๋งŒ SPARC-V7์—๋Š” ์—†๋Š” ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ ๋ช…๋ น์–ด. ์™€ ํ•จ๊ป˜
-mcpu=์Šˆํผ์ŠคํŒŒํฌ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” SuperSPARC ์นฉ์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
SPARCStation 10, 1000 ๋ฐ 2000 ์‹œ๋ฆฌ์ฆˆ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์™€ -mcpu=์ŠคํŒŒํด๋ผ์ดํŠธ, GCC๋Š” SPARC์˜ SPARClite ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ฑด์ถ•ํ•™. ์ด๊ฒƒ์€ ์ •์ˆ˜ ๊ณฑํ•˜๊ธฐ, ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ ๋‹จ๊ณ„ ๋ฐ ์Šค์บ”("ffs")์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
SPARClite์—๋Š” ์žˆ์ง€๋งŒ SPARC-V7์—๋Š” ์—†๋Š” ๋ช…๋ น์–ด. ์™€ ํ•จ๊ป˜ -mcpu=f930Walk Through California ํ”„๋กœ๊ทธ๋žจ,
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์›๋ž˜ Fujitsu MB86930 ์นฉ์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
FPU๊ฐ€ ์—†๋Š” SPARClite. ์™€ ํ•จ๊ป˜ -mcpu=f934, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
FPU๊ฐ€ ์žˆ๋Š” ์ตœ์‹  SPARClite์ธ Fujitsu MB86934 ์นฉ.

์™€ -mcpu=์ŠคํŒŒํด๋ ›, GCC๋Š” SPARC์˜ SPARClet ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ฑด์ถ•ํ•™. ์ด๊ฒƒ์€ ์ •์ˆ˜ ๊ณฑํ•˜๊ธฐ, ๊ณฑํ•˜๊ธฐ/๋ˆ„์ ํ•˜๊ธฐ, ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
SPARClet์—๋Š” ์žˆ์ง€๋งŒ SPARC-V7์—๋Š” ์—†๋Š” ๋‹จ๊ณ„ ๋ฐ ์Šค์บ”("ffs") ๋ช…๋ น. ์™€ ํ•จ๊ป˜
-mcpu=tsc701, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” TEMIC SPARClet ์นฉ์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์™€ -mcpu=v9, GCC๋Š” SPARC ์•„ํ‚คํ…์ฒ˜์˜ V9 ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
64๋น„ํŠธ ์ •์ˆ˜ ๋ฐ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ด๋™ ๋ช…๋ น์–ด ์ถ”๊ฐ€, 3๊ฐœ์˜ ์ถ”๊ฐ€ ๋ถ€๋™ ์†Œ์ˆ˜์ 
์กฐ๊ฑด ์ฝ”๋“œ ๋ ˆ์ง€์Šคํ„ฐ ๋ฐ ์กฐ๊ฑด๋ถ€ ์ด๋™ ๋ช…๋ น. ์™€ ํ•จ๊ป˜ -mcpu=์šธํŠธ๋ผ์ŠคํŒŒํฌ,
์ปดํŒŒ์ผ๋Ÿฌ๋Š” Sun UltraSPARC I/II/IIi ์นฉ์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜
-mcpu=ultraparc3, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” Sun UltraSPARC์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
III/III+/IIIi/IIIi+/IV/IV+ ์นฉ. ์™€ ํ•จ๊ป˜ -mcpu=๋‚˜์ด์•„๊ฐ€๋ผ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ถ”๊ฐ€๋กœ
Sun UltraSPARC T1 ์นฉ์— ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ -mcpu=๋‚˜์ด์•„๊ฐ€๋ผ2, ์ปดํŒŒ์ผ๋Ÿฌ
Sun UltraSPARC T2 ์นฉ์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ -mcpu=๋‚˜์ด์•„๊ฐ€๋ผ3Walk Through California ํ”„๋กœ๊ทธ๋žจ,
์ปดํŒŒ์ผ๋Ÿฌ๋Š” Sun UltraSPARC T3 ์นฉ์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ -mcpu=๋‚˜์ด์•„๊ฐ€๋ผ4,
์ปดํŒŒ์ผ๋Ÿฌ๋Š” Sun UltraSPARC T4 ์นฉ์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mtune=CPU_์œ ํ˜•
๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • CPU_์œ ํ˜•, ๊ทธ๋Ÿฌ๋‚˜ ์„ค์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค
์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ช…๋ น์–ด ์„ธํŠธ ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ -mcpu =CPU_์œ ํ˜• ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋Œ€ํ•œ ๋™์ผํ•œ ๊ฐ’ -mcpu =CPU_์œ ํ˜• ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -mtune=CPU_์œ ํ˜•, ๊ทธ๋Ÿฌ๋‚˜ ์œ ์ผํ•œ
์œ ์šฉํ•œ ๊ฐ’์€ ํŠน์ • CPU ๊ตฌํ˜„์„ ์„ ํƒํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€
์‚ฌ์ดํ”„๋Ÿฌ์Šค, ์ดˆ์„, ํ•˜์ดํผ์ŠคํŒŒํฌ, ๋ ˆ์˜จ, leon3, ๋ ˆ์˜จ3v7, f930, f934, ์ŠคํŒŒํด๋ผ์ดํŠธ86x,
tsc701, ๊ทน์ดˆ๋‹จํŒŒ, ๊ทน์ดˆ๋‹จํŒŒ3, ๋‚˜์ด์•„๊ฐ€๋ผ, ๋‚˜์ด์•„๊ฐ€๋ผ 2, ๋‚˜์ด์•„๊ฐ€๋ผ 3 ๊ณผ ๋‚˜์ด์•„๊ฐ€๋ผ 4. ๊ณผ
๊ธฐ๋ณธ Solaris ๋ฐ GNU/Linux ๋„๊ตฌ ๋ชจ์Œ, ์ถœ์‹  ๋˜ํ•œ ์‚ฌ์šฉ๋  ์ˆ˜์žˆ๋‹ค.

-mv8plus
-mno-v8plus
์™€ -mv8plus, GCC๋Š” SPARC-V8+ ABI์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. V8๊ณผ์˜ ์ฐจ์ด์ 
ABI๋Š” ์ „์—ญ ๋ฐ ์ถœ๋ ฅ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ 64๋น„ํŠธ ๋„ˆ๋น„๋กœ ๊ฐ„์ฃผ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  SPARC-V32 ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•ด 9๋น„ํŠธ ๋ชจ๋“œ์˜ Solaris.

-mvis
-mno-vis
์™€ -mvis, GCC๋Š” UltraSPARC Visual์„ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ. ๊ธฐ๋ณธ๊ฐ’์€ -mno-vis.

-mvis2
-mno-vis2
์™€ -mvis2, GCC๋Š” UltraSPARC ๋ฒ„์ „ 2.0์„ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋น„์ฃผ์–ผ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ. ๊ธฐ๋ณธ๊ฐ’์€ -mvis2 CPU๋ฅผ ํƒ€๊ฒŸํŒ…ํ•  ๋•Œ
UltraSPARC-III ์ด์ƒ๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ -mvis2 ๋˜ํ•œ
์„ธํŠธ -mvis.

-mvis3
-mno-vis3
์™€ -mvis3, GCC๋Š” UltraSPARC ๋ฒ„์ „ 3.0์„ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋น„์ฃผ์–ผ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ. ๊ธฐ๋ณธ๊ฐ’์€ -mvis3 CPU๋ฅผ ํƒ€๊ฒŸํŒ…ํ•  ๋•Œ
niagara-3 ์ด์ƒ๊ณผ ๊ฐ™์€ ์ง€์นจ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ -mvis3 ๋˜ํ•œ ์„ธํŠธ
-mvis2 ๊ณผ -mvis.

-mcbcond
-mno-cbcond
์™€ -mcbcond, GCC๋Š” ๋น„๊ต ๋ฐ โ€‹โ€‹๋ถ„๊ธฐ๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
Sparc Architecture 2011์— ์ •์˜๋œ ์ง€์นจ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mcbcond ์–ธ์ œ
niagara-4 ์ด์ƒ๊ณผ ๊ฐ™์ด ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ง€์›ํ•˜๋Š” CPU๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

-mpoc
-mno-popc
์™€ -mpoc, GCC๋Š” UltraSPARC ๋ชจ์ง‘๋‹จ์„ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ณ„์‚ฐ ์ง€์‹œ. ๊ธฐ๋ณธ๊ฐ’์€ -mpoc ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” CPU๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ
Niagara-2 ์ด์ƒ๊ณผ ๊ฐ™์€ ์ง€์นจ.

-mfmaf
-mno-fmaf
์™€ -mfmaf, GCC๋Š” UltraSPARC Fused Multiply-
๋ถ€๋™ ์†Œ์ˆ˜์  ํ™•์žฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ -mfmaf CPU๋ฅผ ํƒ€๊ฒŸํŒ…ํ•  ๋•Œ
Niagara-3 ์ด์ƒ๊ณผ ๊ฐ™์€ ์ง€์นจ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

-mfix-at697f
Atmel AT697F ํ”„๋กœ์„ธ์„œ์˜ ๋‹จ์ผ ์ •์˜คํ‘œ์— ๋Œ€ํ•ด ๋ฌธ์„œํ™”๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
(AT13E ํ”„๋กœ์„ธ์„œ์˜ ์ •์˜คํ‘œ #697์— ํ•ด๋‹น).

-mfix-ut699
๋ถ€๋™ ์†Œ์ˆ˜์  ์ •์˜คํ‘œ ๋ฐ ๋ฐ์ดํ„ฐ ์บ์‹œ์— ๋Œ€ํ•ด ๋ฌธ์„œํ™”๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
UT699 ํ”„๋กœ์„ธ์„œ์˜ ์ •์˜คํ‘œ๋ฅผ ๋ฌดํšจํ™”ํ•ฉ๋‹ˆ๋‹ค.

Bowman์˜ -m ์˜ต์…˜์€ 9๋น„ํŠธ์˜ SPARC-V64 ํ”„๋กœ์„ธ์„œ์—์„œ ์œ„์— ์ถ”๊ฐ€๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ :

-m32
-m64
32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ํ™˜๊ฒฝ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 32๋น„ํŠธ ํ™˜๊ฒฝ์€ int,
long ๋ฐ 32๋น„ํŠธ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์ž…๋‹ˆ๋‹ค. 64๋น„ํŠธ ํ™˜๊ฒฝ์€ int๋ฅผ 32๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๊ณ  long ๋ฐ
64๋น„ํŠธ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ.

-mc๋ชจ๋ธ=์–ด๋Š
์ฝ”๋“œ ๋ชจ๋ธ์„ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋“ค๋กœ
์ค‘๊ฐ„/๋‚ฎ์Œ ์ฝ”๋“œ ๋ชจ๋ธ: 64๋น„ํŠธ ์ฃผ์†Œ, ํ”„๋กœ๊ทธ๋žจ์€ ๋‚ฎ์€ 32๋น„ํŠธ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ๋น„ํŠธ. ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ ์œผ๋กœ ๋˜๋Š” ๋™์ ์œผ๋กœ ๋งํฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘๊ฐ„
์ค‘๊ฐ„/์ค‘๊ฐ„ ์ฝ”๋“œ ๋ชจ๋ธ: 64๋น„ํŠธ ์ฃผ์†Œ, ํ”„๋กœ๊ทธ๋žจ์€ ๋‚ฎ์€
44๋น„ํŠธ ๋ฉ”๋ชจ๋ฆฌ, ํ…์ŠคํŠธ ๋ฐ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ์˜ ํฌ๊ธฐ๋Š” 2GB ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•˜๋ฉฐ
๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ์˜ 2GB ์ด๋‚ด์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋‹ค๋‹ˆ
Medium/Anywhere ์ฝ”๋“œ ๋ชจ๋ธ: 64๋น„ํŠธ ์ฃผ์†Œ, ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋””์—์„œ๋‚˜ ๋งํฌ๋  ์ˆ˜ ์žˆ์Œ
๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ…์ŠคํŠธ ๋ฐ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ์˜ ํฌ๊ธฐ๋Š” 2GB ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋Š”
์„ธ๊ทธ๋จผํŠธ๋Š” ํ…์ŠคํŠธ ์„ธ๊ทธ๋จผํŠธ์˜ 2GB ์ด๋‚ด์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์— ๋ฉ”๋‹ค๋‹ˆ
์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ Medium/Anywhere ์ฝ”๋“œ ๋ชจ๋ธ: 64๋น„ํŠธ ์ฃผ์†Œ, ํ…์ŠคํŠธ
๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” ํฌ๊ธฐ๊ฐ€ 2GB ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•˜๋ฉฐ ๋‘˜ ๋‹ค ๋ฉ”๋ชจ๋ฆฌ์˜ ์•„๋ฌด ๊ณณ์—์„œ๋‚˜ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
(๋งํฌ ์‹œ๊ฐ„์— ๊ฒฐ์ •๋จ). ์ „์—ญ ๋ ˆ์ง€์Šคํ„ฐ %g4๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ธฐ์ค€์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
๋ถ„์ ˆ. ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ PIC๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ=๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ
ํ”„๋กœ์„ธ์„œ์— ์ ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์„ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ ๊ฐ’
ํ”„๋กœ์„ธ์„œ ๋ฐ ์šด์˜ ์ฒด์ œ์˜ ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

rmo ๋ฆด๋ ‰์Šค ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋”

pso ๋ถ€๋ถ„ ์ƒ์  ์ฃผ๋ฌธ

tso ์ด ๋งค์žฅ ์ฃผ๋ฌธ

sc ์ˆœ์ฐจ ์ผ๊ด€์„ฑ

์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์€ Sparc V9 ์•„ํ‚คํ…์ฒ˜์˜ ๋ถ€๋ก D์— ๊ณต์‹์ ์œผ๋กœ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ์˜ "PSTATE.MM" ํ•„๋“œ์— ์„ค์ •๋œ ๋Œ€๋กœ ์ˆ˜๋™.

-mstack ๋ฐ”์ด์–ด์Šค
-mno-์Šคํƒ-๋ฐ”์ด์–ด์Šค
์™€ -mstack ๋ฐ”์ด์–ด์Šค, GCC๋Š” ์Šคํƒ ํฌ์ธํ„ฐ์™€ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ(์žˆ๋Š” ๊ฒฝ์šฐ),
์Šคํƒ ํ”„๋ ˆ์ž„ ์ฐธ์กฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” -2047๋งŒํผ ์˜คํ”„์…‹๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
64๋น„ํŠธ ๋ชจ๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ทธ๋Ÿฌํ•œ ์˜คํ”„์…‹์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

SPU ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ SPU์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-Mwarn-Reloc
-mererror-reloc
SPU์šฉ ๋กœ๋”๋Š” ๋™์  ์žฌ๋ฐฐ์น˜๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š”
๋™์  ์žฌ๋ฐฐ์น˜๊ฐ€ ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. -mno-์˜ค๋ฅ˜-์žฌ๋ฐฐ์น˜
์˜ค๋ฅ˜๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ , -Mwarn-Reloc ๋Œ€์‹  ๊ฒฝ๊ณ ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-msafe-dma
-munsafe-dma
DMA๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์™„๋ฃŒ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ช…๋ น์€ ๋‹ค์Œ์œผ๋กœ ์žฌ์ •๋ ฌ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
์•ก์„ธ์Šค ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋กœ๋“œ ๋ฐ ์ €์žฅ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์™€ ํ•จ๊ป˜ -munsafe-dma
๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๋ ค๋ฉด "ํœ˜๋ฐœ์„ฑ" ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ
๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ ์žฅ์†Œ์˜ ๋น„ํšจ์œจ์ ์ธ ์ฝ”๋“œ. ๋งˆํฌ๋ณด๋‹ค
๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํœ˜๋ฐœ์„ฑ์ด๋ฏ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -msafe-dma ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ DMA๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ง€์‹œ
๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ์— ์ž ์žฌ์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ช…๋ น.

-mbranch ํžŒํŠธ
๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์ค‘๋‹จ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ถ„๊ธฐ ํžŒํŠธ ๋ช…๋ น์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•ญ์ƒ ๊ฐ€์ ธ ๊ฐ€๊ฑฐ๋‚˜ ์•„๋งˆ๋„ ๊ฐ€์ ธ๊ฐˆ ๊ฐ€์ง€. ํžŒํŠธ๋Š” 8๋ณด๋‹ค ๊ฐ€๊น๊ฒŒ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ถ„๊ธฐ์—์„œ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์ง€์‹œ. ๋‹ค์Œ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋น„ํ™œ์„ฑํ™”ํ•  ์ด์œ ๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊น… ๋ชฉ์ , ๋˜๋Š” ๊ฐœ์ฒด๋ฅผ ์กฐ๊ธˆ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-msmall-mem
-mlarge-mem
๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ์ฃผ์†Œ๊ฐ€ 18๋น„ํŠธ๋ณด๋‹ค ํฌ์ง€ ์•Š๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์™€ -mlarge-mem ์ „์ฒด 32๋น„ํŠธ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ •ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

-mstdmain
๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” SPU ์Šคํƒ€์ผ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ •ํ•˜๋Š” ์‹œ์ž‘ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋งํฌํ•ฉ๋‹ˆ๋‹ค.
์ธํ„ฐํŽ˜์ด์Šค(์ „ํ†ต์ ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์ด ์žˆ์Œ). ์™€ ํ•จ๊ป˜ -mstdmain, GCC ๋งํฌ
"main"์— ๋Œ€ํ•œ C99 ์Šคํƒ€์ผ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ •ํ•˜๋Š” ์‹œ์ž‘ ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ”„๋กœ๊ทธ๋žจ,
"argv" ๋ฌธ์ž์—ด์˜ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

-m๊ณ ์ • ๋ฒ”์œ„=๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„
์ฃผ์–ด์ง„ ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋ฅผ ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ
๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปค๋„์„ ์ปดํŒŒ์ผํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์•”ํ˜ธ. ๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ๋Œ€์‹œ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜
๋ ˆ์ง€์Šคํ„ฐ ๋ฒ”์œ„๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mea32
-mea64
"__ea"๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค๋˜๋Š” PPU ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ •ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
๋ช…๋ช…๋œ ์ฃผ์†Œ ๊ณต๊ฐ„ ํ•œ์ •์ž๋Š” 32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ๋„ˆ๋น„์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 32๋น„ํŠธ์ž…๋‹ˆ๋‹ค.
ABI ๋ณ€๊ฒฝ ์˜ต์…˜์ด๋ฏ€๋กœ ์‹คํ–‰ ํŒŒ์ผ์˜ ๋ชจ๋“  ๊ฐœ์ฒด ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ™์€ ์„ค์ •์œผ๋กœ.

-maddress ๊ณต๊ฐ„ ๋ณ€ํ™˜
-mno ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ณ€ํ™˜
"__ea" ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ผ๋ฐ˜ ์ฃผ์†Œ์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉ/๋น„ํ—ˆ์šฉ
์šฐ์ฃผ. ์ด๊ฒƒ์€ "__ea"์™€ ์ œ๋„ค๋ฆญ ํฌ์ธํ„ฐ ์‚ฌ์ด์˜ ๋ช…์‹œ์  ์œ ํ˜• ์บ์ŠคํŠธ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
"__ea" ํฌ์ธํ„ฐ์— ๋Œ€ํ•œ ์ผ๋ฐ˜ ํฌ์ธํ„ฐ์˜ ์•”์‹œ์  ๋ณ€ํ™˜. ๊ธฐ๋ณธ๊ฐ’์€ ํ—ˆ์šฉ
์ฃผ์†Œ ๊ณต๊ฐ„ ํฌ์ธํ„ฐ ๋ณ€ํ™˜

-mcache ํฌ๊ธฐ=์บ์‹œ ํฌ๊ธฐ
์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‹คํ–‰ ํŒŒ์ผ์— ์—ฐ๊ฒฐํ•˜๋Š” libgcc ๋ฒ„์ „์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
"__ea" ์ฃผ์†Œ์˜ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ด€๋ฆฌ ์บ์‹œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ • ์บ์‹œ ํฌ๊ธฐ์˜ ๊ณต๊ฐ„. ๊ฐ€๋Šฅํ•œ ์˜ต์…˜ ์บ์‹œ ํฌ๊ธฐ are 8, 16, 32, 64
๊ณผ 128. ๊ธฐ๋ณธ ์บ์‹œ ํฌ๊ธฐ๋Š” 64KB์ž…๋‹ˆ๋‹ค.

-๋งˆํ† ๋ฏน ์—…๋ฐ์ดํŠธ
-mno-์›์ž ์—…๋ฐ์ดํŠธ
์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‹คํ–‰ ํŒŒ์ผ์— ์—ฐ๊ฒฐํ•˜๋Š” libgcc ๋ฒ„์ „์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
PPU ์ธก ๋ณ€์ˆ˜์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ด€๋ฆฌ ์บ์‹œ์— ๋Œ€ํ•œ ์›์ž ์—…๋ฐ์ดํŠธ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์›์ž ์—…๋ฐ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ SPU ์ฝ”๋“œ์—์„œ PPU ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
"__ea"๋ผ๋Š” ์ด๋ฆ„์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ ํ•œ์ •์ž๋Š” ๋‹ค๋ฅธ PPU์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
PPU ์ฝ”๋“œ์˜ ๋™์ผํ•œ ์บ์‹œ ๋ผ์ธ์— ์žˆ๋Š” ๋ณ€์ˆ˜. ์›์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
์—…๋ฐ์ดํŠธ, ์ด๋Ÿฌํ•œ ๊ฐ„์„ญ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์บ์‹œ ๋ผ์ธ์„ ๋‹ค์‹œ ์“ฐ๋Š” ๊ฒƒ์€
ํšจ์œจ์ ์ธ. ๊ธฐ๋ณธ ๋™์ž‘์€ ์›์ž์  ์—…๋ฐ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-mdual-nops
-mdual-nops=n
๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ์ฆ๊ฐ€ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ ์ด์ค‘ ๋ฌธ์ œ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์œ„ํ•ด nops๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. n 0์—์„œ 10 ์‚ฌ์ด์˜ ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. n ๋” ์ ์€ ์ˆ˜์˜ nops๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. 10์€
๊ธฐ๋ณธ๊ฐ’์ธ 0์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -mno-dual-nops. ์žฅ์• ์ธ - ์˜ค์Šค.

-mint-max-nops=n
๋ถ„๊ธฐ ํžŒํŠธ์— ๋Œ€ํ•ด ์‚ฝ์ž…ํ•  ์ตœ๋Œ€ nops ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ถ„๊ธฐ ํžŒํŠธ๋Š” 8 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ถ„๊ธฐ์—์„œ ๋ช…๋ น์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ GCC ์‚ฝ์ž… n ๋†‰
์ด๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ถ„๊ธฐ ํžŒํŠธ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-mint-max-distance=n
๋ถ„๊ธฐ ํžŒํŠธ ๋ช…๋ น์–ด์˜ ์ธ์ฝ”๋”ฉ์€ ํžŒํŠธ๋ฅผ 256 ์ด๋‚ด๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ง€์ ์˜ ์ง€์นจ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š”
125.

-msafe-ํžŒํŠธ
SPU๋ฅผ ๋ฌด๊ธฐํ•œ ์ •์ง€์‹œํ‚ค๋Š” ํ•˜๋“œ์›จ์–ด ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GCC
์ด ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก "hbrp" ๋ช…๋ น์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

์˜ต์…˜ for V

์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด System V ๋ฆด๋ฆฌ์Šค 4์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•ด๋‹น ์‹œ์Šคํ…œ์˜ ์ปดํŒŒ์ผ๋Ÿฌ:

-G ๊ณต์œ  ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. - ์ƒ์ง•์  or -๊ณต์œ  ๋Œ€์‹  ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-Qy ".ident" ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ ๋„๊ตฌ์˜ ๋ฒ„์ „์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
์ถœ๋ ฅ์˜ ์ง€์‹œ๋ฌธ.

-Qn ์ถœ๋ ฅ ํŒŒ์ผ์— ".ident" ์ง€์‹œ๋ฌธ์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค(๊ธฐ๋ณธ๊ฐ’).

- ์‘,dirs
๋””๋ ‰ํ† ๋ฆฌ ๊ฒ€์ƒ‰ dirs๋กœ ์ง€์ •๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฒฝ์šฐ -l.

-์Œ,DIR
๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด์„ธ์š” DIR M4 ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

ํƒ€์ผ-Gx ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ TILE-Gx์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-mcmodel=์ž‘์€
์ž‘์€ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์ด๋ ‰ํŠธ ์ฝœ ๊ฑฐ๋ฆฌ๋Š” 500M๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
์–ด๋Š ๋ฐฉํ–ฅ์œผ๋กœ. PC ์ƒ๋Œ€ ์ฃผ์†Œ๋Š” 32๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ์ ˆ๋Œ€ ์ฃผ์†Œ ์ง€์›
์ „์ฒด ์ฃผ์†Œ ๋ฒ”์œ„.

-mcmodel=๋Œ€ํ˜•
๋Œ€ํ˜• ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ†ตํ™” ๊ฑฐ๋ฆฌ ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.
์ƒ๋Œ€ ์ฃผ์†Œ ๋˜๋Š” ์ ˆ๋Œ€ ์ฃผ์†Œ.

-mcpu =name
๋Œ€์ƒ์œผ๋กœ ํ•  CPU ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ง€์›๋˜๋Š” ์œ ์ผํ•œ ์œ ํ˜•์€ ํƒ€์ผ โ€‹โ€‹์—‘์Šค.

-m32
-m64
32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ํ™˜๊ฒฝ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 32๋น„ํŠธ ํ™˜๊ฒฝ์€ int,
long, 32๋น„ํŠธ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ. 64๋น„ํŠธ ํ™˜๊ฒฝ์€ int๋ฅผ 32๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๊ณ  long ๋ฐ
64๋น„ํŠธ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ.

-mbig-์—”๋””์•ˆ
-๋ฏธ๋ฆฌํ‹€ ์—”๋””์•ˆ
๊ฐ๊ฐ ๋น…/๋ฆฌํ‹€ ์—”๋””์•ˆ ๋ชจ๋“œ์—์„œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํƒ€์ผํ”„๋กœ ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ TILEPro์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-mcpu =name
๋Œ€์ƒ์œผ๋กœ ํ•  CPU ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ง€์›๋˜๋Š” ์œ ์ผํ•œ ์œ ํ˜•์€ ํƒ€์ผํ”„๋กœ.

-m32
int, long ๋ฐ ํฌ์ธํ„ฐ๋ฅผ 32๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๋Š” 32๋น„ํŠธ ํ™˜๊ฒฝ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์œ ์ผํ•˜๊ฒŒ ์ง€์›๋˜๋Š” ๋™์ž‘์ด๋ฏ€๋กœ ํ”Œ๋ž˜๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

V850 ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ V850 ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mlong-ํ†ตํ™”
-mno-long-ํ†ตํ™”
๋ชจ๋“  ํ†ตํ™”๋ฅผ ๋ฉ€๋ฆฌ(๊ฐ€๊นŒ์šด) ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ†ตํ™”๊ฐ€ ๋ฉ€๋ฆฌ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•ญ์ƒ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋กœ๋“œํ•˜๊ณ  ๊ฐ„์ ‘์ ์œผ๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด.

-mno-ep
-mep
๋™์ผํ•œ ์ธ๋ฑ์Šค ํฌ์ธํ„ฐ 4 ์ด์ƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ๋ธ”๋ก์„ ์ตœ์ ํ™”(์ตœ์ ํ™”)ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
ํฌ์ธํ„ฐ๋ฅผ "ep" ๋ ˆ์ง€์Šคํ„ฐ์— ๋ณต์‚ฌํ•˜๊ณ  ๋” ์งง์€ "sld" ๋ฐ "sst"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ง€์นจ. NS -mep ์˜ต์…˜์€ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-mno-prolog-ํ•จ์ˆ˜
-mprolog-ํ•จ์ˆ˜
ํ”„๋กค๋กœ๊ทธ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•ด ์™ธ๋ถ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋Šฅ์˜ ์—ํ•„๋กœ๊ทธ. ์™ธ๋ถ€ ๊ธฐ๋Šฅ์€ ๋Š๋ฆฌ์ง€๋งŒ ๋” ์ ์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋‘˜ ์ด์ƒ์˜ ํ•จ์ˆ˜๊ฐ€ ๋™์ผํ•œ ์ˆ˜์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ ๊ณต๊ฐ„. NS
-mprolog-ํ•จ์ˆ˜ ์˜ต์…˜์€ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

-mspace
์ฝ”๋“œ๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ์ž‘๊ฒŒ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ํ˜„์žฌ, ์ด๊ฒƒ์€ ๋‹จ์ง€ ์ผœ์ง‘๋‹ˆ๋‹ค -mep
๊ณผ -mprolog-ํ•จ์ˆ˜ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

-mtda =n
ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •์  ๋˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. n ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ๋ฐ”์ดํŠธ ์ดํ•˜
"ep"๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆ์ง€์Šคํ„ฐ. ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ์ด 256๋ฐ”์ดํŠธ๊นŒ์ง€ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
(๋ฐ”์ดํŠธ ์ฐธ์กฐ์˜ ๊ฒฝ์šฐ 128๋ฐ”์ดํŠธ).

-msda=n
ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •์  ๋˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. n ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ๋ฐ”์ดํŠธ ์ดํ•˜
"gp"๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆ์ง€์Šคํ„ฐ. ์ž‘์€ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ์ตœ๋Œ€ 64ํ‚ฌ๋กœ๋ฐ”์ดํŠธ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mzda=n
ํฌ๊ธฐ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •์  ๋˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค. n ์ฒ˜์Œ 32๋ฐ”์ดํŠธ ์ดํ•˜
ํ‚ฌ๋กœ๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ.

-mv850
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.

-mv850e3v5
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850E3V5์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ์ˆ˜
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "__v850e3v5__"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mv850e2v4
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850E3V5์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์— ๋Œ€ํ•œ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค.
-mv850e3v5 ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-mv850e2v3
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850E2V3์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ์ˆ˜
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "__v850e2v3__"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mv850e2
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850E2์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ์ˆ˜
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "__v850e2__"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mv850e1
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850E1์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ์ˆ˜
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "__v850e1__" ๋ฐ "__v850e__"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mv850es
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850ES์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์— ๋Œ€ํ•œ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค. -mv850e1
์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-mv850e
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ V850E์ž„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ์ˆ˜ "__v850e__"
์ด ์˜ต์…˜์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

๋‘˜ ๋‹ค -mv850 ...๋„ ์•„๋‹ˆ๋‹ค -mv850e ...๋„ ์•„๋‹ˆ๋‹ค -mv850e1 ...๋„ ์•„๋‹ˆ๋‹ค -mv850e2 ...๋„ ์•„๋‹ˆ๋‹ค -mv850e2v3 ...๋„ ์•„๋‹ˆ๋‹ค -mv850e3v5
์ •์˜๋œ ๋‹ค์Œ ๊ธฐ๋ณธ ๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์„ ํƒ๋˜๊ณ  ๊ด€๋ จ __v850*__
์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ์ˆ˜๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ์ˆ˜ "__v850" ๋ฐ "__v851__"์€ ๋‹ค์Œ์— ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
์–ด๋–ค ํ”„๋กœ์„ธ์„œ ๋ณ€ํ˜•์ด ๋Œ€์ƒ์ธ์ง€.

-mdisable-callt
-mno-๋น„ํ™œ์„ฑํ™”-์ฝœํŠธ
์ด ์˜ต์…˜์€ v850e, v850e1,
v850 ์•„ํ‚คํ…์ฒ˜์˜ v2e850, v2e3v850 ๋ฐ v3e5v850 ๋ฒ„์ „.

์ด ์˜ต์…˜์€ RH850 ABI๊ฐ€ ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค(์ฐธ์กฐ -mrh850-์•„๋น„), ๊ทธ๋ฆฌ๊ณ 
GCC ABI๊ฐ€ ์‚ฌ์šฉ ์ค‘์ผ ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. "CALLT" ๋ช…๋ น์ด ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ
์ƒ์„ฑ๋˜๋ฉด C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__V850_CALLT__"๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mrelax
-mno-ํœด์‹
์ „๋‹ฌ(๋˜๋Š” ์ „๋‹ฌํ•˜์ง€ ์•Š์Œ) -mrelax ์–ด์…ˆ๋ธ”๋Ÿฌ์— ๋Œ€ํ•œ ๋ช…๋ น์ค„ ์˜ต์…˜.

-mlong-์ ํ”„
-mno-๋กฑ ์ ํ”„
PC ๊ด€๋ จ ์ ํ”„ ๋ช…๋ น ์ƒ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”(๋˜๋Š” ๋‹ค์‹œ ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค.

-msoft-float
-mhard-float
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด ์ƒ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”(๋˜๋Š” ๋‹ค์‹œ ํ™œ์„ฑํ™”)ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ๋งŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. V850E2V3 ๋˜๋Š” ๋” ๋†’๊ฒŒ. ๋งŒ์•ฝ์—
ํ•˜๋“œ์›จ์–ด ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๊ฐ€ ์ƒ์„ฑ๋œ ๋‹ค์Œ C ์ „์ฒ˜๋ฆฌ๊ธฐ
"__FPU_OK__" ๊ธฐํ˜ธ๊ฐ€ ์ •์˜๋˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด "__NO_FPU__" ๊ธฐํ˜ธ๊ฐ€ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mloop
e3v5 LOOP ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ง€์นจ์˜ ์‚ฌ์šฉ์€
e3v5 ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์•„์ง ์‚ฌ์šฉ ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ์— eXNUMXvXNUMX ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์„ ํƒ๋˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
์‹คํ—˜์ .

-mrh850-์•„๋น„
-mghs
V850 ABI์˜ RH850 ๋ฒ„์ „์— ๋Œ€ํ•œ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜
์ด ๋ฒ„์ „์˜ ABI๋Š” ๋‹ค์Œ ๊ทœ์น™์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

* ์ •์ˆ˜ ํฌ๊ธฐ์˜ ๊ตฌ์กฐ์ฒด์™€ ๊ณต์šฉ์ฒด๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹Œ ๋ฉ”๋ชจ๋ฆฌ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ.

* ํฐ ๊ตฌ์กฐ ๋ฐ ๊ณต์šฉ์ฒด(ํฌ๊ธฐ๊ฐ€ 8๋ฐ”์ดํŠธ ์ด์ƒ)๋Š” ๊ฐ’์œผ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

* ํ•จ์ˆ˜๋Š” 16๋น„ํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฐ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

* -m8byte-์ •๋ ฌ ๋ช…๋ น์ค„ ์˜ต์…˜์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

* -mdisable-callt ๋ช…๋ น์ค„ ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. NS
-mno-๋น„ํ™œ์„ฑํ™”-์ฝœํŠธ ๋ช…๋ น์ค„ ์˜ต์…˜์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฒ„์ „์˜ ABI๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__V850_RH850_ABI__"
์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mgcc-์•„๋น„
V850 ABI์˜ ์ด์ „ GCC ๋ฒ„์ „์— ๋Œ€ํ•œ ์ง€์›์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์˜ ABI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
๋‹ค์Œ ๊ทœ์น™์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

* ์ •์ˆ˜ ํฌ๊ธฐ์˜ ๊ตฌ์กฐ์ฒด์™€ ๊ณต์šฉ์ฒด๋Š” ๋ ˆ์ง€์Šคํ„ฐ "r10"์— ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

* ํฐ ๊ตฌ์กฐ ๋ฐ ๊ณต์šฉ์ฒด(ํฌ๊ธฐ๊ฐ€ 8๋ฐ”์ดํŠธ ์ด์ƒ)๋Š” ์ฐธ์กฐ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

* ํ•จ์ˆ˜๋Š” ํฌ๊ธฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์ง€ ์•Š๋Š” ํ•œ 32๋น„ํŠธ ๊ฒฝ๊ณ„์— ๋งž์ถฐ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

* -m8byte-์ •๋ ฌ ๋ช…๋ น์ค„ ์˜ต์…˜์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

* -mdisable-callt ๋ช…๋ น์ค„ ์˜ต์…˜์ด ์ง€์›๋˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฒ„์ „์˜ ABI๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__V850_GCC_ABI__"
์ •์˜๋ฉ๋‹ˆ๋‹ค.

-m8byte-์ •๋ ฌ
-mno-8byte-์ •๋ ฌ
"double" ๋ฐ "long long" ์œ ํ˜•์— ๋Œ€ํ•œ ์ง€์›์„ 8๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์—์„œ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ ๋ชจ๋“  ๊ฐœ์ฒด์˜ ์ •๋ ฌ์„ ์ตœ๋Œ€ 4๋ฐ”์ดํŠธ๋กœ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ธ์ œ
-m8byte-์ •๋ ฌ ์‹ค์ œ๋กœ C ์ „์ฒ˜๋ฆฌ๊ธฐ ๊ธฐํ˜ธ "__V850_8BYTE_ALIGN__"์€
ํ•œ์ •๋œ.

-mbig ์Šค์œ„์น˜
ํฐ ์Šค์œ„์น˜ ํ…Œ์ด๋ธ”์— ์ ํ•ฉํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์–ด์…ˆ๋ธ”๋Ÿฌ/๋ง์ปค๊ฐ€ ์Šค์œ„์น˜ ํ…Œ์ด๋ธ” ๋‚ด์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๋ถ„๊ธฐ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค.

-map-regs
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์ƒ์„ฑํ•œ ์ฝ”๋“œ์—์„œ r2 ๋ฐ r5๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์„ค์ •์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-app-regs
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด r2 ๋ฐ r5๊ฐ€ ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋ฐฑ์Šค ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ VAX์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-๋ฎค๋‹‰์Šค
Unix ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ํŠน์ • ์ ํ”„ ๋ช…๋ น("aobleq" ๋“ฑ)์„ ์ถœ๋ ฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
VAX๋Š” ์žฅ๊ฑฐ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

-mgnu
GNU ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์ ํ”„ ๋ช…๋ น์„ ์ถœ๋ ฅํ•˜์‹ญ์‹œ์˜ค.
์ต์ˆ™ํ•œ.

-mg D ํ˜•์‹ ๋Œ€์‹  G ํ˜•์‹ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž์— ๋Œ€ํ•œ ์ถœ๋ ฅ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

๋น„์ „ ์˜ต์…˜

-m๋””๋ฒ„๊ทธ
ํŒŒ์ผ I/O๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  MCM ๋Œ€์ƒ์—์„œ ์‹คํ–‰๋  ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ libc.a ๋ฐ libdebug.a๊ฐ€ ๋งํฌ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์€ GDB ์›๊ฒฉ ๋””๋ฒ„๊น…์˜ ์ œ์–ด ํ•˜์— ๋Œ€์ƒ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฃจํ„ฐ๊ธฐ.

-msim
ํŒŒ์ผ I/O๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‹คํ–‰๋  ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์˜ต์…˜์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ libc.a ๋ฐ libsim.a๊ฐ€ ๋งํฌ๋ฉ๋‹ˆ๋‹ค.

-mfpu
-mhard-float
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๊ฐ€ ํฌํ•จ๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mno-fpu
-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ํฌํ•จํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-msoft-float ์ถœ๋ ฅ ํŒŒ์ผ์˜ ํ˜ธ์ถœ ๊ทœ์น™์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ๊ฒƒ์€ ๋‹จ์ง€
์ปดํŒŒ์ผํ•˜๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ด ์˜ต์…˜์ด ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํŠนํžˆ, ๋‹น์‹ ์€
ํŽธ์ง‘ํ•˜๋‹ค libgcc.a, GCC์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, -msoft-float ์ด๋ฅผ ์œ„ํ•ด
์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

-mcpu =CPU_์œ ํ˜•
๋ช…๋ น์–ด ์„ธํŠธ, ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ ๋ฐ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •
๊ธฐ๊ณ„ ์œ ํ˜• CPU_์œ ํ˜•. ์ง€์›๋˜๋Š” ๊ฐ’ CPU_์œ ํ˜• are mcm, gr5 ๊ณผ gr6.

mcm ์˜ ๋™์˜์–ด์ž…๋‹ˆ๋‹ค gr5 ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ(๋‹ฌ๋ฆฌ ๊ตฌ์„ฑํ•˜์ง€ ์•Š๋Š” ํ•œ) GCC๋Š” ๋‹ค์Œ์˜ GR5 ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋น„์ง€์›€ ์•„ํ‚คํ…์ฒ˜.

์™€ -mcpu=gr6, GCC๋Š” Visium ์•„ํ‚คํ…์ฒ˜์˜ GR6 ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
GR5 ์ฝ”๋“œ์™€์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ธ”๋ก ์ด๋™์„ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋„์›€๋ง์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

-mtune=CPU_์œ ํ˜•
๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ์Šค์ผ€์ค„๋ง ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • CPU_์œ ํ˜•, ๊ทธ๋Ÿฌ๋‚˜ ์„ค์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค
์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ช…๋ น์–ด ์„ธํŠธ ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์„ธํŠธ -mcpu =CPU_์œ ํ˜• ํ•  ๊ฒƒ์ด๋‹ค.

-msv ๋ชจ๋“œ
์ ‘๊ทผ ์ œํ•œ์ด ์—†๋Š” ์ˆ˜ํผ๋ฐ”์ด์ € ๋ชจ๋“œ์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
์ผ๋ฐ˜ ๋ ˆ์ง€์Šคํ„ฐ์—. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-muser ๋ชจ๋“œ
์ผ๋ถ€ ์ผ๋ฐ˜ ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ์žˆ๋Š” ์‚ฌ์šฉ์ž ๋ชจ๋“œ์šฉ ์ฝ”๋“œ ์ƒ์„ฑ
๊ธˆ์ง€๋จ: GR5์—์„œ ๋ ˆ์ง€์Šคํ„ฐ r24 ~ r31์€ ์ด ๋ชจ๋“œ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์—
GR6, ๋ ˆ์ง€์Šคํ„ฐ r29 ~ r31๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

VMS ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ VMS ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-mvms-๋ฐ˜ํ™˜ ์ฝ”๋“œ
"main"์—์„œ VMS ์กฐ๊ฑด ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ POSIX ์Šคํƒ€์ผ ์กฐ๊ฑด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
(์˜ˆ: ์˜ค๋ฅ˜) ์ฝ”๋“œ.

-mdebug-๋ฉ”์ธ=์ ‘๋‘์‚ฌ
์ด๋ฆ„์ด ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฃจํ‹ด์— ํ”Œ๋ž˜๊ทธ ์ง€์ • ์ ‘๋‘์‚ฌ ์˜ ์ฃผ์š” ๋ฃจํ‹ด์œผ๋กœ
๋””๋ฒ„๊ฑฐ.

-mmalloc64
๊ธฐ๋ณธ๊ฐ’์€ 64๋น„ํŠธ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฃจํ‹ด์ž…๋‹ˆ๋‹ค.

-mpointer-ํฌ๊ธฐ=ํฌ๊ธฐ
ํฌ์ธํ„ฐ์˜ ๊ธฐ๋ณธ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ์˜ต์…˜ ํฌ๊ธฐ are 32 or ์งง์€ 32๋น„ํŠธ์šฉ
ํฌ์ธํ„ฐ, 64 or ๊ธด 64๋น„ํŠธ ํฌ์ธํ„ฐ์˜ ๊ฒฝ์šฐ ์•„๋‹ˆ 32๋น„ํŠธ ํฌ์ธํ„ฐ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
๋‚˜์ค‘ ์˜ต์…˜์€ "pragma pointer_size"๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

VxWorks ์˜ต์…˜

์ด ์„น์…˜์˜ ์˜ต์…˜์€ ๋ชจ๋“  VxWorks ๋Œ€์ƒ์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. ํŠน์ • ์˜ต์…˜
๋Œ€์ƒ ํ•˜๋“œ์›จ์–ด๋Š” ํ•ด๋‹น ๋Œ€์ƒ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

-mrtp
GCC๋Š” VxWorks ์ปค๋„๊ณผ ์‹ค์‹œ๊ฐ„ ํ”„๋กœ์„ธ์Šค(RTP) ๋ชจ๋‘์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ์ „์ž์—์„œ ํ›„์ž๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
"__RTP__".

-๋น„์ •์ 
์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด RTP ์‹คํ–‰ ํŒŒ์ผ์„ ๋งํฌํ•ฉ๋‹ˆ๋‹ค. NS
์˜ต์…˜ -๊ณต์ „ ๊ณผ -๊ณต์œ  RTP์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -๊ณต์ „ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-๋น„์ •์ 
-๋น„๋‹ค์ด๋‚˜๋ฏน
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ๋ง์ปค๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.
๋””์•„๋ธŒ.

-Xbind-๊ฒŒ์œผ๋ฅธ
ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ ์ง€์—ฐ ๋ฐ”์ธ๋”ฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -Wl,-z,์ง€๊ธˆ ์ด๊ณ 
Diab์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์ •์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-X๋ฐ”์ธ๋“œ-์ง€๊ธˆ
ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ ์ง€์—ฐ ๋ฐ”์ธ๋”ฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ ๋‹ค์Œ์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.
๋””์•„๋ธŒ์™€์˜ ํ˜ธํ™˜์„ฑ

x86 ์˜ต์…˜

Bowman์˜ -m ์˜ต์…˜์€ x86 ์ปดํ“จํ„ฐ ์ œํ’ˆ๊ตฐ์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-ํ–‰์ง„=CPU ์œ ํ˜•
๋จธ์‹  ์œ ํ˜•์— ๋Œ€ํ•œ ์ง€์นจ ์ƒ์„ฑ CPU ์œ ํ˜•. ๋Œ€์กฐ์ ์œผ๋กœ -mtune=CPU ์œ ํ˜•,
์ƒ์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์ง€์ •๋œ CPU ์œ ํ˜•, -ํ–‰์ง„=CPU ์œ ํ˜•
GCC๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์„œ์—์„œ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋ฆฌํ‚ค๋Š”. ์ง€์ • -ํ–‰์ง„=CPU ์œ ํ˜• ์˜๋ฏธํ•˜๋‹ค -mtune=CPU ์œ ํ˜•.

์— ๋Œ€ํ•œ ์„ ํƒ CPU ์œ ํ˜• ์œ„์น˜ :

์ถœ์‹ 
์ด๊ฒƒ์€ ๋‹ค์Œ์„ ๊ฒฐ์ •ํ•˜์—ฌ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  CPU๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ ๋จธ์‹ ์˜ ํ”„๋กœ์„ธ์„œ ์œ ํ˜•. ์‚ฌ์šฉ -march = ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋‘ ํ™œ์„ฑํ™”
๋กœ์ปฌ ๋จธ์‹ ์—์„œ ์ง€์›ํ•˜๋Š” ๋ช…๋ น์–ด ํ•˜์œ„ ์ง‘ํ•ฉ(๋”ฐ๋ผ์„œ ๊ฒฐ๊ณผ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ)
๋‹ค๋ฅธ ๊ธฐ๊ณ„์—์„œ). ์‚ฌ์šฉ -mtune=๋„ค์ดํ‹ฐ๋ธŒ ๋กœ์ปฌ์— ์ตœ์ ํ™”๋œ ์ฝ”๋“œ ์ƒ์„ฑ
์„ ํƒ๋œ ๋ช…๋ น์–ด ์„ธํŠธ์˜ ์ œ์•ฝ ํ•˜์—์„œ ๊ธฐ๊ณ„.

i386
์˜ค๋ฆฌ์ง€๋„ ์ธํ…” i386 CPU.

i486
์ธํ…” i486 CPU. (์ด ์นฉ์—๋Š” ์Šค์ผ€์ค„๋ง์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

i586
ํŽœํ‹ฐ์—„
MMX๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” Intel Pentium CPU.

ํŽœํ‹ฐ์—„-mmx
Intel Pentium MMX CPU, MMX ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›์ด ์žˆ๋Š” Pentium ์ฝ”์–ด ๊ธฐ๋ฐ˜.

ํŽœํ‹ฐ์—„ํ”„๋กœ
์ธํ…” ํŽœํ‹ฐ์—„ ํ”„๋กœ CPU.

i686
ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ -XNUMX ์›”, Pentium Pro ๋ช…๋ น์–ด ์„ธํŠธ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  i686 ์ œํ’ˆ๊ตฐ ์นฉ์—์„œ. ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ -mtune, ์™€ ๊ฐ™์€ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์ธ.

ํŽœํ‹ฐ์—„
Intel Pentium II CPU, MMX ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›์ด ์žˆ๋Š” Pentium Pro ์ฝ”์–ด ๊ธฐ๋ฐ˜.

ํŽœํ‹ฐ์—„
ํŽœํ‹ฐ์—„3m
Intel Pentium III CPU, MMX ๋ฐ SSE ๋ช…๋ น์–ด ์„ธํŠธ๊ฐ€ ์žˆ๋Š” Pentium Pro ์ฝ”์–ด ๊ธฐ๋ฐ˜
์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํŽœํ‹ฐ์—„-m
์ธํ…” ํŽœํ‹ฐ์—„ M; MMX, SSE ๋ฐ SSE2๊ฐ€ ํฌํ•จ๋œ Intel Pentium III CPU์˜ ์ €์ „๋ ฅ ๋ฒ„์ „
๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›. Centrino ๋…ธํŠธ๋ถ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํŽœํ‹ฐ์—„
ํŽœํ‹ฐ์—„4m
MMX, SSE ๋ฐ SSE4 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” Intel Pentium 2 CPU.

ํ”„๋ ˆ์Šค์ฝง
MMX, SSE, SSE4 ๋ฐ SSE2 ๋ช…๋ น์–ด๊ฐ€ ํฌํ•จ๋œ Intel Pentium 3 CPU์˜ ํ–ฅ์ƒ๋œ ๋ฒ„์ „
์ง€์›์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋…ธ์ฝ”๋‚˜
4๋น„ํŠธ ํ™•์žฅ, MMX, SSE, SSE64 ๋ฐ
SSE3 ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

core2
2๋น„ํŠธ ํ™•์žฅ์ด ์žˆ๋Š” Intel Core 64 CPU, MMX, SSE, SSE2, SSE3 ๋ฐ SSSE3
๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

๋„คํ• ๋ ˜
64๋น„ํŠธ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” Intel Nehalem CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2 ๋ฐ POPCNT ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

์›จ์ŠคํŠธ๋ฏธ์–ด
64๋น„ํŠธ ํ™•์žฅ์ด ์žˆ๋Š” Intel Westmere CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES ๋ฐ PCLMUL ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

๋ชจ๋ž˜๋‹ค๋ฆฌ
64๋น„ํŠธ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” Intel Sandy Bridge CPU, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AES ๋ฐ PCLMUL ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

์•„์ด๋น„๋ธŒ๋ฆฟ์ง€
64๋น„ํŠธ ํ™•์žฅ์ด ์žˆ๋Š” Intel Ivy Bridge CPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND ๋ฐ F16C ๋ช…๋ น์–ด ์„ธํŠธ
์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜ ์Šค์›ฐ
64๋น„ํŠธ ํ™•์žฅ์ด ์žˆ๋Š” Intel Haswell CPU, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2
๋ฐ F16C ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

๋ธŒ๋กœ๋“œ์›ฐ
64๋น„ํŠธ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” Intel Broadwell CPU, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX ๋ฐ PREFETCHW ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

๋ณธ๋„ฌ
64๋น„ํŠธ ํ™•์žฅ์ด ์žˆ๋Š” Intel Bonnell CPU, MOVBE, MMX, SSE, SSE2, SSE3 ๋ฐ SSSE3
๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

์‹ค๋ฒ„๋ชฌํŠธ
64๋น„ํŠธ ํ™•์žฅ์ด ์žˆ๋Š” Intel Silvermont CPU, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AES, PCLMUL ๋ฐ RDRND ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

๋†€ 64๋น„ํŠธ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” Intel Knight's Landing CPU, MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER ๋ฐ AVX512CD
๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

k6 MMX ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD K6 CPU.

k6-2
k6-3
MMX ๋ฐ 6DNow!๊ฐ€ ํฌํ•จ๋œ AMD K3 CPU์˜ ํ–ฅ์ƒ๋œ ๋ฒ„์ „! ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

์• ์Š๋ก 
์• ์Šฌ๋ก  ํŠธ๋ฒ„๋“œ
MMX๊ฐ€ ํƒ‘์žฌ๋œ AMD Athlon CPU, 3dNOW!, ํ–ฅ์ƒ๋œ 3DNow! ๋ฐ SSE ํ”„๋ฆฌํŽ˜์น˜ ๋ช…๋ น์–ด
์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์• ์Šฌ๋ก -4
์• ์Šฌ๋ก -xp
์• ์Šฌ๋ก -mp
MMX, 3DNow!, ํ–ฅ์ƒ๋œ 3DNow!๊ฐ€ ํฌํ•จ๋œ ํ–ฅ์ƒ๋œ AMD Athlon CPU ๋ฐ ์ „์ฒด SSE ๋ช…๋ น
์ง€์›์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

k8
์˜ตํ…Œ๋ก 
์• ์Šฌ๋ก 64
์• ์Šฌ๋ก -FX
๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ x8-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD K64 ์ฝ”์–ด ๊ธฐ๋ฐ˜ ํ”„๋กœ์„ธ์„œ
AMD Opteron, Athlon 64 ๋ฐ Athlon 64 FX ํ”„๋กœ์„ธ์„œ. (์ด๊ฒƒ์€ MMX๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
SSE, SSE2, 3DNow!, ํ–ฅ์ƒ๋œ 3DNow! ๋ฐ 64๋น„ํŠธ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ.)

k8-sse3
์˜ตํ…Œ๋ก -sse3
์• ์Šฌ๋ก 64-sse3
SSE8 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ํ–ฅ์ƒ๋œ ๋ฒ„์ „์˜ AMD K3 ์ฝ”์–ด.

์•”๋“œํŒœ10
๋ฐ”๋ฅด์…€๋กœ๋‚˜
x10-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD ์ œํ’ˆ๊ตฐ 64h ์ฝ”์–ด ๊ธฐ๋ฐ˜ CPU. (์ด๊ฒƒ
MMX, SSE, SSE2, SSE3, SSE4A, 3DNow!, ํ–ฅ์ƒ๋œ 3DNow!, ABM ๋ฐ 64๋น„ํŠธ ์Šˆํผ์„ธํŠธ
๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ)

bdver1
x15-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD ์ œํ’ˆ๊ตฐ 64h ์ฝ”์–ด ๊ธฐ๋ฐ˜ CPU. (์ด๊ฒƒ
์ƒ์œ„ ์ง‘ํ•ฉ FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A,
SSSE3, SSE4.1, SSE4.2, ABM ๋ฐ 64๋น„ํŠธ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ)

bdver2
x15-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD ์ œํ’ˆ๊ตฐ 64h ์ฝ”์–ด ๊ธฐ๋ฐ˜ CPU. (์ด๊ฒƒ
์Šˆํผ์„ธํŠธ BMI, TBM, F16C, FMA, FMA4, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE,
SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM ๋ฐ 64๋น„ํŠธ ๋ช…๋ น์–ด ์„ธํŠธ
ํ™•์žฅ์ž.)

bdver3
x15-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD ์ œํ’ˆ๊ตฐ 64h ์ฝ”์–ด ๊ธฐ๋ฐ˜ CPU. (์ด๊ฒƒ
์Šˆํผ์„ธํŠธ BMI, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, XOP, LWP, AES, PCL_MUL, CX16,
MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM ๋ฐ 64๋น„ํŠธ ๋ช…๋ น์–ด ์„ธํŠธ
ํ™•์žฅ.

bdver4
x15-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD ์ œํ’ˆ๊ตฐ 64h ์ฝ”์–ด ๊ธฐ๋ฐ˜ CPU. (์ด๊ฒƒ
์Šˆํผ์„ธํŠธ BMI, BMI2, TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM ๋ฐ
64๋น„ํŠธ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ.

btver1
x14-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD ์ œํ’ˆ๊ตฐ 64h ์ฝ”์–ด ๊ธฐ๋ฐ˜ CPU. (์ด๊ฒƒ
์ƒ์œ„ ์ง‘ํ•ฉ MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, CX16, ABM ๋ฐ 64๋น„ํŠธ ๋ช…๋ น์–ด ์„ธํŠธ
ํ™•์žฅ์ž.)

btver2
x16-86 ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” AMD ์ œํ’ˆ๊ตฐ 64h ์ฝ”์–ด ๊ธฐ๋ฐ˜ CPU. ์ด๊ฒƒ
MOVBE, F16C, BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A,
SSSE3, SSE3, SSE2, SSE, MMX ๋ฐ 64๋น„ํŠธ ๋ช…๋ น์–ด ์„ธํŠธ ํ™•์žฅ.

์œˆ์นฉ-c6
IDT WinChip C6 CPU, ์ถ”๊ฐ€ MMX ๋ช…๋ น์–ด ์„ธํŠธ๋กœ i486๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ
์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์œˆ์นฉ2
IDT WinChip 2 CPU, ์ถ”๊ฐ€ MMX ๋ฐ 486DNow!
๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

c3 MMX ๋ฐ 3DNow๊ฐ€ ์žˆ๋Š” VIA C3 CPU! ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›. (์ผ์ •์ด ์—†์Šต๋‹ˆ๋‹ค.
์ด ์นฉ์— ๋Œ€ํ•ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)

c3 - 2
VIA C3-2(Nehemiah/C5XL) CPU์™€ MMX ๋ฐ SSE ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›. (์•„๋‹ˆ์š”
์Šค์ผ€์ค„๋ง์€ ์ด ์นฉ์— ๋Œ€ํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.)

์ง€ ์˜ค๋“œ
MMX ๋ฐ 3DNow!๊ฐ€ ํƒ‘์žฌ๋œ AMD Geode ์ž„๋ฒ ๋””๋“œ ํ”„๋กœ์„ธ์„œ! ๋ช…๋ น์–ด ์„ธํŠธ ์ง€์›.

-mtune=CPU ์œ ํ˜•
ํŠœ๋‹ CPU ์œ ํ˜• ABI๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ƒ์„ฑ๋œ ์ฝ”๋“œ์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒƒ
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ง€์นจ ์„ธํŠธ. ํŠน์ • ํ•ญ๋ชฉ์„ ์„ ํƒํ•˜๋ฉด์„œ CPU ์œ ํ˜• ์ผ์ •
ํŠน์ • ์นฉ์— ์ ์ ˆํ•˜๊ฒŒ ์ ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ๋ณธ ๋จธ์‹  ์œ ํ˜•์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. -ํ–‰์ง„=CPU ์œ ํ˜• ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, GCC๊ฐ€ i686-pc-linux-gnu์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ -mtune=ํŽœํ‹ฐ์—„4 ์ƒ์„ฑ
Pentium 4์— ๋งž๊ฒŒ ์กฐ์ •๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ i686 ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์— ๋Œ€ํ•œ ์„ ํƒ CPU ์œ ํ˜• ์™€ ๋™์ผํ•˜๋‹ค -XNUMX ์›”. ๊ฒŒ๋‹ค๊ฐ€, -mtune 2๋ฅผ ์ง€์›
์ถ”๊ฐ€ ์„ ํƒ CPU ์œ ํ˜•:

์ผ๋ฐ˜์ ์ธ
๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ IA32/AMD64/EM64T ํ”„๋กœ์„ธ์„œ์— ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋„ˆ๋ผ๋ฉด
์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  CPU๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ํ•ด๋‹นํ•˜๋Š”
-mtune or -XNUMX ์›” ์˜ต์…˜ ๋Œ€์‹  -mtune=์ผ๋ฐ˜. ํ•˜์ง€๋งŒ ํ˜น์‹œ ๋ชจ๋ฅด๋‹ˆ
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ CPU ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ–๊ฒŒ ๋  CPU๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์„œ๊ฐ€ ์‹œ์žฅ์— ๋ฐฐํฌ๋จ์— ๋”ฐ๋ผ ์ด ์˜ต์…˜์˜ ๋™์ž‘์€
๋ฐ”๋€” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์‹  ๋ฒ„์ „์˜ GCC๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ฝ”๋“œ ์ƒ์„ฑ
์ด ์˜ต์…˜์œผ๋กœ ์ œ์–ด๋˜๋Š” ํ”„๋กœ์„ธ์„œ๋Š” ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ์„ธ์„œ๋ฅผ ๋ฐ˜์˜ํ•˜๋„๋ก ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ๋ฒ„์ „์˜ GCC๊ฐ€ ๋ฆด๋ฆฌ์Šค๋  ๋•Œ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

์—†๋‹ค. -march=์ผ๋ฐ˜ ์˜ต์…˜ ๋•Œ๋ฌธ์— -XNUMX ์›” ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ํ•ญ๋ชฉ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜ ๋ช…๋ น ์ง‘ํ•ฉ์ด ์—†์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ. ๋Œ€์กฐ์ ์œผ๋กœ, -mtune ํ”„๋กœ์„ธ์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(๋˜๋Š” ์ด ๊ฒฝ์šฐ
์ฝ”๋“œ๊ฐ€ ์ตœ์ ํ™”๋œ ํ”„๋กœ์„ธ์„œ ๋ชจ์Œ).

์ •๋ณด
Haswell์ธ ์ตœ์‹  Intel ํ”„๋กœ์„ธ์„œ์— ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
GCC์˜ ์ด ๋ฒ„์ „์— ๋Œ€ํ•œ Silvermont์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” CPU๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ
์‹คํ–‰๋˜๋ฉด ํ•ด๋‹นํ•˜๋Š” -mtune or -XNUMX ์›” ์˜ต์…˜ ๋Œ€์‹ 
-mtune=์ธํ…”. ๊ทธ๋Ÿฌ๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋‘ Haswell ๋ชจ๋‘์—์„œ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜๋ ค๋ฉด
Silvermont๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด Intel ํ”„๋กœ์„ธ์„œ๊ฐ€ ์‹œ์žฅ์— ๋ฐฐํฌ๋จ์— ๋”ฐ๋ผ ์ด ํ”„๋กœ์„ธ์„œ์˜ ๋™์ž‘์€
์˜ต์…˜์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์‹  ๋ฒ„์ „์˜ GCC๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ฝ”๋“œ
์ด ์˜ต์…˜์œผ๋กœ ์ œ์–ด๋˜๋Š” ์„ธ๋Œ€๋Š” ์ตœ์‹  ์ธํ…”์„ ๋ฐ˜์˜ํ•˜๋„๋ก ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ๋ฒ„์ „์˜ GCC๊ฐ€ ์ถœ์‹œ๋œ ์‹œ์ ์˜ ํ”„๋กœ์„ธ์„œ์ž…๋‹ˆ๋‹ค.

์—†๋‹ค. -march=์ธํ…” ์˜ต์…˜ ๋•Œ๋ฌธ์— -XNUMX ์›” ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ํ•ญ๋ชฉ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณตํ†ต ๋ช…๋ น์–ด ์„ธํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์„œ. ๋Œ€์กฐ์ ์œผ๋กœ, -mtune ํ”„๋กœ์„ธ์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(๋˜๋Š” ์ด ๊ฒฝ์šฐ
์ฝ”๋“œ๊ฐ€ ์ตœ์ ํ™”๋œ ํ”„๋กœ์„ธ์„œ ๋ชจ์Œ).

-mcpu =CPU ์œ ํ˜•
๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋™์˜์–ด -mtune.

-mfpmath=๋‹จ์œ„
์„ ํƒํ•œ ๋‹จ์œ„์— ๋Œ€ํ•œ ๋ถ€๋™ ์†Œ์ˆ˜์  ์‚ฐ์ˆ  ์ƒ์„ฑ ๋‹จ์œ„. ์— ๋Œ€ํ•œ ์„ ํƒ ๋‹จ์œ„ ์œ„์น˜ :

387 ๋Œ€๋ถ€๋ถ„์˜ ์นฉ์— ์žˆ๋Š” ํ‘œ์ค€ 387 ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ณด์กฐ ํ”„๋กœ์„ธ์„œ ์‚ฌ์šฉ
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—๋ฎฌ๋ ˆ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์œผ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
์ž„์‹œ ๊ฒฐ๊ณผ๋Š” ์ •๋ฐ€๋„ ๋Œ€์‹  80๋น„ํŠธ ์ •๋ฐ€๋„๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
์œ ํ˜•๋ณ„๋กœ ์ง€์ •๋˜์–ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์™€ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์นฉ. ๋ณด๋‹ค -fffloat-store ๋” ์ž์„ธํ•œ ์„ค๋ช…์„ ์œ„ํ•ด.

์ด๊ฒƒ์€ x86-32 ๋Œ€์ƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

ESS SSE ๋ช…๋ น์–ด ์„ธํŠธ์— ์žˆ๋Š” ์Šค์นผ๋ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
๋ช…๋ น ์„ธํŠธ๋Š” Pentium III ๋ฐ ์ตœ์‹  ์นฉ๊ณผ AMD ๋ผ์ธ์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
Athlon-4, Athlon XP ๋ฐ Athlon MP ์นฉ์— ์˜ํ•ด. SSE์˜ ์ด์ „ ๋ฒ„์ „
๋ช…๋ น์–ด ์„ธํŠธ๋Š” ๋‹จ์ •๋ฐ€๋„ ์‚ฐ์ˆ ๋งŒ ์ง€์›ํ•˜๋ฏ€๋กœ ์ด์ค‘ ๋ฐ
ํ™•์žฅ ์ •๋ฐ€๋„ ์‚ฐ์ˆ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹387์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๋ฒ„์ „, ํ˜„์žฌ
Pentium 4 ๋ฐ AMD x86-64 ์นฉ์—์„œ๋งŒ ๋ฐฐ์ •๋ฐ€๋„ ์‚ฐ์ˆ ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

x86-32 ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -ํ–‰์ง„=CPU ์œ ํ˜•, -msse or -msse2. ๋กœ ์ „ํ™˜
SSE ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ด ์˜ต์…˜์„ ์œ ํšจํ•˜๊ฒŒ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. x86-64 ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฝ์šฐ,
์ด๋Ÿฌํ•œ ํ™•์žฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ์ฝ”๋“œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ƒ๋‹นํžˆ ๋นจ๋ผ์•ผ ํ•˜๋ฉฐ
387 ์ฝ”๋“œ์˜ ์ˆ˜์น˜์  ๋ถˆ์•ˆ์ •์„ฑ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜์ง€๋งŒ ์ผ๋ถ€ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž„์‹œ๊ฐ€ 80๋น„ํŠธ์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ x86-64 ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ธฐ๋ณธ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

์Ž„,387
์Ž„+387
๋‘
ํ•œ ๋ฒˆ์— ๋‘ ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ๋ชจ๋‘ ํ™œ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ํšจ๊ณผ์ ์œผ๋กœ ๋‘ ๋ฐฐ
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์–‘ ๋ฐ 387์„ ์œ„ํ•œ ๋ณ„๋„์˜ ์‹คํ–‰ ๋‹จ์œ„๊ฐ€ ์žˆ๋Š” ์นฉ
์‹คํ–‰ ์ž์›๋„ SSEํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์•„์ง ์‚ฌ์šฉ ์ค‘์ด๋ฏ€๋กœ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
GCC ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์ž๊ฐ€ ๋ณ„๋„๋กœ ๋ชจ๋ธ๋งํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ—˜์ 
๊ธฐ๋Šฅ ๋‹จ์œ„๊ฐ€ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์•„ ์„ฑ๋Šฅ์ด ๋ถˆ์•ˆ์ •ํ•ฉ๋‹ˆ๋‹ค.

-๋งค์ฆ˜=๋ฐฉ์–ธ
์„ ํƒ ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๋ฆฝ ์ง€์นจ ์ถœ๋ ฅ ๋ฐฉ์–ธ. ์–ด๋–ค ๋ฐฉ์–ธ์ธ์ง€์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ "asm" ๋ฐ ํ™•์žฅ๋œ "asm"์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ์„ ํƒ ํ•ญ๋ชฉ(๋ฐฉ์–ธ์ˆœ)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์—
or ์ •๋ณด. ๊ธฐ๋ณธ๊ฐ’์€ ์—. ๋‹ค์œˆ์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ์ •๋ณด.

-mieee-fp
-mno-ieee-fp
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ IEEE ๋ถ€๋™ ์†Œ์ˆ˜์  ๋น„๊ต๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค
๋น„๊ต ๊ฒฐ๊ณผ๊ฐ€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค.

-msoft-float
๋ถ€๋™ ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์ด ํฌํ•จ๋œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” GCC์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์„ค์˜
๋จธ์‹ ์˜ ์ผ๋ฐ˜์ ์ธ C ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์ด๊ฒƒ์€ ํฌ๋กœ์Šค ํฌ๋กœ์Šค์—์„œ ์ง์ ‘ ์ˆ˜ํ–‰๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํŽธ์ง‘. ์ ์ ˆํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์Šค์Šค๋กœ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํฌ๋กœ์Šค ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ํ•จ์ˆ˜

ํ•จ์ˆ˜๊ฐ€ 80387 ๋ ˆ์ง€์Šคํ„ฐ์—์„œ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ
์Šคํƒ, ๊ฒฝ์šฐ์—๋„ ์ผ๋ถ€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ ์ฝ”๋“œ๊ฐ€ ๋ฐฉ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -msoft-float ์‚ฌ์šฉ.

-mno-fp-ret-in-387
ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์— FPU ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ผ๋ฐ˜์ ์ธ ํ˜ธ์ถœ ๊ทœ์น™์—๋Š” "float" ๋ฐ "double" ์œ ํ˜•์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
FPU๊ฐ€ ์—†๋”๋ผ๋„ FPU ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ์šด์˜ ์ฒด์ œ
FPU๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ต์…˜ -mno-fp-ret-in-387 ์ด๋Ÿฌํ•œ ๊ฐ’์ด ์ผ๋ฐ˜ CPU์—์„œ ๋ฐ˜ํ™˜๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์‹  ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

-mno-ํŒฌ์‹œ-์ˆ˜ํ•™-387
์ผ๋ถ€ 387 ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” "sin", "cos" ๋ฐ "sqrt" ๋ช…๋ น์–ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
387. ์ด๋Ÿฌํ•œ ๋ช…๋ น์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์ด ์˜ต์…˜์€
OpenBSD ๋ฐ NetBSD์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. -XNUMX ์›” ํ‘œ์‹œ
๋Œ€์ƒ CPU์—๋Š” ํ•ญ์ƒ FPU๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ช…๋ น์–ด๋Š” ์—๋ฎฌ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด ์ง€์นจ์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ์Šค์œ„์น˜.

-์•…์„ฑ-๋”๋ธ”
-mno-์ •๋ ฌ-๋”๋ธ”
GCC๊ฐ€ "double", "long double" ๋ฐ "long long" ๋ณ€์ˆ˜๋ฅผ ์ •๋ ฌํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๋‹จ์–ด ๊ฒฝ๊ณ„ ๋˜๋Š” ํ•œ ๋‹จ์–ด ๊ฒฝ๊ณ„. ๋‘ ๋‹จ์–ด๋กœ ๋œ "์ด์ค‘" ๋ณ€์ˆ˜ ์ •๋ ฌ
๊ฒฝ๊ณ„๋Š” ๋” ๋งŽ์€ ๋น„์šฉ์„ ๋“ค์ด๊ณ  Pentium์—์„œ ๋‹ค์†Œ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ.

x86-64์—์„œ, -์•…์„ฑ-๋”๋ธ” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ๋‹น์‹ ์ด -์•…์„ฑ-๋”๋ธ” ์Šค์œ„์น˜, ์œ„์˜ ์œ ํ˜•์„ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ
๊ฒŒ์‹œ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์–‘๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ •๋ ฌ๋จ
x86-32์šฉ์ด๋ฉฐ ๋‹ค์Œ ์—†์ด ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์˜ ๊ตฌ์กฐ์™€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ ์Šค์œ„์น˜.

-m96bit-๋กฑ-๋”๋ธ”
-m128bit-๋กฑ-๋”๋ธ”
์ด ์Šค์œ„์น˜๋Š” "๋กฑ ๋”๋ธ”" ์œ ํ˜•์˜ ํฌ๊ธฐ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. x86-32 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ
์ธํ„ฐํŽ˜์ด์Šค๋Š” ํฌ๊ธฐ๋ฅผ 96๋น„ํŠธ๋กœ ์ง€์ •ํ•˜๋ฏ€๋กœ -m96bit-๋กฑ-๋”๋ธ” ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
32๋น„ํŠธ ๋ชจ๋“œ.

ํ˜„๋Œ€ ์•„ํ‚คํ…์ฒ˜(ํŽœํ‹ฐ์—„ ์ด์ƒ)๋Š” 8-์— ๋งž์ถฐ "๊ธด ์ด์ค‘"์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
๋˜๋Š” 16๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„. ABI๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” ๋ฐฐ์—ด์ด๋‚˜ ๊ตฌ์กฐ์—์„œ ์ด๊ฒƒ์€
๊ฐ€๋Šฅํ•œ. ๊ทธ๋ž˜์„œ ์ง€์ • -m128bit-๋กฑ-๋”๋ธ” "long double"์„ 16๋ฐ”์ดํŠธ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
์ถ”๊ฐ€ 32๋น„ํŠธ XNUMX์œผ๋กœ "long double"์„ ํŒจ๋”ฉํ•˜์—ฌ ๊ฒฝ๊ณ„.

x86-64 ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ, -m128bit-๋กฑ-๋”๋ธ” ABI๋กœ ๊ธฐ๋ณธ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.
"long double"์ด 16๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„์— ์ •๋ ฌ๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์˜ต์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ x87 ํ‘œ์ค€๋ณด๋‹ค ๋” ๋†’์€ ์ •๋ฐ€๋„๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
"long double"์˜ ๊ฒฝ์šฐ 80๋น„ํŠธ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ๋Œ€์ƒ ABI์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์žฌ์ •์˜ํ•˜๋ฉด ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
"long double" ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ ๋ฐ ๋ฐฐ์—ด ๋ฐ ์ˆ˜์ •
"long double"์„ ์ทจํ•˜๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์น™. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ๋“ค์€ ์•„๋‹ˆ๋‹ค
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์™€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-mlong-๋”๋ธ”-64
-mlong-๋”๋ธ”-80
-mlong-๋”๋ธ”-128
์ด ์Šค์œ„์น˜๋Š” "๋กฑ ๋”๋ธ”" ์œ ํ˜•์˜ ํฌ๊ธฐ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. 64๋น„ํŠธ์˜ ํฌ๊ธฐ๋Š”
"long double" ์œ ํ˜•์€ "double" ์œ ํ˜•์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 32๋น„ํŠธ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.
๋ฐ”์ด์˜ค๋‹‰ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. 128๋น„ํŠธ ํฌ๊ธฐ๋Š” "long double" ์œ ํ˜•์„ ๋‹ค์Œ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
"__float128" ์œ ํ˜•. ์ด๊ฒƒ์€ 64๋น„ํŠธ Bionic C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ๋Œ€์ƒ ABI์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์žฌ์ •์˜ํ•˜๋ฉด ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
"long double" ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ ๋ฐ ๋ฐฐ์—ด ๋ฐ ์ˆ˜์ •
"long double"์„ ์ทจํ•˜๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์น™. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ๋“ค์€ ์•„๋‹ˆ๋‹ค
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์™€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

-์•…์„ฑ ๋ฐ์ดํ„ฐ=์œ ํ˜•
GCC๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ๊ฐ’ ์œ ํ˜• are ๋™๋ฃŒ ์‚ฌ์šฉ ์ฆ๊ฐ€
์ •๋ ฌ ๊ฐ’ ํ˜ธํ™˜์€ GCC 4.8 ๋ฐ ์ด์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ABI ์ •๋ ฌ ๊ฐ’์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
psABI์— ์˜ํ•ด ์ง€์ •๋˜๊ณ , ์บ์‹œ๋ผ์ธ ์ผ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์ฆ๊ฐ€๋œ ์ •๋ ฌ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์บ์‹œ ๋ผ์ธ ํฌ๊ธฐ. ๋™๋ฃŒ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

-mlarge-๋ฐ์ดํ„ฐ-์ž„๊ณ„๊ฐ’=์ž„๊ณ„๊ฐ’
์ธ์…€๋ค ๊ณต์‹ ํŒ๋งค์ ์ธ -mcmodel=์ค‘๊ฐ„ ์ง€์ •๋œ ๊ฒฝ์šฐ ๋ณด๋‹ค ํฐ ๋ฐ์ดํ„ฐ ๊ฐœ์ฒด ์ž„๊ณ„๊ฐ’ ๋ฐฐ์น˜๋œ๋‹ค
ํฐ ๋ฐ์ดํ„ฐ ์„น์…˜. ์ด ๊ฐ’์€ ์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ฐœ์ฒด์—์„œ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ”์ด๋„ˆ๋ฆฌ์ด๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ 65535์ž…๋‹ˆ๋‹ค.

-mrtd
๊ณ ์ •๋œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
"ret"์™€ ํ•จ๊ป˜ ๋ฐ˜ํ™˜๋˜๋Š” ์ธ์ˆ˜์˜ ์ˆ˜ ์ˆซ์ž" ๊ทธ๋“ค์˜ ์ธ์ˆ˜๋ฅผ ํŒํ•˜๋Š” ๋ช…๋ น
๋Œ์•„์˜ค๋Š” ๋™์•ˆ. ์ด๊ฒƒ์€ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ์ถœ์ž์—๊ฒŒ ํ•˜๋‚˜์˜ ๋ช…๋ น์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
๊ฑฐ๊ธฐ์— ์ธ์ˆ˜๋ฅผ ํŒ๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ํ˜ธ์ถœ ์‹œํ€€์Šค๋กœ ๊ฐœ๋ณ„ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ์†์„ฑ "stdcall". ์žฌ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -mrtd ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ
๊ธฐ๋Šฅ ์†์„ฑ "cdecl".

๊ฒฝ๊ณ : ์ด ํ˜ธ์ถœ ๊ทœ์น™์€ Unix์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ Unix ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ปดํŒŒ์ผ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์— ๋Œ€ํ•ด ํ•จ์ˆ˜ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜์˜ ์ˆ˜("printf" ํฌํ•จ); ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž˜๋ชป๋œ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋„ˆ๋ฌด ๋งŽ์€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์‹ฌ๊ฐํ•˜๊ฒŒ ์ž˜๋ชป๋œ ์ฝ”๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ธ์ˆ˜. (์ผ๋ฐ˜์ ์œผ๋กœ ์ถ”๊ฐ€ ์ธ์ˆ˜๋Š” ๋ฌดํ•ดํ•˜๊ฒŒ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.)

-mregparm=NUM
์ •์ˆ˜ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์ˆ˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ
๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ์ตœ๋Œ€ 3๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
function ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ด ๋™์ž‘์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
"๋ ˆ๊ทธํŒœ".

๊ฒฝ๊ณ : ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด NUM XNUMX์ด ์•„๋‹ˆ๋ฉด ๋ชจ๋“  ๋ชจ๋“ˆ์„ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋™์ผํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ
์‹œ์ž‘ ๋ชจ๋“ˆ.

-msseregparm
float ๋ฐ double ์ธ์ˆ˜ ๋ฐ ๋ฐ˜ํ™˜ ๊ฐ’์— ๋Œ€ํ•ด SSE ๋ ˆ์ง€์Šคํ„ฐ ์ „๋‹ฌ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
function ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ด ๋™์ž‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"์„ธ๋ ˆ๊ทธํŒœ".

๊ฒฝ๊ณ : ์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ๋™์ผํ•œ ๊ฐ’์œผ๋กœ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์‹œ์ž‘ ๋ชจ๋“ˆ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

-mvect8-ret-in-mem
MMX ๋ ˆ์ง€์Šคํ„ฐ ๋Œ€์‹  ๋ฉ”๋ชจ๋ฆฌ์— 8๋ฐ”์ดํŠธ ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค.
Solaris@tie{}8, 9 ๋ฐ VxWorks๊ฐ€ Sun Studio ์ปดํŒŒ์ผ๋Ÿฌ์˜ ABI์™€ ์ผ์น˜ํ•  ๋•Œ๊นŒ์ง€
๋ฒ„์ „ 12. ์ดํ›„ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „(Studio 12 Update@tie{}1๋ถ€ํ„ฐ ์‹œ์ž‘)์€ ๋‹ค์Œ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
Solaris@tie{}86 โ€‹โ€‹์ด์ƒ์—์„œ ๊ธฐ๋ณธ๊ฐ’์ธ ๋‹ค๋ฅธ x10 ๋Œ€์ƒ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ABI.
๋งŒ ์—์„œ ์ƒ์„ฑํ•œ ๊ธฐ์กด ์ฝ”๋“œ์™€ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์ด์ „ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„์ „ ๋˜๋Š” ์ด์ „ ๋ฒ„์ „์˜ GCC.

-mpc32
-mpc64
-mpc80
80387 ๋ถ€๋™ ์†Œ์ˆ˜์  ์ •๋ฐ€๋„๋ฅผ 32, 64 ๋˜๋Š” 80๋น„ํŠธ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ -mpc32 ์ง€์ •๋˜๊ณ ,
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์˜ ์œ ํšจ ์ˆซ์ž๋Š” 24๋น„ํŠธ๋กœ ๋ฐ˜์˜ฌ๋ฆผ๋ฉ๋‹ˆ๋‹ค.
(๋‹จ์ •๋ฐ€๋„); -mpc64 ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฒฐ๊ณผ์˜ ์œ ํšจ์ˆซ์ž๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•ฉ๋‹ˆ๋‹ค.
53๋น„ํŠธ๋กœ ์—ฐ์‚ฐ(๋ฐฐ์ •๋ฐ€๋„) ๋ฐ -mpc80 ๊ฒฐ๊ณผ์˜ ์œ ํšจ์ˆซ์ž๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ 64๋น„ํŠธ(ํ™•์žฅ ๋ฐฐ์ •๋ฐ€๋„)๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋†’์€ ์ •๋ฐ€๋„์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด
FPU ์ œ์–ด ๋‹จ์–ด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์˜ ๋ฐ˜์˜ฌ๋ฆผ์„ ๊ธฐ๋ณธ 80๋น„ํŠธ ๋ฏธ๋งŒ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด
์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์˜ ์†๋„๋ฅผ 2% ์ด์ƒ ๋†’์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ˆ˜ํ•™ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ™•์žฅ ์ •๋ฐ€๋„(80๋น„ํŠธ) ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํ‹ด
์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์„ ํ†ตํ•ด ์ •ํ™•๋„๊ฐ€ ํฌ๊ฒŒ ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ฐ€๋„๋ฅผ
ํ™•์žฅ ์ •๋ฐ€๋„๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.

-mstack์žฌ์ •๋ ฌ
์ž…๋ ฅ ์‹œ ์Šคํƒ์„ ๋‹ค์‹œ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. x86์—์„œ๋Š” -mstack์žฌ์ •๋ ฌ ์˜ต์…˜ ์ƒ์„ฑ
ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„ ์Šคํƒ์„ ์žฌ์ •๋ ฌํ•˜๋Š” ๋Œ€์ฒด ํ”„๋กค๋กœ๊ทธ ๋ฐ ์—ํ•„๋กœ๊ทธ. ์ด๊ฒƒ
์ตœ์‹  ์ฝ”๋“œ์™€ 4๋ฐ”์ดํŠธ ์Šคํƒ ์ •๋ ฌ์„ ์œ ์ง€ํ•˜๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ํ˜ผํ•ฉ ์ง€์›
SSE ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด 16๋ฐ”์ดํŠธ ์Šคํƒ ์ •๋ ฌ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์†์„ฑ ์ฐธ์กฐ
"force_align_arg_pointer", ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ์— ์ ์šฉ ๊ฐ€๋Šฅ.

-mpreferred-์Šคํƒ-๊ฒฝ๊ณ„=NUM
์Šคํƒ ๊ฒฝ๊ณ„๋ฅผ 2๋กœ ์˜ฌ๋ฆฐ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. NUM ๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„. ๋งŒ์•ฝ์—
-์šฐ์„ ์ˆœ์œ„-์Šคํƒ-๊ฒฝ๊ณ„ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ 4(16๋ฐ”์ดํŠธ ๋˜๋Š” 128๋น„ํŠธ)์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : SSE ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ x86-64 ์•„ํ‚คํ…์ฒ˜์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ
์žฅ์• ์ธ, -mpreferred-์Šคํƒ-๊ฒฝ๊ณ„=3 ์Šคํƒ ๊ฒฝ๊ณ„๋ฅผ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
8๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„๊นŒ์ง€. x86-64 ABI๋Š” 16๋ฐ”์ดํŠธ ์Šคํƒ ์ •๋ ฌ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ด๊ฒƒ์ด ABI์ž…๋‹ˆ๋‹ค.
ํ˜ธํ™˜๋˜์ง€ ์•Š์œผ๋ฉฐ ์Šคํƒ ๊ณต๊ฐ„์ด ์ œํ•œ๋œ ์ œ์–ด๋œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘์š”ํ•œ ์ œํ•œ. ์ด ์˜ต์…˜์€ ํ•จ์ˆ˜๊ฐ€ 16์œผ๋กœ ์ปดํŒŒ์ผ๋  ๋•Œ ์ž˜๋ชป๋œ ์ฝ”๋“œ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
๋ฐ”์ดํŠธ ์Šคํƒ ์ •๋ ฌ(์˜ˆ: ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•จ์ˆ˜)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
์ •๋ ฌ๋˜์ง€ ์•Š์€ ์Šคํƒ. ์ด ๊ฒฝ์šฐ SSE ๋ช…๋ น์œผ๋กœ ์ธํ•ด ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ์ž˜๋ชป ์ •๋ ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠธ๋žฉ. ๋˜ํ•œ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋Š” 16๋ฐ”์ดํŠธ ์ •๋ ฌ์— ๋Œ€ํ•ด ์ž˜๋ชป ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
๊ฐœ์ฒด(x87 long double ๋ฐ __int128 ํฌํ•จ)๋Š” ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค
๋ชจ๋“  ๋ชจ๋“ˆ์„ ๋‹ค์Œ์œผ๋กœ ๋นŒ๋“œ -mpreferred-์Šคํƒ-๊ฒฝ๊ณ„=3, ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์‹œ์ž‘ ๋ชจ๋“ˆ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

-์ตœ์†Œํ™” ์Šคํƒ ๊ฒฝ๊ณ„=NUM
๋“ค์–ด์˜ค๋Š” ์Šคํƒ์ด 2๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. NUM ๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„. ๋งŒ์•ฝ์—
-์ตœ์†Œ ์Šคํƒ ๊ฒฝ๊ณ„ ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
-์šฐ์„ ์ˆœ์œ„-์Šคํƒ-๊ฒฝ๊ณ„ ์‚ฌ์šฉ.

Pentium ๋ฐ Pentium Pro์—์„œ "double" ๋ฐ "long double" ๊ฐ’์€
8๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„(์ฐธ์กฐ -์•…์„ฑ-๋”๋ธ”) ๋˜๋Š” ์ƒ๋‹นํ•œ ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ ์ €ํ•˜
์ฒ˜๋ฒŒ. Pentium III์—์„œ SSE(Streaming SIMD Extension) ๋ฐ์ดํ„ฐ ์œ ํ˜• "__m128"์€
16๋ฐ”์ดํŠธ๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์œผ๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์Šคํƒ์—์„œ ์ด ๊ฐ’์˜ ์ ์ ˆํ•œ ์ •๋ ฌ์„ ๋ณด์žฅํ•˜๋ ค๋ฉด ์Šคํƒ ๊ฒฝ๊ณ„๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์Šคํƒ์— ์ €์žฅ๋œ ๊ฐ’์— ํ•„์š”ํ•œ ๋Œ€๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ
์Šคํƒ์„ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋„๋ก ์ƒ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ
๋” ๋‚ฎ์€ ๊ฐ’์œผ๋กœ ์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜์—์„œ ๋” ๋†’์€ ์„ ํ˜ธ ์Šคํƒ ๊ฒฝ๊ณ„๋กœ ์ปดํŒŒ์ผ
๊ธฐ๋ณธ ์Šคํƒ ๊ฒฝ๊ณ„๋Š” ์Šคํƒ์„ ์ž˜๋ชป ์ •๋ ฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
์ฝœ๋ฐฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ•ญ์ƒ ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ์ถ”๊ฐ€ ์ •๋ ฌ์€ ์ถ”๊ฐ€ ์Šคํƒ ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•˜๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.
ํฌ๊ธฐ. ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์Šคํƒ ๊ณต๊ฐ„ ์‚ฌ์šฉ์— ๋ฏผ๊ฐํ•œ ์ฝ”๋“œ
์šด์˜ ์ฒด์ œ ์ปค๋„์—์„œ ์„ ํ˜ธํ•˜๋Š” ์ •๋ ฌ์„
-mpreferred-์Šคํƒ-๊ฒฝ๊ณ„=2.

-mmmx.
-msse
-msse2.
-msse3.
-mssse3
-msse4.
-msse4a
-msse4.1.
-msse4.2.
-mavx
-mavx2
-mavx512f
-mavx512pf
-mavx512er
-mavx512cd
-msha
-๋ฉ”์Šค
-mpclmul
-mclfushopt
-mfsgsbase
-mrdrnd
-mf16c.
-mfma
-mfma4
-mno-fma4
-mprefetchwt1
-mxop
-mlwp
-m3dnow
-mpopcnt
-๋ง˜๋งˆ
-mbmi
-mbmi2
-mlzcnt
-mfxsr
-mx์ €์žฅ
-mxsaveopt
-mxsavec
-mxsave
-mrtm
-mtbm
-mmpx
-mmwaitx
์ด ์Šค์œ„์น˜๋Š” MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, AVX, AVX2, AVX512F, AVX512PF, AVX512ER, AVX512CD, SHA, AES, PCLMUL, FSGSBASE,
RDRND, F16C, FMA, SSE4A, FMA4, XOP, LWP, ABM, BMI, BMI2, FXSR, XSAVE, XSAVEOPT, LZCNT,
RTM, MPX, MWAITX ๋˜๋Š” 3DNow! ํ™•์žฅ๋œ ๋ช…๋ น์–ด ์„ธํŠธ. ๊ฐ๊ฐ ํ•ด๋‹นํ•˜๋Š” -์•„๋‡จ-
์ด ์ง€์นจ์˜ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ™•์žฅ์€ ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. x86 ๋‚ด์žฅ ๊ธฐ๋Šฅ,
์ด ์Šค์œ„์น˜์— ์˜ํ•ด ํ™œ์„ฑํ™” ๋ฐ ๋น„ํ™œ์„ฑํ™”๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€

๋ถ€๋™ ์†Œ์ˆ˜์  ์ฝ”๋“œ์—์„œ ์ž๋™์œผ๋กœ SSE/SSE2 ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด(๋ฐ˜๋Œ€๋กœ
387 ์ง€์นจ๊นŒ์ง€), ์ฐธ์กฐ -mfpmath=sse.

GCC๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ SSEx ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -mavx ์‚ฌ์šฉ. ๋Œ€์‹  ์ƒˆ๋กœ์šด AVX๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ชจ๋“  SSEx ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ๋˜๋Š” AVX ๋“ฑ๊ฐ€๋ฌผ.

์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์—์„œ ์ด๋Ÿฌํ•œ ํ™•์žฅ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—†์ด -mfpmath=sse. ๋Ÿฐํƒ€์ž„ CPU ๊ฐ์ง€๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ ์ ˆํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์›๋˜๋Š” ๊ฐ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—
ํŠนํžˆ CPU ๊ฐ์ง€ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์€
์ด๋Ÿฌํ•œ ์˜ต์…˜.

-mdump-์กฐ์ • ๊ธฐ๋Šฅ
์ด ์˜ต์…˜์€ GCC๊ฐ€ x86 ์„ฑ๋Šฅ ์กฐ์ • ๊ธฐ๋Šฅ์˜ ์ด๋ฆ„์„ ๋คํ”„ํ•˜๋„๋ก ์ง€์‹œํ•˜๊ณ 
๊ธฐ๋ณธ ์„ค์ •. ์ด๋ฆ„์€ ๋‹ค์Œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -mtune-ctrl=๊ธฐ๋Šฅ ๋ชฉ๋ก.

-mtune-ctrl=๊ธฐ๋Šฅ ๋ชฉ๋ก
์ด ์˜ต์…˜์€ x86 ์ฝ”๋“œ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ๋ชฉ๋ก ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ์ด๋ฆ„. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค
-mdump-์กฐ์ • ๊ธฐ๋Šฅ. ์ง€์ •๋˜๋ฉด ๊ธฐ๋Šฅ ์„ ํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด ์ผœ์ง‘๋‹ˆ๋‹ค.
๊ณผ ^, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊บผ์ง‘๋‹ˆ๋‹ค. -mtune-ctrl=๊ธฐ๋Šฅ ๋ชฉ๋ก ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค
GCC ๊ฐœ๋ฐœ์ž์— ์˜ํ•ด. ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ์ฝ”๋“œ ๊ฒฝ๋กœ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ
์ž ์žฌ์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ ICE ๋˜๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mno-๊ธฐ๋ณธ๊ฐ’
์ด ์˜ต์…˜์€ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋„๋„๋ก GCC์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค
-mtune-ctrl=๊ธฐ๋Šฅ ๋ชฉ๋ก ๊ณผ -mdump-์กฐ์ • ๊ธฐ๋Šฅ.

-mcld
์ด ์˜ต์…˜์€ ํ•จ์ˆ˜์˜ ํ”„๋กค๋กœ๊ทธ์—์„œ "cld" ๋ช…๋ น์„ ๋‚ด๋ณด๋‚ด๋„๋ก GCC์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์ž์—ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ช…๋ น์–ด๋Š” ์„ ํƒํ•  DF ํ”Œ๋ž˜๊ทธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ž๋™ ์ฆ๊ฐ€ ๋˜๋Š” ์ž๋™ ๊ฐ์†Œ ๋ชจ๋“œ ์‚ฌ์ด. ABI๊ฐ€ DF ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋™์•ˆ
๊ธฐ๋Šฅ ์ž…๋ ฅ ์‹œ ์ง€์›Œ์ง€๋ฏ€๋กœ ์ผ๋ถ€ ์šด์˜ ์ฒด์ œ๋Š” ์ด ์‚ฌ์–‘์„ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์˜ˆ์™ธ ๋””์ŠคํŒจ์ฒ˜์—์„œ DF ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์›๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ๋Š”
DF ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋œ ์ƒํƒœ์—์„œ ํ˜ธ์ถœ๋˜์–ด ๋ฌธ์ž์—ด์ด
์ง€์นจ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ 32๋น„ํŠธ x86 ๋Œ€์ƒ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ GCC ๊ตฌ์„ฑ --ํ™œ์„ฑํ™”-cld ์˜ต์…˜์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. "cld"์˜ ์ƒ์„ฑ
๋ช…๋ น์€ ๋‹ค์Œ์œผ๋กœ ์–ต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -mno-cld ์ด ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜.

-mvzeroupper
์ด ์˜ต์…˜์€ "vzeroupper" ๋ช…๋ น์„ ์ „์†กํ•˜๊ธฐ ์ „์— GCC์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
AVX์—์„œ SSE๋กœ์˜ ์ „ํ™˜ ํŒจ๋„ํ‹ฐ๋„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋Šฅ ์™ธ๋ถ€๋กœ์˜ ์ œ์–ด ํ๋ฆ„
๋ถˆํ•„์š”ํ•œ "zeroupper" ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

-mprefer-avx128
์ด ์˜ต์…˜์€ GCC๊ฐ€ 128๋น„ํŠธ AVX ๋Œ€์‹  256๋น„ํŠธ AVX ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์ž๋™ ๋ฒกํ„ฐ๋ผ์ด์ €์˜ ์ง€์นจ.

-mcx16
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด GCC๊ฐ€ "CMPXCHG16B" ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "CMPXCHG16B"๋Š”
128๋น„ํŠธ ์ด์ค‘ ์ฟผ๋“œ์›Œ๋“œ(๋˜๋Š” oword) ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์›์ž์  ์—ฐ์‚ฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์„œ์—์„œ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ํ•ด์ƒ๋„ ์นด์šดํ„ฐ(๋˜๋Š”
์ฝ”์–ด). ์ด ๋ช…๋ น์–ด๋Š” ์›์ž ๋‚ด์žฅ ํ•จ์ˆ˜์˜ ์ผ๋ถ€๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
__๋™์กฐ ๋นŒํŠธ์ธ or __์›์ž ๋นŒํŠธ์ธ ์ž์„ธํ•œ ๋‚ด์šฉ์€.

-msahf
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด 64๋น„ํŠธ ์ฝ”๋“œ์—์„œ "SAHF" ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ธํ…”
Intel 4๋ฅผ ์ง€์›ํ•˜๋Š” Pentium 64 CPU, Pentium 4 G1 ๋‹จ๊ณ„ ๋„์ž… ์ด์ „
2005๋…„ XNUMX์›”, ์—์„œ ์ง€์›ํ•˜๋Š” "LAHF" ๋ฐ "SAHF" ์ง€์นจ์ด ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค.
AMD64. ์ด๋“ค์€ ๊ฐ๊ฐ ํŠน์ • ์ƒํƒœ ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•œ ๋กœ๋“œ ๋ฐ ์ €์žฅ ๋ช…๋ น์ž…๋‹ˆ๋‹ค.
64๋น„ํŠธ ๋ชจ๋“œ์—์„œ "SAHF" ๋ช…๋ น์–ด๋Š” "fmod", "drem" ๋ฐ
"๋‚˜๋จธ์ง€" ๋‚ด์žฅ ํ•จ์ˆ˜; ๋ณด๋‹ค ๊ธฐํƒ€ ๋นŒํŠธ์ธ ์ž์„ธํ•œ ๋‚ด์šฉ์€.

-mmovbe
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "movbe" ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "__builtin_bswap32"๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ "__builtin_bswap64".

-mcrc32
์ด ์˜ต์…˜์€ ๋‚ด์žฅ ํ•จ์ˆ˜ "__builtin_ia32_crc32qi"๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
"__builtin_ia32_crc32hi", "__builtin_ia32_crc32si" ๋ฐ "__builtin_ia32_crc32di"
"crc32" ๊ธฐ๊ณ„ ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

-mrecip
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด "RCPSS" ๋ฐ "RSQRTSS" ๋ช…๋ น์–ด(๋ฐ ๋ฒกํ„ฐํ™”๋œ
"RCPPS" ๋ฐ "RSQRTPS" ๋ณ€ํ˜•) ์ถ”๊ฐ€ Newton-Raphson ๋‹จ๊ณ„๋กœ ์ฆ๊ฐ€
๋‹จ์ผ์— ๋Œ€ํ•œ "DIVSS" ๋ฐ "SQRTSS"(๋ฐ ๋ฒกํ„ฐํ™”๋œ ๋ณ€ํ˜•) ๋Œ€์‹  ์ •๋ฐ€๋„
์ •๋ฐ€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ธ์ˆ˜. ์ด ์ง€์นจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ์™€ ํ•จ๊ป˜ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. - ์œ ํ•œ ์ˆ˜ํ•™ ์ „์šฉ ๊ณผ
-fno ํŠธ๋ž˜ํ•‘ ์ˆ˜ํ•™. ์‹œํ€€์Šค์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์€
non-reciprocal ๋ช…๋ น์–ด์˜ ์ฒ˜๋ฆฌ๋Ÿ‰, ์‹œํ€€์Šค์˜ ์ •๋ฐ€๋„๋Š”
์ตœ๋Œ€ 2ulp๊นŒ์ง€ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, 1.0์˜ ์—ญ์ˆ˜๋Š” 0.99999994์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค).

GCC๋Š” "1.0f/sqrtf(NS)" "RSQRTSS"(๋˜๋Š” "RSQRTPS") ์ธก๋ฉด์—์„œ ์ด๋ฏธ
๊ณผ -๋น ๋ฅธ ์ˆ˜ํ•™ (๋˜๋Š” ์œ„์˜ ์˜ต์…˜ ์กฐํ•ฉ), ํ•„์š”ํ•˜์ง€ ์•Š์Œ -mrecip.

๋˜ํ•œ GCC๋Š” ์ถ”๊ฐ€ Newton-Raphson ๋‹จ๊ณ„์™€ ํ•จ๊ป˜ ์œ„์˜ ์‹œํ€€์Šค๋ฅผ ๋ฐฉ์ถœํ•ฉ๋‹ˆ๋‹ค.
๋ฒกํ„ฐํ™”๋œ ๋‹จ์ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋‚˜๋ˆ„๊ธฐ ๋ฐ ๋ฒกํ„ฐํ™”๋œ "sqrtf(NS)" ์ด๋ฏธ -๋น ๋ฅธ ์ˆ˜ํ•™
(๋˜๋Š” ์œ„์˜ ์˜ต์…˜ ์กฐํ•ฉ), ํ•„์š”ํ•˜์ง€ ์•Š์Œ -mrecip.

-mrecip=๊ณ ๋ฅด๋‹ค
์ด ์˜ต์…˜์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ˜ธ ์ถ”์ • ์ง€์นจ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๋ฅด๋‹ค ํ•˜๋Š”
์•ž์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์˜ต์…˜ ๋ชฉ๋ก ! ์˜ต์…˜์„ ๋ฐ˜์ „์‹œํ‚ค๋ ค๋ฉด:

๋ชจ๋“  ๋ชจ๋“  ๊ฒฌ์  ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋””ํดํŠธ ๊ฐ’
์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋ณธ ์ง€์นจ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -mrecip.

์—†์Œ
์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“  ์ถ”์ • ์ง€์นจ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. -mno-recipe.

DIV ์Šค์นผ๋ผ ๋‚˜๋ˆ—์…ˆ์— ๋Œ€ํ•œ ๊ทผ์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

vec-div
๋ฒกํ„ฐํ™”๋œ ๋‚˜๋ˆ—์…ˆ์— ๋Œ€ํ•œ ๊ทผ์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

sqrt
์Šค์นผ๋ผ ์ œ๊ณฑ๊ทผ์— ๋Œ€ํ•œ ๊ทผ์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

vec-sqrt
๋ฒกํ„ฐํ™”๋œ ์ œ๊ณฑ๊ทผ์— ๋Œ€ํ•œ ๊ทผ์‚ฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด -mrecip=๋ชจ๋‘,!sqrt ๋ชจ๋“  ์—ญ ๊ทผ์‚ฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
์ œ๊ณฑ๊ทผ์„ ์ œ์™ธํ•˜๊ณ .

-mveclibabi=์œ ํ˜•
์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ๋ฒกํ„ฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ABI ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ง€์›๋˜๋Š” ๊ฐ’ ์œ ํ˜• are svml ์ธํ…” ์งง์€ ๋ฒกํ„ฐ ์ˆ˜ํ•™ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ACML
AMD ์ˆ˜ํ•™ ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‘˜ ๋‹ค -ftree ๋ฒกํ„ฐํ™” ๊ณผ
-์žฌ๋ฏธ์žˆ๋Š” ์ˆ˜ํ•™ ์ตœ์ ํ™” ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋ฉฐ SVML ๋˜๋Š” ACML ABI ํ˜ธํ™˜
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋งํฌ ์‹œ๊ฐ„์— ์ง€์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

GCC๋Š” ํ˜„์žฌ "vmldExp2", "vmldLn2", "vmldLog102", "vmldLog102"์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
"vmldPow2", "vmldTanh2", "vmldTan2", "vmldAtan2", "vmldAtanh2", "vmldCbrt2",
"vmldSinh2", "vmldSin2", "vmldAsinh2", "vmldAsin2", "vmldCosh2", "vmldCos2",
"vmldAcosh2", "vmldAcos2", "vmlsExp4", "vmlsLn4", "vmlsLog104", "vmlsLog104",
"vmlsPow4", "vmlsTanh4", "vmlsTan4", "vmlsAtan4", "vmlsAtanh4", "vmlsCbrt4",
"vmlsSinh4", "vmlsSin4", "vmlsAsinh4", "vmlsAsin4", "vmlsCosh4", "vmlsCos4",
ํ•ด๋‹น ๊ธฐ๋Šฅ ์œ ํ˜•์— ๋Œ€ํ•œ "vmlsAcosh4" ๋ฐ "vmlsAcos4" -mveclibabi=svml is
์‚ฌ์šฉ ๋ฐ "__vrd2_sin", "__vrd2_cos", "__vrd2_exp", "__vrd2_log", "__vrd2_log2",
"__vrd2_log10", "__vrs4_sinf", "__vrs4_cosf", "__vrs4_expf", "__vrs4_logf",
ํ•ด๋‹น ๊ธฐ๋Šฅ ์œ ํ˜•์— ๋Œ€ํ•œ "__vrs4_log2f", "__vrs4_log10f" ๋ฐ "__vrs4_powf"
์–ธ์ œ -mveclibabi=acml ์‚ฌ์šฉ.

-๋งˆ๋น„=name
์ง€์ •๋œ ํ˜ธ์ถœ ๊ทœ์น™์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ ์‹œ์Šคํ…œ for
GNU/Linux ๋ฐ ๊ธฐํƒ€ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ABI, ms ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ABI์šฉ. NS
๊ธฐ๋ณธ๊ฐ’์€ Microsoft Windows ๋ฐ SysV ABI๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ Microsoft ABI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ด ๋™์ž‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ์†์„ฑ "ms_abi" ๋ฐ "sysv_abi".

-mtls-๋ฐฉ์–ธ=์œ ํ˜•
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ ์•”์†Œ ๋น„์Šทํ•œ ์ผ์ข…์˜ ์˜์–‘ or gnu2 ๊ด€๋ก€. ์•”์†Œ ๋น„์Šทํ•œ ์ผ์ข…์˜ ์˜์–‘
๋ณด์ˆ˜์  ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. gnu2 ๋” ํšจ์œจ์ ์ด์ง€๋งŒ ์ปดํŒŒ์ผ ๋ฐ ์‹คํ–‰์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ์ถฉ์กฑ๋  ์ˆ˜ ์—†๋Š” ์‹œ๊ฐ„ ์š”๊ตฌ ์‚ฌํ•ญ.

-mpush-์ธ์ˆ˜
-mno-ํ‘ธ์‹œ ์ธ์ˆ˜
PUSH ์ž‘์—…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋” ์งง๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ
SUB/MOV ์ž‘์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋™์ผํ•˜๊ฒŒ ๋น ๋ฅด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€์—์„œ๋Š”
์ด ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ผ์ •์ด ๊ฐœ์„ ๋˜๊ณ 
์ข…์†์„ฑ.

-maccumulate-outgoing-args
ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋‚˜๊ฐ€๋Š” ์ธ์ˆ˜์— ํ•„์š”ํ•œ ์ตœ๋Œ€ ๊ณต๊ฐ„์ด ๋‹ค์Œ์—์„œ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ ํ”„๋กค๋กœ๊ทธ. ์ด๊ฒƒ์€ ๊ฐ์†Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  CPU์—์„œ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค.
์ข…์†์„ฑ, ํ–ฅ์ƒ๋œ ์Šค์ผ€์ค„๋ง ๋ฐ ์Šคํƒ ์‚ฌ์šฉ ๊ฐ์†Œ
๊ฒฝ๊ณ„๋Š” 2์™€ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ ์€ ์ฝ”๋“œ ํฌ๊ธฐ๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ์ฆ๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ
์Šค์œ„์น˜ ์˜๋ฏธ -mno-ํ‘ธ์‹œ ์ธ์ˆ˜.

-m์Šค๋ ˆ๋“œ
MinGW์—์„œ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ ์•ˆ์ „์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ๋งํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -m์Šค๋ ˆ๋“œ ์˜ต์…˜. ์–ธ์ œ
์ปดํŒŒ์ผ, -m์Šค๋ ˆ๋“œ ์ •์˜ -D_MT; ์—ฐ๊ฒฐํ•  ๋•Œ ํŠน์ˆ˜ ์Šค๋ ˆ๋“œ ๋„์šฐ๋ฏธ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
๋„์„œ๊ด€ -lmingwthrd ์Šค๋ ˆ๋“œ๋ณ„ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

-mno-align-stringops
์ธ๋ผ์ธ๋œ ๋ฌธ์ž์—ด ์ž‘์—…์˜ ๋Œ€์ƒ์„ ์ •๋ ฌํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด ์Šค์œ„์น˜๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค
๋Œ€์ƒ์ด ์ด๋ฏธ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๊ณ  ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์ง€๋งŒ GCC๋Š”
๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

-minline-all-stringops
๊ธฐ๋ณธ์ ์œผ๋กœ GCC๋Š” ๋Œ€์ƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ์—๋งŒ ๋ฌธ์ž์—ด ์ž‘์—…์„ ์ธ๋ผ์ธํ•ฉ๋‹ˆ๋‹ค.
์ตœ์†Œ 4๋ฐ”์ดํŠธ ๊ฒฝ๊ณ„๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋” ๋งŽ์€ ์ธ๋ผ์ธ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.
ํฌ๊ธฐ๋Š” ์ž‘์ง€๋งŒ ๋น ๋ฅธ "memcpy", "strlen" ๋ฐ
์งง์€ ๊ธธ์ด์˜ ๊ฒฝ์šฐ "memset".

-minline-stringops-๋™์ ์œผ๋กœ
ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด ์ž‘์—…์˜ ๊ฒฝ์šฐ ์ž‘์€ ํฌ๊ธฐ์— ๋Œ€ํ•ด ์ธ๋ผ์ธ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ๋Ÿฐํƒ€์ž„ ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ธ”๋ก ๋ฐ ํฐ ๋ธ”๋ก์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ.

-mstringop-์ „๋žต=ALG
ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์‚ฌ์šฉํ•  ๋‚ด๋ถ€ ๊ฒฐ์ • ํœด๋ฆฌ์Šคํ‹ฑ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ. ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’ ALG ์œ„์น˜ :

๋‹ด๋‹น์ž_๋ฐ”์ดํŠธ
๋‹ด๋‹น์ž_4๋ฐ”์ดํŠธ
๋‹ด๋‹น์ž_8๋ฐ”์ดํŠธ
์ง€์ •๋œ ํฌ๊ธฐ์˜ i386 "rep" ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”์ดํŠธ ๋ฃจํ”„
๊ณ ๋ฆฌ
unrolled_loop
์ธ๋ผ์ธ ๋ฃจํ”„๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ
ํ•ญ์ƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

-mmemcpy-์ „๋žต=์ „๋žต
๋‚ด๋ถ€ ๊ฒฐ์ • ํœด๋ฆฌ์Šคํ‹ฑ์„ ์žฌ์ •์˜ํ•˜์—ฌ "__builtin_memcpy"๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ๋ฐ ๋ณต์‚ฌ ์ž‘์—…์˜ ์˜ˆ์ƒ ํฌ๊ธฐ ๋•Œ ์‚ฌ์šฉํ•  ์ธ๋ผ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜
์•Œ๋ ค์ ธ์žˆ๋‹ค. ์ „๋žต ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ALG:์ตœ๋Œ€ ํฌ๊ธฐ:๋Œ€์ƒ_์ •๋ ฌ ์„ธ ์Œ๋‘ฅ์ด. ALG
์— ์ง€์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค -mstringop-์ „๋žต, ์ตœ๋Œ€ ํฌ๊ธฐ ์ตœ๋Œ€ ๋ฐ”์ดํŠธ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ALG ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ํŠธ๋ฆฌํ”Œ๋ ›์˜ ๊ฒฝ์šฐ, ์ตœ๋Œ€ ํฌ๊ธฐ "-1"์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NS
์ตœ๋Œ€ ํฌ๊ธฐ ๋ชฉ๋ก์— ์žˆ๋Š” ์‚ผ์ค‘ํ•ญ ์ค‘ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NS
์ตœ์†Œ ๋ฐ”์ดํŠธ ํฌ๊ธฐ ALG ์ฒซ ๋ฒˆ์งธ ์‚ผ์ค‘ํ•ญ์˜ ๊ฒฝ์šฐ 0์ด๊ณ  "์ตœ๋Œ€ ํฌ๊ธฐ + 1" ์˜
์ด์ „ ๋ฒ”์œ„.

-mmemset-์ „๋žต=์ „๋žต
์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. -mmemcpy-์ „๋žต= ํ†ต์ œํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š”
"__builtin_memset" ํ™•์žฅ.

-momit-๋ฆฌํ”„ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ
๋ฆฌํ”„ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋ ˆ์ง€์Šคํ„ฐ์— ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์œ ์ง€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ํ”ผํ•œ๋‹ค
ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅ, ์„ค์ • ๋ฐ ๋ณต์›ํ•˜๊ณ  ์ถ”๊ฐ€ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ช…๋ น
๋ฆฌํ”„ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜ -fomit-๋ฆฌํ”„-ํ”„๋ ˆ์ž„-ํฌ์ธํ„ฐ ํ”„๋ ˆ์ž„์„ ์ œ๊ฑฐ
๋””๋ฒ„๊น…์„ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฆฌํ”„ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์ž…๋‹ˆ๋‹ค.

-mtls-์ง์ ‘-์„ธ๊ทธ-refs
-mno-tls-direct-seg-refs
TLS ์„ธ๊ทธ๋จผํŠธ์˜ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜์—ฌ TLS ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ(32๋น„ํŠธ์˜ ๊ฒฝ์šฐ %gs, 64๋น„ํŠธ์˜ ๊ฒฝ์šฐ %fs) ๋˜๋Š” ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ํฌ์ธํ„ฐ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€
์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์œ ํšจํ•œ์ง€ ์—ฌ๋ถ€๋Š” ์šด์˜ ์ฒด์ œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ „์ฒด TLS ์˜์—ญ์„ ํฌํ•จํ•˜๋„๋ก ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

GNU C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ ์ผœ์ง์ž…๋‹ˆ๋‹ค.

-msse2avx
-mno-sse2avx
์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ VEX ์ ‘๋‘์‚ฌ๋กœ SSE ๋ช…๋ น์–ด๋ฅผ ์ธ์ฝ”๋”ฉํ•ด์•ผ ํ•จ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜
-mavx ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ๊ธฐ๋Šฅ์„ ์ผญ๋‹ˆ๋‹ค.

-์— ํŽœํŠธ๋ฆฌ
-mno-ํŽœํŠธ๋ฆฌ
ํ”„๋กœํŒŒ์ผ๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ(-ํŽ˜์ด์ง€), ํ”„๋กค๋กœ๊ทธ ์•ž์— ํ”„๋กœํŒŒ์ผ๋ง ์นด์šดํ„ฐ ํ˜ธ์ถœ์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.
์ฐธ๊ณ : x86 ์•„ํ‚คํ…์ฒ˜์—์„œ "ms_hook_prologue" ์†์„ฑ์€
์ˆœ๊ฐ„ -์— ํŽœํŠธ๋ฆฌ ๊ณผ -ํŽ˜์ด์ง€.

-mrecord-mcount
-mno-๋ ˆ์ฝ”๋“œ-mcount
ํ”„๋กœํŒŒ์ผ๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ(-ํŽ˜์ด์ง€), ํฌ์ธํ„ฐ๊ฐ€ ํฌํ•จ๋œ __mcount_loc ์„น์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ํ”„๋กœํŒŒ์ผ๋ง ํ˜ธ์ถœ์—. ์ด๊ฒƒ์€ ์ž๋™์œผ๋กœ ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜๊ณ  ํ˜ธ์ถœ์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

-mnop-mcount
-mno-nop-mcount
ํ”„๋กœํŒŒ์ผ๋ง์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ(-ํŽ˜์ด์ง€), ํ”„๋กœํŒŒ์ผ๋ง ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ nops๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‚˜์ค‘์— ๋™์ ์œผ๋กœ ํŒจ์น˜๋˜์–ด์•ผ ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•„๋งˆ๋„
ํ•จ๊ป˜ ์œ ์šฉํ•œ -mrecord-mcount.

-mskip-rax-์„ค์ •
-mno-๊ฑด๋„ˆ๋›ฐ๊ธฐ-rax-์„ค์ •
SSE ํ™•์žฅ์ด ๋น„ํ™œ์„ฑํ™”๋œ x86-64 ์•„ํ‚คํ…์ฒ˜์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ
-๊ฑด๋„ˆ๋›ฐ๊ธฐ-rax-์„ค์ • ๋ณ€์ˆ˜๊ฐ€ ์—†์„ ๋•Œ RAX ๋ ˆ์ง€์Šคํ„ฐ ์„ค์ •์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฒกํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ์— ์ „๋‹ฌ๋œ ์ธ์ˆ˜.

๊ฒฝ๊ณ : RAX ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฒกํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์—
์Šคํƒ ๋ณ€์ˆ˜ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์ด ์˜ต์…˜์˜ ์˜ํ–ฅ์€ ํ˜ธ์ถœ ์ˆ˜์‹ ์ž๊ฐ€
์Šคํƒ ๊ณต๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ํ–‰๋™์„ ํ•˜๊ฑฐ๋‚˜ ์ž„์˜์˜ ์œ„์น˜๋กœ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค. GCC 4.4 ์ด์ƒ
RAX ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์— ๊ด€๊ณ„์—†์ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

-m8bit-idiv
-mno-8bit-idiv
Intel Atom๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ํ”„๋กœ์„ธ์„œ์—์„œ๋Š” 8๋น„ํŠธ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๊ฐ€ ๋‹ค์Œ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค.
32๋น„ํŠธ/64๋น„ํŠธ ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ. ์ด ์˜ต์…˜์€ ๋Ÿฐํƒ€์ž„ ๊ฒ€์‚ฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‘˜ ๋‹ค
ํ”ผ์ œ์ˆ˜์™€ ์ œ์ˆ˜๊ฐ€ 0์—์„œ 255 ์‚ฌ์ด์˜ ๋ฒ”์œ„์— ์žˆ๊ณ  8๋น„ํŠธ ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
32๋น„ํŠธ/64๋น„ํŠธ ์ •์ˆ˜ ๋‚˜๋ˆ„๊ธฐ ๋Œ€์‹  ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-mavx256-๋ถ„ํ• -์ •๋ ฌ๋˜์ง€ ์•Š์€-๋กœ๋“œ
-mavx256-๋ถ„ํ• -์ •๋ ฌ๋˜์ง€ ์•Š์€-์ €์žฅ
32๋ฐ”์ดํŠธ AVX ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋กœ๋“œ ๋ฐ ์ €์žฅ์„ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.

-mstack-๋ณดํ˜ธ์ž-๊ฐ€๋“œ=๊ฐ€๋“œ
์—์„œ canary๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํƒ ๋ณดํ˜ธ ์ฝ”๋“œ ์ƒ์„ฑ ๊ฐ€๋“œ. ์ง€์›๋˜๋Š” ์œ„์น˜๋Š” ๊ธ€๋กœ๋ฒŒ
๊ธ€๋กœ๋ฒŒ ์นด๋‚˜๋ฆฌ์•„ ๋˜๋Š” TLS TLS ๋ธ”๋ก์˜ ์Šค๋ ˆ๋“œ๋ณ„ ์นด๋‚˜๋ฆฌ์•„์šฉ(๊ธฐ๋ณธ๊ฐ’). ์ด๊ฒƒ
์˜ต์…˜์€ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. -fstack ๋ณดํ˜ธ๊ธฐ or -fstack-ํ”„๋กœํ…ํ„ฐ-all ์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

Bowman์˜ -m ์Šค์œ„์น˜๋Š” 86๋น„ํŠธ์˜ x64-64 ํ”„๋กœ์„ธ์„œ์—์„œ ์œ„์˜ ํ•ญ๋ชฉ์— ์ถ”๊ฐ€๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ.

-m32
-m64
-mx32
-m16
16๋น„ํŠธ, 32๋น„ํŠธ ๋˜๋Š” 64๋น„ํŠธ ํ™˜๊ฒฝ์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. NS -m32 ์˜ต์…˜ ์„ธํŠธ "int",
"long", ํฌ์ธํ„ฐ ์œ ํ˜•์€ 32๋น„ํŠธ์ด๋ฉฐ ๋ชจ๋“  i386 ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ใ€€ -m64 ์˜ต์…˜์€ "int"๋ฅผ 32๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๊ณ  "long"์„ 64๋น„ํŠธ๋กœ ํฌ์ธํ„ฐ ์œ ํ˜•์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
x86-64 ์•„ํ‚คํ…์ฒ˜์šฉ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์œˆ์—๊ฒŒ๋งŒ -m64 ์˜ต์…˜๋„
๋„๋‹ค -fno-pic ๊ณผ -mdynamic-no-pic ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ใ€€ -mx32 ์˜ต์…˜์€ "int", "long" ๋ฐ ํฌ์ธํ„ฐ ์œ ํ˜•์„ 32๋น„ํŠธ๋กœ ์„ค์ •ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
x86-64 ์•„ํ‚คํ…์ฒ˜์šฉ.

ใ€€ -m16 ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -m32, ".code16gcc"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ 
๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ์–ด์…ˆ๋ธ”๋ฆฌ ์ถœ๋ ฅ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์–ด์…ˆ๋ธ”๋ฆฌ ์ง€์‹œ๋ฌธ
16๋น„ํŠธ ๋ชจ๋“œ์—์„œ.

-mno-๋ ˆ๋“œ-์กด
x86-64 ์ฝ”๋“œ์— ๋Œ€ํ•ด ์†Œ์œ„ "๋ ˆ๋“œ์กด"์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ ˆ๋“œ์กด์€
x86-64 ABI; ์Šคํƒ ํฌ์ธํ„ฐ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹๋ฒ—์–ด๋‚œ 128๋ฐ”์ดํŠธ ์˜์—ญ์ž…๋‹ˆ๋‹ค.
์‹ ํ˜ธ ๋˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ์— ์˜ํ•ด ์ˆ˜์ •๋˜๋ฏ€๋กœ ์ž„์‹œ ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์Šคํƒ ํฌ์ธํ„ฐ๋ฅผ ์กฐ์ •ํ•˜์ง€ ์•Š๊ณ  ๊นƒ๋ฐœ -mno-๋ ˆ๋“œ-์กด ์ด ๋นจ๊ฐ„์ƒ‰ ์˜์—ญ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mcmodel=์ž‘์€
์ž‘์€ ์ฝ”๋“œ ๋ชจ๋ธ์„ ์œ„ํ•œ ์ฝ”๋“œ ์ƒ์„ฑ: ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•ด๋‹น ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ ์œ„์น˜์— ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์†Œ ๊ณต๊ฐ„์˜ ํ•˜์œ„ 2GB. ํฌ์ธํ„ฐ๋Š” 64๋น„ํŠธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์ˆ˜
์ •์ ์œผ๋กœ ๋˜๋Š” ๋™์ ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ ์ฝ”๋“œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

-mcmodel=์ปค๋„
์ปค๋„ ์ฝ”๋“œ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์€ ์Œ์˜ 2GB์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
์ฃผ์†Œ ๊ณต๊ฐ„. ์ด ๋ชจ๋ธ์€ Linux ์ปค๋„ ์ฝ”๋“œ์— ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-mcmodel=์ค‘๊ฐ„
์ค‘ํ˜• ๋ชจ๋ธ์šฉ ์ฝ”๋“œ ์ƒ์„ฑ: ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜์œ„ 2GB์— ๋งํฌ๋ฉ๋‹ˆ๋‹ค.
์ฃผ์†Œ ๊ณต๊ฐ„. ์ž‘์€ ๊ธฐํ˜ธ๋„ ๊ฑฐ๊ธฐ์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๋ณด๋‹ค ํฐ ํฌ๊ธฐ์˜ ๊ธฐํ˜ธ
-mlarge-๋ฐ์ดํ„ฐ-์ž„๊ณ„๊ฐ’ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋˜๋Š” BSS ์„น์…˜์— ๋ฐฐ์น˜๋˜๊ณ  ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2GB ์ด์ƒ. ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ ์œผ๋กœ ๋˜๋Š” ๋™์ ์œผ๋กœ ๋งํฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mcmodel=๋Œ€ํ˜•
๋Œ€ํ˜• ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ์ฃผ์†Œ์— ๋Œ€ํ•ด ๊ฐ€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์„น์…˜์˜ ํฌ๊ธฐ.

-maddress ๋ชจ๋“œ=๊ธด
๊ธด ์ฃผ์†Œ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 64๋น„ํŠธ ๋ฐ x32์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ. 64๋น„ํŠธ ํ™˜๊ฒฝ์˜ ๊ธฐ๋ณธ ์ฃผ์†Œ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.

-maddress-mode=์งง์Œ
์งง์€ ์ฃผ์†Œ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 32๋น„ํŠธ ๋ฐ x32์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
ํ™˜๊ฒฝ. 32๋น„ํŠธ ๋ฐ x32 ํ™˜๊ฒฝ์˜ ๊ธฐ๋ณธ ์ฃผ์†Œ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.

x86 Windows ์˜ต์…˜

๋‹ค์Œ ์ถ”๊ฐ€ ์˜ต์…˜์€ Microsoft Windows ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mconsole
์ด ์˜ต์…˜์€ ์ฝ˜์†” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒ์„ฑ๋˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ฝ˜์†” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ PE ํ—ค๋” ํ•˜์œ„ ์‹œ์Šคํ…œ ์œ ํ˜•์„ ์„ค์ •ํ•˜๋Š” ๋ง์ปค.
์ด ์˜ต์…˜์€ Cygwin ๋ฐ MinGW ๋Œ€์ƒ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ทธ ๋ชฉํ‘œ.

-mdll
์ด ์˜ต์…˜์€ Cygwin ๋ฐ MinGW ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DLL---a
๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ํ•„์š”ํ•œ ํ•ญ๋ชฉ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋Ÿฐํƒ€์ž„ ์‹œ์ž‘ ๊ฐœ์ฒด ๋ฐ ์ง„์ž…์ .

-mnop-์žฌ๋ฏธ-dllimport
์ด ์˜ต์…˜์€ Cygwin ๋ฐ MinGW ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
"dllimport" ์†์„ฑ์€ ๋ฌด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--mthread.
์ด ์˜ต์…˜์€ MinGW ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MinGW ํŠน์ • ์Šค๋ ˆ๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ง€์›์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

-๋ฎค๋‹ˆ์ฝ”๋“œ
์ด ์˜ต์…˜์€ MinGW-w64 ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "UNICODE" ์ „์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋งคํฌ๋กœ๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜๊ณ  ์œ ๋‹ˆ์ฝ”๋“œ ์ง€์› ๋Ÿฐํƒ€์ž„ ์‹œ์ž‘ ์ฝ”๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

-mwin32
์ด ์˜ต์…˜์€ Cygwin ๋ฐ MinGW ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ „ํ˜•์ ์ธ
Microsoft Windows ์‚ฌ์ „ ์ •์˜ ๋งคํฌ๋กœ๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ์—์„œ ์„ค์ •ํ•ด์•ผ ํ•˜์ง€๋งŒ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/์‹œ์ž‘ ์ฝ”๋“œ ์„ ํƒ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

-mwindows
์ด ์˜ต์…˜์€ Cygwin ๋ฐ MinGW ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GUI๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋ง์ปค์— PE ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜๋„๋ก ์ง€์‹œํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ ์ ˆํ•˜๊ฒŒ ํ•˜์œ„ ์‹œ์Šคํ…œ ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

-fno-set-stack-์‹คํ–‰ ๊ฐ€๋Šฅ
์ด ์˜ต์…˜์€ MinGW ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ค‘์ฒฉ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ์ด ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹คํ–‰ ์ค‘์ธ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
Microsoft Windows์˜ ์ปค๋„ ๋ชจ๋“œ์—์„œ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” User32 API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹คํ–‰ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

-fwritable-์žฌ๋ฐฐ์น˜-rdata
์ด ์˜ต์…˜์€ MinGW ๋ฐ Cygwin ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ๋ฐฐ์น˜๋จ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ฝ๊ธฐ ์ „์šฉ ์„น์…˜์˜ ๋ฐ์ดํ„ฐ๋Š” .data ์„น์…˜์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋…ธ์ธ์—๊ฒŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
์˜์‚ฌ ์žฌ๋ฐฐ์น˜์— ๋Œ€ํ•œ .rdata ์„น์…˜ ์ˆ˜์ •์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋Ÿฐํƒ€์ž„.

-mpe-์ •๋ ฌ-๊ณตํ†ต
์ด ์˜ต์…˜์€ Cygwin ๋ฐ MinGW ๋Œ€์ƒ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ GNU๊ฐ€
COMMON ๋ณ€์ˆ˜์˜ ์˜ฌ๋ฐ”๋ฅธ ์ •๋ ฌ์„ ํ—ˆ์šฉํ•˜๋Š” PE ํŒŒ์ผ ํ˜•์‹์˜ ํ™•์žฅ์ž
์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GCC๊ฐ€ ๋‹ค์Œ์„ ๊ฐ์ง€ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ์ค‘์— ๋ฐœ๊ฒฌ๋œ ๋Œ€์ƒ ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋„ ์ฐธ์กฐ x86 ์˜ต์…˜ ํ‘œ์ค€ ์˜ต์…˜์˜ ๊ฒฝ์šฐ.

Xstormy16 ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ Xstormy16์— ๋Œ€ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-msim
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ ํ•ฉํ•œ ์‹œ์ž‘ ํŒŒ์ผ๊ณผ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

์—‘์Šคํ…์‚ฌ ์˜ต์…˜

๋‹ค์Œ ์˜ต์…˜์€ Xtensa ๋Œ€์ƒ์— ๋Œ€ํ•ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

-mconst16
-mno-const16
์ƒ์ˆ˜ ๊ฐ’์„ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ "CONST16" ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. NS
"CONST16" ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ Tensilica์˜ ํ‘œ์ค€ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์–ธ์ œ
ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ "CONST16" ๋ช…๋ น์–ด๋Š” ํ•ญ์ƒ ํ‘œ์ค€ "L32R" ๋Œ€์‹  ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ง€์นจ. "CONST16"์˜ ์‚ฌ์šฉ์€ "L32R"์ด
์ง€์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

-๋จธํ“จ์ฆˆ๋“œ-๋งค๋“œ
-mno-์œตํ•ฉ-๋งค๋“œ
ํ†ตํ•ฉ ๊ณฑํ•˜๊ธฐ/๋”ํ•˜๊ธฐ ๋ฐ ๊ณฑํ•˜๊ธฐ/๋นผ๊ธฐ ๋ช…๋ น์–ด ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™” ๋˜๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋™ ์†Œ์ˆ˜์  ์˜ต์…˜. ๋ถ€๋™ ์†Œ์ˆ˜์  ์˜ต์…˜๋„ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
ํ™œ์„ฑํ™”. ์œตํ•ฉ๋œ ๊ณฑํ•˜๊ธฐ/๋”ํ•˜๊ธฐ ๋ฐ ๊ณฑํ•˜๊ธฐ/๋นผ๊ธฐ ๋ช…๋ น์–ด๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ณฑํ•˜๊ธฐ ๋ฐ ๋”ํ•˜๊ธฐ/๋นผ๊ธฐ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์—„๊ฒฉํ•œ IEEE 754 ์ค€์ˆ˜ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•œ ์ผ๋ถ€ ๊ฒฝ์šฐ์— ๋ฐ”๋žŒ์งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•„์ˆ˜: ์œตํ•ฉ๋œ ๊ณฑํ•˜๊ธฐ ๋”ํ•˜๊ธฐ/๋นผ๊ธฐ ๋ช…๋ น์–ด๋Š” ์ค‘๊ฐ„์„ ๋ฐ˜์˜ฌ๋ฆผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์šฐ๊ธฐ ์— ์˜ํ•ด ์ง€์ •๋œ ๊ฒƒ๋ณด๋‹ค ์ •๋ฐ€๋„ ๋น„ํŠธ
IEEE ํ‘œ์ค€. ์œตํ•ฉ ๊ณฑํ•˜๊ธฐ ๋”ํ•˜๊ธฐ/๋นผ๊ธฐ ๋ช…๋ น์–ด๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด
ํ”„๋กœ๊ทธ๋žจ ์ถœ๋ ฅ์€ ๊ณฑํ•˜๊ธฐ์™€ ๊ณฑํ•˜๊ธฐ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ธฐ๋Šฅ์— ๋ฏผ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋”ํ•˜๊ธฐ/๋นผ๊ธฐ ์—ฐ์‚ฐ.

- ์ง๋ ฌํ™” - ํœ˜๋ฐœ์„ฑ
-mno ์ง๋ ฌํ™” ํœ˜๋ฐœ์„ฑ
์ด ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด GCC๋Š” "ํœ˜๋ฐœ์„ฑ" ๋ฉ”๋ชจ๋ฆฌ ์•ž์— "MEMW" ๋ช…๋ น์–ด๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
์ˆœ์ฐจ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ. ๊ธฐ๋ณธ๊ฐ’์€ - ์ง๋ ฌํ™” - ํœ˜๋ฐœ์„ฑ.
-mno ์ง๋ ฌํ™” ํœ˜๋ฐœ์„ฑ "MEMW" ๋ช…๋ น์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

-mforce-no-pic
๋ชจ๋“  ์‚ฌ์šฉ์ž ๋ชจ๋“œ Xtensa ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ ์œ„์น˜์— ์žˆ์–ด์•ผ ํ•˜๋Š” GNU/Linux์™€ ๊ฐ™์€ ๋Œ€์ƒ์˜ ๊ฒฝ์šฐ
PIC(๋…๋ฆฝ ์ฝ”๋“œ)์—์„œ ์ด ์˜ต์…˜์€ ์ปค๋„ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด PIC๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

-mtext-์„น์…˜-๋ฆฌํ„ฐ๋Ÿด
-mno-ํ…์ŠคํŠธ-์„น์…˜-๋ฆฌํ„ฐ๋Ÿด
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ๋ฆฌํ„ฐ๋Ÿด ํ’€์˜ ์ฒ˜๋ฆฌ๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
-mno-ํ…์ŠคํŠธ-์„น์…˜-๋ฆฌํ„ฐ๋Ÿด, ์ถœ๋ ฅ์˜ ๋ณ„๋„ ์„น์…˜์— ๋ฆฌํ„ฐ๋Ÿด์„ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ. ์ด๋ฅผ ํ†ตํ•ด ๋ฆฌํ„ฐ๋Ÿด ํ’€์„ ๋ฐ์ดํ„ฐ RAM/ROM์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ
์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ๊ฐœ์ฒด ํŒŒ์ผ์—์„œ ๋ฆฌํ„ฐ๋Ÿด ํ’€์„ ๊ฒฐํ•ฉํ•˜๋Š” ๋ง์ปค
๋ฆฌํ„ฐ๋Ÿด ๋ฐ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์™€ ํ•จ๊ป˜ -mtext-์„น์…˜-๋ฆฌํ„ฐ๋Ÿด, ๋ฆฌํ„ฐ๋Ÿด์€
ํ…์ŠคํŠธ ์„น์…˜์— ์‚ฐ์žฌ๋˜์–ด ๊ฐ€๋Šฅํ•œ ํ•œ ํ…์ŠคํŠธ ์„น์…˜์— ๊ฐ€๊น๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ์กฐ. ์ด๊ฒƒ์€ ํฐ ์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์— ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-mtarget-์ •๋ ฌ
-mno-ํƒ€๊ฒŸ-์ •๋ ฌ
์ด ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด GCC๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ •๋ ฌํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ถ€ ์ฝ”๋“œ ๋ฐ€๋„๋ฅผ ํฌ์ƒ์‹œํ‚ค๋ฉด์„œ ๋ถ„๊ธฐ ํŒจ๋„ํ‹ฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ช…๋ น. NS
์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ๋ถ„๊ธฐ ํƒ€๊ฒŸ์„ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ€๋„ ๋ช…๋ น์„ ํ™•์žฅํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ 
ํ˜ธ์ถœ ์ง€์‹œ์— ๋”ฐ๋ฅธ ์ง€์‹œ. ์„ ํ–‰ ์•ˆ์ „์žฅ์น˜๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
๋ชฉํ‘œ๋ฅผ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ€๋„ ๋ช…๋ น, ํ™•์žฅ์€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
-mtarget-์ •๋ ฌ. ์ด ์˜ต์…˜์€ ์ž๋™ ์ •๋ ฌ ์ฒ˜๋ฆฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋Ÿฌ๊ฐ€ ํ•ญ์ƒ ์ •๋ ฌํ•˜๋Š” "LOOP"์™€ ๊ฐ™์€ ๋ช…๋ น์–ด
๋ฐ€๋„ ๋ช…๋ น์–ด ๋˜๋Š” NOP ๋ช…๋ น์–ด ์‚ฝ์ž….

-๊ธด ํ†ตํ™”
-mno-longcalls
์ด ์˜ต์…˜์ด ํ™œ์„ฑํ™”๋˜๋ฉด GCC๋Š” ์ง์ ‘ ํ˜ธ์ถœ์„ ๋‹ค์Œ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋„๋ก ์–ด์…ˆ๋ธ”๋Ÿฌ์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์ง์ ‘ ํ˜ธ์ถœ์˜ ๋Œ€์ƒ์ด
ํ˜ธ์ถœ ๋ช…๋ น์ด ํ—ˆ์šฉํ•˜๋Š” ๋ฒ”์œ„. ์ด ๋ฒˆ์—ญ์€ ์ผ๋ฐ˜์ ์œผ๋กœ
๋‹ค๋ฅธ ์†Œ์Šค ํŒŒ์ผ์˜ ๊ธฐ๋Šฅ. ํŠนํžˆ, ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ์ง์ ‘
"CALL" ๋ช…๋ น์–ด๋ฅผ "L32R"๋กœ ์ž…๋ ฅํ•œ ๋‹ค์Œ "CALLX" ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€
-mno-longcalls. ์ด ์˜ต์…˜์€ ํ˜ธ์ถœ ๋Œ€์ƒ์ด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ž ์žฌ์ ์œผ๋กœ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์–ด์…ˆ๋ธ”๋Ÿฌ์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ, ๊ทธ๋ž˜์„œ GCC์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋Š” ์—ฌ์ „ํžˆ ์ง์ ‘ ํ˜ธ์ถœ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค
์ง€์นจ --- ์‹ค์ œ ์ง€์นจ์„ ๋ณด๋ ค๋ฉด ๋””์Šค์–ด์…ˆ๋ธ”๋œ ๊ฐœ์ฒด ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ํŒŒ์ผ ๊ฐ„ ํ˜ธ์ถœ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ํŒŒ์ผ ๊ฐ„ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ๊ฐ„์ ‘ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ •๋ง ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒƒ๋“ค.

z ์‹œ๋ฆฌ์ฆˆ ์˜ต์…˜

์ด๋“ค์€ ์•„๋ž˜์— ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค

์˜ต์…˜ for ์•”ํ˜ธ ์„ธ๋Œ€ ํ˜‘์•ฝ
์ด๋Ÿฌํ•œ ๊ธฐ๊ณ„ ๋…๋ฆฝ์ ์ธ ์˜ต์…˜์€ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ทœ์น™์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
์„ธ๋Œ€.

๊ทธ๋“ค ๋Œ€๋ถ€๋ถ„์€ ๊ธ์ •์ ์ธ ํ˜•ํƒœ์™€ ๋ถ€์ •์ ์ธ ํ˜•ํƒœ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ ๋ถ€์ •์ ์ธ ํ˜•ํƒœ - ํ‘ธํ‘ธ is
-fno-foo. ์•„๋ž˜ ํ‘œ์—๋Š” ์–‘์‹ ์ค‘ ํ•˜๋‚˜๋งŒ ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. --- ์–‘์‹์ด ์•„๋‹Œ ๊ฒƒ์€
๊ธฐ๋ณธ. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋‹ค๋ฅธ ํ˜•์‹์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ - ๋˜๋Š” ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

-fbounds-์ฒดํฌ
์ด๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋ŸฐํŠธ ์—”๋“œ์˜ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๊ฐ€ ๋‹ค์Œ ์ž‘์—…์— ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์•ก์„ธ์Šค ๋ฐฐ์—ด์ด ์„ ์–ธ๋œ ๋ฒ”์œ„ ๋‚ด์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ˜„์žฌ ์— ์˜ํ•ด์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ true ๋ฐ false์ธ Java ๋ฐ Fortran ํ”„๋ŸฐํŠธ ์—”๋“œ
๊ฐ๊ฐ.

-fstack-์žฌ์‚ฌ์šฉ=์žฌ์‚ฌ์šฉ ์ˆ˜์ค€
์ด ์˜ต์…˜์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ์–ธํ•œ ๋กœ์ปฌ/์ž๋™ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์Šคํƒ ๊ณต๊ฐ„ ์žฌ์‚ฌ์šฉ์„ ์ œ์–ดํ•˜๊ณ 
์ปดํŒŒ์ผ๋Ÿฌ ์ƒ์„ฑ ์ž„์‹œ. ์žฌ์‚ฌ์šฉ ์ˆ˜์ค€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋ชจ๋“ , ๋ช…๋ช…๋œ_vars๋ฐ ์—†์Œ. ๋ชจ๋“ 
๋ชจ๋“  ์ง€์—ญ ๋ณ€์ˆ˜์™€ ์ž„์‹œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์Šคํƒ ์žฌ์‚ฌ์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ช…๋œ_vars ๊ฐ€๋Šฅ
์ด๋ฆ„์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์ง€์—ญ ๋ณ€์ˆ˜์—๋งŒ ์žฌ์‚ฌ์šฉ ์—†์Œ ์Šคํƒ ์žฌ์‚ฌ์šฉ ๋น„ํ™œ์„ฑํ™”
์™„์ „ํžˆ. ๊ธฐ๋ณธ๊ฐ’์€ ๋ชจ๋“ . ํ”„๋กœ๊ทธ๋žจ์ด ํ™•์žฅ๋  ๋•Œ ์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ˆ˜๋ช… ๋˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
์–ธ์–ด์— ์˜ํ•ด ์ •์˜๋œ ๋์ . ๋ณ€์ˆ˜์˜ ์ˆ˜๋ช…์ด ๋๋‚˜๋ฉด
๋ณ€์ˆ˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์œผ๋ฉด ์ตœ์ ํ™” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์Šคํƒ์„ ์ž์œ ๋กญ๊ฒŒ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ผ์ด๋ธŒ ๋ฒ”์œ„๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์ž„์‹œ ๋˜๋Š” ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ๊ณต๊ฐ„
๊ทธ๊ฒƒ๊ณผ ๊ฒน์นฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์ˆ˜๋ช…์„ ์—ฐ์žฅํ•˜๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋Š”
์Šคํƒ ์žฌ์‚ฌ์šฉ ์ตœ์ ํ™”.

์˜ˆ๋ฅผ ๋“ค์–ด,

์ •์ˆ˜ *p;
{
์ •์ˆ˜ ๋กœ์ปฌ1;

p = &local1;
์ง€์—ญ1 = 10;
....
}
{
์ •์ˆ˜ ๋กœ์ปฌ2;
์ง€์—ญ2 = 20;
...
}

if (*p == 10) // local1 ์‚ฌ์šฉ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚จ
{

}

๋˜ ๋‹ค๋ฅธ ์˜ˆ :

๊ตฌ์กฐ์ฒด A
{
A(int k) : i(k), j(k) { }
int i;
์ •์ˆ˜ j;
};

*ap;

๋ฌดํšจ foo(const A& ar)
{
ap = &ar;
}

๋ฌดํšจ ๋ฐ”()
{
ํ‘ธ(A(10)); // foo๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด ์ž„์‹œ ๊ฐ์ฒด์˜ ์ˆ˜๋ช…์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

{
A a(20);
....
}
ap->i+= 10; // ap์€ ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๋ฒ”์œ„ temp๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
// a์™€ ํ•จ๊ป˜ ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ap->i์˜ ๊ฐ’์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
}

์ž„์‹œ๋กœ ์ƒ์„ฑ๋œ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ˆ˜๋ช…์€ C++ ํ‘œ์ค€์— ์ž˜ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ž„์‹œ์˜ ์ˆ˜๋ช…์ด ๋๋‚˜๊ณ  ์ž„์‹œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๊ฒฝ์šฐ
์ตœ์ ํ™” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์Šคํƒ ๊ณต๊ฐ„์„ ๋‹ค๋ฅธ ์ž„์‹œ ๋˜๋Š”
๋ผ์ด๋ธŒ ๋ฒ”์œ„์™€ ๊ฒน์น˜์ง€ ์•Š๋Š” ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ ์ง€์—ญ ๋ณ€์ˆ˜. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€
๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๋Š” ์ž„์‹œ ์Šคํƒ์ด ์žˆ๋Š” ์ด์ „ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋™์ž‘์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.
๊ณต๊ฐ„์ด ์žฌ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ๊ณต๊ฒฉ์ ์ธ ์Šคํƒ ์žฌ์‚ฌ์šฉ์œผ๋กœ ์ธํ•ด ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ ์ž„์‹œ ์Šคํƒ ์žฌ์‚ฌ์šฉ ์ตœ์ ํ™”๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-ftrapv.
์ด ์˜ต์…˜์€ ๋ง์…ˆ, ๋บ„์…ˆ,
๊ณฑ์…ˆ ์—ฐ์‚ฐ.

-fwrapv
์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ถ€ํ˜ธ ์žˆ๋Š” ์‚ฐ์ˆ  ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ๊ฐ€์ •ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
๋ง์…ˆ, ๋บ„์…ˆ ๋ฐ ๊ณฑ์…ˆ์€ XNUMX์˜ ๋ณด์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์Œ‰๋‹ˆ๋‹ค.
๋Œ€ํ‘œ. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์ผ๋ถ€ ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์˜ต์…˜์€ Java ์–ธ์–ด์—์„œ ์š”๊ตฌํ•˜๋Š” ๋Œ€๋กœ Java ํ”„๋ŸฐํŠธ ์—”๋“œ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
์‚ฌ์–‘.

-์˜ˆ์™ธ
์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์™ธ๋ฅผ ์ „ํŒŒํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์ผ๋ถ€ ๋Œ€์ƒ, ์ด๋Š” GCC๊ฐ€ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ”„๋ ˆ์ž„ ํ•ด์ œ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€๋Š” ์•Š์ง€๋งŒ ์ƒ๋‹นํ•œ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹คํ–‰. ์ด ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด GCC์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์–ธ์–ด์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์–ธ์–ด์— ๋Œ€ํ•ด์„œ๋Š” ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” C++์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
C๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž‘์„ฑ๋œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ธฐ์™€ ์ œ๋Œ€๋กœ ์ƒํ˜ธ ์šด์šฉํ•ด์•ผ ํ•˜๋Š” C ์ฝ”๋“œ ์ปดํŒŒ์ผ
C++์—์„œ. ์ด์ „ C++๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ๊ทธ๋žจ.

-fnon-call-exception
ํŠธ๋ž˜ํ•‘ ๋ช…๋ น์ด ์˜ˆ์™ธ๋ฅผ throwํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด
์–ด๋””์—๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ”Œ๋žซํผ๋ณ„ ๋Ÿฐํƒ€์ž„ ์ง€์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€,
๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ํ—ˆ์šฉ ํ•จ์ • ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ๋ช…๋ น, ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ ๋˜๋Š”
๋ถ€๋™ ์†Œ์ˆ˜์  ๋ช…๋ น์–ด. ์ž„์˜์˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
"SIGALRM"๊ณผ ๊ฐ™์€ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๊ธฐ.

-fdelete-dead-์˜ˆ์™ธ
์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ฌ๋ฆฌ ๊ธฐ์—ฌํ•˜์ง€ ์•Š๋Š” ๋ช…๋ น์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.
ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Ada ์–ธ์–ด ์‚ฌ์–‘์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๋Œ€๋กœ Ada ํ”„๋ŸฐํŠธ ์—”๋“œ์šฉ์ž…๋‹ˆ๋‹ค. ์ตœ์ ํ™”
์ฃฝ์€ ์˜ˆ์™ธ๊ฐ€ ์ œ๊ฑฐ๋˜๋„๋ก ํ•˜๋Š” ํŒจ์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
์ตœ์ ํ™” ์ˆ˜์ค€.

-ํŽ€์œˆ๋“œ ํ…Œ์ด๋ธ”
์œ ์‚ฌํ•˜๊ฒŒ -์˜ˆ์™ธ, ํ•„์š”ํ•œ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š”
๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค
์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค. ๋Œ€์‹  ์ด ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์–ธ์–ด ํ”„๋กœ์„ธ์„œ๊ฐ€
์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ.

-fasynchronous-unwind-tables
๋Œ€์ƒ ์‹œ์Šคํ…œ์—์„œ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ DWARF 2 ํ˜•์‹์œผ๋กœ ํ•ด์ œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์€
๊ฐ ๋ช…๋ น์–ด ๊ฒฝ๊ณ„์—์„œ ์ •ํ™•ํ•˜๋ฏ€๋กœ ์Šคํƒ ํ•ด์ œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋น„๋™๊ธฐ ์ด๋ฒคํŠธ(์˜ˆ: ๋””๋ฒ„๊ฑฐ ๋˜๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ).

-fno-gnu-๊ณ ์œ 
์ตœ๊ทผ GNU ์–ด์…ˆ๋ธ”๋Ÿฌ์™€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ C++ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ…œํ”Œ๋ฆฟ ์ •์  ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„์˜ ์ •์˜๋ฅผ ํ™•์ธํ•˜๋Š” "STB_GNU_UNIQUE" ๋ฐ”์ธ๋”ฉ
์ธ๋ผ์ธ ํ•จ์ˆ˜์˜ ์ •์  ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ๊ณ ์œ ํ•ฉ๋‹ˆ๋‹ค.
"RTLD_LOCAL"; ์ด๊ฒƒ์€ ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
"RTLD_LOCAL" ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ทธ ์ค‘ ํ•˜๋‚˜์˜ ์ •์˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฏ€๋กœ
์ƒ์ง•์˜ ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ํ•˜๋‚˜์™€ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋กœ ์ธํ•ด
์˜ํ–ฅ์„ ๋ฐ›๋Š” DSO์— ๋Œ€ํ•ด "dlclose"๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์žฌ์ดˆ๊ธฐํ™”์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ
"dlclose" ๋ฐ "dlopen"์„ ํ†ตํ•œ DSO์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -fno-gnu-๊ณ ์œ .

-fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜
๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” "short" "struct" ๋ฐ "union" ๊ฐ’์„ ๋” ๊ธด ๊ฐ’์ฒ˜๋Ÿผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ. ์ด ๊ทœ์น™์€ ๋œ ํšจ์œจ์ ์ด์ง€๋งŒ ๋‹ค์Œ์„ ํ—ˆ์šฉํ•˜๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
GCC๋กœ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ๊ณผ ๋‹ค๋ฅธ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ ๊ฐ„์˜ ์ƒํ˜ธํ˜ธ์ถœ์„ฑ,
ํŠนํžˆ ํœด๋Œ€์šฉ C ์ปดํŒŒ์ผ๋Ÿฌ(pcc).

๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ตฌ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ •ํ™•ํ•œ ๊ทœ์น™์€ ๋Œ€์ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ๋งคํฌ๋กœ.

์งง์€ ๊ตฌ์กฐ์™€ ๊ณต์šฉ์ฒด๋Š” ํฌ๊ธฐ์™€ ์ •๋ ฌ์ด ์ผ๋ถ€ ๊ตฌ์กฐ์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ •์ˆ˜ํ˜•.

๊ฒฝ๊ณ : ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ -fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ ์Šค์œ„์น˜๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋กœ -freg-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ ์Šค์œ„์น˜. ๊ทœ์ •์— ๋งž์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค.

-freg-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜
๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ ˆ์ง€์Šคํ„ฐ์—์„œ "๊ตฌ์กฐ์ฒด" ๋ฐ "๊ฒฐํ•ฉ" ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋” ํšจ์œจ์ ์ด๋‹ค
๋ณด๋‹ค ์ž‘์€ ๊ตฌ์กฐ๋ฌผ์˜ ๊ฒฝ์šฐ -fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜.

๋‘˜ ๋‹ค ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด -fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ ...๋„ ์•„๋‹ˆ๋‹ค -freg-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜, GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ
์–ด๋–ค ๊ทœ์น™์ด ๋Œ€์ƒ์— ๋Œ€ํ•œ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€ ๊ทœ์•ฝ์ด ์—†๋Š” ๊ฒฝ์šฐ,
GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ -fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜, GCC๊ฐ€ ์ฃผ์š” ๋Œ€์ƒ์ธ ๋Œ€์ƒ ์ œ์™ธ
์ปดํŒŒ์ผ๋Ÿฌ. ์ด ๊ฒฝ์šฐ ํ‘œ์ค€์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋” ํšจ์œจ์ ์ธ
๋“ฑ๋ก ๋ฐ˜ํ™˜ ๋Œ€์•ˆ.

๊ฒฝ๊ณ : ๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ -freg-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ ์Šค์œ„์น˜๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๋กœ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋กœ -fpcc-๊ตฌ์กฐ์ฒด-๋ฐ˜ํ™˜ ์Šค์œ„์น˜. ๊ทœ์ •์— ๋งž์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค.

-fshort ์—ด๊ฑฐํ˜•
์„ ์–ธ๋œ ๋ฒ”์œ„์— ํ•„์š”ํ•œ ๋งŒํผ๋งŒ "์—ด๊ฑฐํ˜•" ์œ ํ˜•์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•œ ๊ฐ’. ํŠนํžˆ "enum" ์œ ํ˜•์€ ๊ฐ€์žฅ ์ž‘์€ ์ •์ˆ˜์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
์ถฉ๋ถ„ํ•œ ๊ณต๊ฐ„์ด ์žˆ๋Š” ์œ ํ˜•.

๊ฒฝ๊ณ : ์ „์—, -fshort ์—ด๊ฑฐํ˜• ์Šค์œ„์น˜๋กœ ์ธํ•ด GCC๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ทœ์ •์— ๋งž์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค.

-fshort-๋”๋ธ”
"float"์— ๋Œ€ํ•ด "double"์— ๋™์ผํ•œ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ์ „์—, -fshort-๋”๋ธ” ์Šค์œ„์น˜๋กœ ์ธํ•ด GCC๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ทœ์ •์— ๋งž์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค.

-fshort-wchar
"wchar_t"์˜ ๊ธฐ๋ณธ ์œ ํ˜•์„ "short unsigned int" ๋Œ€์‹  ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์•„๋ž˜์—์„œ ์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์™€์ธ.

๊ฒฝ๊ณ : ์ „์—, -fshort-wchar ์Šค์œ„์น˜๋กœ ์ธํ•ด GCC๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ทœ์ •์— ๋งž์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค.

-fno-๊ณตํ†ต
C ์ฝ”๋“œ์—์„œ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฐฐ์น˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค C ์ปดํŒŒ์ผ๋Ÿฌ
์ „ํ†ต์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์ •์˜๋ฅผ ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๋ฅผ ๊ณตํ†ต ๋ธ”๋ก์— ๋ฐฐ์น˜ํ•˜์—ฌ ์ปดํŒŒ์ผ ๋‹จ์œ„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ–‰๋™์ด๋‹ค
์— ์˜ํ•ด ์ง€์ •๋œ -f๊ณตํ†ต์ด๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๋Œ€์ƒ์—์„œ GCC์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์—,
์ด ๋™์ž‘์€ ISO C์—์„œ ์š”๊ตฌํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ผ๋ถ€ ๋Œ€์ƒ์—์„œ๋Š” ์†๋„ ๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณ€์ˆ˜ ์ฐธ์กฐ์— ๋Œ€ํ•œ ํฌ๊ธฐ ํŽ˜๋„ํ‹ฐ. NS -fno-๊ณตํ†ต ์˜ต์…˜์€ ๋‹ค์Œ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ ์„น์…˜์— ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ์„ ์ผ๋ฐ˜ ๋ธ”๋ก์œผ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ์ปดํŒŒ์ผ์—์„œ ๋™์ผํ•œ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๋ฉด("extern" ์—†์ด) ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.
๋งํฌํ•  ๋•Œ ๋‹ค์ค‘ ์ •์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹ค์Œ์œผ๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
-f๊ณตํ†ต ๋Œ€์‹ ์—. ์ปดํŒŒ์ผ -fno-๊ณตํ†ต ๋Œ€์ƒ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ
์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ ์„ ์–ธ์„ ํ•ญ์ƒ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ.

-fno-ident
"#ident" ์ง€์‹œ๋ฌธ์„ ๋ฌด์‹œํ•˜์‹ญ์‹œ์˜ค.

-finhibit-size-์ง€์‹œ์–ด
".size" ์–ด์…ˆ๋ธ”๋Ÿฌ ์ง€์‹œ๋ฌธ์ด๋‚˜ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
ํ•จ์ˆ˜๊ฐ€ ์ค‘๊ฐ„์— ๋ถ„ํ• ๋˜๊ณ  ๋‘ ๊ฐœ์˜ ์ ˆ๋ฐ˜์ด ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์œ„์น˜์— ๋ฐฐ์น˜๋˜๋Š” ๊ฒฝ์šฐ
๊ธฐ์–ต์— ๋”ฐ๋กœ. ์ด ์˜ต์…˜์€ ์ปดํŒŒ์ผํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. crtstuff.c; ๋‹น์‹ ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
๋‹ค๋ฅธ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-fverbose-asm
์ƒ์„ฑ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ์— ์ถ”๊ฐ€ ์ฃผ์„ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ
์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹ค์ œ๋กœ ์ฝ์„ ํ•„์š”๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ƒ์„ฑ๋œ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ(์•„๋งˆ๋„ ์ปดํŒŒ์ผ๋Ÿฌ ์ž์ฒด๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ).

-fno-verbose-asm, ๊ธฐ๋ณธ๊ฐ’์€ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์ƒ๋žต๋˜๋„๋ก ํ•˜๊ณ 
๋‘ ๊ฐœ์˜ ์–ด์…ˆ๋ธ”๋Ÿฌ ํŒŒ์ผ์„ ๋น„๊ตํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

-frecord-gcc-์Šค์œ„์น˜
์ด ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์ค„์ด
์ƒ์„ฑ ์ค‘์ธ ๊ฐœ์ฒด ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ด ์Šค์œ„์น˜๋Š” ์ผ๋ถ€์—์„œ๋งŒ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ๋ฐ ๋…น์Œ์˜ ์ •ํ™•ํ•œ ํ˜•์‹์€ ๋Œ€์ƒ ๋ฐ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ํ˜•์‹์ž…๋‹ˆ๋‹ค.
์ข…์†์ ์ด์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ASCII ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ์„น์…˜ ํ˜•์‹์„ ์ทจํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ
์Šค์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. -fverbose-asm ์Šค์œ„์น˜, ํ•˜์ง€๋งŒ ๊ทธ ์Šค์œ„์น˜๋Š” ๊ธฐ๋ก๋งŒ
์–ด์…ˆ๋ธ”๋Ÿฌ ์ถœ๋ ฅ ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ์ฃผ์„์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฐœ์ฒด์— ๋„๋‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค -grecord-gcc-์Šค์œ„์น˜ ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜์„ ์ €์žฅํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•
๋ชฉ์  ํŒŒ์ผ.

-fpic
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์œ„์น˜ ๋…๋ฆฝ ์ฝ”๋“œ(PIC)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ๋จธ์‹ ์— ๋Œ€ํ•ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ๋ชจ๋“  ์ƒ์ˆ˜ ์ฃผ์†Œ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.
๊ธ€๋กœ๋ฒŒ ์˜คํ”„์…‹ ํ…Œ์ด๋ธ”(GOT). ๋™์  ๋กœ๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ GOT ํ•ญ๋ชฉ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค(๋™์  ๋กœ๋”๋Š” GCC์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
์ฒด๊ณ„). ๋งํฌ๋œ ์‹คํ–‰ ํŒŒ์ผ์˜ GOT ํฌ๊ธฐ๊ฐ€ ์‹œ์Šคํ…œ๋ณ„ ์ตœ๋Œ€๊ฐ’์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ
ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ง์ปค์—์„œ ๋‹ค์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. -fpic ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ~์—
์ด ๊ฒฝ์šฐ ๋‹ค์Œ์œผ๋กœ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์‹ญ์‹œ์˜ค. -fPIC ๋Œ€์‹ ์—. (์ด ์ตœ๋Œ€๊ฐ’์€ SPARC์˜ ๊ฒฝ์šฐ 8k์ด๊ณ  32k์ž…๋‹ˆ๋‹ค.
m68k ๋ฐ RS/6000์—์„œ. x86์—๋Š” ๊ทธ๋Ÿฌํ•œ ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.)

์œ„์น˜ ๋…๋ฆฝ ์ฝ”๋“œ์—๋Š” ํŠน๋ณ„ํ•œ ์ง€์›์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๋‹ค์Œ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ • ๊ธฐ๊ณ„. x86์˜ ๊ฒฝ์šฐ GCC๋Š” System V์šฉ PIC๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ Sun์šฉ์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
386i. IBM RS/6000์šฉ์œผ๋กœ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ํ•ญ์ƒ ์œ„์น˜ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.

์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋˜๋ฉด ๋งคํฌ๋กœ "__pic__" ๋ฐ "__PIC__"๊ฐ€ 1๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-fPIC
๋Œ€์ƒ ๋จธ์‹ ์— ๋Œ€ํ•ด ์ง€์›๋˜๋Š” ๊ฒฝ์šฐ ์œ„์น˜ ๋…๋ฆฝ์ ์ธ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
๋™์  ์—ฐ๊ฒฐ ๋ฐ ์ „์—ญ ์˜คํ”„์…‹ ํ…Œ์ด๋ธ” ํฌ๊ธฐ ์ œํ•œ ๋ฐฉ์ง€. ์ด๊ฒƒ
์˜ต์…˜์€ m68k, PowerPC ๋ฐ SPARC์—์„œ ์ฐจ์ด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์œ„์น˜ ๋…๋ฆฝ ์ฝ”๋“œ์—๋Š” ํŠน๋ณ„ํ•œ ์ง€์›์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๋‹ค์Œ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ • ๊ธฐ๊ณ„.

์ด ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋˜๋ฉด ๋งคํฌ๋กœ "__pic__" ๋ฐ "__PIC__"๊ฐ€ 2๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

-ํŒŒ์ด
-fPIE
์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. -fpic ๊ณผ -fPIC, ๊ทธ๋Ÿฌ๋‚˜ ์ƒ์„ฑ๋œ ์œ„์น˜ ๋…๋ฆฝ ์ฝ”๋“œ
์‹คํ–‰ ํŒŒ์ผ์—๋งŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. -ํŒŒ์ด GCC
์˜ต์…˜์€ ๋งํฌ ์ค‘์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-ํŒŒ์ด ๊ณผ -fPIE ๋‘˜ ๋‹ค "__pie__" ๋ฐ "__PIE__" ๋งคํฌ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋งคํฌ๋กœ์—๋Š”
๊ฐ’ 1 -ํŒŒ์ด ๋ฐ 2 for -fPIE.

-fno-์ ํ”„ ํ…Œ์ด๋ธ”
๋” ํšจ์œจ์ ์ธ ๊ฒฝ์šฐ์—๋„ switch ๋ฌธ์— ์ ํ”„ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋‹ค๋ฅธ ์ฝ”๋“œ ์ƒ์„ฑ ์ „๋žต๋ณด๋‹ค ์ด ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
-fpic or -fPIC ๋™์  ๋ง์ปค์˜ ์ผ๋ถ€๋ฅผ ํ˜•์„ฑํ•˜๊ณ  ํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด
์ ํ”„ ํ…Œ์ด๋ธ”์˜ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ผ๋ถ€ ๋Œ€์ƒ์—์„œ๋Š” ์ ํ”„ ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
GOT ๋ฐ ์ด ์˜ต์…˜์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-๊ณ ์ •-๋“ฑ๋ก ๋ฒˆํ˜ธ
๋ช…๋ช…๋œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก ๋ฒˆํ˜ธ ๊ณ ์ • ๋ ˆ์ง€์Šคํ„ฐ๋กœ; ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
(์•„๋งˆ๋„ ์Šคํƒ ํฌ์ธํ„ฐ, ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ๋˜๋Š” ๋‹ค๋ฅธ ๊ณ ์ • ์—ญํ• ์„ ์ œ์™ธํ•˜๊ณ ).

๋“ฑ๋ก ๋ฒˆํ˜ธ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ด๋ฆ„์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์ด๋ฆ„์€ ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๊ธฐ๊ณ„ ์„ค๋ช… ๋งคํฌ๋กœ ํŒŒ์ผ์˜ "REGISTER_NAMES" ๋งคํฌ๋กœ์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ”Œ๋ž˜๊ทธ๋Š” XNUMX๋ฐฉํ–ฅ ์„ ํƒ์„ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Œ์ˆ˜ ํ˜•์‹์„ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fcall ์‚ฌ์šฉ-๋“ฑ๋ก ๋ฒˆํ˜ธ
๋ช…๋ช…๋œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก ๋ฒˆํ˜ธ ๊ธฐ๋Šฅ์— ์˜ํ•ด ์ฐจ๋‹จ๋˜๋Š” ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ
์ „ํ™”. ๊ทธ๊ฒƒ์€ ์ž„์‹œ ๋˜๋Š” ๋ณ€์ˆ˜์— ๊ฑธ์ณ ์‚ด์ง€ ์•Š๋Š” ๋ณ€์ˆ˜์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „ํ™”. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์ปดํŒŒ์ผ๋œ ํ•จ์ˆ˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅ ๋ฐ ๋ณต์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋“ฑ๋ก ๋ฒˆํ˜ธ.

ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ๋˜๋Š” ์Šคํƒ ํฌ์ธํ„ฐ์™€ ํ•จ๊ป˜ ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์˜ ์‚ฌ์šฉ
๊ธฐ๊ณ„ ์‹คํ–‰์—์„œ ๊ณ ์ •๋œ ํผ๋ฒ ์ด์‹œ๋ธŒ ์—ญํ• ์ด ์žˆ๋Š” ๋‹ค๋ฅธ ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ
๋ชจ๋ธ์€ ๋น„์ฐธํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ์Šต๋‹ˆ๋‹ค.

์ด ํ”Œ๋ž˜๊ทธ๋Š” XNUMX๋ฐฉํ–ฅ ์„ ํƒ์„ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Œ์ˆ˜ ํ˜•์‹์„ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fcall ์ €์žฅ-๋“ฑ๋ก ๋ฒˆํ˜ธ
๋ช…๋ช…๋œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก ๋ฒˆํ˜ธ ํ•จ์ˆ˜์— ์˜ํ•ด ์ €์žฅ๋œ ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ. ๊ทธ๊ฒƒ์€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
ํ˜ธ์ถœ์— ๊ฑธ์ณ ์žˆ๋Š” ์ž„์‹œ ๋˜๋Š” ๋ณ€์ˆ˜์—๋„ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ
์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก ๋ฒˆํ˜ธ ๊ทธ๋“ค์ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด.

ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ๋˜๋Š” ์Šคํƒ ํฌ์ธํ„ฐ์™€ ํ•จ๊ป˜ ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์˜ ์‚ฌ์šฉ
๊ธฐ๊ณ„ ์‹คํ–‰์—์„œ ๊ณ ์ •๋œ ํผ๋ฒ ์ด์‹œ๋ธŒ ์—ญํ• ์ด ์žˆ๋Š” ๋‹ค๋ฅธ ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ
๋ชจ๋ธ์€ ๋น„์ฐธํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ์Šต๋‹ˆ๋‹ค.

๋ ˆ์ง€์Šคํ„ฐ์— ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์žฌ๋‚œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
ํ•จ์ˆ˜ ๊ฐ’์ด ๋ฐ˜ํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ”Œ๋ž˜๊ทธ๋Š” XNUMX๋ฐฉํ–ฅ ์„ ํƒ์„ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Œ์ˆ˜ ํ˜•์‹์„ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fpack-๊ตฌ์กฐ์ฒด[=n]
๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๊ตฌ์กฐ ๋ถ€์žฌ๋ฅผ ๊ตฌ๋ฉ ์—†์ด ํ•จ๊ป˜ ํฌ์žฅํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ
๊ฐ’์ด ์ง€์ •๋จ(XNUMX์˜ ์ž‘์€ ๊ฑฐ๋“ญ์ œ๊ณฑ์ด์–ด์•ผ ํ•จ), ํŒฉ ๊ตฌ์กฐ ๋ฉค๋ฒ„
์ด ๊ฐ’์— ๋”ฐ๋ผ ์ตœ๋Œ€ ์ •๋ ฌ์„ ๋‚˜ํƒ€๋‚ด๋Š”(์ฆ‰,
์ด๋ณด๋‹ค ํฐ ๊ธฐ๋ณธ ์ •๋ ฌ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ž ์žฌ์ ์œผ๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ ํ”ผํŒ… ์œ„์น˜.

๊ฒฝ๊ณ : ์ „์—, -fpack-๊ตฌ์กฐ์ฒด ์Šค์œ„์น˜๋กœ ์ธํ•ด GCC๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฝ”๋“œ๋ฅผ
์ฐจ์„ ์ฑ…. ๊ธฐ๋ณธ์ด ์•„๋‹Œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

- ๊ธฐ๊ตฌ ๊ธฐ๋Šฅ
ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ง„์ž… ๋ฐ ์ข…๋ฃŒ๋ฅผ ์œ„ํ•œ ๊ณ„์ธก ํ˜ธ์ถœ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ์งํ›„
ํ•ญ๋ชฉ ๋ฐ ํ•จ์ˆ˜ ์ข…๋ฃŒ ์ง์ „์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœํŒŒ์ผ๋ง ํ•จ์ˆ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ ํ•จ์ˆ˜ ๋ฐ ํ˜ธ์ถœ ์‚ฌ์ดํŠธ์˜ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. (์ผ๋ถ€ ํ”Œ๋žซํผ์—์„œ๋Š”
"__builtin_return_address"๋Š” ํ˜„์žฌ ๊ธฐ๋Šฅ ์ด์ƒ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ˜ธ์ถœ ์‚ฌ์ดํŠธ
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ”„๋กœํŒŒ์ผ๋ง ๊ธฐ๋Šฅ์— ์ •๋ณด๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋ฌดํšจ __cyg_profile_func_enter (๋ฌดํšจ *this_fn,
๋ฌดํšจ *call_site);
๋ฌดํšจ __cyg_profile_func_exit (๋ฌดํšจ *this_fn,
๋ฌดํšจ *call_site);

์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” ํ˜„์žฌ ํ•จ์ˆ˜์˜ ์‹œ์ž‘ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.
๊ธฐํ˜ธ ํ…Œ์ด๋ธ”์—์„œ ์ •ํ™•ํžˆ ์กฐํšŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณ„์ธก์€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์—์„œ ์ธ๋ผ์ธ์œผ๋กœ ํ™•์žฅ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋„ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
ํ”„๋กœํŒŒ์ผ๋ง ํ˜ธ์ถœ์€ ๊ฐœ๋…์ ์œผ๋กœ ์ธ๋ผ์ธ ํ•จ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜๋Š” ์œ„์น˜์™€
๋‚˜๊ฐ”์–ด. ์ด๋Š” ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์˜ ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์—
ํ•จ์ˆ˜์˜ ๋ชจ๋“  ์‚ฌ์šฉ์€ ์ธ๋ผ์ธ์œผ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ถ”๊ฐ€ ํ™•์žฅ์„ ์˜๋ฏธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ ํฌ๊ธฐ. C ์ฝ”๋“œ์—์„œ "extern inline"์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „์˜
๊ทธ๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์–ด์จŒ๋“  ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฐ ๊ฒฝ์šฐ์ด์ง€๋งŒ,
์šด์ด ์ข‹๊ณ  ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ํ•ญ์ƒ ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.
์ •์  ๋ณต์‚ฌ๋ณธ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.)

ํ•จ์ˆ˜์—๋Š” "no_instrument_function" ์†์„ฑ์ด ๋ถ€์—ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ
๊ณ„์ธก์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœํŒŒ์ผ๋ง์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์œ„์— ๋‚˜์—ด๋œ ๊ธฐ๋Šฅ, ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ธํ„ฐ๋ŸฝํŠธ ๋ฃจํ‹ด ๋ฐ
ํ”„๋กœํŒŒ์ผ๋ง ํ•จ์ˆ˜๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ํ˜ธ์ถœ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(์•„๋งˆ๋„ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€
ํ”„๋กœํŒŒ์ผ๋ง ๋ฃจํ‹ด์€ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

-finstrument-๊ธฐ๋Šฅ-์ œ์™ธ-ํŒŒ์ผ-๋ชฉ๋ก=ํŒŒ์ผ,ํŒŒ์ผ, ...
๊ณ„์ธก์—์„œ ์ œ์™ธ๋˜๋Š” ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(์„ค๋ช… ์ฐธ์กฐ
of - ๊ธฐ๊ตฌ ๊ธฐ๋Šฅ). ํ•จ์ˆ˜ ์ •์˜๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์ด ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ
์ค‘ ํ•˜๋‚˜์™€ ํŒŒ์ผ, ๊ทธ ๊ธฐ๋Šฅ์€ ๊ณ„์ธก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ธฐ๋Š”
๋ถ€๋ถ„ ๋ฌธ์ž์—ด: ๋งŒ์•ฝ ํŒŒ์ผ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์˜ ํ•˜์œ„ ๋ฌธ์ž์—ด์ด๋ฉฐ ๋‹ค์Œ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
์‹œํ•ฉ์ด ๋˜์‹ญ์‹œ์˜ค.

์˜ˆ :

-finstrument-functions-exclude-file-list=/bits/stl,include/sys

๊ฒฝ๋กœ ์ด๋ฆ„์— ๋‹ค์Œ์ด ํฌํ•จ๋œ ํŒŒ์ผ์— ์ •์˜๋œ ๋ชจ๋“  ์ธ๋ผ์ธ ํ•จ์ˆ˜ ์ œ์™ธ /๋น„ํŠธ/stl or
ํฌํ•จ/์‹œ์Šคํ…œ.

์–ด๋–ค ์ด์œ ๋กœ ํŽธ์ง€๋ฅผ ํฌํ•จํ•˜๋ ค๋Š” ๊ฒฝ์šฐ , ์ค‘ ํ•˜๋‚˜์—์„œ SYM์“ฐ๊ธฐ ,. ์˜ˆ๋ฅผ ๋“ค์–ด,
-finstrument-functions-exclude-file-list=',,tmp' (์ฃผ๋ณ€์˜ ์ž‘์€ ๋”ฐ์˜ดํ‘œ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.
์˜ต์…˜).

-finstrument-๊ธฐ๋Šฅ-์ œ์™ธ-๊ธฐ๋Šฅ-๋ชฉ๋ก=SYM,SYM, ...
์ด๊ฒƒ์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. -finstrument-functions-์ œ์™ธ ํŒŒ์ผ ๋ชฉ๋ก, ํ•˜์ง€๋งŒ ์ด ์˜ต์…˜์€
๊ณ„์ธก์—์„œ ์ œ์™ธํ•  ํ•จ์ˆ˜ ์ด๋ฆ„ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๋  ํ•จ์ˆ˜ ์ด๋ฆ„
์ผ์น˜ํ•˜๋Š” ๊ฒƒ์€ "๋ฒกํ„ฐ ใ…‹(์ƒ์ˆ˜ ๋ฒกํ„ฐ &)", ์•„๋‹ˆ๋‹ค
๋‚ด๋ถ€ ๋งน๊ธ€๋ง๋œ ์ด๋ฆ„(์˜ˆ: "_Z4blahRSt6vectorIiSaIiEE"). ๊ฒฝ๊ธฐ๋Š”
๋ถ€๋ถ„ ๋ฌธ์ž์—ด: ๋งŒ์•ฝ SYM ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์˜ ํ•˜์œ„ ๋ฌธ์ž์—ด๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. C99 ๋ฐ C++ ํ™•์žฅ ์‹๋ณ„์ž์˜ ๊ฒฝ์šฐ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
UTF-8์—์„œ๋Š” ๋ฒ”์šฉ ๋ฌธ์ž ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-fstack-์ฒดํฌ
์Šคํƒ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ
๋‹ค์ค‘ ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์Šคํƒ ์ดํ›„ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ๊ฑฐ์˜ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.
์Šคํƒ์ด ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฑฐ์˜ ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐ์ง€๋ฉ๋‹ˆ๋‹ค.

์ด ์Šค์œ„์น˜๋กœ ์ธํ•ด ์‹ค์ œ๋กœ ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์šด์˜
์‹œ์Šคํ…œ ๋˜๋Š” ์–ธ์–ด ๋Ÿฐํƒ€์ž„์ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šค์œ„์น˜๋กœ ์ธํ•ด ์ฝ”๋“œ ์ƒ์„ฑ
์Šคํƒ์ด ํ™•์žฅ๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ถ”๊ฐ€๋กœ ๋ฌธ์ž์—ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ ํ™•์ธํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•
๊ตฌ์‹ ๊ฒ€์‚ฌ๋ฅผ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ๊ตฌ์ฒด์ ์ธ ์ตœ์ƒ์˜ ๊ฒ€์‚ฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ 
๋ฒŒ๊ฑฐ๋ฒ—์€ ๊ฒƒ๊ณผ ๋™๋“ฑํ•˜๋‹ค -fstack-์ฒดํฌ.

๊ตฌ์‹ ๊ฒ€์‚ฌ๋Š” ํŠน์ • ๋Œ€์ƒ ์ง€์›์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ผ๋ฐ˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1. ํฐ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ˆ˜์ •๋œ ํ• ๋‹น ์ „๋žต: ํ•ญ์ƒ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
ํฌ๊ธฐ๊ฐ€ ๊ณ ์ • ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ๋™์ ์œผ๋กœ

2. ํ•จ์ˆ˜์˜ ์ •์  ํ”„๋ ˆ์ž„ ํฌ๊ธฐ์— ๋Œ€ํ•œ ๊ณ ์ • ์ œํ•œ:
ํŠน์ • ๊ธฐ๋Šฅ, ์Šคํƒ ๊ฒ€์‚ฌ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœํ–‰๋ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ.

3. ๋น„ํšจ์œจ์„ฑ: ์ˆ˜์ •๋œ ํ• ๋‹น ์ „๋žต๊ณผ ์ผ๋ฐ˜
๊ตฌํ˜„ํ•˜๋ฉด ์ฝ”๋“œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์‹ ์Šคํƒ ๊ฒ€์‚ฌ๋Š” ๋‹ค์Œ์„ ์œ„ํ•œ ํด๋ฐฑ ๋ฐฉ๋ฒ•์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์ธ ์•„๋‹ˆ๋ผ๋ฉด
๋Œ€์ƒ ์ง€์›์ด ์ปดํŒŒ์ผ๋Ÿฌ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

-fstack ์ œํ•œ ๋ ˆ์ง€์Šคํ„ฐ=๋“ฑ๋ก ๋ฒˆํ˜ธ
-fstack-์ œํ•œ-์‹ฌ๋ณผ=SYM
-fno-์Šคํƒ ์ œํ•œ
์Šคํƒ์ด ํŠน์ • ๊ฐ’ ์ด์ƒ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋„๋ก ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’ ๋˜๋Š” ๊ธฐํ˜ธ์˜ ์ฃผ์†Œ. ๋” ํฐ ์Šคํƒ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
์‹ ํ˜ธ๋Š” ๋Ÿฐํƒ€์ž„์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํƒ€๊ฒŸ์˜ ๊ฒฝ์šฐ ์Šคํƒ๋ณด๋‹ค ๋จผ์ € ์‹ ํ˜ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด์„œ๋ฏ€๋กœ ํŠน๋ณ„ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•˜์ง€ ์•Š๊ณ ๋„ ์‹ ํ˜ธ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฐฉ ์กฐ์น˜.

์˜ˆ๋ฅผ ๋“ค์–ด ์Šคํƒ์ด ์ ˆ๋Œ€ ์ฃผ์†Œ์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ 0 X 80000000 ์•„๋ž˜์ชฝ์œผ๋กœ ์ž๋ผ๋ฉฐ,
๋‹น์‹ ์€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค -fstack-limit-symbol=__stack_limit ๊ณผ
-Wl,--defsym,__stack_limit=0x7ffe0000 128KB์˜ ์Šคํƒ ์ œํ•œ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ 
์ด๊ฒƒ์€ GNU ๋ง์ปค์—์„œ๋งŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-fsplit ์Šคํƒ
์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— ์Šคํƒ์„ ์ž๋™์œผ๋กœ ๋ถ„ํ• ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ
ํ”„๋กœ๊ทธ๋žจ์—๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ์˜ค๋ฒ„ํ”Œ๋กœํ•  ์ˆ˜ ์žˆ๋Š” ๋ถˆ์—ฐ์† ์Šคํƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ ๊ฐ€์žฅ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋” ์ด์ƒ ๊ฐ ์Šค๋ ˆ๋“œ์— ์‚ฌ์šฉํ•  ์ ์ ˆํ•œ ์Šคํƒ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€
ํ˜„์žฌ GNU/Linux๋ฅผ ์‹คํ–‰ํ•˜๋Š” x86 ๋Œ€์ƒ์—๋งŒ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

๋กœ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ -fsplit ์Šคํƒ ์—†์ด ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. -fsplit ์Šคํƒ๊ฑฐ๊ธฐ
ํ›„์ž์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํƒ ๊ณต๊ฐ„์ด ๋งŽ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ์ปดํŒŒ์ผํ•˜๋ฉด
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ์ฝ”๋“œ, -fsplit ์Šคํƒ ์˜ต์…˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๋ง์ปค๋Š”
์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ ์—†์ด ์ปดํŒŒ์ผ๋˜๋„๋ก ์ด๋Ÿฌํ•œ ํ˜ธ์ถœ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. -fsplit ์Šคํƒ ํ•ญ์ƒ ํฐ
์Šคํƒ. ์ด์— ๋Œ€ํ•œ ์ง€์›์€ GNU binutils ๋ฆด๋ฆฌ์Šค์˜ ๊ณจ๋“œ ๋ง์ปค์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
2.21 ๋…„ ์ดํ›„

- ๋ฐ‘์ค„์„ ๊ธ‹๋‹ค
์ด ์˜ต์…˜๊ณผ ํ•ด๋‹น ์˜ต์…˜์€ -fno ์„ ํ–‰ ๋ฐ‘์ค„, ๊ฐ•์ œ๋กœ C ๋ฐฉ์‹์„ ๋ณ€๊ฒฝ
๊ธฐํ˜ธ๋Š” ๊ฐœ์ฒด ํŒŒ์ผ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ์šฉ๋„๋Š” ๋ ˆ๊ฑฐ์‹œ์™€์˜ ์—ฐ๊ฒฐ์„ ๋•๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ.

๊ฒฝ๊ณ : ์ „์—, - ๋ฐ‘์ค„์„ ๊ธ‹๋‹ค ์Šค์œ„์น˜๋Š” GCC๊ฐ€ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์Šค์œ„์น˜ ์—†์ด ์ƒ์„ฑ๋œ ์ฝ”๋“œ์™€ ํ˜ธํ™˜๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ. ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
๊ธฐ๋ณธ์ด ์•„๋‹Œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค. ๋ชจ๋“  ๋Œ€์ƒ์ด ์™„์ „ํ•œ ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
์ด ์Šค์œ„์น˜์˜ ๊ฒฝ์šฐ.

-ftls-๋ชจ๋ธ=๋ชจ๋ธ
์‚ฌ์šฉํ•  ์Šค๋ ˆ๋“œ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋ชจ๋ธ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. NS ๋ชจ๋ธ ์ธ์ˆ˜๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ธ€๋กœ๋ฒŒ ๋‹ค์ด๋‚ด๋ฏน, ๋กœ์ปฌ ๋‹ค์ด๋‚ด๋ฏน, ์ดˆ๊ธฐ ์‹คํ–‰ or ๋กœ์ปฌ ์‹คํ–‰. ์„ ํƒ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ตœ์ ํ™” ๋Œ€์ƒ: ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹ค์Œ์ด ์•„๋‹Œ ๊ธฐํ˜ธ์— ๋Œ€ํ•ด ๋ณด๋‹ค ํšจ์œจ์ ์ธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฒˆ์—ญ ๋‹จ์œ„ ์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ -fpic ๋ช…๋ น์ค„์— ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—†๋Š” ๊ธฐ๋ณธ๊ฐ’ -fpic is ์ดˆ๊ธฐ ์‹คํ–‰; ์™€ -fpic ๊ธฐ๋ณธ๊ฐ’์€ ๊ธ€๋กœ๋ฒŒ ๋‹ค์ด๋‚ด๋ฏน.

-๊ฐ€์‹œ์„ฑ=[๋””ํดํŠธ ๊ฐ’|๋‚ด๋ถ€์˜|์ˆจ๊ฒจ์ง„|๋ณดํ˜ธ]
๊ธฐ๋ณธ ELF ์ด๋ฏธ์ง€ ๊ธฐํ˜ธ ๊ฐ€์‹œ์„ฑ์„ ์ง€์ •๋œ ์˜ต์…˜์œผ๋กœ ์„ค์ • ---๋ชจ๋“  ๊ธฐํ˜ธ๋Š”
์ฝ”๋“œ ๋‚ด์—์„œ ์žฌ์ •์˜๋˜์ง€ ์•Š๋Š” ํ•œ this๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งค์šฐ
๊ณต์œ  ๊ฐœ์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋งํฌ ๋ฐ ๋กœ๋“œ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ•˜๊ณ  ๋” ๋งŽ์€ ๊ฒƒ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ตœ์ ํ™”๋œ ์ฝ”๋“œ, ๊ฑฐ์˜ ์™„๋ฒฝํ•œ API ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๊ธฐํ˜ธ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€์ด๋‹ค
๊ฐ•ํ•˜๊ฒŒ ๋ฐฐํฌํ•˜๋Š” ๋ชจ๋“  ๊ณต์œ  ๊ฐœ์ฒด์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋ช…๋ช…๋ฒ•์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋””ํดํŠธ ๊ฐ’ ํ•ญ์ƒ ๊ณต๊ฐœ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
๊ณต์œ  ๊ฐ์ฒด ์™ธ๋ถ€์—์„œ ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ˜ธ ๊ณผ ๋‚ด๋ถ€์˜ ๊ฝค ์“ธ๋ชจ๊ฐ€ ์—†๋‹ค
์‹ค์ œ ์‚ฌ์šฉ ๋ฐฉ์‹์ด๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์œ ์ผํ•œ ์˜ต์…˜์€ ์ˆจ๊ฒจ์ง„. ๊ธฐ๋ณธ๊ฐ’์ธ ๊ฒฝ์šฐ
-๊ฐ€์‹œ์„ฑ ์ง€์ •๋˜์ง€ ์•Š์Œ์€ ๋””ํดํŠธ ๊ฐ’์ฆ‰, ๋ชจ๋“  ๊ธฐํ˜ธ๋ฅผ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

ELF ๊ธฐํ˜ธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•จ์œผ๋กœ์จ ์ œ๊ณต๋˜๋Š” ์ด์ ์— ๋Œ€ํ•œ ์ข‹์€ ์„ค๋ช…
๊ฐ€์‹œ์„ฑ์€ Ulrich Drepper์˜ "How To Write Shared Libraries"์— ์˜ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
์—์„œ ๋ฐœ๊ฒฌhttp://www.akkadia.org/drepper/>>--๊ทธ๋Ÿฌ๋‚˜ ์šฐ์ˆ˜ํ•œ ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ๊ณต๊ฐœ์ผ ๋•Œ ์ˆจ๊ฒจ์ง„ ํ•ญ๋ชฉ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ˆจ๊น€ ๋ฐ ๊ณต๊ฐœ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Windows์˜ DLL์— ๋Œ€ํ•œ ํ‘œ์ค€์ด๋ฉฐ
๊ณผ -fvisibility=์ˆจ๊น€ ๋ฐ "__attribute__ ((visibility("default")))" ๋Œ€์‹ 
"__declspec(dllexport)" ๋™์ผํ•œ ๊ตฌ๋ฌธ์œผ๋กœ ๊ฑฐ์˜ ๋™์ผํ•œ ์˜๋ฏธ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํฐ ์ด์ ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด ์ฝ”๋“œ์— ๊ฐ€์‹œ์„ฑ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ "#pragma GCC
๊ฐ€์‹œ์„ฑ" ์‚ฌ์šฉ. ์ด๊ฒƒ์€ ์„ค์ •ํ•˜๋ ค๋Š” ์„ ์–ธ์„ ๋ฌถ์Œ์œผ๋กœ์จ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
(์˜ˆ๋ฅผ ๋“ค์–ด) "#pragma GCC ๊ฐ€์‹œ์„ฑ push(hidden)" ๋ฐ "#pragma์— ๋Œ€ํ•œ ๊ฐ€์‹œ์„ฑ
GCC ๊ฐ€์‹œ์„ฑ ํŒ". ์‹ฌ๋ณผ ๊ฐ€์‹œ์„ฑ์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•จ์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค. as ๋ถ€ํ’ˆ of
์ „์—, API ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์•ฝ ๋”ฐ๋ผ์„œ ๋ชจ๋“  ์ƒˆ ์ฝ”๋“œ๋Š” ํ•ญ์ƒ ๊ฐ€์‹œ์„ฑ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ฆ‰, ์ง€์—ญ DSO ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ ์–ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ•ญ์ƒ PLT ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ช…์‹œ์ ์œผ๋กœ ์ˆจ๊น€์œผ๋กœ ํ‘œ์‹œ
์˜ค๋ฒ„ํ—ค๋“œ ---์ด๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๋ฉด ๊ฐ€๋…์„ฑ๊ณผ ์ž์ฒด ๋ฌธ์„œํ™”์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ์˜. ISO C++ ์‚ฌ์–‘ ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด "์ƒˆ๋กœ์šด ์—ฐ์‚ฐ์ž" ๋ฐ
"์—ฐ์‚ฐ์ž ์‚ญ์ œ"๋Š” ํ•ญ์ƒ ๊ธฐ๋ณธ ๊ฐ€์‹œ์„ฑ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์™ธ๋ถ€์˜ ํ—ค๋”, ํŠนํžˆ ์‹œ์Šคํ…œ ํ—ค๋” ๋ฐ
์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ—ค๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปดํŒŒ์ผ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’ ์ด์™ธ์˜ ๊ฐ€์‹œ์„ฑ. ๋ช…์‹œ์ ์œผ๋กœ "#pragma GCC"๋ผ๊ณ  ๋งํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ํ—ค๋”๋ฅผ ํฌํ•จํ•˜๊ธฐ ์ „์— "visibility push(default)"๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

"extern" ์„ ์–ธ์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. -๊ฐ€์‹œ์„ฑ, ๊ทธ๋ž˜์„œ ๋งŽ์€ ์ฝ”๋“œ๊ฐ€
๋กœ ์žฌ์ปดํŒŒ์ผ -fvisibility=์ˆจ๊น€ ์ˆ˜์ • ์—†์ด. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค
๋ช…์‹œ์  ๊ฐ€์‹œ์„ฑ์ด ์—†๋Š” "extern" ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ˜ธ์ถœ์€ PLT๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ
"__attribute((๊ฐ€์‹œ์„ฑ))" ๋ฐ/๋˜๋Š” "#pragma GCC ๊ฐ€์‹œ์„ฑ"์„ ์‚ฌ์šฉํ•˜์—ฌ ์•Œ๋ฆฌ๋Š” ๋ฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.
"extern" ์„ ์–ธ์ด ์ˆจ๊ฒจ์ง„ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ.

์ฐธ๊ณ  -๊ฐ€์‹œ์„ฑ C++ ๋ชจํ˜ธํ•œ ์—ฐ๊ฒฐ ์—”ํ„ฐํ‹ฐ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ธ์Šคํ„ด์Šค, DSO ๊ฐ„์— throw๋˜๋Š” ์˜ˆ์™ธ ํด๋ž˜์Šค๋Š” ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ๊ฐ€์‹œ์„ฑ์œผ๋กœ ์œ ํ˜•_์ •๋ณด ๋…ธ๋“œ๋Š” DSO ๊ฐ„์— ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ธฐ์ˆ , ์ด์  ๋ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐœ์š”๋Š” ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
<http://gcc.gnu.org/wiki/Visibility>.

-fstrict-ํœ˜๋ฐœ์„ฑ ๋น„ํŠธ ํ•„๋“œ
์ด ์˜ต์…˜์€ ํœ˜๋ฐœ์„ฑ ๋น„ํŠธ ํ•„๋“œ(๋˜๋Š” ๋‹ค๋ฅธ ๊ตฌ์กฐ
ํ•„๋“œ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด์จŒ๋“  ์ด๋Ÿฌํ•œ ์œ ํ˜•์„ ์กด์ค‘ํ•˜์ง€๋งŒ) ๋‹จ์ผ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ž์—ฐ ์ •๋ ฌ์— ๋งž์ถฐ ์ •๋ ฌ๋œ ํ•„๋“œ ์œ ํ˜•์˜ ๋„ˆ๋น„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค.
์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘๋œ ์ฃผ๋ณ€ ์žฅ์น˜ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ๋Š” ๋Œ€์ƒ์—๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๊ฒƒ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
16๋น„ํŠธ ํญ์˜ ์•ก์„ธ์Šค; ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ์ฃผ๋ณ€ ๋น„ํŠธ ํ•„๋“œ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GCC๊ฐ€ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋ ค๋ฉด "unsigned short"(์ด ํƒ€๊ฒŸ์—์„œ short๊ฐ€ 16๋น„ํŠธ๋ผ๊ณ  ๊ฐ€์ •)๋กœ
์•„๋งˆ๋„ ๋” ํšจ์œจ์ ์ธ 16๋น„ํŠธ ์•ก์„ธ์Šค ๋Œ€์‹  32๋น„ํŠธ ์•ก์„ธ์Šค.

์ด ์˜ต์…˜์ด ๋น„ํ™œ์„ฑํ™”๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—์„œ
์ด์ „ ์˜ˆ์—์„œ ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ 32๋น„ํŠธ ๋กœ๋“œ ๋ช…๋ น์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋น„ํŠธ ํ•„๋“œ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘ ๋ ˆ์ง€์Šคํ„ฐ์˜ ์–ด๋–ค ๋ถ€๋ถ„๋„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ฐ”์ดํŠธ
์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

"packed" ์†์„ฑ์ด ๊ตฌ์กฐ ํ•„๋“œ์— ์ ์šฉ๋  ๋•Œ์™€ ๊ฐ™์€ ์ผ๋ถ€ ๊ฒฝ์šฐ์—๋Š”
์˜ฌ๋ฐ”๋ฅธ ๋‹จ์ผ ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ๋กœ ํ•„๋“œ์— ์•ก์„ธ์Šคํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋Œ€์ƒ ๋จธ์‹ ์— ๋งž์ถฐ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ GCC๋Š” ๋‹ค์ค‘ ์ƒ์„ฑ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
๋Ÿฐํƒ€์ž„์— ๊ฒฐ๊ณผ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ž˜๋ฆฌ๋Š” ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : C/C++11 ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์˜ ์ œํ•œ์œผ๋กœ ์ธํ•ด ์“ฐ๊ธฐ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋น„ํŠธ ํ•„๋“œ๊ฐ€ ์•„๋‹Œ ๋ฉค๋ฒ„๋ฅผ ํ„ฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
ํ•„๋“œ์˜ ์œ ํ˜•์„ ๋น„ํŠธ ํ•„๋“œ ๋ฉค๋ฒ„๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ํ”„๋กœ์„ธ์„œ.

-fsync-libcalls
์ด ์˜ต์…˜์€ "__sync" ์ œํ’ˆ๊ตฐ์˜ ์˜คํ”„๋ผ์ธ ์ธ์Šคํ„ด์Šค๊ฐ€
ํ•จ์ˆ˜๋Š” C++11 "__atomic" ํ•จ์ˆ˜ ์ œํ’ˆ๊ตฐ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์˜ต์…˜์˜ ์œ ์ผํ•œ ์œ ์šฉํ•œ ํ˜•์‹์ž…๋‹ˆ๋‹ค.
is -fno-sync-libcalls. ์ด ์˜ต์…˜์€ ์ž์œ ์›์ž
๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.

ํ™˜๊ฒฝ


์ด ์„น์…˜์—์„œ๋Š” GCC ์ž‘๋™ ๋ฐฉ์‹์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€
๊ทธ ์ค‘ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ์˜. ์ผ๋ถ€๋Š” ์ปดํŒŒ์ผ ํ™˜๊ฒฝ์˜ ๋‹ค๋ฅธ ์ธก๋ฉด์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ์žฅ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. -B, -I ๊ณผ -L.
์ด๋“ค์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ์œ„์น˜๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
GCC ๊ตฌ์„ฑ์—์„œ ์ง€์ •ํ•œ ๊ฒƒ๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋ž‘
LC_CTYPE
LC_๋ฉ”์‹œ์ง€
LC_ALL
์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” GCC๊ฐ€ ํ˜„์ง€ํ™” ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด GCC๋Š” ๋‹ค์–‘ํ•œ ๊ตญ๊ฐ€ ํ˜‘์•ฝ๊ณผ ํ˜‘๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GCC๋Š” ๋กœ์ผ€์ผ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์นดํ…Œ๊ณ ๋ฆฌ LC_CTYPE ๊ณผ LC_๋ฉ”์‹œ์ง€ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ. ์ด๋Ÿฌํ•œ ๋กœ์ผ€์ผ
๋ฒ”์ฃผ๋Š” ์„ค์น˜์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ฐ’์€
en_GB.UTF-8 UTF-8๋กœ ์ธ์ฝ”๋”ฉ๋œ ์˜๊ตญ ์˜์–ด์˜ ๊ฒฝ์šฐ.

ใ€€ LC_CTYPE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๋ฌธ์ž ๋ถ„๋ฅ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. GCC๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
๋ฌธ์ž์—ด์˜ ๋ฌธ์ž ๊ฒฝ๊ณ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ถ€ ๋ฉ€ํ‹ฐ ๋ฐ”์ดํŠธ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ์˜ดํ‘œ ๋ฐ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ์ธ์ฝ”๋”ฉ์€ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.
๋ฌธ์ž์—ด ๋ ๋˜๋Š” ์ด์Šค์ผ€์ดํ”„.

ใ€€ LC_๋ฉ”์‹œ์ง€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ง„๋‹จ์— ์‚ฌ์šฉํ•  ์–ธ์–ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”์‹œ์ง€.

๊ฒฝ์šฐ LC_ALL ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜๋ฉด ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. LC_CTYPE ๊ณผ
LC_๋ฉ”์‹œ์ง€; ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, LC_CTYPE ๊ณผ LC_๋ฉ”์‹œ์ง€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ž‘
ํ™˜๊ฒฝ ๋ณ€์ˆ˜. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ GCC๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ์กด
C ์˜์–ด ํ–‰๋™.

TMPDIR
If TMPDIR ์„ค์ •๋˜๋ฉด ์ž„์‹œ ํŒŒ์ผ์— ์‚ฌ์šฉํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. GCC ์‚ฌ์šฉ
๋‹ค์Œ์œผ๋กœ ์‚ฌ์šฉ๋  ์ปดํŒŒ์ผ์˜ ํ•œ ๋‹จ๊ณ„์˜ ์ถœ๋ ฅ์„ ๋ณด๊ด€ํ•˜๋Š” ์ž„์‹œ ํŒŒ์ผ
๋‹ค์Œ ๋‹จ๊ณ„๋กœ์˜ ์ž…๋ ฅ: ์˜ˆ๋ฅผ ๋“ค์–ด ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ์ถœ๋ ฅ
์ปดํŒŒ์ผ๋Ÿฌ์— ์ ์ ˆํ•œ ์ž…๋ ฅ.

GCC_COMPARE_DEBUG
ํ™˜๊ฒฝ GCC_COMPARE_DEBUG ํ•ฉ๊ฒฉ๊ณผ ๊ฑฐ์˜ ๊ฐ™๋‹ค -fcompare-๋””๋ฒ„๊ทธ ~๋กœ
์ปดํŒŒ์ผ๋Ÿฌ ๋“œ๋ผ์ด๋ฒ„. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ์˜ต์…˜์˜ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

GCC_EXEC_PREFIX
If GCC_EXEC_PREFIX ๊ฐ€ ์„ค์ •๋˜๋ฉด ์ด๋ฆ„์— ์‚ฌ์šฉํ•  ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์‹คํ–‰๋˜๋Š” ์„œ๋ธŒ ํ”„๋กœ๊ทธ๋žจ. ์ด ์ ‘๋‘์–ด๊ฐ€ ๊ฒฐํ•ฉ๋˜๋ฉด ์Šฌ๋ž˜์‹œ๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์Šฌ๋ž˜์‹œ๋กœ ๋๋‚˜๋Š” ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์ด ์›ํ•˜๋Š”.

If GCC_EXEC_PREFIX ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ GCC๋Š” ์‚ฌ์šฉํ•  ์ ์ ˆํ•œ ์ ‘๋‘์‚ฌ๋ฅผ ํŒŒ์•…ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ๋กœ ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

GCC๊ฐ€ ์ง€์ •๋œ ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด
์„œ๋ธŒ ํ”„๋กœ๊ทธ๋žจ์˜ ์ผ๋ฐ˜์ ์ธ ์œ„์น˜.

๊ธฐ๋ณธ๊ฐ’ GCC_EXEC_PREFIX is ์ ‘๋‘์‚ฌ/lib/gcc/ ์–ด๋””์— ์ ‘๋‘์‚ฌ ์˜ ์ ‘๋‘์–ด์ž…๋‹ˆ๋‹ค
์„ค์น˜๋œ ์ปดํŒŒ์ผ๋Ÿฌ. ๋งŽ์€ ๊ฒฝ์šฐ์— ์ ‘๋‘์‚ฌ ์‹คํ–‰ํ–ˆ์„ ๋•Œ "์ ‘๋‘์‚ฌ"์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ์Šคํฌ๋ฆฝํŠธ.

๋กœ ์ง€์ •๋œ ๊ธฐํƒ€ ์ ‘๋‘์‚ฌ -B ์ด ์ ‘๋‘์‚ฌ๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ ‘๋‘์‚ฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฐ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. crt0.o ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ์ ‘๋‘์‚ฌ๋Š” ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ์„ ๋•Œ ํŠน์ดํ•œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
ํ—ค๋” ํŒŒ์ผ์˜ ๊ฒฝ์šฐ. ์ด๋ฆ„์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์ž‘๋˜๋Š” ๊ฐ ํ‘œ์ค€ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•ด
๊ณผ /usr/๋กœ์ปฌ/lib/gcc (๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ๋Š” GCC_INCLUDE_DIR), GCC ์‹œ๋„
๋Œ€์ฒด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์‹œ์ž‘ ๋ถ€๋ถ„์„ ์ง€์ •๋œ ์ ‘๋‘์‚ฌ๋กœ ๋Œ€์ฒด
์ด๋ฆ„. ๋”ฐ๋ผ์„œ -ํ‘ธ์šฐ/, GCC ๊ฒ€์ƒ‰ ํ‘ธ/๋ฐ” ํ‘œ์ค€์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์ง์ „
์˜ˆ๋ฐฐ ๊ทœ์น™์„œ /usr/local/lib/๋ฐ”. ํ‘œ์ค€ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๊ตฌ์„ฑ๋œ
์ ‘๋‘์‚ฌ ๋‹ค์Œ์˜ ๊ฐ’ ์ ‘๋‘์‚ฌ ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. GCC_EXEC_PREFIX ํ—ค๋”๋ฅผ ์ฐพ์„ ๋•Œ
ํŒŒ์ผ.

์ปดํŒŒ์ผ๋Ÿฌ_๊ฒฝ๋กœ
์˜ ๊ฐ€์น˜ ์ปดํŒŒ์ผ๋Ÿฌ_๊ฒฝ๋กœ ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. PATH.
GCC๋Š” ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ ์ฐพ๊ธฐ GCC_EXEC_PREFIX.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ_๊ฒฝ๋กœ
์˜ ๊ฐ€์น˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ_๊ฒฝ๋กœ ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. PATH.
๊ธฐ๋ณธ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ GCC๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
ํŠน์ˆ˜ ๋ง์ปค ํŒŒ์ผ ๊ฒ€์ƒ‰, ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ GCC_EXEC_PREFIX.
GCC๋ฅผ ์‚ฌ์šฉํ•œ ๋งํฌ๋Š” ์ผ๋ฐ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ๋„ ์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์œ„ํ•œ -l ์˜ต์…˜(๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ์œผ๋กœ ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ๋Š” -L ๋จผ์ € ์˜ค์„ธ์š”).

๋ž‘
์ด ๋ณ€์ˆ˜๋Š” ๋กœ์ผ€์ผ ์ •๋ณด๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ์— ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€
์ด ์ •๋ณด๋Š” ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•  ๋ฌธ์ž ์ง‘ํ•ฉ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋ฆฌํ„ฐ๋Ÿด, ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๋ฐ ์ฃผ์„์€ C ๋ฐ C++์—์„œ ๊ตฌ๋ฌธ ๋ถ„์„๋ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
๋ฉ€ํ‹ฐ๋ฐ”์ดํŠธ ๋ฌธ์ž๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ๋‹ค์Œ ๊ฐ’์— ๋Œ€ํ•ด ๋ž‘ are
์ธ์‹:

์”จ์ง€์Šค
JIS ๋ฌธ์ž๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

์”จ์Šˆ์ฆˆ
SJIS ๋ฌธ์ž๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

C-EUCJP
EUCJP ๋ฌธ์ž๋ฅผ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

If ๋ž‘ ์ •์˜๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” "mblen"์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋ฉ€ํ‹ฐ๋ฐ”์ดํŠธ๋ฅผ ์ธ์‹ํ•˜๊ณ  ๋ฒˆ์—ญํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ๋กœ์ผ€์ผ์— ์ •์˜๋œ "mbtowc" ๋ฐ "mbtowc"
์ž.

์ผ๋ถ€ ์ถ”๊ฐ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ๋™์ž‘์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

cpath
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
๊ฐ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ํŠน์ˆ˜ ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋œ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
์ฒ˜๋Ÿผ PATH, ํ—ค๋” ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ์บ๋ฆญํ„ฐ,
"PATH_SEPARATOR"๋Š” ๋Œ€์ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ GCC ๋นŒ๋“œ ์‹œ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ
Windows ๊ธฐ๋ฐ˜ ๋Œ€์ƒ์€ ์„ธ๋ฏธ์ฝœ๋ก ์ด๋ฉฐ ๊ฑฐ์˜ ๋ชจ๋“  ๋‹ค๋ฅธ ๋Œ€์ƒ์˜ ๊ฒฝ์šฐ
์ฝœ๋ก .

cpath ์ง€์ •๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. -Iํ•˜์ง€๋งŒ,
์ฃผ์–ด์ง„ ๊ฒฝ๋กœ ํ›„์— -I ๋ช…๋ น์ค„์˜ ์˜ต์…˜. ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜
์‚ฌ์ „ ์ฒ˜๋ฆฌ๋˜๋Š” ์–ธ์–ด์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•  ๋•Œ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
ํ‘œ์‹œ๋œ ์–ธ์–ด. ๊ฐ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋กœ ์ง€์ • -์•„์ด์‹œ์Šคํ…œ, ๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์–ด์ง„ ๊ฒฝ๋กœ ํ›„์— -์•„์ด์‹œ์Šคํ…œ ์˜ต์…˜
๋ช…๋ น ํ–‰.

์ด ๋ชจ๋“  ๋ณ€์ˆ˜์—์„œ ๋นˆ ์š”์†Œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ํ˜„์žฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ. ๋นˆ ์š”์†Œ๋Š” ๊ฒฝ๋กœ์˜ ์‹œ์ž‘์ด๋‚˜ ๋์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„์œ„ํ•œ
์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ’์ด cpath ":/special/include"์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
-๋‚˜๋Š”. -๋‚˜/ํŠน๋ณ„/ํฌํ•จ.

DEPENDENCIES_OUTPUT
์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜๋ฉด ํ•ด๋‹น ๊ฐ’์€ Make ๊ธฐ๋ฐ˜์˜ ์ข…์†์„ฑ์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋น„์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ์— ์‹œ์Šคํ…œ ํ—ค๋” ํŒŒ์ผ์€
์ข…์†์„ฑ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์˜ ๊ฐ€์น˜ DEPENDENCIES_OUTPUT ํŒŒ์ผ ์ด๋ฆ„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๊ฒฝ์šฐ Make ๊ทœ์น™
์†Œ์Šค ํŒŒ์ผ ์ด๋ฆ„์—์„œ ๋Œ€์ƒ ์ด๋ฆ„์„ ์ถ”์ธกํ•˜์—ฌ ํ•ด๋‹น ํŒŒ์ผ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ๊ทธ
๊ฐ’์€ ํ˜•์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ๋ชฉํ‘œ, ์ด ๊ฒฝ์šฐ ๊ทœ์น™์ด ํŒŒ์ผ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ
์‚ฌ์šฉ ๋ชฉํ‘œ ๋Œ€์ƒ ์ด๋ฆ„์œผ๋กœ.

์ฆ‰, ์ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์˜ต์…˜์„ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. -MM
๊ณผ -MF, ์„ ํƒ ์‚ฌํ•ญ -์‚ฐ ์Šค์œ„์น˜๋„.

SUNPRO_DEPENDENCIES
์ด ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. DEPENDENCIES_OUTPUT (์œ„ ์ฐธ์กฐ), ๊ทธ ์‹œ์Šคํ…œ์„ ์ œ์™ธํ•˜๊ณ 
ํ—ค๋” ํŒŒ์ผ์€ ๋ฌด์‹œ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ -M ๋ณด๋‹ค๋Š” -MM. ๊ทธ๋Ÿฌ๋‚˜, ๊ทธ
๊ธฐ๋ณธ ์ž…๋ ฅ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์€ ์ƒ๋žต๋ฉ๋‹ˆ๋‹ค.

onworks.net ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜จ๋ผ์ธ์œผ๋กœ mips64el-linux-gnuabi64-g++-5 ์‚ฌ์šฉ


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

  • 1
    Eclipse Tomcat ํ”Œ๋Ÿฌ๊ทธ์ธ
    Eclipse Tomcat ํ”Œ๋Ÿฌ๊ทธ์ธ
    Eclipse Tomcat ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    Tomcat ์„œ๋ธ”๋ฆฟ์˜ ๊ฐ„๋‹จํ•œ ํ†ตํ•ฉ
    ์ž๋ฐ” ๊ฐœ๋ฐœ์šฉ ์ปจํ…Œ์ด๋„ˆ
    ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜. ๋‹น์‹ ์€ ์šฐ๋ฆฌ์™€ ํ•จ๊ป˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
    ํ† ๋ก ...
    Eclipse Tomcat ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‹ค์šด๋กœ๋“œ
  • 2
    WebTorrent ๋ฐ์Šคํฌํ†ฑ
    WebTorrent ๋ฐ์Šคํฌํ†ฑ
    WebTorrent Desktop์€ ์ŠคํŠธ๋ฆฌ๋ฐ์šฉ์ž…๋‹ˆ๋‹ค.
    Mac, Windows ๋˜๋Š” Linux์˜ ํ† ๋ ŒํŠธ. ๊ทธ๊ฒƒ
    BitTorrent ๋ฐ
    WebTorrent ํ”ผ์–ด. ์ด์ œ ์—†๋‹ค
    ๊ธฐ๋‹ค๋ ค์•ผ...
    WebTorrent ๋ฐ์Šคํฌํ†ฑ ๋‹ค์šด๋กœ๋“œ
  • 3
    GenX
    GenX
    GenX๋Š” ์ •์ œํ•˜๊ธฐ ์œ„ํ•œ ๊ณผํ•™ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
    X์„  ๋ฐ˜์‚ฌ์œจ, ์ค‘์„ฑ์ž
    ๋ฐ˜์‚ฌ์œจ ๋ฐ ํ‘œ๋ฉด X-๋ ˆ์ด
    ๋ฏธ๋ถ„์„ ์ด์šฉํ•œ ํšŒ์ ˆ ๋ฐ์ดํ„ฐ
    ์ง„ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜....
    GenX ๋‹ค์šด๋กœ๋“œ
  • 4
    pspp4windows
    pspp4windows
    PSPP๋Š” ํ†ต๊ณ„๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
    ์ƒ˜ํ”Œ๋ง ๋ฐ์ดํ„ฐ ๋ถ„์„. ๊ทธ๊ฒƒ์€ ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค
    ์ „์šฉ ํ”„๋กœ๊ทธ๋žจ ๋Œ€์ฒด
    SPSS. PSPP์—๋Š” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ฐ
    ๊ทธ๋ž˜ํ”ฝ ์šฐ๋ฆฌ...
    pspp4windows ๋‹ค์šด๋กœ๋“œ
  • 5
    Git ํ™•์žฅ
    Git ํ™•์žฅ
    Git Extensions๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• UI ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
    Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ด€๋ฆฌ์šฉ. ๋˜ํ•œ
    Windows ํƒ์ƒ‰๊ธฐ์™€ ํ†ตํ•ฉ ๋ฐ
    Microsoft Visual Studio
    (2015/2017/2019). ๋ชฉ...
    Git ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ
  • 6
    eSpeak : ์Œ์„ฑ ํ•ฉ์„ฑ
    eSpeak : ์Œ์„ฑ ํ•ฉ์„ฑ
    ์˜์–ด์šฉ ํ…์ŠคํŠธ ์Œ์„ฑ ๋ณ€ํ™˜ ์—”์ง„ ๋ฐ
    ๋‹ค๋ฅธ ๋งŽ์€ ์–ธ์–ด. ์ฝคํŒฉํŠธํ•œ ์‚ฌ์ด์ฆˆ
    ๋ช…ํ™•ํ•˜์ง€๋งŒ ์ธ๊ณต์ ์ธ ๋ฐœ์Œ.
    ๋ช…๋ น์ค„ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    ๋งŽ์€ ...
    eSpeak ๋‹ค์šด๋กœ๋“œ: ์Œ์„ฑ ํ•ฉ์„ฑ
  • ๋”ยป

Linux ๋ช…๋ น

Ad