Главная » Просмотр файлов » GCC - The Complete Reference

GCC - The Complete Reference (537669), страница 117

Файл №537669 GCC - The Complete Reference (GCC - The Complete Reference) 117 страницаGCC - The Complete Reference (537669) страница 1172015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 117)

Флаг автоматически устанавливается при оптимизациях -02, -Оз и -ов, при необходимости его отключения применяется обратная опция -Гпо-орС1в)1ве-гед1вСех-вюуе. -1ор(з!плие-яЫ(п9-саИя Оптимизация вложенных вызовов типа "з(Ы!пя са!Г'. В некоторых случаях, когда функция в последнем операторе рекурсив)(о вызывает сама себя ((а(1 геси)з(те са(1) или использует вложенный вызов другой функции, логика программы может быть преобразована так, чтобы вместо такой функции использовать некоторую циклическую структуру. Этот флаг автоматически устанавливается опциями оптимизации -02, -оз и -ов, при необхолимости его отключения применяется обратная опция -спо-орс1в)1хе-в1Ы1пд-са11в. Вот пример функции с рекурсивным вызовом в последнем операторе: 1пе ееии1е(1вС х,1ее у) ( сеете(хеии(ш(х+1,у) ); ) При оптимизации этого кода вместо повторного вызова той же функции может быть поставлена команда, которая выполняет переход в начало функции.

Следующий пример кода показывает схожую ситуацию с вложенным вызовом функции в последнем операторе: -1орега1ог-пап) ея Действует по умолчанию. При обратной опции -япо-орекасох-пе)аев не допускается использование ключевых слов епб, )з1сепе(, Ысох, совр1, пос, ох и хох— эти ключевые слова не распознаются компилятором. Вместо них следует употреблять соответствующие альтернативные формы этих операторов ее, е, 1, -, (, 11 и ". Это предотвращает неправильную компиляцию некоторых старинных исходников, освобождая имена перечисленных клнзчевых слов для их использования в других целях. Приложение Г. Опции коиандной строки компилятора ООО 527 1лк иМш(1лх х,ьск у) ( гееиккт(инеи(х+1,у) ) ) ) Это более общий случай ситуации типа "ыЬ))пй са1!", Здесь требуется вложенный вызов функции мьа)а( ) .

