Журнал Dr.Dobb's опубликовал статью "The Design of LLVM (http://www.drdobbs.com/architecture-and-design/240001128)" с подробным и ясным обзором основных особенностей дизайна инфраструктуры для создания компиляторов LLVM (http://www.llvm.org/), и отличиях в подходе от классических компиляторов, таких как GCC.<center><a href="http://twimgs.com/ddj/images/article/2012/0512/latfig3.gif&q... src="http://www.opennet.me/opennews/pics_base/0_1338396861.gif" style="border-style: solid; border-color: #606060; border-width: 1px;" title="" border=0></a></center>
URL: http://www.drdobbs.com/architecture-and-design/240001128
Новость: http://www.opennet.me/opennews/art.shtml?num=33968
Отлично. Почитаем.
Может хоть после этого прекратят чушь пороть о том, что архитектура гцц не позволяет ему развиваться.
> Может хоть после этого прекратят чушь пороть о том, что архитектура гцц не позволяет ему развиваться.Мало почитать, надо еще понять. А для этого мозг нужен.
Так что не прекратят, не надейтесь.
> Так что не прекратят, не надейтесь.Да уж. Для жабистов такое слишком сложно, увы.
>> Так что не прекратят, не надейтесь.
> Да уж. Для жабистов такое слишком сложно, увы.Такие толстые попытки кого-то зацепить лишь говорят об агонии.
Когда llvm только начинался, такие как вы много чего против говорили, а сейчас время прошло, и вы облажались со своими прогнозами.
А теперь со стыда уже не знаете, что сказать.
> Такие толстые попытки кого-то зацепить лишь говорят об агонии.А по-моему они говорят только о толстоватом троллинге izen'а. В умственных способностях которого я не без оснований сомневаюсь.
> Когда llvm только начинался, такие как вы много чего против говорили, а
> сейчас время прошло, и вы облажались со своими прогнозами.И в чем эта лажа состояла? Судя по бенчам фороникса он до сих пор даже на х86 сливает гцц. А про остальных и говорить нечего - там из всех остальных всерьез ARM разве что есть. Остальные представлены в основном чисто номинально, так что спасибо скажешь если вообще хоть что-то сгеренится, а если без багов и падений - так это вообще epic win. Про степень оптимизации мы уж молчим - когда компилер трапается с internal error, тут уже не до рассуждений о оптимизации.
> Судя по бенчам форониксану не надо так откровенно-то издеваться.
p.s. а по моим бенчам — для x86 вполне сопоставим с gcc. и компилирует при этом в два раза шустрее.
> ну не надо так откровенно-то издеваться.Да ладно, фороникс временами даже делает что-то более-менее вменяемое, в том числе и бенчи. Правда временами и правда бенчи делают странно, так что лично я при анализе их результатов просто задействую мозг и пытаюсь осознать - что и нафига померяно и почему такой результат.
> p.s. а по моим бенчам — для x86 вполне сопоставим с gcc.
В каких-то случаях сопоставим, а в каких-то может слить на 300%. При том у того же фороникса таких случаев есть.
> и компилирует при этом в два раза шустрее.
А также иногда трапается с internal error. У гцц я такое в последний раз видел в 2.9х чтоли у себя и в 4.2 у бсдшников :)
ну, ICE у gcc я видел не так давно. он очень нервно относится к volatile в union — иногда. правда, clang'ом этот код вообще не собирается, потому что он не все расширения gcc поддерживает.
> Может хоть после этого прекратят чушь пороть о том, что архитектура гцц не позволяет ему развиваться.Смотря что именно вы понимаете под развитием.
Просто увеличение количества разных функций и разрастание кода?
Вы правы, для этого в gcc нет никаких помех.
> Просто увеличение количества разных функций и разрастание кода?
> Вы правы, для этого в gcc нет никаких помех.А ччо, на докторе Доббе пишут, что в LLVM "количества разных функций и разрастание кода" __уменьшаются__ ??! Точно, надо читать.
> А ччо, на докторе Доббе пишут, что в LLVM "количества разных функций и разрастание кода" __уменьшаются__ ??! Точно, надо читать.Нет, нужно просто уметь видеть хотя бы чуть больше, чем два варианта.
> Нет, нужно просто уметь видеть хотя бы чуть больше, чем два варианта.?
$ eval echo\ у{менш,велич}ение\ количества\ {одинаков,разн}ых\ функций\ и{,ли}\ {разраст,ужим}ание\ кода\;
!
$ S="у{менш,велич}ение\ количества\ {одинаков,разн}ых\ функций\ и{,ли}\ {разраст,ужим}ание\ кода"
$ eval echo\ -en\ $S\\ llvm\\ и\\ $S\\ gcc\\\!\\\\n|wc -l
256
$ _
Ваши постоянные синтаксические ужимки лишь свидетельствуют о гуманитарном характере вашего мышления.
Вы лишь тусуетесь на технических форумах, чтобы изображать из себя якобы большого специалиста в технических областях.А на самом деле, скорее всего у вас с техникой одни сплошные проблемы.
Если вы пытаетесь говорить с людьми на языке трансляторов, это еще не делает из вас специалиста.
> Если вы пытаетесь говорить с людьми на языке трансляторов, это еще не делает из вас специалиста.Ням-нямммм.... //А зато у тя писюн маленький.
Вот это уже больше похоже на вашу истинную суть.
А то все пиарите тут свои познания в шелле.Неудивительно зато, что вам новый компилятор и VM так трудно освоить.
> Неудивительно зато, что вам новый компилятор и VM так трудно освоить.Кто сказал "трудно"? Впрочем не утруждайся, уговорил, касательно _вариантов!, не буду статью читать. И приятного облегчения с LL и VM---
Не будете статью читать?
Какая потеря для научно-технического прогресса!Хотя отчетливо видно, что когда вы что-то пытаетесь сказать не на языке шелла, без всяких несуразных тире, знаков препинания и повторяющихся букв, и прочего коверкания языка - выясняется, что сказать вам особо нечего.
кстати, LLVM как минимум на x86 не так уж и плох. например, на моём «домашнем» проекте (~600 килобайт исходников на си), clang 3.1 по скорости компиляции (-O2 -march=native -mtune=native) в два раза уделал gcc 4.7. по скорости работы бинаря (это интерпретатор язычка) уделал чуть-чуть, на несколько процентов. по размеру бинаря — тоже на несколько процентов.то же самое со скоростью компиляции двух мегабайт довольно корявого c++. результирующие бинари отличались кил на сто, при размере бинаря три мегабайта это мелочи. скорость сравнить не удалось, потому что это рогалик.
так что шланг вполне неплох.
p.s. да, оба собирались одним и тем же gcc 4.7, так что этот нюанс можно не рассматривать.
Более того, обычно фанатичные поклонники gcc, усевшись в лужу со своими предыдущими прогнозами, хватаются за последнюю спасительную соломинку, что тип на данный момент gcc поддерживает больше процессорных архитектур.Хотя если заглянуть в историю, то наверняка выяснится, что такая широкая поддержка в gcc тоже возникла не сразу. А даже если бы и сразу, модульная организация llvm позволяет легко добавлять другие архитектуры.
Просто разработчики llvm сейчас сосредоточены на решении других вопросов, зная что с решением этого вопроса все в порядке (ведь несколько архитектур уже есть).
И пока противники llvm, которые с таким трудом освоили gcc (кто способны легко обучаться - им обычно появление чего-то нового никак не мешает), пока утешают себя количеством архитектур, другие спокойненько нарабатывают кодовую базу. Зная, что спокойно перенесут кодовую базу своих проектов на новые архитектуры по мере их появления.
P.S. Лично мне и старый gcc никак не мешает. Я просто не являюсь его фанатиком, и рад появлению новой модульной системы. И стараюсь писать переносимый между компиляторами код.
Наличие выбора - это всегда хорошо!
(Но видимо не для всех.)
кстати, шланг ещё иногда даёт дельные варнинги в местах, где gcc молчит. например, когда в функции типа printf() первым параметром передаётся переменная, шланг нервничает. отловил в своих проектах несколько таких вещей. ну, и ещё всякие мелочи.потому стараюсь — если есть возможность — собирать проекты обоими компиляторами. что-то один заметит, что-то другой — а мне с обоих польза.
Разработчики новых систем обычно учатся на ошибках авторов предыдущих.Не стоит строго судить gcc. Он ведь был пионером во многих областях. По крайней мере, как свободный компилятор такого уровня.
Но и фанатеть по его поводу - полная глупость. Фанатизм - это показатель стереотипности мышления, низких способностей к обучению, и вообще неспособности принимать новую информацию.
дык я и не сужу. gcc — отличный, качественный компилятор, полной замены которому нет, и если и будет, то не скоро. шланг/llvm — весьма неплохой развивающийся компилятор, в некоторых местах обошедший gcc.да, мне не нравится лицензия clang/llvm. ну так я туда код и не даю. но наличие подобного проекта полезно в том числе и для gcc: пусть соревнуются, мне от этого только выигрыш будет.
раздражают же как фанаты шланга (всё, gcc не нужен, на помойку его!), так и фанаты gcc (шланг не нужен, gcc навсегда!). например, polyhedral optimizer в gcc появился раньше. зато индикацию не только строки, но и позиции ошибки в gcc сделали, фактически, с оглядкой на clang, до этого как-то всё «руки не доходили». и тому подобное.
А я и не говорил, что судите именно вы.
Это была напоминалка самому себе. :)
ну так мы тут оба, в принципе, капитаним.
С другой стороны, не грех судить тех, кто судит сам. :Р
А компиляторы не судят, они - компилируют.
забавно, кстати, то, что большинство орущих фанбоев не разбираются даже в структуре «компилятора своей любви», не говоря уже о «врежеском изобретении».
> p.s. да, оба собирались одним и тем же gcc 4.7,Кстати gcc4.6 имхо в плане оптимизации местами более удачный, 4.7 обладает рядом странных закидонов.
> Кстати gcc4.6 имхо в плане оптимизации местами более удачный, 4.7 обладает рядом
> странных закидонов.емнип, ребята в курсе, готовят новый релиз. впрочем, я пристально за разработкой не слежу.
>> p.s. да, оба собирались одним и тем же gcc 4.7,
> Кстати gcc4.6 имхо в плане оптимизации местами более удачный, 4.7 обладает рядом
> странных закидонов.Это типичные регресс при выходе x.x.0
> Вы лишь тусуетесь на технических форумах, чтобы изображать из себя якобы большого
> специалиста в технических областях.Вы немного не угадали. Он тут тусуется и троллит таких как вы. При том судя наблюдаемой картине - довольно успешно. Это раз.
И два: умение скроить нечто на языке трансляторов показывает что это именно технический специалист, какой-никакой. Гуманитарии по природе своей не способны на этот стиль мышления.
Вам не кажется что два фэйла в 1 сообщении - многовато? :)
> И два: умение скроить нечто на языке трансляторов показывает что это именно технический специалист, какой-никакой.Да, именно "скроить" он может.
И он действительно "какой-никакой".Только видимо вы даже этого не можете, поэтому он вам и кажется таким крутым.
> Гуманитарии по природе своей не способны на этот стиль мышления.
Ну почему же, гуманитарии на это вполне способны. И даже на большее.
Просто некоторые гуманитарии не хотят соглашаться, что они гуманитарии, и считают, что как будто гуманитарии - это исключительно те, кто вообще даже "скроить" не может.На самом деле гуманитарии отличаются не тем, что они даже "скроить" не могут.
А тем, что они упорно применяют технические средства не по назначению.
И тем, что у них в технических системах, благодаря их "кройке и шитью", постоянно возникают технические проблемы, решить которые им уже их "кройка" не помогает, и они не знают что делать.Из-за этого они постоянно комплексуют, и пытаются на словах продемонстрировать свои якобы технические познания. Хотя бы в виде попыток разговаривать на языке программирования. Или коверкания нормальной человеческой речи, в попытках придать дополнительный эмоциональный окрас. Ведь мир эмоций им ближе, чем мир техники, хотя они упорно пытаются это опровергать.
Хотя большинство гуманитариев - это вполне достойные люди. Они знают, кто они есть, что они ничуть не хуже других. И они занимаются достойно своим делом в своих гуманитарных областях. И эти гуманитарные области нужны людям не меньше, чем технические. И точно так же техники в этих областях были бы не на своем месте.
Здесь речь идет, не о них. А о тех "исключительных" особах, которые упорно лезут не в свое дело и пытаются казаться, кем они на самом деле не являются.
> Вы немного не угадали. Он тут тусуется и троллит таких как вы.
> При том судя наблюдаемой картине - довольно успешно. Это раз.
> Вам не кажется что два фэйла в 1 сообщении - многовато? :)Мне кажется, что он очень обрадуется, что у него есть такие защитники, как вы.
И что у него именно такая аудитория поклонников, благодаря тому, чем именно он тут занимается, и кого именно он тут пытается троллить. И кто именно и кому выставляет "фэйлы", а кому "успехи".
> Хотя большинство гуманитариев - это вполне достойные люди.К сожалению, это не так:(
Простейшая статистика говорит, что большинство гуманитариев - это экономисты и юристы.
Первые - обычные мошенники - о их "достойности" говорит состояние сегодняшней мирововй экономики.
О вторых и говорить нЕчего - паразиты на теле общества.
> Простейшая статистика говорит, что большинство гуманитариев - это экономисты и юристы.
> Первые - обычные мошенники - о их "достойности" говорит состояние сегодняшней мирововй экономики.
> О вторых и говорить нЕчего - паразиты на теле общества.Это полное невежество.
В современном цивилизованном обществе уже давно принято знать хотя бы азы экономики и юруспруденции.
(Так же как и азы компьютерной грамотности.)
Вы просто видимо все еще живете в Советском Союзе, в лучшем случае - в 90х гг. Когда так рассуждать было очень модно.Ну а то что вы к гуманитариям забыли отнести деятелей культуры, это только еще больше ваше невежество подтверждает.
В предыдущем посте речь шла о людях, которые занимаются не своим делом.
А стричь под одну гребенку людей только на основе их рода деятельности - это следствие исключительно узости кругозора. Точно так же некоторые люди, которые ничего не понимают в ИТ, называют ИТшников бездельниками и сумасшедшими (сам неоднократно слышал и читал).
> В современном цивилизованном обществе уже давно принято знать хотя бы азы экономики
> и юруспруденции.«знать» != «работать в этом». я, положим, теоретически знаю, как зубы вырывать. это не значит, что я дантист.
> Ну а то что вы к гуманитариям забыли отнести деятелей культуры
> деятелей культурырукалицо.тифф
действительно, после такого ещё больше хочется, чтобы гуманитариев было как можно меньше.
> «знать» != «работать в этом». я, положим, теоретически знаю, как зубы вырывать. это не значит, что я дантист.Это у вас эмоции, а не мышление.
При чем здесь "работа", если речь шла о "знании азов".К тому же, вы даже не удосужились разобраться, в каком контексте шла речь о "знании азов" в цивилизованном обществе.
А именно, ранее кое-кем все без исключения экономисты и юристы были названы мошенниками и паразитами. Тогда бы из этого следовало бы, что все цивилизованные люди, знающие азы экономики и юриспруденции, тоже являются начинающими мошенниками и паразитами.
Но вы, судя по всему, тоже считаете, что цивилизованному человеку не нужно знать вышеуказанных "азов".
А вот какое к этому имеют отношение основы стоматологии?
В данном контексте стоматология никак ни эквивалентна экономике и юриспруденции, чтобы приводить такие аналогии, какие привели вы. Так что это все у вас лишь эмоции.>> Ну а то что вы к гуманитариям забыли отнести деятелей культуры деятелей культуры
>
> рукалицо.тифф
> действительно, после такого ещё больше хочется, чтобы гуманитариев было как можно меньше.Тогда это уже дискриминация.
Хотя разговор в начале был всего лишь о людях, которые занимаются не своим делом.
А вы тоже решили перевести на всех без исключения гуманитариев.
Кроме того, вы видимо, автоматически считая себя непременно "техником", презираете при этом культуру и искусство.Хотя, с учетом вашей чрезмерной эмоциональности, препятствующей осознанному мышлению, по классификации, упомянутой в посте выше, вы очень даже претендуете на гуманитария, который стесняется своей гуманитарной сути, и ненавидит всех других гуманитариев, ему же подобных.
И ненавидите вы их в независимости от того, своим они делом занимаются или нет, а лишь на основании рода их деятельности.
Этим самым вы лишь уподобляетесь тем людям, кто точно так же ненавидит техников и ИТшников в частности.
> А именно, ранее кое-кем все без исключения экономисты и юристы были названы
> мошенниками и паразитами. Тогда бы из этого следовало бы, что все
> цивилизованные люди, знающие азы экономики и юриспруденции, тоже являются начинающими
> мошенниками и паразитами.дальше, в принципе, говорить не о чем. это псевдологика типа «если человек знает методы обжуливания, то он начинающий жулик».
>> А именно, ранее кое-кем все без исключения экономисты и юристы были названы мошенниками и паразитами. Тогда бы из этого следовало бы, что все цивилизованные люди, знающие азы экономики и юриспруденции, тоже являются начинающими мошенниками и паразитами.
>
> дальше, в принципе, говорить не о чем. это псевдологика типа «если человек знает методы обжуливания, то он начинающий жулик».Вы считаете, что эта очередная ваша аналогия уместна?
Как и ваша прошлая аналогия про дантиста.Похоже у вас проблемы еще и с мышлением по аналогиям. Вы аналогии приводите совершенно наобум.
Что по-вашему типа "если обжуливание, то жулик"? К чему вы этот "тип" прикладываете?
Вы даже не потрудились это указать.Это по-прежнему ваши эмоции.
> Это полное невежество. В современном цивилизованном обществе уже давно принято знать хотя бы азы экономики и юруспруденции.Мало ли что принято, особенно в так называемом современном цивилизованном обществе.
Это не полезнее и не научнее чем знать азы православия или ислама или астрологии. К тому же известно что знание глупостей более распространено в ширнармассах, чем чего нибудь правильного и полезного.
>> Это полное невежество. В современном цивилизованном обществе уже давно принято знать хотя бы азы экономики и юруспруденции.
>
> Мало ли что принято, особенно в так называемом современном цивилизованном обществе.Согласен, здесь правильнее было говорить не о "принято", а именно о полезности.
А то что вы уперлись в узкие рамки своей профессиональной деятельности (если она у вас конечно вообще есть) - это еще не значит, что вы от этого стали умнее, и что вы можете самостоятельно применять с пользой результаты хотя бы собственной деятельности. Без помощи экономистов и юристов, которым, прямо или косвенно, вы продали себя с потрохами на наименее выгодных для себя условиях. И не потому что они такие плохие, а исключительно по причине вашей безграмотности.
Потому что знание азов экономики и юриспруденции позволяет понимать основы устройства современного общества. И даже если вам устройство окружающего вас общества не нравится, крайне полезно хотя бы приблизительно понимать, что вокруг вас происходит.
А иначе не удивительно, что подобные вам невежды постоянно чувствуют себя лохами, а те кто разбираются в устройстве общества, кажутся им мошенниками.
О том и была речь.> Это не полезнее и не научнее чем знать азы православия или ислама или астрологии. К тому же известно что знание глупостей более распространено в ширнармассах, чем чего нибудь правильного и полезного.
Здесь то же самое, если вы считаете все это бесполезным для лично вас, это еще не означает, что это действительно бесполезно.
> Простейшая статистика говорит, что большинство гуманитариев - это экономисты и юристы.Да, и еще к сказанному выше.
Это большая ошибка вообще безусловно относить экономистов и юристов к гуманитариям.
А то что экономика и юриспруденция - это якобы исключительно гуманитарные области - это всего лишь стереотип.Экономика и юриспруденция - это скорее "на стыке". И там активно применяются математика и логика.
Гуманитарные области - это все-таки прежде всего культура и искусство.
Очень многие техники с успехом освоили в последствии экономику и юриспруденцию, особенно когда начинали заниматься собственным бизнесом (поскольку работа по найму в технических направлениях меньше мотивирует для освоения экономики и юриспруденции).
А вот гуманитариям, которые начинали с экономики и юриспруденции, и даже бизнеса, очень трудно бывает освоить технические направления. Да, такой момент присутствует. Это отчетливо видно сейчас, когда остро встает вопрос об автоматизации предприятий. И когда "бумажные" технологии и личные связи часто уже не спасают.
>> Смотря что именно вы понимаете под развитием.
>> Просто увеличение количества разных функций и разрастание кода?
>> Вы правы, для этого в gcc нет никаких помех.
> А ччо, на докторе Доббе пишут, что в LLVM "количества разных функций и разрастание кода" __уменьшаются__ ??! Точно, надо читать.Скорее всего в llvm тоже не уменьшаются.
Только вопрос был в том, что именно считать развитием.Прежде чем на что-то отвечать, бывает полезно читать весь текст, а не только последнюю фразу.
сила LLVM в модульности и одно это рано или поздно уделает gcc, если gcc не пойдет тем же путем. даешь аналог LLVM под GPL3!
> сила LLVM в модульности и одно это рано или поздно уделает gcc,
> если gcc не пойдет тем же путем. даешь аналог LLVM под
> GPL3!c 4.5 в gcc есть модули.
первая картинка ничем не отличается от работы gcc, только у gcc intermediate представление это gimple(архитектуро-независимый), а у llvm арзитектурозависимый bitcode.
>c 4.5 в gcc есть модули.может и есть, но LLVM это и есть модули. вообщем проблему как то понимают даже разработчики gcc не зря недавние разговоры о его преобразовании хоть и больно фантастическими они выглядят.
имхо разработчикам gcc нужно брать лучшее из gcc и лепить что то типа LLVM только под GPL3 лучше и имя при этом сменить чтобы все понимали что это новый модульный и расширяемый компилятор-оптимизатор-кодогенератор
парсер-оптимизатор-кодогенератор
Да-да-да, совсем ничем не отличается. Только почему-то для LLVM уже с десяток фронтендов сделали, а для GCC всего 4 за всю его жизнь. Видимо какие-то отличия в модульности все-таки есть. Про проблемы модельности в статье, кстати, написано. Тут вообще кто-нибудь их читает или все сразу в комменты лезут разводить холивор на тему "LLVM-vs-GCC"?
> почему-то для LLVM уже с десяток фронтендов сделали, а для GCC всего 4 за всю его жизньЧто, правда? А ну-ка давайте посчитаем: C, C++, Objective C, Fortran, Java, Ada, Go. Это еще только основные фронтенды, и их уже шесть. А еще есть GNU Pascal Compiler, Mercury, gdc (фронтенд для языка D), GHDL (фронтенд для VHDL), PL/1, GCC Unified Parallel C, Modula-2 и даже COBOL. Это уже дюжина.
> Это еще только основные фронтенды, и их уже семь.…
> Это уже чортова дюжина.Fixed. Арифметика такая сложная…
> Это уже полтора десятка.Fixed снова. Не мой сегодня день…
> Fixed снова. Не мой сегодня день…Зато GCC явно зачет: для него столько фронтэндов что вы обсчитались даже :)
>> почему-то для LLVM уже с десяток фронтендов сделали, а для GCC всего 4 за всю его жизнь
> Что, правда? А ну-ка давайте посчитаем: JavaФигня какая. Где же тогда шустрые проги перекомпилированные с гадкой jvm в настоящие бинарники замечательным gcj? Вот и с большей частью остального так - для галочки, а не для работы.
> Фигня какая. Где же тогда шустрые проги перекомпилированные с гадкой jvm в
> настоящие бинарники замечательным gcj?а никому это не надо. жаба — крап.
> Вот и с большей частью остального так — для галочки, а не для работы.
дададада. а ещё солнца и луны нет, это всё иллюзии. для галочки.
> а для GCC всего 4 за всю его жизньну вот не силён ты в теме — зачем тогда Вещать? тебя потом будут носом тыкать в твою ерунду, и тебе будет стыдно.
> потом будут носом тыкать в твою ерунду, и тебе будет стыдно.Более того, теперь все могут видеть что Алексей Королев из г. Москва, которому 32 года - ламер. FAIL.
> сила LLVM в модульностиНе только. Ещё в том, что он фактически x86-only и C-only
> Не только. Ещё в том, что он фактически x86-only и C-onlyС какой это стати? Ничего подобного.
>> Не только. Ещё в том, что он фактически x86-only и C-only
> С какой это стати? Ничего подобного.Очень аргументировано:)
>>> Не только. Ещё в том, что он фактически x86-only и C-only
>> С какой это стати? Ничего подобного.
> Очень аргументировано:)Ничуть не меньше вашего :)
> С какой это стати? Ничего подобного.Да, конечно, только тут недавно были разборы полетов - для ARM он конечно код генерит. Но мало того что с прорвой багов, так еще и просто дико неоптимальный. Ну это яппл наверное еще кой-как допинает. А вот остальные архитектуры япплу никуда не вперлись...
ээ ну да конечно. гцц когдато тоже был только для ibm pc чтоли оно называлось? а потом портировали. только вот ллвм это не компилятор. и фактически портировать его никуда не надо надо написать к нему бэкэнд под архитектуру и все фронтенды-компиляторы языков заработают автоматом.ЗЫ все почеемуто путают LLVM с Clang/LLVM а кланг это ведь всеголишь C/C++ компилятор в LLVM код
> написать к нему бэкэнд под архитектуру и все фронтенды-компиляторы языков заработают автоматом.В этом и состоит проблема - никто не собирается писать к нему бэкенды
> ээ ну да конечно. гцц когдато тоже был только для ibm pc
> чтоли оно называлось? а потом портировали.вообще-то gcc как раз *портировали на x86*. но Иксперты как обычно ни разу не в курсе.
> вообще-то gcc как раз *портировали на x86*.Капитан эпичен :)
Перестаньте пороть чушь и прочтите, наконец, статью.
>> сила LLVM в модульности
> Не только. Ещё в том, что он фактически x86-only и C-onlyнет.
> нет.Теоретически - нет. Практически... практически сие пиляет эппл. Ну и им кроме x86 и может быть ARM ничего и не надо больше.
>>> сила LLVM в модульности
>> Не только. Ещё в том, что он фактически x86-only и C-only
> нет.Не "нет", а ДА, троллишка
ты бы перед тем, как писать глупости, погонял clang и clang++. впрочем, кому я это предлагаю… Анонимные Иксперты не опускаются до таких частностей.
кагбэ gcc вполне себе модульный. но ты же если когда его исходники и открывал, то не чтобы разбираться, а чтобы перед пацанами пальцы потом гнуть.
> а чтобы перед пацанами пальцы потом гнуть.А бсдшники что-то еще умеют? По-моему пальцы гнут они намного больше чем все остальное вместе взятое.
> Может хоть после этого прекратят чушь пороть о том, что архитектура гцц не позволяет ему развиваться.позволяет развиваться, но не позволяет встраивать в другие программы и проекты
там настолько обильно напирают на этот факт что это уже смешно обсуждать тут - LLVM модульный библиотечный и отсюда тонны преимуществ
>> Может хоть после этого прекратят чушь пороть о том, что архитектура гцц не позволяет ему развиваться.
> позволяет развиваться, но не позволяет встраивать в другие программы и проектыВНИЗАПНА! может, это потому, что такой цели при создании gcc и не ставилось?
> ВНИЗАПНА! может, это потому, что такой цели при создании gcc и не ставилось?Эх, Кэп, боюсь что сложновато тебе будет объяснять дикарям принцип действия микроволновки...
ну дык… призвание такое, что уж тут поделать…
> ну дык… призвание такое, что уж тут поделать…Забавно наблюдать как дикари типа изена грозятся научить читать и все-так прочитать этот чертов мануал :)
> Отлично. Почитаем.Тебе это не поможет.
На мой взгляд, самая большая беда gcc - отсутствие нормальной оптимизации. Нет, он там конечно что-то оптимизирует, но мало.
Например, 7zip собранный gcc работает (бенчмарк) чуть ли не на 30% медленнее чем тот же 7zip собранный icc или msc под виндой.
> На мой взгляд, самая большая беда gcc - отсутствие нормальной оптимизации. Нет,
> он там конечно что-то оптимизирует, но мало.
> Например, 7zip собранный gcc работает (бенчмарк) чуть ли не на 30% медленнее
> чем тот же 7zip собранный icc или msc под виндой.man gcc
и руки ровняй, тролль
Сам подумал, что сказал?
То есть, по-твоему, авторы 7zip специально криво собирают его clang'ом и gcc? :DКонечно, есть очень небольшая вероятность того, что те кто писал мейкфайлы p7zip совсем не знают о том как работать с gcc. Предлагаю тебе исправить сию проблему и выложить сюда "правильный" мейкфайл, от пряморукого разработчика. Сравним, так сказать, прямоту рук. Можешь даже закоммитить им на sourceforge, опенсорс же!
>те кто писал мейкфайлы p7zip совсем не знают о том как работать с gccах ну да, от мекфайла оптимизация зависит ну-ну...
А ключи компиляции из астрала берутся?
> А ключи компиляции из астрала берутся?Почти. Из ./configure-а. Никакой:D связи с make.
У него нету сего скрипта.
> Сам подумал, что сказал?
> То есть, по-твоему, авторы 7zip специально криво собирают его clang'ом и gcc?
> :D-O3 -march=native -mtune=native как минимум. но сборка p7z этого не делает по многим причинам. а ты просто обезьяна, запускающая make.
1) По каким это причинам?
2) Результаты конечно же мы увидем?
> 1) По каким это причинам?пойди и спроси у автора мэйкфайлов. получишь информацию из первых рук, а не от анонимуса с опеннета.
> 2) Результаты конечно же мы увидем?
результаты чего? ты мне предлагаешь покупать и куда-то ставить винду, туда ставить m$vc, заниматься со всем этим сексом — и всё только для того, чтобы доказать кому-то то, что лично меня совершенно не волнует? такую работу бесплатно я не делаю.
> пойди и спроси у автора мэйкфайлов. получишь информацию из первых рук, а не от анонимуса с опеннета.Другого ответа и не ожидал.
> результаты чего? ты мне предлагаешь покупать и куда-то ставить винду, туда ставить m$vc, заниматься со всем этим сексом — и всё только для того, чтобы доказать кому-то то, что лично меня совершенно не волнует?
Отмазка так себе.
1) Ты скромно упустил "icc".
2) Мотивации больше чем отбавляй: хотя бы для комьюнити организовать труЪ быстрый 7z.
> Другого ответа и не ожидал.ИЧСХ, он опять выступил Капитаном.
> Отмазка так себе.
> 1) Ты скромно упустил "icc".А это вообще неведомая хрень. Под AMDшные процессоры например оно генерит лютейший г-нокод и там пожалуй gcc его еще и обставит. С таким подходом да еще и проприетарностью его область применимости сужается до размеров кошкиного зада.
> 2) Мотивации больше чем отбавляй: хотя бы для комьюнити организовать труЪ быстрый 7z.
А комьюнити бьется в истерике от недостачи скорости 7z? Что-то не вижу толп бьющихся в истерике :)
> Другого ответа и не ожидал.конечно. а если бы я начал говорить, почему, ты бы радостно сказал "ага-ага, ты точно лучше автора знаешь!"
> Отмазка так себе.
это не "отмазка", а факты.
> 1) Ты скромно упустил "icc".
не любитель блобов.
> 2) Мотивации больше чем отбавляй: хотя бы для комьюнити организовать труЪ быстрый
> 7z.тебе надо? ты и делай. меня устраивает та скорость, что есть.
> На мой взгляд, самая большая беда gcc - отсутствие нормальной оптимизации.Я думаю, не только из-за неё стали переписывать ГЦЦ. Это вообще г-но мамонта и давно просится на покой, так что полностью поддерживаю инициативу по развитию llvm. И что забавно, BSD-шникам ничего в танце не мешает - они просто делают свою работу и уже практически водрузились на clang. И только пингвиноиды всё ещё ищут отмазки, чтобы не переходить...
>> На мой взгляд, самая большая беда gcc — отсутствие нормальной оптимизации.
> Я думаю, не только из-за неё стали переписывать ГЦЦ.…а ещё и из-за того, что огрызок cannot into GPLv3.
> …а ещё и из-за того, что огрызок cannot into GPLv3.Конечно, они ж тивоизаторы. Какой же это будет эаппл если не будет зажимать сектантские части тела в пыточные тиски?!
> Я думаю, не только из-за неё стали переписывать ГЦЦ. Это вообще г-но
> мамонта и давно просится на покой,Мнение (г@гно)кодеров на дотнете, пишущих "типа сервер" imap, pop и что там еще одной левой несомненно очень важно для нас. Но что-то мне подсказывает что ваш любимый дотнет подохнет быстрее gcc :)
Сейчас поддержка новой эвалборды/SoC гццом - просто хороший тон. Почему? А потому что пингвин там всем нужен, например.
>> На мой взгляд, самая большая беда gcc - отсутствие нормальной оптимизации.
> И что забавно, BSD-шникам ничего в танце не
> мешает - они просто делают свою работу и уже практически водрузились
> на clang.Не "BSD-шникам", а "FreeBSD-шникам". Последние не озабочиваются чем-то кроме x86 (А с C-Lang'ом им об этом ещё долго (или никогда) даже мечтать не придётся)
> На мой взгляд, самая большая беда gcc - отсутствие нормальной оптимизации.O_O Вообще-то тамошний оптимизатор делает LLVM на раз. Местами - в разы (на фоне которых 30% не так уж дурно смотрятся, btw). И да, гнутый си помнится у любителей AVR с easyelectronics'а сумел оттранслировать класс для дергания лапками в считанные асмовые команды. А llvm для начала вообще не поддерживает этот набор команд, так что даже и сравнить не выйдет...
Эта статья уже давно была доступна в книге "The Architecture of Open Source Applications" vol.1
http://www.aosabook.org/en/llvm.html
Их статья вот: Last-Modified: Wed, 09 May 2012 18:14:00 GMT
Впрочем, неважно - от перепечатки статьи заново смысла нет.
Я так и не понял, чем GCC AST хуже LLVM bytecode? Лицензией?
LLVM IR is a Complete Code RepresentationIn particular, LLVM IR is both well specified and the only interface to the optimizer. This property means that all you need to know to write a front end for LLVM is what LLVM IR is, how it works, and the invariants it expects. Since LLVM IR has a first-class textual form, it is both possible and reasonable to build a front end that outputs LLVM IR as text, then uses UNIX pipes to send it through the optimizer sequence and code generator of your choice.
It might be surprising, but this is actually a pretty novel property to LLVM and one of the major reasons for its success in a broad range of different applications. Even the widely successful and relatively well-architected GCC compiler does not have this property: its GIMPLE mid-level representation is not a self-contained representation. As a simple example, when the GCC code generator goes to emit DWARF debug information, it reaches back and walks the source level "tree" form. GIMPLE itself uses a "tuple" representation for the operations in the code, but (at least as of GCC 4.5) still represents operands as references back to the source level tree form.
The implications of this are that front-end authors need to know and produce GCC's tree data structures as well as GIMPLE to write a GCC front end. The GCC back end has similar problems, so they also need to know bits and pieces of how the RTL back end works as well. Finally, GCC doesn't have a way to dump out "everything representing my code," or a way to read and write GIMPLE (and the related data structures that form the representation of the code) in text form. The result is that it is relatively hard to experiment with GCC, and therefore it has relatively few front ends.
По-моему, не фатально для GCC.