некоторый указатель на понимание исходного кода GCC - PullRequest
6 голосов
/ 24 марта 2010

Я учусь на оптимизации GCC для многоядерных процессоров. Я пытался пройтись по исходному коду, это трудно понять, так как мне нужно добавить некоторый код в бэкэнд. Может кто-нибудь предложить какой-нибудь хороший ресурс, который объясняет поток кода на разных этапах. Также предложите некоторую среду разработки для отладки GCC в основном для пошагового выполнения кода. Возможно ли это на Windows?

Ответы [ 2 ]

7 голосов
/ 24 марта 2010

В качестве отправной точки см. Ссылки и избранные показания на сайте GCC. Я думаю, что особый интерес для вас представляют:

Если вы хотите разрабатывать в Windows, вам, вероятно, нужно начать с MinGW (минималистский GNU для Windows) исходников Compiler Suite (включает отладчик GNU GDB), который является портом GCC для Windows.

Для комфортной среды разработки я не могу сильно помочь, потому что я не занимаюсь разработкой на C ++. Но я полагаю, что вам нужна хорошая IDE для C / C ++: взгляните на это сравнение , есть много бесплатных / открытых IDE для Windows.

Обновление: Я думаю, ICI также может представлять интерес для вас:

Интерфейс интерактивной компиляции (или «ICI» для краткости) это плагин система с высоким уровнем независимый от компилятора и низкоуровневый зависимый от компилятора API для преобразования текущие компиляторы в совместные открытые модульные интерактивные наборы инструментов. Структура ICI действует как «промежуточное программное обеспечение» интерфейс между компилятором и определяемые пользователем плагины. Открывается и повторно использует качество продукции инфраструктура компилятора для включения анализ программ и приборостроение, оптимизация мелкозернистой программы, простое прототипирование новой разработки и исследовать идеи, избегая создание новых инструментов компиляции из царапина. Например, он используется в MILEPOST GCC для автоматизации компилятора и архитектурный дизайн и программа оптимизации на основе статистических данных анализ и машинное обучение. Это должен включить универсальную самонастройку компиляторы, адаптируемые к разнородным, реконфигурируемый, многоядерный архитектуры от суперкомпьютеры для встроенных систем.

.. как и остальные проекты под зонтиком Collective TUNING .

Примечание: Писать «компиляторы - одна из самых сложных программ, которые есть», как писал BlueRaja в комментариях, является преувеличением: существуют очень простые компиляторы и очень сложные компиляторы. Но в теории компилятора (как только вы ее изучите) нет ничего эзотерического. GCC - это сложная программа, под которой понимается BIG , плохо документированная программа 1 . Так что rizwanhudda не отчаивайтесь: начните изучать доступную документацию, а затем попросите разработчиков GCC (на канале irc GCC, как , предложенный nvl или список рассылки разработчиков GCC ), объяснить, что такое плохо (или не совсем) задокументировано.

  1. На самом деле понимание программ является активной областью исследований.
1 голос
/ 24 марта 2010

Я бы предложил вам использовать канал GCC irc , он предназначен для обсуждения разработки GCC.

...