<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / Комментарии к посту «Обзор LLVM» в блоге «Программирование»</title>
	<link>http://habrahabr.ru/rss/post/47878/</link>
	<description><![CDATA[Новые комментарии к посту «Обзор LLVM» в блоге «Программирование»]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 15:02:57 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	

	
	
	
	
	
		
	
		<item>
			<title>28.12.2008 09:21:17 khayrov</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1235198</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1235198</link>
			<description><![CDATA[Едва ли я смогу рассказать про GC в LLVM лучше, чем в <a href="http://llvm.org/docs/GarbageCollection.html">документации</a>, потому что сам пока с ним не экспериментировал (но буду :-).<br/>
Насчёт исключений: invoke позволяет вызвать функцию, задав две точки продолжения: нормальную и ту, куда попадёт управление, если где-то в цепочке вызовов встретится unwind. Всё остальное — забота рантайма. Помимо документации здесь бывает полезно посмотреть на вывод llvm-g++ --emit-llvm — во что он превращает те или иные конструкции.]]></description>
			<pubDate>Sun, 28 Dec 2008 09:21:17 GMT</pubDate>
			<author>khayrov</author>
		</item>
	

	
		<item>
			<title>28.12.2008 09:03:53 khayrov</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1235170</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1235170</link>
			<description><![CDATA[Да, вы правы, стоит переформулировать, что LLVM умеет в некоторых случаях преобразовывать рекурсию в хвостовую за счёт ввода переменной-аккумулятора, так же как это делают вручную в ФЯП.]]></description>
			<pubDate>Sun, 28 Dec 2008 09:03:53 GMT</pubDate>
			<author>khayrov</author>
		</item>
	

	
		<item>
			<title>28.12.2008 08:57:37 middle</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1235155</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1235155</link>
			<description><![CDATA[Да, а за статью спасибо :)]]></description>
			<pubDate>Sun, 28 Dec 2008 08:57:37 GMT</pubDate>
			<author>middle</author>
		</item>
	

	
		<item>
			<title>28.12.2008 08:57:00 middle</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1235154</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1235154</link>
			<description><![CDATA[В функции factorial, приведённой в качестве примера хвостовой рекурсии, рекурсия вовсе не хвостовая. Конечно, хорошо, что LLVM умеет преобразовывать такую рекурсию в цикл (если это действительно так), но получается, что LLVM может оптимизировать не только хвостовую рекурсию, но и другие частные случаи общей рекурсии.]]></description>
			<pubDate>Sun, 28 Dec 2008 08:57:00 GMT</pubDate>
			<author>middle</author>
		</item>
	

	
		<item>
			<title>27.12.2008 16:38:06 Cha0S</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1234081</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1234081</link>
			<description><![CDATA[Было бы интересно почитать про GC и exception handling… :)]]></description>
			<pubDate>Sat, 27 Dec 2008 16:38:06 GMT</pubDate>
			<author>Cha0S</author>
		</item>
	

	
		<item>
			<title>27.12.2008 10:48:02 lostdj</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1233469</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1233469</link>
			<description><![CDATA[Ясно, спасибо.<br/>
<br/>
&gt;&gt;Instruction cache задействуется в любом случае, какие тут нужны дополнительные телодвижения?<br/>
Понятия не имею, поэтому и спросил.]]></description>
			<pubDate>Sat, 27 Dec 2008 10:48:02 GMT</pubDate>
			<author>lostdj</author>
		</item>
	

	
		<item>
			<title>27.12.2008 10:05:44 khayrov</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1233403</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1233403</link>
			<description><![CDATA[LLVM берёт память под JIT не в куче процесса, а запрашивает у ОС страницы (mmap/VirtualAlloc) с правам read, write, execute и управляет этим куском памяти собственным менеджером.<br/>
Instruction cache задействуется в любом случае, какие тут нужны дополнительные телодвижения?]]></description>
			<pubDate>Sat, 27 Dec 2008 10:05:44 GMT</pubDate>
			<author>khayrov</author>
		</item>
	

	
		<item>
			<title>27.12.2008 09:20:19 lostdj</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1233347</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1233347</link>
			<description><![CDATA[Такой вопрос, не касающийся исключительно LLVM (хотя и в большей степени), про JIT: сгенерированные нативные машинные инструкции отправляются в хип процесса, управление процессором передаётся по адресу этих инструкций, но что об этом знает сам процессор? ОС?<br/>
Взять тот же кэш процессора — он как-то задействуется?<br/>
<br/>
Теории по JIT'у навалом, но это либо радостные возгласы, либо констатация фактов: «теперь у нас есть такая крутая штука», более никаких подробностей. Да, есть исходники, но их разбор шибко тяжкий труд.]]></description>
			<pubDate>Sat, 27 Dec 2008 09:20:19 GMT</pubDate>
			<author>lostdj</author>
		</item>
	

	
		<item>
			<title>27.12.2008 08:46:17 ozonebaby</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1233304</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1233304</link>
			<description><![CDATA[Также энтузиастами ведется портирование фронт-енда языка программирования D (если кто не знает — это современный системный язык программирования, разрабатывается как замена С++) на LLVM, и она близка к завершению(лучше всего поддерживается linux X86, остальные платформы — немного отстают. Проект называется ldc, адрес <a href="http://www.dsource.org/projects/ldc/">www.dsource.org/projects/ldc/</a>]]></description>
			<pubDate>Sat, 27 Dec 2008 08:46:17 GMT</pubDate>
			<author>ozonebaby</author>
		</item>
	

	
		<item>
			<title>27.12.2008 06:20:39 nuit</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1233141</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1233141</link>
			<description><![CDATA[И майкрософт не отстаёт ;)<br/>
<a href="http://connect.microsoft.com/Phoenix">connect.microsoft.com/Phoenix</a>]]></description>
			<pubDate>Sat, 27 Dec 2008 06:20:39 GMT</pubDate>
			<author>nuit</author>
		</item>
	

	
		<item>
			<title>27.12.2008 02:19:44 IPv6</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1233038</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1233038</link>
			<description><![CDATA[Опечатка, ОШЕ — это JIT :)]]></description>
			<pubDate>Sat, 27 Dec 2008 02:19:44 GMT</pubDate>
			<author>IPv6</author>
		</item>
	

	
		<item>
			<title>27.12.2008 02:19:10 IPv6</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1233037</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1233037</link>
			<description><![CDATA[Спасибо за статью!!! Очень интересно<br/>
от себя могу добавить что именно через LLVM идет компиляция C/C++ в AS3 в адобовской алхимии и там действительно все очень поразительно шоколадно получается.<br/>
<br/>
В общем штука офигительно перспективная. И есть надежда что адобе продвинет ее достаточно далеко. Дажешь ОШЕ любому скриптовому языку за 5 копеек! :)]]></description>
			<pubDate>Sat, 27 Dec 2008 02:19:10 GMT</pubDate>
			<author>IPv6</author>
		</item>
	

	
		<item>
			<title>26.12.2008 22:15:00 khayrov</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232782</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232782</link>
			<description><![CDATA[Ну раз такое дело, двинул пока в ЯП :-)]]></description>
			<pubDate>Fri, 26 Dec 2008 22:15:00 GMT</pubDate>
			<author>khayrov</author>
		</item>
	

	
		<item>
			<title>26.12.2008 22:09:19 khayrov</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232773</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232773</link>
			<description><![CDATA[llvm-gcc может порождать файлы с IR, которые можно скомпилировать на целевой платформе при наличии соответствующей инфраструктуры. Но едва ли это основной сценарий использования: всё-таки к программам на C/C++ неприлично тащить многомегабайтный компилятор.<br/>
llvm-gcc — это мощнейший стресс-тест для LLVM и способ интеграции существующего кода на C/C++. Просто как компилятор C++ особых преимуществ перед GCC он не имеет.<br/>
С помощью LLVM можно оптимизировать программы не только при развёртывании, но и в рантайме — оптимизация «горячих» участков кода. Это особенно актуально для динамических языков.]]></description>
			<pubDate>Fri, 26 Dec 2008 22:09:19 GMT</pubDate>
			<author>khayrov</author>
		</item>
	

	
		<item>
			<title>26.12.2008 22:02:12 alex_blank</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232760</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232760</link>
			<description><![CDATA[<i>&gt;&gt; Не придумал в какой.</i><br/>
<br/>
просто топики в личных блогах на главную не попадают]]></description>
			<pubDate>Fri, 26 Dec 2008 22:02:12 GMT</pubDate>
			<author>alex_blank</author>
		</item>
	

	
		<item>
			<title>26.12.2008 21:59:29 khayrov</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232758</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232758</link>
			<description><![CDATA[<em>&gt; мне вот интересно, почему Mono не на LLVM</em><br/>
Судя по всему, когда Mono начинал развиваться, возможности LLVM были неадекватными: <a href="http://lambda-the-ultimate.org/node/141#comment-916">комент на LtU</a> разработчика Mono.<br/>
Сейчас идёт работа над реализацией CLR и JVM поверх LLVM: <a href="http://vmkit.llvm.org/">VMKit</a><br/>
<em>&gt; или LLVM непригодно для JIT-компилятора?</em><br/>
Ещё как пригодно, возможность заложена изначально.<br/>
<em>&gt; а что не в тематическом блоге?</em><br/>
Не придумал в какой.]]></description>
			<pubDate>Fri, 26 Dec 2008 21:59:29 GMT</pubDate>
			<author>khayrov</author>
		</item>
	

	
		<item>
			<title>26.12.2008 21:48:06 alex_blank</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232740</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232740</link>
			<description><![CDATA[мне вот интересно, почему Mono не на LLVM<br/>
<br/>
или LLVM непригодно для JIT-компилятора?<br/>
<br/>
<font color="grey">P.S. а что не в тематическом блоге?</font>]]></description>
			<pubDate>Fri, 26 Dec 2008 21:48:06 GMT</pubDate>
			<author>alex_blank</author>
		</item>
	

	
		<item>
			<title>26.12.2008 18:37:06 spanasik</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232338</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232338</link>
			<description><![CDATA[Спасибо!<br/>
<br/>
То есть, в трёх словах, конечный пользователь имеет возможность код на С/С++ компилить сразу под несколько архитектур с оптимизацией, которая учитывает особенности этих архитектур. Я правильно всё понял? <br/>
<br/>
Сорри, что много вопросов — вещь интересная, копать некогда :-)]]></description>
			<pubDate>Fri, 26 Dec 2008 18:37:06 GMT</pubDate>
			<author>spanasik</author>
		</item>
	

	
		<item>
			<title>26.12.2008 18:30:26 khayrov</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232319</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232319</link>
			<description><![CDATA[Ну вот например, тесты по недоброй славы <a href="http://shootout.alioth.debian.org/">shootout</a>: <a href="http://leonardo-m.livejournal.com/73732.html">leonardo-m.livejournal.com/73732.html</a><br/>
В среднем одинаково с GCC 4.<br/>
В их собственной системе «ночного» тестирования есть тесты из SPEC CPU, но самих результатов SPEC я не видел.]]></description>
			<pubDate>Fri, 26 Dec 2008 18:30:26 GMT</pubDate>
			<author>khayrov</author>
		</item>
	

	
		<item>
			<title>26.12.2008 18:22:06 spanasik</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/programming/47878/#comment_1232292</guid>
			<link>http://habrahabr.ru/blogs/programming/47878/#comment_1232292</link>
			<description><![CDATA[Если сравнить с чистым gcc, какой прирост по скорости даёт использование этого бекэнда? Есть какие-то бенчи на эту тему? ]]></description>
			<pubDate>Fri, 26 Dec 2008 18:22:06 GMT</pubDate>
			<author>spanasik</author>
		</item>
	

	
</channel>
</rss>

