GCC - The Complete Reference (537669), страница 110
Текст из файла (страница 110)
рке1сва после оптимизации переэагрузок подпрограмм (роз(-ге(оаа ор(ягнзайоп). Добавляет комментарии в выходной ассемблерный код, указывающие длину каждой инструкции и использованные методы оптимизации. Добавляет в выходной ассемблерный код комментарии, представляющие ЙТЫкод, использованный для выработки каждой инструкции ассемблера. См. также буквенный код р в этой таблице.
Выводит дамп в файл вмве. ос. хк1 после этапа генерирования кода в формате Йте См. также буквенный код х в этой таблице. Выводит дамп в файл с именем ввюе. 2т. ввеа после второго прохода Оптимизации планирования инструкций (злобе)(по). Выводит отладочный дами в файл вввю. ОВ. сее после оптимизации исключения глобальных общих подвыражений СВЕ (Сошгпоп ВоЬехргеззюп Ейгп!па(юп).
Часто сразу после СВЕ следует оптимизация длинных переходов ()игпр орбгпнавоп), в таком случае дамп в файл лвюе. Оо. све записывается после него. Выводит дамп в файл с именем ввюе. 1З. евеа после первого прохода оптимизации планирования инструкций (зьеаиипр). Выводит дамп в файл ввюе.12.све2 после второго прохода СВЕ (Сопнпоп ВоЬехргезз)оп Ейгп)павоп) и иногда следующей за ним оптимизации длинных переходов ()оп!р ор(яп(засол).
Выводит дамп в файл с именем вмве. ов.ви11 после всех оптимизаций 88А (8(ат(с 8(пц(е Азз)оп!пел(). Выводит в файл ване.рвее. чсо дами после представления графа управляющего потока (сопьо! иочг) для каждого из прочих файлов дампа, кроме явюе. оо. кс1. эти файлы имеют формат, пригодный для считывания и просмотра с помощью утилиты чса. Выводит в файл с именем лвюе. 2з.
21оиз дами после второго прохода оптимизации управляющего потока (Иочг). Выводит дамп в файл с именем ввюе. ОЗ. еевсср после прохода оптимизации 88А передачи кода, компилируемого по условию, (сопайюпа! соае ргораиаиоп). Выводит дамп в файл с именем лаве. Оо. невасе после прохода оптимизации 88А устранения неиспользуемых участков кода (аеас свае е))пт(павел).
Вырабатывает ЙТ1-код для функции, но дальше его не компилирует. Этот буквенный код часто используется в сочетании с к. Определяет вывод отладочной информации синтаксическим разделителем (рагзег) на стандартное устройство вывода. Выводит дамп в файл с именем ввюе. 24. реерво1е2 пОсле прОхОДа лОКальнОй оптимизации замены инструкций (реерьо(е оригп)ка((оп).
-О рМрЕгйу[=ВМПд3 1ача Эта опция может быть использована в командной строке совместно с опцией --гяазц. Она определяет свойство с именем рзорез.еу и присваивает ему значение аез.зттд. Значение может быть получено в программе с помощью вызова метода Приложение Г. Опции командной строки компилятора 6СС 499 бауа.1апд.еувгета.дегвгореггу() с именем свойства в аргументе. Если не указано значение всгйпд, то значением свойства будет пустая строка.
Другая форма этой опции --бег1пе-жасго. айек1пе Ьгипс 1оддег Если же значение вег1пд не указано, то макрос определяется строкой "1". Например, по опции -ватсоне генерируется следующее макроопределение: Мсеа1пе жьпае 1 Все опции -и обрабатываются раньше любых опций -ц.
Так же, как и все опции -и обрабатываются прежде любых опций -спс1ибе или -сатасгов. — деЬид~7епеЯ~ То же, что опция -д. -тейпе-гпасго тасго[=аЯпд] Тоже, что опция -и. Рге, Зазга -дерепдепс~ея То же, что опция -м. Рге -йппр !аггее То же, что опция -6. -йппрЬаяе Ьаае Поле Ьавв определяет основное имя файлов для вывода дампов отладки, которые вырабатываются по опции -б. Опция может быть записана в форме --бвзарЬаве.
-йпнргпасЬ(пе эта опция выводит название типа предназначаемой машины (гагяег) текущей конфигурации компилятора. Больше никаких действий при этом не выполняется. -йппрьреся Выводит спецификации, использованные при сборке компилятора. Больше никаких действий при этом не выполняется. Выводится большой листинг, включающий все опции и установки (вместе с действующими по умолчанию), которые использовались при компиляции, ассемблировании и компоновке самого компилятора. -Отасго[ йппд] Рге Когда указано значение в ег1 пд, то этим значением определяется макрос с указанным в поле тавсго именем.
Точно так же, как если бы код программы содержал соответствующую директиву макроопределения. Например, опция -рЬгипа=1оддег генерирует следующее макроопределение: 500 часть |ч. Приложения -Ииврчегя1оп Выводит номер версии компилятора. Никаких дальнейших действий не предпринимается. -Е Рге Останавливает процесс компиляции после предобработки исходного кода и вывода ее результатов.
Если не указана опция -о, то вывод направляется на стандартное устройство выхода. В противном случае информация записывается в указанный опцией -о файл. Препроцессор пропускает файлы, не требующие предобработки. Такие файлы определяются по суффиксу их имени (см. таблицу Е!), если не действует переназначение типа файла опцией -х. Эта опция устанавливает переменные окружения агчпс, аыпс мтиоп огчпс РАтсиьечеь Опции -бп, -д1, -дм и -бм прн совместном использовании с опцией -в приобретают особые значения, которые предусмотрены лдя такого случая их использования.
— епсос11п9=пагпе То же, что опция -Свпсоетзпд. 3ача — ех1га-ччагп1пу То же, что -зг. -$ассевв-соп1го! С++ Данная опция действует по умолчанию. При использовании обратной опции -сао-ассввв-сопсго1 компилятор не будет выполнять проверки, связанные с разрешениями доступа. Единственное назначение этого флага состоит в обходе возможных ошибок обработки прав доступа компилятором. -1а1~дп-Фипс11опЧ **ггигг)Ьег) Опция применяет выравнивание начальных адресов кода функций по границе выравнивания второго типа (ров ег 2) или по ближайшей границе выравнивания, не превышающей указанное в поле пшпЬег число байт.
Но применяется это выравнивание только тогда, когда не возникает необходимости пропускать более пшпвег байт. Например, пшпЬег имеет значение 20. Тогда в случае выравнивания к границе 32 байта, код будет выравниваться только при условии, что для этого не придется пропускать более 20-ти байт памяти.
Если значение поля лшпЬег устанавливается равным границе выравнивания второго типа, то выравнивание будет применяться без исключения ко всем функциям. Если значение лшпЬвг не указано, то применяется установка по умолчанию, соответствующая типу машины. Для некоторых машин это число округляется до значения выравнивания второго типа (розг 2). При этом, конечно, выравнивание будет применяться ко всем функциям.
Указание в лоле пшаЬег значения 1 эквивалентно действию опции -хпо-а1хдп-хцпсвзопв, при которой выравнивание функций не применяется. Приложение Г. Опции командной строки компилятора ОСС 501 -та11дп-1итрь[ питЬег] Выравнивает целевые адреса переходов ветвления (Ьгапс)т гагяетз) по границе выравнивания второго типа (роттег 2) или к ближайшей границе выравнивания, превышающей указанное число пшаЬег, если при этом не возникает необходимости пропускать более пшпЬег байт памяти. Например, если пшпЬег равен 20 и применяетсяя выравнивания к границе 32 байта, то целевой код переходов )цгпр будет выравниваться лишь тогда, когда для этого перед адресуемым кодом не придется пропускать более 20-ти байт памяти. В отличие от сходной по действию опции -Еа11оп-1аЬе1е рассматриваемая опция не требует заполнения пропускаемого пространства памяти пустыми операциями.
Если значение пшяЬег не указано, то применяется машинная установка по умолчанию, обычно равная 1. Указание в поле пшпЬег значения 1 эквивалентно действию опции -спо-а11дп-зшаре, при этом выравнивание ветвей кода не применяется. -1а!1дп-1аЬВЬ[ питЬег] Выравнивает аарес целевых инструкций всех переходов по границе второго типа (роттег 2) или к ближайшей границе выравнивания, превышающей указанное число пшяЬег. Это выравнивание применяется только тогда, когда при этом не возникает необходимости пропускать более пшяЬег байт. Например, значение пшяЬег равно зо.
Тогда в случае 32-байтного выравнивания, адресуемые переходами ветви кода будут выравниваться к ближайшей границе 32-байтного выравнивания только если для этого придется пропускать не более 20-ти байт. Эта опция может увеличить размер вырабатываемого кода и время компиляции, потому что пропускаемые байты заполняются пустыми операциями. Ьолее простая форма этой опции, не требующая дополнительных расходов на компиляцию, имеет вид - га11пп-б шярв, При одновременном использовании опций -ка11йтт-Зшаре и -Еа11отз-1аЬе1в с разными значениями поля пцмЬег для обеих опций используется наибольшее значение. Если значение пшяЬег не указано, то применяется соответствующая машине установка по умолчанию, обычно равная 1, Указание в поле пплтЬег значения 1 эквивалентно действию опции -Епо-а11пп-1аЬе1в, при этом выравнивание переходов не применяется. -та119п-1ооРь[=тнпЬег] Верхушки циклов выравниваются к границе второго типа (роттег 2) или к ближайшей границе выравнивания, превышающей указанное число пшаЬег.
Но только, если при этом пропускается не более пшяЬег байт. Например, пшяЬег имеет значение 2о. Тогла в случае 32-байтного выравнивания, цикл будет выравниваться к ближайшей 32-байтной границе только при условии, что для этого придется пропустить не более 20-ти байт. Эта опция может увеличить размер вырабатываемого кода потому что пропускаемые байты заполняются пустыми операциями, Однако, в зависимости от типа машины, скорость выполнения циклов может увеличиться благодаря выравниванию адресации переходов в конце каждой итерации.
Если значение пшпЬег не указано, то применяется машинная установка по умолчанию, обычно равная 1. Указание в поле пшпЬег значения 1 эквивалентно действию опции -кпо-а11дп-1оорв, при этом циклы не выравниваются. 502 Часть |Ч. Приложения -1аПовд-я1пд!е-ргес! я!оп С Применяется по умолчанию. Не позволяет использование двойной точности при выполнении математических операций с плавающей точкой обычной точности. При установке опции -Сгаа1с1опа1 все операции с плавающей точкой выполняются с двойной точностью, но данная опция оставляет возможность использования обычной точности. -1а!1-ех1егпаИегпр1а1ев С++ Данная опция распознается компилятором„но дальнейшая ее поддержка прекращена, (г(ергесаГед ор1юп). По этой опции дубликаты шаблонов могут генерироваться или не генерироваться в зависимости от расположения кода определения их оригиналов. Сейчас является предпочтительным использование директив.