1.1, dq0s4y71 (??), 21:07, 24/05/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Да ну... Я думал, он что-нибудь анализирует, или там хотя бы дерево разбора показывает, а он мне просто вывод от gcc -S вываливает :( Детская игрушка.
| |
|
2.6, klalafuda (?), 21:34, 24/05/2012 [^] [^^] [^^^] [ответить]
| –8 +/– |
Пардон, а нафига мне, допустим, как конечному пользователю gcc, промежуточное дерево разбора? Что оно мне даст с практической точки зрения компиляции в конечный ассемблерный код моего родимого C кода? Да пусть он представляет промежуточные данные внутри себя любым пусть самым невообразимым [красивым|ужасным] способом - меня то, как конечного пользователя, интересует лишь конечный результат.
| |
|
3.8, pavlinux (ok), 21:51, 24/05/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
Чёй-то у меня даже слов нету... :D
Пример
Дано:
if ( a < b )
x++;
/* либо */
if ( b > a )
x++;
Найти: Оптимальный вариант!
| |
|
4.18, an. (?), 22:27, 24/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
Он может сильно отличаться в зависимости от платформы, версии gcc, и кода, который стоит до и после (например, какого типа у нас a и b, перегружен ли < и/или >) - что все варианты перепробовать? По-моему, цели могут быть только образовательные или ради любопытства. Для серьезных оптимизаций обычно используют другие средства (профайлер, статические анализаторы и пр).
| |
|
5.21, Аноним (-), 22:38, 24/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
Есть очень глубокий цикл, в нем пара десятков коротких операций, влияющих на контекст. Как вы их оптимизируете профайлером без просмотра кода? Выдергивать из цикла не получится - изменится контекст, замерить одну итерацию тоже не получится.
| |
5.27, pavlinux (ok), 00:35, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Он может сильно отличаться в зависимости от платформы, версии gcc, и кода,
> который стоит до и после (например, какого типа у нас a
> и b, перегружен ли < и/или >) - что все варианты
> перепробовать? По-моему, цели могут быть только образовательные или ради любопытства.
> Для серьезных оптимизаций обычно используют другие средства (профайлер, статические анализаторы
> и пр).
if ( a > b )
cmovge %edx,%eax
if ( b < a )
cmovl %edx,%eax
---
Условия перехода
CMOVGE: ˜(SF ˆ OF) & ˜ZF == NOT ( SF XOR OF ) AND ( NOT ZF)
CMOVL: SF ˆ OF == SF XOR OF
| |
|
|
3.10, Аноним (-), 21:57, 24/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
Ну, представь, он тебе вываливает какое-нибудь промежуточное дерево, а ты интерактивно выбираешь, где какие оптимизации применить, и сразу видишь результат.
| |
3.11, Аноним (-), 22:05, 24/05/2012 [^] [^^] [^^^] [ответить] | +1 +/– | Примерно так же рассуждают пользователи Виндов, допустим, об опенсурсе Пардон,... большой текст свёрнут, показать | |
|
4.14, Аноним (-), 22:20, 24/05/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
Все-таки вопрос был "зачем оно надо", на который ваша стена текста никак не отвечает, в ней только распальцовка. Я не говорю что оно не нужно, просто приведите конкретные примеры, чтобы не выглядеть болтологом
| |
|
5.19, Аноним (-), 22:31, 24/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Все-таки вопрос был "зачем оно надо", на который ваша стена текста никак не отвечает, в ней только распальцовка. Я не говорю что оно не нужно, просто приведите конкретные примеры, чтобы не выглядеть болтологом
Все уже прекрасно поняли, что вы считаете "болтологами" тех, кто знает, зачем нужно видеть дерево разбора транслятора.
Хотя при этом так и остается непонятным, зачем вам нужен этот "explorer", если вам не нужна интроспекция. И кто после этого "болтолог".
| |
|
|
5.20, Аноним (-), 22:34, 24/05/2012 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Как много букв, как мало смысла.
Если для вас это количество букв показалось запредельным, а смысл от вас ускользнул, неудивительно, что вы раньше ничего не знали про опцию -S. Ведь в руководствах букв еще больше.
| |
|
|
7.47, Аноним (-), 16:03, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> эти болтологи думаете прочли хоть один ваш комент ?
> думаю не стоит их кормить
Пусть кушают, не жалко.
А прочитают другие и сделают выводы.
| |
|
|
|
4.43, kurokaze (ok), 13:02, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
>Примерно так же рассуждают пользователи Виндов, допустим, об опенсурсе.
11 лет назад ушел с виндов потому что они не справлялись с кодированием мпег4 в реалтайме. С тех пор ни разу не пожалел. Так что не обобщайте.
| |
|
5.64, Аноним (-), 03:43, 28/05/2012 [^] [^^] [^^^] [ответить]
| –1 +/– |
>>Примерно так же рассуждают пользователи Виндов, допустим, об опенсурсе.
>
> 11 лет назад ушел с виндов потому что они не справлялись с кодированием мпег4 в реалтайме. С тех пор ни разу не пожалел. Так что не обобщайте.
Если вы не рассуждаете так же, как было написано выше, тогда причем здесь вы.
| |
|
|
3.42, dq0s4y71 (??), 11:12, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
Дерево разбора может понадобиться, например, студентам или разработчикам компиляторов или кому угодно, кто интересуется. Не столь важно. Важно то, что нарисовать дерево разбора - достаточно нетривиальная задача, а сделать gcc -S сможет любой дурак. Причём он сможет сделать это на реальном, большом проекте, и посмотреть какой код генерится, например, во всех узких местах. А в это окошечко он что сможет запостить? Две функции без зависимостей?
Ну, ладно, ещё можно сказать, что там сразу несколько версий компиляторов. Но ведь для АРМа не работает! Опции поменять - тоже у меня не получилось. Компилятор запускается, похоже, при изменении текста в поле ввода! Что это ещё за "ынтырпрайз" подход, когда компилятор знает лучше разработчика, когда ему запускаться! Сделал бы кнопочку "Скомпилировать", не так криво, может быть, работало бы, да и нагрузка на сервер уменьшилась бы, который сейчас дёргает компилятор на каждый чих в поле ввода!
Студенческое поделие, короче, причём студента второкурсника. Я помню, мы на старших курсах сами компиляторы писали, причём с генерацией кода...
| |
|
2.13, Аноним (-), 22:17, 24/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Да ну... Я думал, он что-нибудь анализирует, или там хотя бы дерево разбора показывает, а он мне просто вывод от gcc -S вываливает :( Детская игрушка.
А все дело в том, что в самом по себе gcc большие проблемы с интроспекцией. Всему виной его хаотично разраставшаяся архитектура и долгое отсутствие альтернатив.
И какую оконную морду ему ни прикрути, его внутренняя суть от этого не изменится.
А кто командной строкой пользоваться так и не научился, ему окошки недостаток способностей не восполнят, а лишь сделают вид.
| |
|
3.30, Аноним (-), 01:15, 25/05/2012 [^] [^^] [^^^] [ответить]
| –2 +/– |
Глядя на то какой код генерят всякие шланги, кейлы, иары и прочие - понимаешь что gcc генерит далеко не самый плохой код на свете. А пиндящие насчет архитектуры забыли одну маленькую деталь: выкатить свой кодогенератор который всех сделает. В частности gcc. На всех поддерживаемых архитектурах, разумеется. Посмотрев на то что шланг генерит для ARM например можно вообще офигеть.
| |
|
4.40, Аноним (-), 05:54, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Глядя на то какой код генерят всякие шланги, кейлы, иары и прочие
> - понимаешь что gcc генерит далеко не самый плохой код на
> свете. А пиндящие насчет архитектуры забыли одну маленькую деталь: выкатить свой
> кодогенератор который всех сделает. В частности gcc. На всех поддерживаемых архитектурах,
> разумеется. Посмотрев на то что шланг генерит для ARM например можно
> вообще офигеть.
294-ый, ты 3.1 уже прогнал на арм-ах?
| |
|
5.52, Аноним (-), 20:39, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> 294-ый, ты 3.1 уже прогнал на арм-ах?
Я на данный момент больше гоняю на cortex M3 и немного на AVR. А LLVM уже это умеет?
| |
|
4.41, dq0s4y71 (??), 10:41, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Глядя на то какой код генерят всякие шланги, кейлы, иары и прочие - понимаешь что gcc генерит далеко не самый плохой код на свете.
Вот насчёт Кейла не надо. Кейл генерит более качественный код для ARM, чем gcc. Знаю как разработчик. Не говоря уже о кейловской среде разработки. Ещё Кейл поддерживает, например, 8051, а gcc нет.
| |
|
5.45, Аноним (-), 13:44, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
ты что - великий User294 все знает :) И вообще gcc все поддерживает что надо - а что не поддерживает - никому не надо.
| |
|
6.51, Аноним (-), 20:37, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> поддерживает что надо - а что не поддерживает - никому не надо.
Не хочу ничего сказать но лично мне актуальнее и интереснее компильнуть пингвин под ARM чем с окаменелым х51 возиться. Впрочем я и против cortex M3 ничего не имею, у STM например весьма годные чипы по весьма годным ценам, навороченные и умеющие дофига всего, при цене и параметрах делающих 8-битники просто морально устаревшими ископаемыми.
| |
|
5.50, Аноним (-), 20:34, 25/05/2012 [^] [^^] [^^^] [ответить] | +/– | Вау, сразу видно проприераса у него кайло бьет гцц на всех видах ядер сразу, во... большой текст свёрнут, показать | |
|
6.56, Grammar Nazi (?), 11:49, 26/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> IMO
IMHO, правильно писать IMHO
Млин, луркояз хотя бы учите, если "русский языка" для вас "такая сложная"
| |
|
7.57, arisu (ok), 11:54, 26/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
>> IMO
> IMHO, правильно писать IMHO
ну, вот у тебя humble, а у кого-то просто обычное. я, например, показной скромностью не страдаю. и не только я.
| |
7.68, Аноним (-), 04:10, 28/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> IMHO, правильно писать IMHO
Ну я не считал что в данном случае мнение излишне скромное, поэтому "humble" убрал ;). Да, я в отличие от вас еще и знаю что "IMHO" означает, а не просто повторяю заученное слово.
> Млин, луркояз хотя бы учите, если "русский языка" для вас "такая сложная"
Удачи в обучении меня сетевым акронимам. Только я в сетях побольше вашего и данными акронимами пользуюсь поболее вашего. Указанный варант сокращения имеет хождение, просто менее популярен, т.к. не у всех хватает духа намекать на свою нескромность :)
| |
|
6.62, dq0s4y71 (??), 23:48, 26/05/2012 [^] [^^] [^^^] [ответить] | –1 +/– | Не надо придумывать глупостей и приписывать их оппоненту Мне не интересно, что ... большой текст свёрнут, показать | |
|
7.69, Аноним (-), 05:08, 28/05/2012 [^] [^^] [^^^] [ответить] | +/– | Ну так вы безаппеляционно завяили не меньшую глупость Почему бы и не отыграться... большой текст свёрнут, показать | |
|
|
9.72, Аноним (-), 23:01, 28/05/2012 [^] [^^] [^^^] [ответить] | +/– | Вот в этом вы все - будете впаривать кривой булшит под 1 систему стоящий конских... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
4.65, Аноним (-), 03:46, 28/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> член секты "сидетели ллвм"?
Если вам что-то не понравилось или вы что-то не осилили, это еще не значит, что там секта.
| |
|
|
|
|
2.3, x0r (??), 21:21, 24/05/2012 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну да - ничего сверхъестественного, мог бы профайлер запускать
| |
2.32, arisu (ok), 01:45, 25/05/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
> О таком я только мечтал)
лучше бы ты документацию на компилятор читал вместо мечтаний. тогда давно слепил бы себе скрипт и пользовался.
| |
|
1.4, Аноним (-), 21:30, 24/05/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
Какой-то студент склпеал веб-оболочку для gcc -S и радуется как дитя. А то без веба и гитхаба как-то немодно.
| |
|
2.16, Аноним (-), 22:26, 24/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Какой-то студент склпеал веб-оболочку для gcc -S и радуется как дитя. А то без веба и гитхаба как-то немодно.
Да ладно бы и не жалко, пусть упражняется.
Только слишком амбициозное название для такой лабораторной работы - целый Explorer.
Хотя на самом деле он ничего там не експлоурит, а всего лишь с потоками ввода-вывода играется.
| |
|
3.33, arisu (ok), 01:45, 25/05/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Только слишком амбициозное название для такой лабораторной работы — целый Explorer.
красивое название — половина успеха!
| |
|
|
1.12, Аноним (-), 22:16, 24/05/2012 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Теперь бы тоже самое, но в виде нормального приложения, а не web-убожества.
| |
|
|
3.31, Аноним (-), 01:17, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> А смысл?
Втыкать ради 1 студенческой приблуды в систему node.js нужный мне как рыбке зонтик в водной среде - довольно странное и неудобное развлечение.
| |
|
|
1.26, добрый дядя (?), 23:30, 24/05/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
1) а ARM версия не работает =(
2) было бы удобно если оно будет добавлять строки исходного кода внутрь кода как это делает objdump например
3) ну и если будет ARM было бы забавно видеть ARM NEON - вот где пригоидтся эта утилита чтобы сразу видеть результат
4) ну и вообще супер если оно еще запускаться будет, т.е. исполнять код и можно будет оценить скорость, но это наверное уже проще десктопный софт писануть :)
| |
|
2.36, arisu (ok), 01:57, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Опять этот убожеский AT&T синтакс! Когда же его забудут?
непривычный — не обязательно плохой.
| |
2.53, Аноним (-), 20:41, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Опять этот убожеский AT&T синтакс! Когда же его забудут?
Не понял, а чего такого плохого в синтаксисе?
| |
|
1.37, pavlinux (ok), 02:16, 25/05/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Не понятен малость смысл. Ну выводит она мне gcc -S, и чё дальше....
Встроили бы bruteforce по перебору флагов gcc:
- На минимальность размера кода;
- По сумме тактов команд;
- Прогнозирование переходов и объёмы циклов с заданными пределами;
- Сравнение 3-4 вариантов (настраиваемое);
| |
1.39, б.б. (?), 04:57, 25/05/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Хочу GCC-Doom, где ошибки компиляции можно расстреливать из пулемёта, чтобы не мешали.
| |
|
2.54, Аноним (-), 20:42, 25/05/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Хочу GCC-Doom, где ошибки компиляции можно расстреливать из пулемёта, чтобы не мешали.
Use comments, Luke! :). Хотя да, нормальное для питониста желание - там факап случается после того как оно отпашет 2 дня. Счастливой отладки!
| |
|
|