Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » 2006. Межпроцедурная нумерация значений

2006. Межпроцедурная нумерация значений, страница 4

PDF-файл 2006. Межпроцедурная нумерация значений, страница 4 Конструирование компиляторов (53254): Статья - 7 семестр2006. Межпроцедурная нумерация значений: Конструирование компиляторов - PDF, страница 4 (53254) - СтудИзба2019-09-18СтудИзба

Описание файла

PDF-файл из архива "2006. Межпроцедурная нумерация значений", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 4 страницы из PDF

Размерпрограммы – это сумма размеров всех её процедур. Представим, что в какой-то моментпринимается решение, подставлять ли процедуру P2 в процедуру P1. Чем размер P2больше, тем меньше шансов состояться у данной инлайн-подстановки.При таком подходе считаем, что после подстановки P2 в P1 sizeof(P1)=sizeof(P1)+sizeof(P2). Однако это не всегда так.

Если в P1 и P2 есть эквивалентные операции, топосле инлайна избыточные операции можно будет удалить. Значит, используя результаты межпроцедурной нумерации значений, можно показать, что после инлайна размерsizeof(P1)=sizeof(P1)+sizeof(P2)–num_of_common_op.На рис. 8 слева от жирной черты показан исходный код, справа – код после применения одного шага инлайн-подстановки. Алгоритм инлайна, не учитывающий результатыанализа нумерации значений, отказывался подставлять остальные вызовы g(). Алгоритм,использующий результаты анализа, понял, что увеличения кода больше не произойдёт, иподставил все вызовы g().тел./факс: (095) 917-24-70- 13 -a88@narod.ru; http://a88.narod.ruООО "ИНТЕРСОЦИОИНФОРМ"*** КОМПЬЮТЕРЫ В УЧЕБНОМ ПРОЦЕССЕ *** № 5, май 2005 ***--------- СТРАННЫЙ СПЕЦИАЛЬНЫЙ ЖУРНАЛ ДЛЯ ПЫТЛИВЫХ УМОВ ЛЮБОГО ВОЗРАСТА---------Рис. 8.

Один шаг инлайн-подстановки.Анализ “Межпроцедурная нумерация значений” позволяет более точно оценить увеличение кода процедуры, в которую производится инлайн-подстановка. Это приведёт ктому, что будет происходить больше инлайн-подстановок и будет получен более эффективный код. При этом размер программы будет оставаться в заданных пределах.5. НЕКОТОРЫЕ ТРУДНОСТИ МЕЖПРОЦЕДУРНОГО ОБХОДА ПРОГРАММ,НАПИСАННЫХ НА ЯЗЫКЕ СИ5.1. Нелокальные переходыВ языке Си имеется средство, позволяющее совершать нелокальные переходы из процедуры в процедуру, минуя операции CALL. Таким средством является пара вызововsetjmp и longjmp.

