changeset 73:a3c5e73c970d

add mm
author kono
date Wed, 05 Mar 2014 08:58:40 +0900
parents 9943a04bf572
children d33e24fd01df
files crdocs/CbC on LLVM.mm
diffstat 1 files changed, 289 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/crdocs/CbC on LLVM.mm	Wed Mar 05 08:58:40 2014 +0900
@@ -0,0 +1,289 @@
+<map version="0.9.0">
+<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
+<node CREATED="1393414714263" ID="ID_1213398300" MODIFIED="1393414723681" TEXT="CbC on LLVM">
+<node CREATED="1393414727190" ID="ID_14805230" MODIFIED="1393414735224" POSITION="right" TEXT="Objective">
+<node CREATED="1393414737791" ID="ID_1232034940" MODIFIED="1393414740764" TEXT="CbC">
+<node CREATED="1393414742576" ID="ID_1355657283" MODIFIED="1393414750877" TEXT="code segment">
+<node CREATED="1393414754993" ID="ID_961896831" MODIFIED="1393414758878" TEXT="__code"/>
+</node>
+<node CREATED="1393414764666" ID="ID_298964714" MODIFIED="1393414778848" TEXT="transition">
+<node CREATED="1393414779916" ID="ID_1506049451" MODIFIED="1393414781703" TEXT="goto"/>
+</node>
+<node CREATED="1393414787748" ID="ID_261533085" MODIFIED="1393414799130" TEXT="goto with env">
+<node CREATED="1393414800806" ID="ID_450340511" MODIFIED="1393414807315" TEXT="return to C"/>
+</node>
+</node>
+<node CREATED="1393414821640" ID="ID_1346806042" MODIFIED="1393414829757" TEXT="Usage">
+<node CREATED="1393414831976" ID="ID_1482491772" MODIFIED="1393414842247" TEXT="state machine"/>
+<node CREATED="1393414843426" ID="ID_1728375841" MODIFIED="1393414852432" TEXT="pararell tasks">
+<node CREATED="1393414856276" ID="ID_1454022728" MODIFIED="1393414865481" TEXT="OpenCL"/>
+<node CREATED="1393414866627" ID="ID_1359059676" MODIFIED="1393414868481" TEXT="CUDA"/>
+<node CREATED="1393414868708" ID="ID_878995470" MODIFIED="1393414878242" TEXT="Cerium"/>
+<node CREATED="1393414952261" ID="ID_1604188406" MODIFIED="1393414956640" TEXT="FPGA"/>
+</node>
+<node CREATED="1393414891031" ID="ID_213882270" MODIFIED="1393414894788" TEXT="meta computation"/>
+<node CREATED="1393414931419" ID="ID_966590020" MODIFIED="1393414934880" TEXT="motivation">
+<node CREATED="1393414935523" ID="ID_1421761038" MODIFIED="1393414945209" TEXT="programming language for machine"/>
+</node>
+</node>
+<node CREATED="1393414968247" ID="ID_496022495" MODIFIED="1393414976300" TEXT="Implementation">
+<node CREATED="1393414977096" ID="ID_1820566282" MODIFIED="1393414993451" TEXT="Micro-C">
+<node CREATED="1393414994914" ID="ID_1885530134" MODIFIED="1393415003568" TEXT="one pass standalone compiler"/>
+</node>
+<node CREATED="1393415006802" ID="ID_808167516" MODIFIED="1393415008399" TEXT="GCC"/>
+<node CREATED="1393415015692" ID="ID_143960010" MODIFIED="1393415017216" TEXT="LLVM">
+<node CREATED="1393415019436" ID="ID_1061941500" MODIFIED="1393415023185" TEXT="new!!"/>
+</node>
+</node>
+</node>
+<node CREATED="1393415033662" ID="ID_192216161" MODIFIED="1393415037186" POSITION="right" TEXT="Why LLVM??">
+<node CREATED="1393415039598" ID="ID_1151114982" MODIFIED="1393415058997" TEXT="compiler framework"/>
+<node CREATED="1393415060968" ID="ID_1530122942" MODIFIED="1393415071478" TEXT="Apple supported">
+<node CREATED="1393415077490" ID="ID_568545640" MODIFIED="1393415080567" TEXT="Open source"/>
+<node CREATED="1393415224217" ID="ID_1882803708" MODIFIED="1393415230393" TEXT="OS X default compiler"/>
+</node>
+<node CREATED="1393415087594" ID="ID_961898794" MODIFIED="1393415093328" TEXT="C++ base"/>
+<node CREATED="1393415095596" ID="ID_797989903" MODIFIED="1393415115930" TEXT="AST generation"/>
+<node CREATED="1393415120087" ID="ID_447546050" MODIFIED="1393415128259" TEXT="IR">
+<node CREATED="1393415128663" ID="ID_859120469" MODIFIED="1393415134845" TEXT="intermidiate representation"/>
+</node>
+<node CREATED="1393415157589" ID="ID_1735201871" MODIFIED="1393415159047" TEXT="JIT">
+<node CREATED="1393415168027" ID="ID_1054564779" MODIFIED="1393415174976" TEXT="dynamic execution"/>
+<node CREATED="1393415182325" ID="ID_1413503218" MODIFIED="1393415192090" TEXT="dynamic compile"/>
+</node>
+</node>
+<node CREATED="1393416184003" ID="ID_751208109" MODIFIED="1393416187690" POSITION="right" TEXT="Result">
+<node CREATED="1393416189596" ID="ID_730724525" MODIFIED="1393416207660" TEXT="jmp instruction in assembler source"/>
+<node CREATED="1393416209206" ID="ID_605815160" MODIFIED="1393416226606" TEXT="compare with Micro-C"/>
+<node CREATED="1393416231104" ID="ID_1167903672" MODIFIED="1393416235071" TEXT="compare with GCC"/>
+<node CREATED="1393416242714" ID="ID_1125630850" MODIFIED="1393416245584" TEXT="noinline"/>
+</node>
+<node CREATED="1393416262436" ID="ID_436437526" MODIFIED="1393416264722" POSITION="right" TEXT="Future">
+<node CREATED="1393416265692" ID="ID_1735890348" MODIFIED="1393416273739" TEXT="data segment interface">
+<node CREATED="1393416335235" ID="ID_65747622" MODIFIED="1393416346481" TEXT="dual of code segment"/>
+<node CREATED="1393416347108" ID="ID_587695512" MODIFIED="1393416366853" TEXT="message pack"/>
+<node CREATED="1393416373279" ID="ID_1165407918" MODIFIED="1393416378126" TEXT="database"/>
+<node CREATED="1393416390281" ID="ID_510012071" MODIFIED="1393416401761" TEXT="temporal data segment"/>
+<node CREATED="1393416403210" ID="ID_177251882" MODIFIED="1393416412682" TEXT="persystent data segment"/>
+<node CREATED="1393416415243" ID="ID_1927791213" MODIFIED="1393416421747" TEXT="data flow computation"/>
+<node CREATED="1393416475802" ID="ID_327591894" MODIFIED="1393416481573" TEXT="basically C struct"/>
+</node>
+<node CREATED="1393416276341" ID="ID_1309191143" MODIFIED="1393416279244" TEXT="meta computation">
+<node CREATED="1393416533663" ID="ID_1718282513" MODIFIED="1393416545111" TEXT="scheduling "/>
+<node CREATED="1393416549168" ID="ID_1255269527" MODIFIED="1393416560833" TEXT="synchronization"/>
+<node CREATED="1393416561570" ID="ID_1063966372" MODIFIED="1393416570210" TEXT="memory protection"/>
+</node>
+<node CREATED="1393416283654" ID="ID_1030617841" MODIFIED="1393416297406" TEXT="dynamic rewriting of a jmp"/>
+<node CREATED="1393416318057" ID="ID_767598812" MODIFIED="1393416327753" TEXT="generating specialized code">
+<node CREATED="1393416651603" ID="ID_1936872917" MODIFIED="1393416654531" TEXT="by LLVM"/>
+</node>
+</node>
+<node CREATED="1393415877748" ID="ID_685840456" MODIFIED="1393415885130" POSITION="left" TEXT="structure of LLVM">
+<node CREATED="1393415891566" ID="ID_1814549443" MODIFIED="1393415895675" TEXT="clang">
+<node CREATED="1393415896022" ID="ID_1656713154" MODIFIED="1393415897764" TEXT="parser"/>
+<node CREATED="1393415898366" ID="ID_735510121" MODIFIED="1393415902076" TEXT="codegen"/>
+</node>
+<node CREATED="1393415905895" ID="ID_780486647" MODIFIED="1393415907605" TEXT="LLVM">
+<node CREATED="1393415908934" ID="ID_1907594054" MODIFIED="1393415925823" TEXT="Selection instruction "/>
+<node CREATED="1393415929097" ID="ID_506022965" MODIFIED="1393415936040" TEXT="optimizier">
+<node CREATED="1393415957772" ID="ID_221461015" MODIFIED="1393415964611" TEXT="passes">
+<node CREATED="1393415975438" ID="ID_743646492" MODIFIED="1393415980004" TEXT="CodeGenPrepare"/>
+<node CREATED="1393415964845" ID="ID_1419726726" MODIFIED="1393415968707" TEXT="TailCallElim"/>
+</node>
+</node>
+<node CREATED="1393415936994" ID="ID_1189383645" MODIFIED="1393415943184" TEXT="Code generator"/>
+</node>
+</node>
+<node CREATED="1393415255084" ID="ID_1255273744" MODIFIED="1393415345099" POSITION="left" TEXT="Implementation">
+<node CREATED="1393415462537" ID="ID_1012460054" MODIFIED="1393415470448" TEXT="basic strategy">
+<node CREATED="1393415472602" ID="ID_484481910" MODIFIED="1393415482097" TEXT="code segment as normal function"/>
+<node CREATED="1393415485468" ID="ID_1042900495" MODIFIED="1393415504659" TEXT="transition as forced tail call"/>
+<node CREATED="1393415518303" ID="ID_1865357667" MODIFIED="1393415530070" TEXT="nomodification on intermidiate code">
+<node CREATED="1393415532177" ID="ID_1877009195" MODIFIED="1393415546209" TEXT="do not modify optimizer part"/>
+</node>
+<node CREATED="1393415567244" ID="ID_512214482" MODIFIED="1393415592237" TEXT="goto with env as longjmp">
+<node CREATED="1393415598752" ID="ID_1050206315" MODIFIED="1393415607144" TEXT="GCC uses nested function"/>
+<node CREATED="1393415613281" ID="ID_1663927810" MODIFIED="1393415620857" TEXT="LLVM has no nested function"/>
+</node>
+</node>
+<node CREATED="1393415347894" ID="ID_28770432" MODIFIED="1393415350451" TEXT="parser">
+<node CREATED="1393415266645" ID="ID_951993899" MODIFIED="1393415283396" TEXT="code segment">
+<node CREATED="1393415284799" ID="ID_764459625" MODIFIED="1393415298631" TEXT="__code return type">
+<node CREATED="1393415302801" ID="ID_236035508" MODIFIED="1393415304446" TEXT="void"/>
+</node>
+</node>
+<node CREATED="1393415312026" ID="ID_1621189741" MODIFIED="1393415315007" TEXT="transition">
+<node CREATED="1393415315450" ID="ID_736316481" MODIFIED="1393415320935" TEXT="goto statement">
+<node CREATED="1393415322459" ID="ID_175709429" MODIFIED="1393415332993" TEXT="tail call"/>
+</node>
+</node>
+</node>
+<node CREATED="1393415368224" ID="ID_517402653" MODIFIED="1393415371502" TEXT="LLVM IR">
+<node CREATED="1393415373512" ID="ID_693847326" MODIFIED="1393415376430" TEXT="no modification"/>
+<node CREATED="1393415388666" ID="ID_1311715893" MODIFIED="1393415391368" TEXT="no longjmp"/>
+<node CREATED="1393415413716" ID="ID_1613264825" MODIFIED="1393415417306" TEXT="call flag">
+<node CREATED="1393415421541" ID="ID_1608008781" MODIFIED="1393415431244" TEXT="tail fastcc"/>
+</node>
+</node>
+<node CREATED="1393415627042" ID="ID_1257476113" MODIFIED="1393415632184" TEXT="code generator">
+<node CREATED="1393415637962" ID="ID_612555038" MODIFIED="1393415652834" TEXT="keep tail call elimination">
+<node CREATED="1393415656725" ID="ID_1961345681" MODIFIED="1393415846167" TEXT="enable to tailcallopt LangOption"/>
+<node CREATED="1393415679712" ID="ID_784535884" MODIFIED="1393415787328" TEXT="return statement immediatly follows call"/>
+<node CREATED="1393415692481" ID="ID_1629653521" MODIFIED="1393415708511" TEXT="calling convenstion">
+<node CREATED="1393415762376" ID="ID_1065699593" MODIFIED="1393415764534" TEXT="fastcc"/>
+</node>
+<node CREATED="1393415849865" ID="ID_931200842" MODIFIED="1393415866881" TEXT="enable to TailCallElim pass"/>
+</node>
+<node CREATED="1393415992520" ID="ID_1711082448" MODIFIED="1393415998718" TEXT="goto with env">
+<node CREATED="1393415999016" ID="ID_1012787705" MODIFIED="1393416024713" TEXT="include setjmp.h always"/>
+<node CREATED="1393416029172" ID="ID_1895175823" MODIFIED="1393416048388" TEXT="allocate jmp_buf">
+<node CREATED="1393416101011" ID="ID_1966590300" MODIFIED="1393416119091" TEXT="generate C struct"/>
+</node>
+<node CREATED="1393416055534" ID="ID_1096279693" MODIFIED="1393416059181" TEXT="insert setjmp"/>
+<node CREATED="1393416061799" ID="ID_178743765" MODIFIED="1393416073113" TEXT="generate longjmp code segment as return">
+<node CREATED="1393416123989" ID="ID_1856531908" MODIFIED="1393416131780" TEXT="generate unique name"/>
+</node>
+</node>
+</node>
+</node>
+<node CREATED="1393416671758" ID="ID_1340653074" MODIFIED="1393416673157" POSITION="left" TEXT="slides">
+<node CREATED="1393416863961" ID="ID_1693901399" MODIFIED="1393417814969" TEXT="introduce of CbC">
+<node CREATED="1393414737791" ID="ID_380706666" MODIFIED="1393417084781" TEXT="CbC">
+<node CREATED="1393414742576" ID="ID_1643290496" MODIFIED="1393414750877" TEXT="code segment">
+<node CREATED="1393414754993" ID="ID_230114117" MODIFIED="1393414758878" TEXT="__code"/>
+</node>
+<node CREATED="1393414764666" ID="ID_1197065414" MODIFIED="1393414778848" TEXT="transition">
+<node CREATED="1393414779916" ID="ID_787914818" MODIFIED="1393414781703" TEXT="goto"/>
+</node>
+<node CREATED="1393414787748" ID="ID_1204285148" MODIFIED="1393414799130" TEXT="goto with env">
+<node CREATED="1393414800806" ID="ID_1222521953" MODIFIED="1393414807315" TEXT="return to C"/>
+</node>
+</node>
+</node>
+<node CREATED="1393416872594" ID="ID_1330893602" MODIFIED="1393417955193" TEXT="What is CbC">
+<node CREATED="1393414821640" ID="ID_396781801" MODIFIED="1393414829757" TEXT="Usage">
+<node CREATED="1393414831976" ID="ID_456207902" MODIFIED="1393414842247" TEXT="state machine"/>
+<node CREATED="1393414843426" ID="ID_102862002" MODIFIED="1393417089181" TEXT="pararell tasks">
+<node CREATED="1393414856276" ID="ID_623095686" MODIFIED="1393414865481" TEXT="OpenCL"/>
+<node CREATED="1393414866627" ID="ID_8008785" MODIFIED="1393414868481" TEXT="CUDA"/>
+<node CREATED="1393414868708" ID="ID_162594865" MODIFIED="1393414878242" TEXT="Cerium"/>
+<node CREATED="1393414952261" ID="ID_142993477" MODIFIED="1393414956640" TEXT="FPGA"/>
+</node>
+<node CREATED="1393414891031" ID="ID_525611210" MODIFIED="1393414894788" TEXT="meta computation"/>
+<node CREATED="1393414931419" ID="ID_488599855" MODIFIED="1393414934880" TEXT="motivation">
+<node CREATED="1393414935523" ID="ID_1783768164" MODIFIED="1393414945209" TEXT="programming language for machine"/>
+</node>
+</node>
+</node>
+<node CREATED="1393416884379" FOLDED="true" ID="ID_1172740034" MODIFIED="1393417119029" TEXT="CbC compiler">
+<node CREATED="1393414968247" ID="ID_1953752240" MODIFIED="1393414976300" TEXT="Implementation">
+<node CREATED="1393414977096" ID="ID_697073293" MODIFIED="1393414993451" TEXT="Micro-C">
+<node CREATED="1393414994914" ID="ID_1531301148" MODIFIED="1393415003568" TEXT="one pass standalone compiler"/>
+</node>
+<node CREATED="1393415006802" ID="ID_1773649193" MODIFIED="1393415008399" TEXT="GCC"/>
+<node CREATED="1393415015692" ID="ID_371860294" MODIFIED="1393415017216" TEXT="LLVM">
+<node CREATED="1393415019436" ID="ID_260478404" MODIFIED="1393415023185" TEXT="new!!"/>
+</node>
+</node>
+</node>
+<node CREATED="1393415033662" ID="ID_357796199" MODIFIED="1393418616174" TEXT="Why LLVM??">
+<node CREATED="1393415039598" ID="ID_664184138" MODIFIED="1393415058997" TEXT="compiler framework"/>
+<node CREATED="1393415060968" ID="ID_339954698" MODIFIED="1393415071478" TEXT="Apple supported">
+<node CREATED="1393415077490" ID="ID_146949057" MODIFIED="1393415080567" TEXT="Open source"/>
+<node CREATED="1393415224217" ID="ID_23238840" MODIFIED="1393415230393" TEXT="OS X default compiler"/>
+</node>
+<node CREATED="1393415087594" ID="ID_524041551" MODIFIED="1393415093328" TEXT="C++ base"/>
+<node CREATED="1393415095596" ID="ID_924041337" MODIFIED="1393415115930" TEXT="AST generation"/>
+<node CREATED="1393415120087" ID="ID_849295848" MODIFIED="1393415128259" TEXT="IR">
+<node CREATED="1393415128663" ID="ID_1777758663" MODIFIED="1393415134845" TEXT="intermidiate representation"/>
+</node>
+<node CREATED="1393415157589" ID="ID_872050716" MODIFIED="1393415159047" TEXT="JIT">
+<node CREATED="1393415168027" ID="ID_1667235842" MODIFIED="1393415174976" TEXT="dynamic execution"/>
+<node CREATED="1393415182325" ID="ID_1066032053" MODIFIED="1393415192090" TEXT="dynamic compile"/>
+</node>
+</node>
+<node CREATED="1393415462537" ID="ID_1811363439" MODIFIED="1393415470448" TEXT="basic strategy">
+<node CREATED="1393415472602" ID="ID_1476331781" MODIFIED="1393415482097" TEXT="code segment as normal function"/>
+<node CREATED="1393415485468" ID="ID_887912777" MODIFIED="1393415504659" TEXT="transition as forced tail call"/>
+<node CREATED="1393415518303" ID="ID_993692066" MODIFIED="1393415530070" TEXT="nomodification on intermidiate code">
+<node CREATED="1393415532177" ID="ID_1380774714" MODIFIED="1393415546209" TEXT="do not modify optimizer part"/>
+</node>
+<node CREATED="1393415567244" ID="ID_1715799047" MODIFIED="1393415592237" TEXT="goto with env as longjmp">
+<node CREATED="1393415598752" ID="ID_815289397" MODIFIED="1393415607144" TEXT="GCC uses nested function"/>
+<node CREATED="1393415613281" ID="ID_524371399" MODIFIED="1393415620857" TEXT="LLVM has no nested function"/>
+</node>
+</node>
+<node CREATED="1393417146814" ID="ID_1237395406" MODIFIED="1393417160207" TEXT="Problems">
+<node CREATED="1393417160640" ID="ID_471304556" MODIFIED="1393417166056" TEXT="LLVM IR">
+<node CREATED="1393417166464" ID="ID_988821722" MODIFIED="1393417169304" TEXT="no longjmp"/>
+<node CREATED="1393417290317" ID="ID_1546790643" MODIFIED="1393417370845" TEXT="LLVM IR sample">
+<node CREATED="1393417371773" ID="ID_220201847" MODIFIED="1393417434364" TEXT="call flag">
+<node CREATED="1393417434724" ID="ID_754626436" MODIFIED="1393417437636" TEXT="tail fastcc"/>
+</node>
+</node>
+<node CREATED="1393417606957" ID="ID_1806319122" MODIFIED="1393417666933" TEXT="You should study English two hours every day">
+<icon BUILTIN="ksmiletris"/>
+</node>
+</node>
+<node CREATED="1393419565109" ID="ID_688956990" MODIFIED="1393419814971" TEXT="code segment jump is "/>
+<node CREATED="1393419586320" ID="ID_559131768" MODIFIED="1393419683068" TEXT="LLVM IR can&apos;t express jump to function"/>
+</node>
+<node CREATED="1393417519436" ID="ID_881884451" MODIFIED="1393417522941" TEXT="Implementation">
+<node CREATED="1393415347894" ID="ID_981559264" MODIFIED="1393420940104" TEXT="parser">
+<node CREATED="1393415266645" ID="ID_1682610717" MODIFIED="1393415283396" TEXT="code segment">
+<node CREATED="1393415284799" ID="ID_965880208" MODIFIED="1393415298631" TEXT="__code return type">
+<node CREATED="1393415302801" ID="ID_460767008" MODIFIED="1393415304446" TEXT="void"/>
+</node>
+</node>
+<node CREATED="1393415312026" ID="ID_1424951265" MODIFIED="1393415315007" TEXT="transition">
+<node CREATED="1393415315450" ID="ID_1337913466" MODIFIED="1393415320935" TEXT="goto statement">
+<node CREATED="1393415322459" ID="ID_3085529" MODIFIED="1393415332993" TEXT="tail call"/>
+</node>
+</node>
+</node>
+<node CREATED="1393415627042" ID="ID_741521429" MODIFIED="1393421338869" TEXT="code generator">
+<node CREATED="1393415637962" ID="ID_1977344897" MODIFIED="1393415652834" TEXT="keep tail call elimination">
+<node CREATED="1393415656725" ID="ID_1064982533" MODIFIED="1393415846167" TEXT="enable to tailcallopt LangOption"/>
+<node CREATED="1393415679712" ID="ID_1236302074" MODIFIED="1393415787328" TEXT="return statement immediatly follows call"/>
+<node CREATED="1393415692481" ID="ID_321900911" MODIFIED="1393415708511" TEXT="calling convenstion">
+<node CREATED="1393415762376" ID="ID_188704360" MODIFIED="1393415764534" TEXT="fastcc"/>
+</node>
+<node CREATED="1393415849865" ID="ID_165554506" MODIFIED="1393415866881" TEXT="enable to TailCallElim pass"/>
+</node>
+<node CREATED="1393415992520" ID="ID_1662020634" MODIFIED="1393415998718" TEXT="goto with env">
+<node CREATED="1393415999016" ID="ID_1021819186" MODIFIED="1393416024713" TEXT="include setjmp.h always"/>
+<node CREATED="1393416029172" ID="ID_20885096" MODIFIED="1393416048388" TEXT="allocate jmp_buf">
+<node CREATED="1393416101011" ID="ID_1442960034" MODIFIED="1393416119091" TEXT="generate C struct"/>
+</node>
+<node CREATED="1393416055534" ID="ID_1822902179" MODIFIED="1393416059181" TEXT="insert setjmp"/>
+<node CREATED="1393416061799" ID="ID_1218489026" MODIFIED="1393416073113" TEXT="generate longjmp code segment as return">
+<node CREATED="1393416123989" ID="ID_232453499" MODIFIED="1393416131780" TEXT="generate unique name"/>
+</node>
+</node>
+</node>
+<node CREATED="1393415877748" ID="ID_65529003" MODIFIED="1393421341108" TEXT="structure of LLVM">
+<node CREATED="1393415891566" ID="ID_437797489" MODIFIED="1393415895675" TEXT="clang">
+<node CREATED="1393415896022" ID="ID_565636299" MODIFIED="1393415897764" TEXT="parser"/>
+<node CREATED="1393415898366" ID="ID_1706796038" MODIFIED="1393415902076" TEXT="codegen"/>
+</node>
+<node CREATED="1393415905895" ID="ID_55704278" MODIFIED="1393415907605" TEXT="LLVM">
+<node CREATED="1393415908934" ID="ID_1807613827" MODIFIED="1393415925823" TEXT="Selection instruction "/>
+<node CREATED="1393415929097" ID="ID_1153487463" MODIFIED="1393415936040" TEXT="optimizier">
+<node CREATED="1393415957772" ID="ID_1315016882" MODIFIED="1393415964611" TEXT="passes">
+<node CREATED="1393415975438" ID="ID_1183201430" MODIFIED="1393415980004" TEXT="CodeGenPrepare"/>
+<node CREATED="1393415964845" ID="ID_1061645086" MODIFIED="1393415968707" TEXT="TailCallElim"/>
+</node>
+</node>
+<node CREATED="1393415936994" ID="ID_380442434" MODIFIED="1393415943184" TEXT="Code generator"/>
+</node>
+</node>
+</node>
+<node CREATED="1393416184003" ID="ID_1836859823" MODIFIED="1393416187690" TEXT="Result">
+<node CREATED="1393416189596" ID="ID_325187767" MODIFIED="1393416207660" TEXT="jmp instruction in assembler source"/>
+<node CREATED="1393416209206" ID="ID_838681270" MODIFIED="1393416226606" TEXT="compare with Micro-C"/>
+<node CREATED="1393416231104" ID="ID_1436390030" MODIFIED="1393416235071" TEXT="compare with GCC"/>
+<node CREATED="1393416242714" ID="ID_1983472838" MODIFIED="1393416245584" TEXT="noinline"/>
+</node>
+</node>
+</node>
+</map>