Gcc Optimization Options
GccOptimizationOptionsÀÔ´Ï´Ù.
Option Details ¶gcc´Â ±âº»ÀûÀ¸·Î ¾Æ¹«·± ¿É¼ÇÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é, ¸¸µé¾îÁö´Â Äڵ带 ÃÖÀûÈ(optimization)½ÃÅ°Áö ¾Ê½À´Ï´Ù. ÃÖÀûȸ¦ À§ÇØ, ¿©·¯°¡Áö ¿É¼ÇÀ» Á¦°øÇϴµ¥ (¾Æ·¡ Ç¥ Âü°í), ÀÌµé ¿É¼ÇÀ» ÀÏÀÏÈ÷ ¼±ÅÃÇϱ⠺¸´Ù´Â ÀÌµé ¿É¼ÇÀ» ¼¼Æ®·Î ¹¾î Á¦°øÇÏ´Â '-O', '-O1', '-O2', '-O3' µîÀ» ÀϹÝÀûÀ¸·Î ¾¹´Ï´Ù. (Âü°í·Î '-O0'´Â ÀüÇô ÃÖÀûÈÇÏÁö ¸»¶ó´Â, default ¿É¼ÇÀÔ´Ï´Ù.)
'-O' ¶Ç´Â '-O1'ÀÇ °æ¿ì, ¸¸µé¾îÁö´Â ¿ÀºêÁ§Æ®, ¶Ç´Â ½ÇÇà ÆÄÀÏÀ» °¡´ÉÇÑ ÀÛ°Ô Çϸé¼, ÄÄÆÄÀÏ ½Ã°£ÀÌ ¿À·¡°É¸®Áö ¾Ê´Â ¹üÀ§¿¡¼ ÃÖÀûȸ¦ ¼öÇàÇÕ´Ï´Ù.
'-O2'ÀÇ °æ¿ì, ¸¸µé¾îÁö´Â Äڵ尡 °¡´ÉÇÑ ºü¸£°Ô ¼öÇàµÇµµ·Ï ÇÏÁö¸¸, ÄÚµåÀÇ Å©±â°¡ ³Ê¹« Ä¿ÁöÁö ¾Êµµ·Ï ÇÏ´Â ¹üÀ§¿¡¼ ÃÖÀûȸ¦ ¼öÇàÇÕ´Ï´Ù.
'-Os'ÀÇ °æ¿ì, '-O2'¿¡¼ Á¦°øÇÏ´Â ¸ðµç ÃÖÀûÈ ±â´ÉÀ» ´Ù ¾²Áö¸¸, ÄÚµåÀÇ Å©±â¸¦ Áõ°¡½ÃÅ°´Â ÃÖÀûÈ ±â´ÉÀº »©°í ³ª¼ ÃÖÀûȸ¦ ¼öÇàÇÕ´Ï´Ù.
'-O3'ÀÇ °æ¿ì, ÄÚµåÀÇ Å©±â´Â ÀüÇô ½Å°æ ¾²Áö ¾Ê°í, ¿ÀÁ÷ ºü¸¥ Äڵ带 ¸¸µé¾î ³»±â À§ÇØ ÃÖÀûȸ¦ ¼öÇàÇÕ´Ï´Ù. ±×·¯³ª, ²À »ý°¢ÇØ µÎ¾î¾ß ÇÒ Á¡Àº, '-O3'·Î ¸¸µé¾î³½ Äڵ尡 ¹Ýµå½Ã '-O2'¸¦ ½á¼ ¸¸µé¾î³½ Äڵ庸´Ù ºü¸£´Ù´Â º¸ÀåÀº ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. ¿Ö³ÄÇϸé, º¸Åë CPU°¡ ±â°è¾î¸¦ ¼öÇàÇÒ ¶§, ÀÏÁ¤ÇÑ ºÐ·®¸¸Å ¸ÕÀú CPU ³»ºÎÀÇ cache(ij½Ã)¿¡ ºÒ·¯¿Í¼ ¼öÇàÇϴµ¥, '-O3'¸¦ ½á¼ ¸¸µç ÄÚµå´Â ´ë°³ Å©±â°¡ Ä¿¼, ÀÌ cache¿¡ µé¾î°¥ ¼ö ÀÖ´Â ¸í·ÉÀÇ ¾çÀÌ »ó´ëÀûÀ¸·Î Àû¾îÁö±â ¶§¹®¿¡, ¿ÀÈ÷·Á ´À·ÁÁú °¡´É¼ºµµ ÀÖ½À´Ï´Ù.
'-On' (n=1, 2, 3) ²ÃÀÇ ¿É¼Ç°ú ´õºÒ¾î À§ Ç¥ÀÇ ¿ÞÆí ¿É¼ÇÀ» ¼¯¾î ¾µ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, À§ Ç¥¿¡ µû¸£¸é '-O2'¸¦ ¾µ °æ¿ì, 'inline-function' ÃÖÀûÈ´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼ ´ÙÀ½°ú °°ÀÌ '-O2'¿¡ ÇØ´çÇÏ´Â ¸ðµç ÃÖÀûÈ ±â¹ýµé°ú '-inline-functions'À» ÇÔ²² ¾µ ¼ö ÀÖ½À´Ï´Ù: $ gcc -O2 -finline-funtions hello.c ¹°·Ð, ƯÁ¤ ¿É¼Ç ±â´ÉÀ» »©´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. ¾Æ·¡´Â '-O3'°¡ Á¦°øÇÏ´Â ¸ðµç ÃÖÀûÈ ±â¹ýÀ» Àû¿ëÇÏÁö¸¸ 'inline-functions' ÃÖÀûȸ¸ »©°í ÄÄÆÄÀÏÇÏ´Â °ÍÀ» º¸¿©ÁÝ´Ï´Ù.
$ gcc -O3 -fno-inline-functions hello.c Áï, À§ Ç¥ÀÇ ¿ÞÆí ºÎºÐÀÇ ¿É¼ÇÀ» Àû¿ë½ÃÅ°·Á¸é(on) "-f¿É¼ÇÀ̸§"À» ¾²°í, ²ô·Á¸é(off),
"-fno-¿É¼ÇÀ̸§" ²ÃÀ» ¾¹´Ï´Ù.
¾Æ·¡ PDF´Â °£´ÜÇÑ XML tree¸¦ memory¿¡ buildÇÏ´Â ÇÁ·Î±×·¥À» ¿©·¯ °¡Áö ÃÖÀûÈ ¿É¼ÇÀ» ½á¼ ÄÄÆÄÀÏÇÑ ÈÄ, ½ÇÇà ½Ã°£À» Àç º» °ÍÀÔ´Ï´Ù. References ¶ÀÌ ±ÛÀÇ ´ëºÎºÐÀº Linux JournalÀÇ 2005³â 3¿ùÆÇ¿¡ ³ª¿Â, M. Tim Jones¾¾°¡ ¾´ "Optimization in GCC"¸¦ Åä´ë·Î ¸¸µç °ÍÀÔ´Ï´Ù. ¿ø¹®À» º¸½Ã¸é ´õ ÁÁÀ» °Í °°½À´Ï´Ù.
GCC Info ManualÀ» º¸½Ã¸é ÃÖ½ÅÀÇ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ¶Ç´Â
GCC Online DocumentationÀ» Âü°íÇϱ⠹ٶø´Ï´Ù.
Strength Reduction for Loop-Invariant Types by Phung Hua Nguyen and Jingling Xue
(°¡ÀÔÇϽðí loginÇÏ½Ã¸é º¼ ¼ö ÀÖ½À´Ï´Ù.)
Global Common Subexpression Elimination by John Cocke
|