Вызов setjmp приводит к запоминанию стека вызовов и указатель натекущую команду в структуру jmp_buf. Если затем эту структуру подать вызову longjmp,то произойдёт восстановление стека, и передача управления в точку, где находитсяsetjmp. При этом управление может быть передано в другую процедуру.Вызовы setjmp и longjmp нарушают идеологию межпроцедурного обхода, представленного в данной работе, поэтому приходится производить для них специальную обработку. В процессе обхода процедуры, когда встречается вызов setjmp, запоминаем в специальном стеке процедуру и узел управляющего графа.Обработка вызовов longjmp происходит по следующему алгоритму:EvalLongJump(){proc = GetElemFromTheBottom( setjumps_stack);objs = GetObjsThatAreUsedInProc( proc);for ( obj = each object used in procedure proc){foreach element in setjmp stack{Получаем номер значения объекта obj, которое было записано в объектк моменту, когда был вызов setjmp, и сливаем с тем номером, которыйв объекте сейчас.

Записываем полученный таким образом номер значенияв узел, в котором был вызов setjmpтел./факс: (095) 917-24-70- 14 -a88@narod.ru; http://a88.narod.ruООО "ИНТЕРСОЦИОИНФОРМ"*** КОМПЬЮТЕРЫ В УЧЕБНОМ ПРОЦЕССЕ *** № 5, май 2005 ***--------- СТРАННЫЙ СПЕЦИАЛЬНЫЙ ЖУРНАЛ ДЛЯ ПЫТЛИВЫХ УМОВ ЛЮБОГО ВОЗРАСТА---------}return;}5.2. Обработчики сигналовПредставленный в работе межпроцедурный обход не может быть применён к программам, которые используют обработчики сигналов. Так как сигналы, как реакция навнешние события, могут поступать в произвольный момент функции обработчики могутбыть вызваны асинхронно относительно выполнения программы.

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

ЭКСПЕРИМЕНТАЛЬНЫЕ РЕЗУЛЬТАТЫЦелью эксперимента было, во-первых, увидеть сами результаты анализа “межпроцедурная нумерация значений”, проводимого для реальных задач, а, во-вторых, пронаблюдать эффект, достигаемый применением этих результатов для инлайн-подстановок. Эксперимент проводился в контексте работы оптимизирующего компилятора проекта Эльбрус-3М [2, 3] на задачах пакета Spec95.Табл. 1.Результаты анализа для задач пакета Spec95Тест129.compress130.li134.perlВызывающая процедураВызываемая процедураmainmainmainplistreadoneisnumbermainMainMaincompare_bufferfill_text_bufferspec_select_actionReadonePnameStrlenSprintfMyfatalInstrЧисло операций в вызываемойпроцедуре(N1)1291781451051652751743157135Число общих операций (N2)Процент общих операций(N2/N1*100%)17119811142919916201366810810111015В табл.

1 показаны несколько случаев вызовов процедур и полученные для этих процедур результаты анализа. Число общих операций здесь – это число таких операций ввызывающей процедуре, которые имеют эквивалентные им операции в вызываемой процедуре. Анализ показал, что в отдельных случаях значительная часть операций в вызываемой процедуре имеет эквивалентные им операции в вызывающей процедуре. Очевидно, в таких случаях применять инлайн-подстановку выгодно.В табл. 2 сведены показатели, демонстрирующие эффект, производимый применением результатов анализа для инлайн-подстановок. Эффект заключается как в уменьшенииполучаемого на выходе компилятора исполняемого кода, так и в улучшении времени истел./факс: (095) 917-24-70- 15 -a88@narod.ru; http://a88.narod.ruООО "ИНТЕРСОЦИОИНФОРМ"*** КОМПЬЮТЕРЫ В УЧЕБНОМ ПРОЦЕССЕ *** № 5, май 2005 ***--------- СТРАННЫЙ СПЕЦИАЛЬНЫЙ ЖУРНАЛ ДЛЯ ПЫТЛИВЫХ УМОВ ЛЮБОГО ВОЗРАСТА---------полнения исполняемого кода.

Размер исполняемого кода измерялся в байтах, время исполнения – в тактах архитектуры Эльбрус-3М.Табл. 2.Эффект от применения результатов анализа для инлайн-подстановокТест124.m88ksim129.compress130.li134.perl147.vortexУменьшение размера исполняемого файла(size_before/size_after)1,0091,0151,0061,0041,008Уменьшение времени исполнения(time_before/time_after)1,0011,0001,0021,0021,002Результаты эксперимента показывают, что основное улучшение при использованиирезультатов анализа получено как уменьшение размера исполняемого кода при почти неизменившемся времени исполнения. Такой явление объясняется более эффективной работой пары оптимизаций: {инлайн-подстановка – удаление избыточных вычислений}при использовании результатов анализа.7.

ЗАКЛЮЧЕНИЕАнализ “Межпроцедурная нумерация значений” является обобщением известного механизма “Нумерация значений” и выведением последнего на качественно новый межпроцедурный уровень.В статье рассмотрена модификация алгоритма, предложенного в [4], для проведенияанализа нумерация значений внутри одной процедуры. Затем предложены основныепринципы для проведения межпроцедурного анализа нумерация значений, опираясь навнутрипроцедурный анализ.

Показаны некоторые проблемы, возникающие при межпроцедурном обходе, и пути их решений. Указаны области применения результатов анализадля проведения оптимизаций.В настоящее время механизм межпроцедурного анализа и применение результатованализа для инлайн-подстановок процедур реализованы авторами статьи полностью вязыковом оптимизирующем компиляторе ecf_opt, компании Эльбрус [2, 3].ЛИТЕРАТУРА1.

Alfred V. Aho, Ravi Sethi, Jeffrey D. Ulman. Compilers: Principles, Techniques andTools. Addison-Wesley Reading, 1986.2. ЗАО МЦСТ. Официальный сайт http://www.mcst.ru.3. Diefendorf K. The Russians Are Coming: Supercomputer Maker Elbrus Seeks to Joinx86/IA-64 Melee // Microprocessor Report, vol 11, № 2, February 15, 1999. P. 1-7.4. Simpson, Loren Taylor. Value-Driven Redundancy Elimination.

Ph.D. Thesis, Rice University, Houston, Texas, 1996.5. Wilson, Robert Paul. Efficient, Context-Sensitive Pointer Analysis For C Programs.Ph.D. Thesis, Stanford University, 1997.тел./факс: (095) 917-24-70- 16 -a88@narod.ru; http://a88.narod.ru.

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