ãã¤ãããã§ããããLLVM
1,265å (1,150å+ç¨)
é¢é£ãµã¤ã
èè ãã«ãããµã¼ã¯ã«å ¬å¼ãã¼ã¸ãããã¾ãã
â»æ¬æ¸ãå ã«ã¤ã³ãã¬ã¹ã¸ã£ãã³ç¤¾ããç´ã®æ¸ç±ãçºå£²ã«ãªãã¾ããããã¡ãããã²ãè²·ãæ±ããã ããã
ã¤ã³ãã¬ã¹ã¸ã£ãã³
売ãä¸ãã©ã³ãã³ã°: 1,207
å 容紹ä»
æ¬æ¸ã¯è¶£å³ã§LLVMã触ã£ã¦ããèè äºäººã®LLVMããã£ã¨æ®åããã¦ããããã¨æãããçã¾ããLLVM解説æ¬ã§ãã
LLVMã¯ä»é常ã«æ³¨ç®ããã¦ãã¾ããã度éãªãAPIä»æ§ã®å¤æ´ãå ¬å¼ããã¥ã¡ã³ãã®å å®ããªã©ãçç±ã§ãã¾ã¨ã¾ã£ã解説ããªããããã®ã¯ããã¾ããã§ãããæ¬æ¸ã«ããã¾ã¨ã¾ã£ãæ å ±ãæ¥æ¬èªã§æã«å ¥ãããã«ãªããå¤ãã®æ¹ã«LLVMãç¥ã£ã¦é ããã¨å¹¸ãã§ãã
æ¬æ¸ã§ã¯LLVMã使ç¨ããã³ã³ãã¤ã©ã®ä½ãæ¹ãé ã追ã£ã¦èª¬æãLLVMã¸ã®ç解ãæ·±ãã¦ããããã¨ããã®ãã³ã³ã»ããã«ãªã£ã¦ãã¾ããããã³ãã¨ã³ã(ä¸é表ç¾åºåã¾ã§)ãããã«ã¨ã³ã(æé©å)ãããã¯ã¨ã³ã(ãªãã¸ã§ã¯ãçæ)ã¨å¹ åºã解説ãã¦ãã¾ãã®ã§å¤ãã®æ¹ã«æç¨ãªå 容ãå«ãã§ããã®ã§ã¯ãªãã§ããããã
LLVMã®ç¨éã¯å¤å²ã«ãããï¼æ¬æ¸ã§ã¯è§£èª¬ã§ãã¦ããªãé¨åãããã¾ããï¼åå¿è åãã®æ å ±ã¨ãã¦LLVMãå©ç¨ããããã®åºç¤çãªæ å ±ãçºãã¾ãããããããåèã«æ¹ãã¦LLVMã«ã¤ãã¦å¦ç¿ãï¼å ±ã«æã¦ãªãLLVMã®ä¸çã¸ã¨è¸ã¿åºãã¾ãããã
æ¸èªæ å ±
- èè : ææ¨é¤ å, 風è¬
- 表ç´: ç¢ä¸è«ä¸
- çºè¡æ¥: 2013-02-08
- æçµæ´æ°æ¥: 2014-02-12
- ãã¼ã¸ã§ã³: 1.0.0
- ãã¼ã¸æ°: 313ãã¼ã¸(A4PDFçæç®)
- 対å¿ãã©ã¼ããã: EPUB, PDF
- åºç社: é人åºçä¼
対象èªè
LLVMãã³ã³ãã¤ã©åºç¤ã«èå³ã®ããã²ã¨ãã³ã³ãã¤ã©ãèªä½ãããã²ã¨
èè ã«ã¤ãã¦
ææ¨é¤ å
æã¤ã³ãã©é¢ä¿ä¼æ¥ã®éçºé¨éã§åãã¨ã³ã¸ãã¢è¦ç¿ãã
ä¸äººåã®ã¨ã³ã¸ãã¢ãç®æãã¦æ¥ã
åå¼·ä¸ã
ãªããæè¿ã¹ã¯ãªããè¨èªã触ããã¨ãå¤ãããã¾ã使ãããªããªãã®ãæ©ã¿ã®ç¨®ã
æ¬æ¸ã§ã¯ããã³ãã¨ã³ãã¨æé©åãæ
å½ããããã¯ã¼ã¯å¨ãã«ããå°ãå¼·ããªãããã¨æã奮éä¸ã
風è¬
Webç³»ä¼æ¥ã§åãã¨ã³ã¸ãã¢ã
éç¨ããéçºã¾ã§ãªãã§ãããã¾ãã
ã·ã¹ãã ãæé©åããã®ã好ãã§ä»æ¥ã人ã®ä»äºãç¡ããã¾ãã
JavaScriptãPHPã®ãããªä¸ä½ã¬ã¤ã¤ããåæ£ã·ã¹ãã ãOSãã³ã³ãã¤ã©ãã³ã³ãã¥ã¼ã¿ã¢ã¼ããã¯ãã£ã®ãããªä½ã¬ã¤ã¤ã¾ã§ãè¡ã£ããæ¥ãããã¦ãããã©ããå¾æã§ã¯ãªãã
ä»å¹´ã®ç®æ¨ã¯x86ã§ä¼è©±ãããã¨ã
ç®æ¬¡
ã¯ããã«
ã¯ããã
第1ç« ã¯ããã«
- 1.1 æ¬æ¸ã®æ§æ
- 1.2 ãã®æ¬ã§ä½ãã§ããããã«ãªãã®ï¼
- 1.3 æ¬æ¸ã®ç®çã¨ã¿ã¼ã²ãã層
- 1.4 æ¬æ¸ãèªãã«ããã£ã¦å¿ è¦ã¨ãªããã®
- 1.4.1 å¿ é ãªãã®
- 1.4.2 ãã£ãæ¹ããããã®
- 1.5 æ¬æ¸å ã®è¨è¼ã«ã¤ãã¦
- 1.6 ãæã
第2ç« ã³ã³ãã¤ã©ã¨LLVM
- 2.1 ä¸è¬çãªã³ã³ãã¤ã©ã®ã話
- 2.2 LLVMããã¸ã§ã¯ã
- 2.2.1 LLVMã®ãµãããã¸ã§ã¯ã
- 2.2.2 LLVM Core
- 2.2.3 Clang
- 2.2.4 LLDB
- 2.2.5 libc++
- 2.2.6 compiler-rt
第3ç« ç°å¢æ§ç¯
- 3.1 æ¬ç« ã®æ¦è¦ã¨æ§æ
- 3.2 ç°å¢
- 3.3 ã¤ã³ã¹ãã¼ã«
- 3.3.1 ãã«ãã«å¿ è¦ãªããã±ã¼ã¸ã®ã¤ã³ã¹ãã¼ã«
- 3.3.2 LLVMã®ãã«ã/ã¤ã³ã¹ãã¼ã«
- 3.3.3 ãã¹ã®è¨å®
- 3.4 ãã¼ã«ã®ç¨®é¡ã¨ç¢ºèª
- 3.4.1 Clang
- 3.4.2 lli
- 3.4.3 llvm-as
- 3.4.4 llc
- 3.4.5 opt
- 3.4.6 llvm-link
- 3.4.7 llvm-objdump
- 3.4.8 llvm-config
第4ç« LLVM IR
- 4.1 æ¬ç« ã®æ¦è¦ã¨ç®ç
- 4.2 LLVM IRã®ç¹å¾´
- 4.3 LLVM IRã®æ§æ
- 4.4 LLVMã®åã¨LLVMã¢ã»ã³ããªã®ä¸»ãªå½ä»¤
- 4.4.1 ååé¡
- 4.4.2 çµç«¯å½ä»¤
- 4.4.3 äºé æ¼ç®å
- 4.4.4 ãããæ¼ç®å
- 4.4.5 ã¡ã¢ãªã¢ã¯ã»ã¹æ¼ç®å
- 4.4.6 åå¤ææ¼ç®å
- 4.4.7 ãã®ä»ã®å½ä»¤
- 4.5 åºæ¬çãªLLVMã®ä¸é表ç¾
- 4.6 æ¡ä»¶æ
- 4.7 ã«ã¼ãæ
- 4.8 ã¢ã°ãªã²ã¼ãåã¸ã®ã¢ã¯ã»ã¹
- 4.9 Metadata
第5ç« ããã³ãã¨ã³ããä½ã
- 5.1 æ¬ç« ã®æ¦è¦
- 5.2 æ§æè¦åã®å®ç¾©
- 5.3 ç®æ¨ã®è¨å®
- 5.4 åå¥è§£æ
- 5.4.1 å ±éãã¯ãã®å®ç¾©
- 5.4.2 Tokenã¯ã©ã¹ã®å®è£
- 5.4.3 TokenSetã¯ã©ã¹ã®å®è£
- 5.4.4 åå¥è§£æã®å®è£
- 5.5 æ§æ解æ
- 5.5.1 ASTãèãã
- 5.5.2 æ§æ解æã¯ã©ã¹ã®å®è£ æ¹é
- 5.5.3 ã¡ã½ããã®å®è£
- 5.6 æå³è§£æ
- 5.6.1 æå³è§£æã®å®è£ æ¹æ³
- 5.6.2 Parserã¯ã©ã¹ã®ä¿®æ£
- 5.6.3 解æã¡ã½ããã®ä¿®æ£
- 5.7 ã³ã¼ãçæ
- 5.7.1 LLVM IRã®çææé
- 5.7.2 ã³ã¼ãçæã¯ã©ã¹ã®å®è£ æ¹é
- 5.7.3 ã¡ã½ããã®å®è£
- 5.8 mainã®ä½æ
- 5.8.1 å ¥åã½ã¼ã¹ã³ã¼ãåã¨åºåã½ã¼ã¹ã³ã¼ãåã®åãåã
- 5.8.2 å種åæåã¨ä½æããåã¯ã©ã¹ã®å¼ã³åºã
- 5.9 ã³ã³ãã¤ã«ã¨åä½ç¢ºèª
- 5.9.1 ã³ã³ãã¤ã«
- 5.9.2 åä½ç¢ºèª
- 5.10 mem2regã®é©ç¨ã¨çµè¾¼ã¿é¢æ°ã®å°å ¥
- 5.10.1 mem2regã®é©ç¨
- 5.10.2 çµè¾¼ã¿é¢æ°
- 5.11 JITããã£ã¦ã¿ã
- 5.11.1 LLVMã§ã®JIT
- 5.11.2 çµã¿è¾¼ã¿é¢æ°ã®ãªã³ã¯ãããã°ã©ã ä¸ã§è¡ã
- 5.12 Metadataãåãè¾¼ã¿ããå ´å
- 5.12.1 Metadataã®çæ
- 5.12.2 setMetadataã«ããMetadataã®ä»ä¸
- 5.12.3 IRBuilderã®ã¡ã½ããã«ããMetadataã®ä»ä¸
- 5.13 CommandLineã©ã¤ãã©ãª
- 5.13.1 åºæ¬çãªä½¿ãæ¹
- 5.13.2 è¤æ°ã®ãã©ã¡ã¼ã¿ããã®é¸æ
- 5.13.3 ä¸ã¤ã®ãªãã·ã§ã³ã§è¤æ°ã®å¤ãåãã
- 5.13.4 ãªãã·ã§ã³ã«æå®å¯è½ãªå±æ§ã®ã¾ã¨ã
第6ç« Passã«ã¤ãã¦
- 6.1 Passã®æ¦å¿µ
- 6.2 Passã®ç¨®é¡
- 6.2.1 ImmutablePass
- 6.2.2 ModulePass
- 6.2.3 FunctionPass
- 6.2.4 LoopPass
- 6.2.5 RegionPass
- 6.2.6 BasicBlockPass
- 6.3 ãã®ä»ã®Passã«å®è£ ãã¹ããã®
- 6.3.1 Pass::getAnalysisUsageã¡ã½ãã
- 6.3.2 Pass::getAnalysis<>
- 6.3.3 Passã®IDã¨RegisterPassãã³ãã¬ã¼ã
- 6.4 ç°¡åãªPassãå®è£ ãã¦ã¿ã
- 6.4.1 ã©ã®Passãç¶æ¿ããã
- 6.4.2 Passã¯ã©ã¹ã®å®£è¨
- 6.4.3 Passã¯ã©ã¹ã®å®ç¾©
- 6.4.4 Passã®ã³ã³ãã¤ã«/å®è¡
- 6.5 é©ç¨ãããPassã確èªãã
第7ç« ããã¯ã¨ã³ããä½ã
- 7.1 LLVMã®ããã¯ã¨ã³ããå¦ã¶åã«
- 7.2 LLVMã®ããã¯ã¨ã³ãã£ã¦ä½ããã®ï¼
- 7.3 ããã¯ã¨ã³ãã®æµã
- 7.3.1 SelectionDAG
- 7.3.2 MachineCode
- 7.3.3 MC Layer
- 7.4 ç®æ¨ã決ãã
- 7.5 ã¿ã¼ã²ããã®ä»æ§ã決ãã
- 7.5.1 å½ä»¤
- 7.5.2 å¼ã³åºãè¦ç´
- 7.6 TableGen
- 7.6.1 TableGenã®ç®ç
- 7.6.2 TableGenã®è¨è¿°æ¹æ³
- 7.6.3 TableGenã®è¨è¿°å½¢å¼
- 7.7 ã¿ã¼ã²ããã®ã¯ã©ã¹æ§æ
- 7.7.1 ãã¡ã¤ã«ä¸è¦§
- 7.7.2 ã¯ã©ã¹ä¸è¦§
- 7.8 TableGenã®è¨è¿°(Sample.td)
- 7.8.1 ã¬ã¸ã¹ã¿
- 7.8.2 æ©è½ã¦ããã
- 7.8.3 å¼ã³åºãè¦ç´
- 7.8.4 ã¿ã¼ã²ãã
- 7.8.5 å½ä»¤
- 7.8.6 includeãã¡ã¤ã«ã®çæ
- 7.9 å ±éã¯ã©ã¹ã®å®è£
- 7.9.1 SampleTargetMachineã¯ã©ã¹
- 7.9.2 SamplePassConfigã¯ã©ã¹
- 7.9.3 SampleSubtargetã¯ã©ã¹
- 7.9.4 SampleInsrInfoã¯ã©ã¹
- 7.9.5 SampleRegisterInfoã¯ã©ã¹
- 7.9.6 SampleMachineFunctionInfoã¯ã©ã¹
- 7.10 SelectionDAGISelã®å®è£
- 7.10.1 SampleDAGToDAGISelã¯ã©ã¹
- 7.10.2 SampleTargetLoweringã¯ã©ã¹
- 7.10.3 SampleSelectionDAGInfoã¯ã©ã¹
- 7.11 AsmPrinterã®å®è£
- 7.11.1 SampleAsmPrinterã¯ã©ã¹
- 7.11.2 SampleMCInstLowerã¯ã©ã¹
- 7.11.3 SampleInstPrinterã¯ã©ã¹
- 7.11.4 SampleAsmBackendã¯ã©ã¹
- 7.11.5 SampleMCCodeEmitterã¯ã©ã¹
- 7.11.6 SampleMCAsmInfoã¯ã©ã¹
- 7.12 ãã¬ã¼ã å¦çã®å®è£
- 7.12.1 SampleFrameLoweringã¯ã©ã¹
- 7.13 Disassemblerã®å®è£
- 7.13.1 SampleDisassemblerã¯ã©ã¹
- 7.14 ãã®ä»ã®å®è£
- 7.14.1 ã¿ã¼ã²ããåæåé¢æ°
- 7.14.2 Targetã®Tripleã追å
- 7.14.3 Targetã®Makefileãè¨ç½®
- 7.15 ã³ã³ãã¤ã«ãããï¼
- 7.15.1 LLVMã®æºå
- 7.15.2 ãããã¶ãï¼
- 7.15.3 ããã±ããï¼
- 7.16 ããã¯ã¨ã³ããä½ã£ã¦ã¿ã¦