169 похожих чатов

GCC работает в несколько этапов. Сначала исходный код программы анализируется

фронтендом компилятора, который разбирает его на токены и строит абстрактное синтаксическое дерево (AST). Затем происходит оптимизация кода, где компилятор применяет различные оптимизации для улучшения производительности программы. Наконец, генерируется ассемблерный код, который затем передается ассемблеру для создания исполняемого файла.

GCC поддерживает множество различных архитектур процессоров и операционных систем, что делает его одним из самых универсальных компиляторов или не так?

1 ответов

20 просмотров

Ну примерно, только там несколько побольше промежуточных представлений, чем одно ast) Ну плюс оптимизации также как и в llvm делятся на машинно зависимые и не зависимые, а также емнип по дефолту не оптимизируется наложение виртуальных регистров на реальные, а также не стоит забывать и про lto, где у тебя уже линкер гимпловый код возвращает компилятору. Ну ещё можно погулять, что gcc это не компилятор, а также, что он уже начинает морально устаревать в силу не самого лучшего качества кода и сложностей в его поддержке. Welcome to llvm.

Похожие вопросы

Обсуждают сегодня

Ребят в СИ можно реализовать ООП?
Николай
32
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Кстати, что за тип булеана, который в памяти как 00 для фолса и 01 для тру отображается? Однобайтовый
Serjone
8
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
Карта сайта