Оптимизация может удалить текущий кадр стека функции мцйа) ( ), при этом функция м)тата ( ) будет возвращать свое значение непосредственно в процедуру, вызывающую мЬ1)а(). -1орбгп!хе-йаМс-с!З55-1пйа! аабоп 3ача Действует по умолчанию. В случаях, когда применяется оптимизация уровня -02, -03 или -ов, и компилятор вырабатывает выход в объектном формате вместо байт-кода ) кМ, приводит к тому, что статические классы инициализируются при их первом использовании. Для отключения этого вида оптимизации применяется обратная опция -кпо-орс1)а1хе-всас1с-с1авв-5пйсйа15хасйогь -1ор1! опа1-(11З95 С++ Действует по умолчанию. Определяет вывол всех диагностических сообщений.

При указании обратной опции -кис-орх1опа1-бзадв будет подавляться вывод компилятором дополнительных диагностических собшений, не требуемых стандартом языка С++. — аког-З55е(пЫег орг1опИЫ То же, что и опция -(яа. А5(П вЂ” аког-11П1(ег орбоп То же, что и опция -х15п)кех. 1лйег 1.1П1(ег — 1огсе-11П1( пате То же, что и опция -и. -1оиСри1-с1З55-(1! г=сИгесйогу зача При использовании совместно с опцией -с выводимые компилятором файлы классов сохраняются в каталоге е(ххесеоху(или соответствующем подкаталоге ниже указанного полем Жгессохурасположения). По умолчанию для вывода этих файлов в качестве базового каталога используется текущий.

"грдс1(-5гг0сг Упаковывает поля членов структур (имеется в виду агрегатный тип вххисс) так, что между ними не остается требуемых для выравнивания промежутков. Это может приводить к снижению эффективности кода, содержащего обращения к полям структур. Иногда приводит к нарушению совместимости с системными библиотеками. Опцию -крас)к-всхцсс не следует применять при компиляции программ на языке Рог(гал. 528 часть П(.

приложения См. также раздел главы 4 "Атрибуты". -1ре(1апМс Имеет то же значение, что и опция -редапс1с, но применяется исключительно при компиляции программ на языке Гогггап. -1реер1) о1е Действует по умолчанию, при необходимости может быть отключена обратной опцией -йпо-реерпо1е. Опция -фраер!то1е применяет оптимизацию "реерйо!е ор!!ш)ха!!оп" на этапе вывода компилятором ассемблерного кода. При этой оптимизации выполняется проверка соответствия предназначаемой машины и применяемого набора инструкций и замена в ассемблерном коде неэффективных последовательностей более продвинутыми инструкциями предназначаемой машины.

Этот флаг действует только при назначении любого из уровней оптимизации опцией -О. Опция -Уреерпо1е является зависимой от платформы и на ряле платформ может не иметь действия. -1реер)зо1е2 Приводит в действие оптимизацию типа "реерйо!е ор!пп(га!!оп" на уровне КТ).- кода. Эта оптимизация выполняется после распределения регистров, но до задействования планировщика инструкций (зйеди1!пд рйазе).

Она состоит в специфичной по отношению к аппаратной плаформе трансляции одного набора инструкций 1(Т в другой набор ВТ(.-инструкций. Опция -йреер)тошев является зависимой от платформы и может не иметь действия на ряде платформ. Этот флаг устанавливается автоматически при применении опций оптимизации -О2, -ОЗ и -Ов, при необходимости его можно отключить обратной опцией -йпо-реерпс1е2. -трепт)1ввЬе По этой опции во всех случаях отступлений от стандарта компилятор вместо сообщений об ошибках выдает предупреждения. Если не применяется -йрехтахвв1зге или -редапс до, то по умолчанию действует опция -редапс1 с-еггогв.

-1р1с Компилятор генерирует независимый от положения в памяти, перемещаемый объектный код (рогй!юп шдерепдеп! соде, Р1С). Такой формат необходим для лолучения модулей, используемых в составе динамической разделяемой библиотеки (зЬагед!1Ьгагу). Вся внутренняя адресация строится с использованием глобальной таблицы смещений (й!оЬа! о(Тзе! !аЫе, СОТ), При определении любого адреса содержащееся в таблице значение складывается с начальным адресом загрузки кода. Опция используется при компиляции модулей, предназначенных для сохранения в разделяемых объектных библиотеках для их последующей динамической загрузки оттуда и использования программами во время их выполнения.

Если при использовании опции -йр*'с компоновщик выдает сообщение ошибки о том, что перемещаемый объектный код не работает, то следует перекомпилировать исходник с опцией — ЙР1С. Приложение Г. Опции командной строки компилятора ООО 529 Некоторые системы имеют ограничение на размер таблицы смещений. Для процессора "Могого!а гп881с" предельный размер таблицы равен 168, для "гп68)с" и "КЬ/ 6000" он равен 32к, для тарагс" — 88. Р1С-код требует наличия определенной аппаратной поддержки и вследствие этого может работать только на платформах, имеющих такую поддержку.

См. также -кикс и -в)тахео. Эта опция имеет то же значение, что и -Срхс, но у нее есть дополнительные возможности, позволяющие обходить действующие на некоторых платформах ограничения размера таблиц смещений перемещаемого объектного кода. Такие ограничения действуют на машинах Могого!а т888, гп688 и Браге. См. также -крхс и -в!катей. -Фррс-81гис1-ге1цгп Генерирует код, который всегда возвращает структуры данных (а!птс!шез) сохранением их в памяти, даже если размер структур позволяет записывать их в регистр. Применение тех или иных соглашений о передаче структур через память или через регистры зависит от платформы. Несмотря на некоторое снижение эффективности вырабатываемого кода, эта опция может быть очень полезной для обеспечения совместимости с другими компиляторами.

При компиляции программ на языке Ро«г«ап эта опция применяется только в случае компоновки с библиотекой 1хЬдяс, если эта библиотека тоже была скомпилирована с опцией -сррс-векисе-хеецхп. См.также -кхед-всхпсс-весите. 4рге1е1сИоор-аггаув Генерируются инструкции упреждающей выборки (ргегегс!т) массивов для повышения производительности циклических вычислений. (Эта опция работает только при наличии соответствующей аппаратной поддержки.) -1ргергосеввед Рге Предобработка исходного кода не применяется, даже если имена входных файлов имеют суффиксы, показывающие на необходимость их обработки препроцессором.

Распознаваемые суффиксы (расширения имен) файлов перечислены в таблице Г.1. Несмотря на применение этой опции, указание -с по прежнему будет назначать удаление препроцессором всех комментариев из исходных файлов. -1рге1епсИ! оа1 Во время перекрестной компиляции, т.е. выработки компилятором объектного кода другой системы, этот флаг указывает применение формата "домашней" машины ()юз! р1аггогт) для генерирования инструкций математических операций с плавающей точкой. При этом код, получаемый в результате такой компиляции, скорее 530 Часть (Ч. Приложения всего ие сможет выполняться предназначаемой машиной (гагяег пас)йпе).

Но порядок следования инструкций скорее всего будет тем же, что и при выработке кода, точно соответствующего предназначаемой платформе. -1ргоНе-акз При использования опции -йрхой11е-ахов для компиляции программы и после запуска версии программы, скомпилированной с этой опцией, создается файл, который содержит результаты подсчета количества проходов выполнения для каждого блока кода.

Затем программа может быть заново скомпилироваиа с опцией -йЬхапсЬ-рхоЬаЬ11Шев, и при этой новой компиляции информация из файла, уже записанного профилируюшим кодом, может быть использована для оптимизации наиболее часто используемых ветвей программы. В случае отсутствия информации из такого файла ОСС для оптимизации может примерно оценить вероятный путь выполнения программы. Информация о проходах блоков записывается в файл, который имеет то же имя, что и файл исходного кода, только с добавлением суффикса .аа.

В другом варианте применения данная опция действует совместно с опцией -рееве-созгехаде для поддержки использования утилиты дсозг. Сочетание этих опций для каждой функции создает граф потока выполнения программы (йо» ягарй) и иа основе информации графа строит дерево расстояний переходов между функциями (зрапп1пя (гее). Затем в каждую функцию, которая ие входит в дерево расстояний, помещается код для подсчета количества проходов выполнения функции.

Характеристики

Тип файла
DJVU-файл
Размер
6,08 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6314
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее