1*9880d681SAndroid Build Coastguard WorkerOverview 2*9880d681SAndroid Build Coastguard Worker======== 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker.. warning:: 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker If you are using a released version of LLVM, see `the download page 7*9880d681SAndroid Build Coastguard Worker <http://llvm.org/releases/>`_ to find your documentation. 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard WorkerThe LLVM compiler infrastructure supports a wide range of projects, from 10*9880d681SAndroid Build Coastguard Workerindustrial strength compilers to specialized JIT applications to small 11*9880d681SAndroid Build Coastguard Workerresearch projects. 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard WorkerSimilarly, documentation is broken down into several high-level groupings 14*9880d681SAndroid Build Coastguard Workertargeted at different audiences: 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard WorkerLLVM Design & Overview 17*9880d681SAndroid Build Coastguard Worker====================== 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard WorkerSeveral introductory papers and presentations. 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker.. toctree:: 22*9880d681SAndroid Build Coastguard Worker :hidden: 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker LangRef 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker:doc:`LangRef` 27*9880d681SAndroid Build Coastguard Worker Defines the LLVM intermediate representation. 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker`Introduction to the LLVM Compiler`__ 30*9880d681SAndroid Build Coastguard Worker Presentation providing a users introduction to LLVM. 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker .. __: http://llvm.org/pubs/2008-10-04-ACAT-LLVM-Intro.html 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker`Intro to LLVM`__ 35*9880d681SAndroid Build Coastguard Worker Book chapter providing a compiler hacker's introduction to LLVM. 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker .. __: http://www.aosabook.org/en/llvm.html 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Worker`LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation`__ 41*9880d681SAndroid Build Coastguard Worker Design overview. 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker .. __: http://llvm.org/pubs/2004-01-30-CGO-LLVM.html 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker`LLVM: An Infrastructure for Multi-Stage Optimization`__ 46*9880d681SAndroid Build Coastguard Worker More details (quite old now). 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Worker .. __: http://llvm.org/pubs/2002-12-LattnerMSThesis.html 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker`Publications mentioning LLVM <http://llvm.org/pubs>`_ 51*9880d681SAndroid Build Coastguard Worker .. 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard WorkerUser Guides 54*9880d681SAndroid Build Coastguard Worker=========== 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard WorkerFor those new to the LLVM system. 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard WorkerNOTE: If you are a user who is only interested in using LLVM-based 59*9880d681SAndroid Build Coastguard Workercompilers, you should look into `Clang <http://clang.llvm.org>`_ or 60*9880d681SAndroid Build Coastguard Worker`DragonEgg <http://dragonegg.llvm.org>`_ instead. The documentation here is 61*9880d681SAndroid Build Coastguard Workerintended for users who have a need to work with the intermediate LLVM 62*9880d681SAndroid Build Coastguard Workerrepresentation. 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Worker.. toctree:: 65*9880d681SAndroid Build Coastguard Worker :hidden: 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker CMake 68*9880d681SAndroid Build Coastguard Worker CMakePrimer 69*9880d681SAndroid Build Coastguard Worker AdvancedBuilds 70*9880d681SAndroid Build Coastguard Worker HowToBuildOnARM 71*9880d681SAndroid Build Coastguard Worker HowToCrossCompileLLVM 72*9880d681SAndroid Build Coastguard Worker CommandGuide/index 73*9880d681SAndroid Build Coastguard Worker GettingStarted 74*9880d681SAndroid Build Coastguard Worker GettingStartedVS 75*9880d681SAndroid Build Coastguard Worker FAQ 76*9880d681SAndroid Build Coastguard Worker Lexicon 77*9880d681SAndroid Build Coastguard Worker HowToAddABuilder 78*9880d681SAndroid Build Coastguard Worker yaml2obj 79*9880d681SAndroid Build Coastguard Worker HowToSubmitABug 80*9880d681SAndroid Build Coastguard Worker SphinxQuickstartTemplate 81*9880d681SAndroid Build Coastguard Worker Phabricator 82*9880d681SAndroid Build Coastguard Worker TestingGuide 83*9880d681SAndroid Build Coastguard Worker tutorial/index 84*9880d681SAndroid Build Coastguard Worker ReleaseNotes 85*9880d681SAndroid Build Coastguard Worker Passes 86*9880d681SAndroid Build Coastguard Worker YamlIO 87*9880d681SAndroid Build Coastguard Worker GetElementPtr 88*9880d681SAndroid Build Coastguard Worker Frontend/PerformanceTips 89*9880d681SAndroid Build Coastguard Worker MCJITDesignAndImplementation 90*9880d681SAndroid Build Coastguard Worker CodeOfConduct 91*9880d681SAndroid Build Coastguard Worker CompileCudaWithLLVM 92*9880d681SAndroid Build Coastguard Worker ReportingGuide 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Worker:doc:`GettingStarted` 95*9880d681SAndroid Build Coastguard Worker Discusses how to get up and running quickly with the LLVM infrastructure. 96*9880d681SAndroid Build Coastguard Worker Everything from unpacking and compilation of the distribution to execution 97*9880d681SAndroid Build Coastguard Worker of some tools. 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Worker:doc:`CMake` 100*9880d681SAndroid Build Coastguard Worker An addendum to the main Getting Started guide for those using the `CMake 101*9880d681SAndroid Build Coastguard Worker build system <http://www.cmake.org>`_. 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker:doc:`HowToBuildOnARM` 104*9880d681SAndroid Build Coastguard Worker Notes on building and testing LLVM/Clang on ARM. 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker:doc:`HowToCrossCompileLLVM` 107*9880d681SAndroid Build Coastguard Worker Notes on cross-building and testing LLVM/Clang. 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Worker:doc:`GettingStartedVS` 110*9880d681SAndroid Build Coastguard Worker An addendum to the main Getting Started guide for those using Visual Studio 111*9880d681SAndroid Build Coastguard Worker on Windows. 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Worker:doc:`tutorial/index` 114*9880d681SAndroid Build Coastguard Worker Tutorials about using LLVM. Includes a tutorial about making a custom 115*9880d681SAndroid Build Coastguard Worker language with LLVM. 116*9880d681SAndroid Build Coastguard Worker 117*9880d681SAndroid Build Coastguard Worker:doc:`LLVM Command Guide <CommandGuide/index>` 118*9880d681SAndroid Build Coastguard Worker A reference manual for the LLVM command line utilities ("man" pages for LLVM 119*9880d681SAndroid Build Coastguard Worker tools). 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Worker:doc:`Passes` 122*9880d681SAndroid Build Coastguard Worker A list of optimizations and analyses implemented in LLVM. 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Worker:doc:`FAQ` 125*9880d681SAndroid Build Coastguard Worker A list of common questions and problems and their solutions. 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Worker:doc:`Release notes for the current release <ReleaseNotes>` 128*9880d681SAndroid Build Coastguard Worker This describes new features, known bugs, and other limitations. 129*9880d681SAndroid Build Coastguard Worker 130*9880d681SAndroid Build Coastguard Worker:doc:`HowToSubmitABug` 131*9880d681SAndroid Build Coastguard Worker Instructions for properly submitting information about any bugs you run into 132*9880d681SAndroid Build Coastguard Worker in the LLVM system. 133*9880d681SAndroid Build Coastguard Worker 134*9880d681SAndroid Build Coastguard Worker:doc:`SphinxQuickstartTemplate` 135*9880d681SAndroid Build Coastguard Worker A template + tutorial for writing new Sphinx documentation. It is meant 136*9880d681SAndroid Build Coastguard Worker to be read in source form. 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Worker:doc:`LLVM Testing Infrastructure Guide <TestingGuide>` 139*9880d681SAndroid Build Coastguard Worker A reference manual for using the LLVM testing infrastructure. 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Worker`How to build the C, C++, ObjC, and ObjC++ front end`__ 142*9880d681SAndroid Build Coastguard Worker Instructions for building the clang front-end from source. 143*9880d681SAndroid Build Coastguard Worker 144*9880d681SAndroid Build Coastguard Worker .. __: http://clang.llvm.org/get_started.html 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Worker:doc:`Lexicon` 147*9880d681SAndroid Build Coastguard Worker Definition of acronyms, terms and concepts used in LLVM. 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Worker:doc:`HowToAddABuilder` 150*9880d681SAndroid Build Coastguard Worker Instructions for adding new builder to LLVM buildbot master. 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Worker:doc:`YamlIO` 153*9880d681SAndroid Build Coastguard Worker A reference guide for using LLVM's YAML I/O library. 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Worker:doc:`GetElementPtr` 156*9880d681SAndroid Build Coastguard Worker Answers to some very frequent questions about LLVM's most frequently 157*9880d681SAndroid Build Coastguard Worker misunderstood instruction. 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Worker:doc:`Frontend/PerformanceTips` 160*9880d681SAndroid Build Coastguard Worker A collection of tips for frontend authors on how to generate IR 161*9880d681SAndroid Build Coastguard Worker which LLVM is able to effectively optimize. 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Worker 164*9880d681SAndroid Build Coastguard WorkerProgramming Documentation 165*9880d681SAndroid Build Coastguard Worker========================= 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard WorkerFor developers of applications which use LLVM as a library. 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Worker.. toctree:: 170*9880d681SAndroid Build Coastguard Worker :hidden: 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Worker Atomics 173*9880d681SAndroid Build Coastguard Worker CodingStandards 174*9880d681SAndroid Build Coastguard Worker CommandLine 175*9880d681SAndroid Build Coastguard Worker CompilerWriterInfo 176*9880d681SAndroid Build Coastguard Worker ExtendingLLVM 177*9880d681SAndroid Build Coastguard Worker HowToSetUpLLVMStyleRTTI 178*9880d681SAndroid Build Coastguard Worker ProgrammersManual 179*9880d681SAndroid Build Coastguard Worker Extensions 180*9880d681SAndroid Build Coastguard Worker LibFuzzer 181*9880d681SAndroid Build Coastguard Worker ScudoHardenedAllocator 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Worker:doc:`LLVM Language Reference Manual <LangRef>` 184*9880d681SAndroid Build Coastguard Worker Defines the LLVM intermediate representation and the assembly form of the 185*9880d681SAndroid Build Coastguard Worker different nodes. 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Worker:doc:`Atomics` 188*9880d681SAndroid Build Coastguard Worker Information about LLVM's concurrency model. 189*9880d681SAndroid Build Coastguard Worker 190*9880d681SAndroid Build Coastguard Worker:doc:`ProgrammersManual` 191*9880d681SAndroid Build Coastguard Worker Introduction to the general layout of the LLVM sourcebase, important classes 192*9880d681SAndroid Build Coastguard Worker and APIs, and some tips & tricks. 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Worker:doc:`Extensions` 195*9880d681SAndroid Build Coastguard Worker LLVM-specific extensions to tools and formats LLVM seeks compatibility with. 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Worker:doc:`CommandLine` 198*9880d681SAndroid Build Coastguard Worker Provides information on using the command line parsing library. 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Worker:doc:`CodingStandards` 201*9880d681SAndroid Build Coastguard Worker Details the LLVM coding standards and provides useful information on writing 202*9880d681SAndroid Build Coastguard Worker efficient C++ code. 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Worker:doc:`HowToSetUpLLVMStyleRTTI` 205*9880d681SAndroid Build Coastguard Worker How to make ``isa<>``, ``dyn_cast<>``, etc. available for clients of your 206*9880d681SAndroid Build Coastguard Worker class hierarchy. 207*9880d681SAndroid Build Coastguard Worker 208*9880d681SAndroid Build Coastguard Worker:doc:`ExtendingLLVM` 209*9880d681SAndroid Build Coastguard Worker Look here to see how to add instructions and intrinsics to LLVM. 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Worker`Doxygen generated documentation <http://llvm.org/doxygen/>`_ 212*9880d681SAndroid Build Coastguard Worker (`classes <http://llvm.org/doxygen/inherits.html>`_) 213*9880d681SAndroid Build Coastguard Worker (`tarball <http://llvm.org/doxygen/doxygen.tar.gz>`_) 214*9880d681SAndroid Build Coastguard Worker 215*9880d681SAndroid Build Coastguard Worker`Documentation for Go bindings <http://godoc.org/llvm.org/llvm/bindings/go/llvm>`_ 216*9880d681SAndroid Build Coastguard Worker 217*9880d681SAndroid Build Coastguard Worker`ViewVC Repository Browser <http://llvm.org/viewvc/>`_ 218*9880d681SAndroid Build Coastguard Worker .. 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Worker:doc:`CompilerWriterInfo` 221*9880d681SAndroid Build Coastguard Worker A list of helpful links for compiler writers. 222*9880d681SAndroid Build Coastguard Worker 223*9880d681SAndroid Build Coastguard Worker:doc:`LibFuzzer` 224*9880d681SAndroid Build Coastguard Worker A library for writing in-process guided fuzzers. 225*9880d681SAndroid Build Coastguard Worker 226*9880d681SAndroid Build Coastguard Worker:doc:`ScudoHardenedAllocator` 227*9880d681SAndroid Build Coastguard Worker A library that implements a security-hardened `malloc()`. 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard WorkerSubsystem Documentation 230*9880d681SAndroid Build Coastguard Worker======================= 231*9880d681SAndroid Build Coastguard Worker 232*9880d681SAndroid Build Coastguard WorkerFor API clients and LLVM developers. 233*9880d681SAndroid Build Coastguard Worker 234*9880d681SAndroid Build Coastguard Worker.. toctree:: 235*9880d681SAndroid Build Coastguard Worker :hidden: 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Worker AliasAnalysis 238*9880d681SAndroid Build Coastguard Worker BitCodeFormat 239*9880d681SAndroid Build Coastguard Worker BlockFrequencyTerminology 240*9880d681SAndroid Build Coastguard Worker BranchWeightMetadata 241*9880d681SAndroid Build Coastguard Worker Bugpoint 242*9880d681SAndroid Build Coastguard Worker CodeGenerator 243*9880d681SAndroid Build Coastguard Worker ExceptionHandling 244*9880d681SAndroid Build Coastguard Worker LinkTimeOptimization 245*9880d681SAndroid Build Coastguard Worker SegmentedStacks 246*9880d681SAndroid Build Coastguard Worker TableGenFundamentals 247*9880d681SAndroid Build Coastguard Worker TableGen/index 248*9880d681SAndroid Build Coastguard Worker DebuggingJITedCode 249*9880d681SAndroid Build Coastguard Worker GoldPlugin 250*9880d681SAndroid Build Coastguard Worker MarkedUpDisassembly 251*9880d681SAndroid Build Coastguard Worker SystemLibrary 252*9880d681SAndroid Build Coastguard Worker SourceLevelDebugging 253*9880d681SAndroid Build Coastguard Worker Vectorizers 254*9880d681SAndroid Build Coastguard Worker WritingAnLLVMBackend 255*9880d681SAndroid Build Coastguard Worker GarbageCollection 256*9880d681SAndroid Build Coastguard Worker WritingAnLLVMPass 257*9880d681SAndroid Build Coastguard Worker HowToUseAttributes 258*9880d681SAndroid Build Coastguard Worker NVPTXUsage 259*9880d681SAndroid Build Coastguard Worker AMDGPUUsage 260*9880d681SAndroid Build Coastguard Worker StackMaps 261*9880d681SAndroid Build Coastguard Worker InAlloca 262*9880d681SAndroid Build Coastguard Worker BigEndianNEON 263*9880d681SAndroid Build Coastguard Worker CoverageMappingFormat 264*9880d681SAndroid Build Coastguard Worker Statepoints 265*9880d681SAndroid Build Coastguard Worker MergeFunctions 266*9880d681SAndroid Build Coastguard Worker TypeMetadata 267*9880d681SAndroid Build Coastguard Worker FaultMaps 268*9880d681SAndroid Build Coastguard Worker MIRLangRef 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker:doc:`WritingAnLLVMPass` 271*9880d681SAndroid Build Coastguard Worker Information on how to write LLVM transformations and analyses. 272*9880d681SAndroid Build Coastguard Worker 273*9880d681SAndroid Build Coastguard Worker:doc:`WritingAnLLVMBackend` 274*9880d681SAndroid Build Coastguard Worker Information on how to write LLVM backends for machine targets. 275*9880d681SAndroid Build Coastguard Worker 276*9880d681SAndroid Build Coastguard Worker:doc:`CodeGenerator` 277*9880d681SAndroid Build Coastguard Worker The design and implementation of the LLVM code generator. Useful if you are 278*9880d681SAndroid Build Coastguard Worker working on retargetting LLVM to a new architecture, designing a new codegen 279*9880d681SAndroid Build Coastguard Worker pass, or enhancing existing components. 280*9880d681SAndroid Build Coastguard Worker 281*9880d681SAndroid Build Coastguard Worker:doc:`Machine IR (MIR) Format Reference Manual <MIRLangRef>` 282*9880d681SAndroid Build Coastguard Worker A reference manual for the MIR serialization format, which is used to test 283*9880d681SAndroid Build Coastguard Worker LLVM's code generation passes. 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Worker:doc:`TableGen <TableGen/index>` 286*9880d681SAndroid Build Coastguard Worker Describes the TableGen tool, which is used heavily by the LLVM code 287*9880d681SAndroid Build Coastguard Worker generator. 288*9880d681SAndroid Build Coastguard Worker 289*9880d681SAndroid Build Coastguard Worker:doc:`AliasAnalysis` 290*9880d681SAndroid Build Coastguard Worker Information on how to write a new alias analysis implementation or how to 291*9880d681SAndroid Build Coastguard Worker use existing analyses. 292*9880d681SAndroid Build Coastguard Worker 293*9880d681SAndroid Build Coastguard Worker:doc:`GarbageCollection` 294*9880d681SAndroid Build Coastguard Worker The interfaces source-language compilers should use for compiling GC'd 295*9880d681SAndroid Build Coastguard Worker programs. 296*9880d681SAndroid Build Coastguard Worker 297*9880d681SAndroid Build Coastguard Worker:doc:`Source Level Debugging with LLVM <SourceLevelDebugging>` 298*9880d681SAndroid Build Coastguard Worker This document describes the design and philosophy behind the LLVM 299*9880d681SAndroid Build Coastguard Worker source-level debugger. 300*9880d681SAndroid Build Coastguard Worker 301*9880d681SAndroid Build Coastguard Worker:doc:`Vectorizers` 302*9880d681SAndroid Build Coastguard Worker This document describes the current status of vectorization in LLVM. 303*9880d681SAndroid Build Coastguard Worker 304*9880d681SAndroid Build Coastguard Worker:doc:`ExceptionHandling` 305*9880d681SAndroid Build Coastguard Worker This document describes the design and implementation of exception handling 306*9880d681SAndroid Build Coastguard Worker in LLVM. 307*9880d681SAndroid Build Coastguard Worker 308*9880d681SAndroid Build Coastguard Worker:doc:`Bugpoint` 309*9880d681SAndroid Build Coastguard Worker Automatic bug finder and test-case reducer description and usage 310*9880d681SAndroid Build Coastguard Worker information. 311*9880d681SAndroid Build Coastguard Worker 312*9880d681SAndroid Build Coastguard Worker:doc:`BitCodeFormat` 313*9880d681SAndroid Build Coastguard Worker This describes the file format and encoding used for LLVM "bc" files. 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Worker:doc:`System Library <SystemLibrary>` 316*9880d681SAndroid Build Coastguard Worker This document describes the LLVM System Library (``lib/System``) and 317*9880d681SAndroid Build Coastguard Worker how to keep LLVM source code portable 318*9880d681SAndroid Build Coastguard Worker 319*9880d681SAndroid Build Coastguard Worker:doc:`LinkTimeOptimization` 320*9880d681SAndroid Build Coastguard Worker This document describes the interface between LLVM intermodular optimizer 321*9880d681SAndroid Build Coastguard Worker and the linker and its design 322*9880d681SAndroid Build Coastguard Worker 323*9880d681SAndroid Build Coastguard Worker:doc:`GoldPlugin` 324*9880d681SAndroid Build Coastguard Worker How to build your programs with link-time optimization on Linux. 325*9880d681SAndroid Build Coastguard Worker 326*9880d681SAndroid Build Coastguard Worker:doc:`DebuggingJITedCode` 327*9880d681SAndroid Build Coastguard Worker How to debug JITed code with GDB. 328*9880d681SAndroid Build Coastguard Worker 329*9880d681SAndroid Build Coastguard Worker:doc:`MCJITDesignAndImplementation` 330*9880d681SAndroid Build Coastguard Worker Describes the inner workings of MCJIT execution engine. 331*9880d681SAndroid Build Coastguard Worker 332*9880d681SAndroid Build Coastguard Worker:doc:`BranchWeightMetadata` 333*9880d681SAndroid Build Coastguard Worker Provides information about Branch Prediction Information. 334*9880d681SAndroid Build Coastguard Worker 335*9880d681SAndroid Build Coastguard Worker:doc:`BlockFrequencyTerminology` 336*9880d681SAndroid Build Coastguard Worker Provides information about terminology used in the ``BlockFrequencyInfo`` 337*9880d681SAndroid Build Coastguard Worker analysis pass. 338*9880d681SAndroid Build Coastguard Worker 339*9880d681SAndroid Build Coastguard Worker:doc:`SegmentedStacks` 340*9880d681SAndroid Build Coastguard Worker This document describes segmented stacks and how they are used in LLVM. 341*9880d681SAndroid Build Coastguard Worker 342*9880d681SAndroid Build Coastguard Worker:doc:`MarkedUpDisassembly` 343*9880d681SAndroid Build Coastguard Worker This document describes the optional rich disassembly output syntax. 344*9880d681SAndroid Build Coastguard Worker 345*9880d681SAndroid Build Coastguard Worker:doc:`HowToUseAttributes` 346*9880d681SAndroid Build Coastguard Worker Answers some questions about the new Attributes infrastructure. 347*9880d681SAndroid Build Coastguard Worker 348*9880d681SAndroid Build Coastguard Worker:doc:`NVPTXUsage` 349*9880d681SAndroid Build Coastguard Worker This document describes using the NVPTX back-end to compile GPU kernels. 350*9880d681SAndroid Build Coastguard Worker 351*9880d681SAndroid Build Coastguard Worker:doc:`AMDGPUUsage` 352*9880d681SAndroid Build Coastguard Worker This document describes how to use the AMDGPU back-end. 353*9880d681SAndroid Build Coastguard Worker 354*9880d681SAndroid Build Coastguard Worker:doc:`StackMaps` 355*9880d681SAndroid Build Coastguard Worker LLVM support for mapping instruction addresses to the location of 356*9880d681SAndroid Build Coastguard Worker values and allowing code to be patched. 357*9880d681SAndroid Build Coastguard Worker 358*9880d681SAndroid Build Coastguard Worker:doc:`BigEndianNEON` 359*9880d681SAndroid Build Coastguard Worker LLVM's support for generating NEON instructions on big endian ARM targets is 360*9880d681SAndroid Build Coastguard Worker somewhat nonintuitive. This document explains the implementation and rationale. 361*9880d681SAndroid Build Coastguard Worker 362*9880d681SAndroid Build Coastguard Worker:doc:`CoverageMappingFormat` 363*9880d681SAndroid Build Coastguard Worker This describes the format and encoding used for LLVM’s code coverage mapping. 364*9880d681SAndroid Build Coastguard Worker 365*9880d681SAndroid Build Coastguard Worker:doc:`Statepoints` 366*9880d681SAndroid Build Coastguard Worker This describes a set of experimental extensions for garbage 367*9880d681SAndroid Build Coastguard Worker collection support. 368*9880d681SAndroid Build Coastguard Worker 369*9880d681SAndroid Build Coastguard Worker:doc:`MergeFunctions` 370*9880d681SAndroid Build Coastguard Worker Describes functions merging optimization. 371*9880d681SAndroid Build Coastguard Worker 372*9880d681SAndroid Build Coastguard Worker:doc:`InAlloca` 373*9880d681SAndroid Build Coastguard Worker Description of the ``inalloca`` argument attribute. 374*9880d681SAndroid Build Coastguard Worker 375*9880d681SAndroid Build Coastguard Worker:doc:`FaultMaps` 376*9880d681SAndroid Build Coastguard Worker LLVM support for folding control flow into faulting machine instructions. 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Worker:doc:`CompileCudaWithLLVM` 379*9880d681SAndroid Build Coastguard Worker LLVM support for CUDA. 380*9880d681SAndroid Build Coastguard Worker 381*9880d681SAndroid Build Coastguard WorkerDevelopment Process Documentation 382*9880d681SAndroid Build Coastguard Worker================================= 383*9880d681SAndroid Build Coastguard Worker 384*9880d681SAndroid Build Coastguard WorkerInformation about LLVM's development process. 385*9880d681SAndroid Build Coastguard Worker 386*9880d681SAndroid Build Coastguard Worker.. toctree:: 387*9880d681SAndroid Build Coastguard Worker :hidden: 388*9880d681SAndroid Build Coastguard Worker 389*9880d681SAndroid Build Coastguard Worker DeveloperPolicy 390*9880d681SAndroid Build Coastguard Worker Projects 391*9880d681SAndroid Build Coastguard Worker LLVMBuild 392*9880d681SAndroid Build Coastguard Worker HowToReleaseLLVM 393*9880d681SAndroid Build Coastguard Worker Packaging 394*9880d681SAndroid Build Coastguard Worker ReleaseProcess 395*9880d681SAndroid Build Coastguard Worker Phabricator 396*9880d681SAndroid Build Coastguard Worker 397*9880d681SAndroid Build Coastguard Worker:doc:`DeveloperPolicy` 398*9880d681SAndroid Build Coastguard Worker The LLVM project's policy towards developers and their contributions. 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Worker:doc:`Projects` 401*9880d681SAndroid Build Coastguard Worker How-to guide and templates for new projects that *use* the LLVM 402*9880d681SAndroid Build Coastguard Worker infrastructure. The templates (directory organization, Makefiles, and test 403*9880d681SAndroid Build Coastguard Worker tree) allow the project code to be located outside (or inside) the ``llvm/`` 404*9880d681SAndroid Build Coastguard Worker tree, while using LLVM header files and libraries. 405*9880d681SAndroid Build Coastguard Worker 406*9880d681SAndroid Build Coastguard Worker:doc:`LLVMBuild` 407*9880d681SAndroid Build Coastguard Worker Describes the LLVMBuild organization and files used by LLVM to specify 408*9880d681SAndroid Build Coastguard Worker component descriptions. 409*9880d681SAndroid Build Coastguard Worker 410*9880d681SAndroid Build Coastguard Worker:doc:`HowToReleaseLLVM` 411*9880d681SAndroid Build Coastguard Worker This is a guide to preparing LLVM releases. Most developers can ignore it. 412*9880d681SAndroid Build Coastguard Worker 413*9880d681SAndroid Build Coastguard Worker:doc:`ReleaseProcess` 414*9880d681SAndroid Build Coastguard Worker This is a guide to validate a new release, during the release process. Most developers can ignore it. 415*9880d681SAndroid Build Coastguard Worker 416*9880d681SAndroid Build Coastguard Worker:doc:`Packaging` 417*9880d681SAndroid Build Coastguard Worker Advice on packaging LLVM into a distribution. 418*9880d681SAndroid Build Coastguard Worker 419*9880d681SAndroid Build Coastguard Worker:doc:`Phabricator` 420*9880d681SAndroid Build Coastguard Worker Describes how to use the Phabricator code review tool hosted on 421*9880d681SAndroid Build Coastguard Worker http://reviews.llvm.org/ and its command line interface, Arcanist. 422*9880d681SAndroid Build Coastguard Worker 423*9880d681SAndroid Build Coastguard WorkerCommunity 424*9880d681SAndroid Build Coastguard Worker========= 425*9880d681SAndroid Build Coastguard Worker 426*9880d681SAndroid Build Coastguard WorkerLLVM has a thriving community of friendly and helpful developers. 427*9880d681SAndroid Build Coastguard WorkerThe two primary communication mechanisms in the LLVM community are mailing 428*9880d681SAndroid Build Coastguard Workerlists and IRC. 429*9880d681SAndroid Build Coastguard Worker 430*9880d681SAndroid Build Coastguard WorkerMailing Lists 431*9880d681SAndroid Build Coastguard Worker------------- 432*9880d681SAndroid Build Coastguard Worker 433*9880d681SAndroid Build Coastguard WorkerIf you can't find what you need in these docs, try consulting the mailing 434*9880d681SAndroid Build Coastguard Workerlists. 435*9880d681SAndroid Build Coastguard Worker 436*9880d681SAndroid Build Coastguard Worker`Developer's List (llvm-dev)`__ 437*9880d681SAndroid Build Coastguard Worker This list is for people who want to be included in technical discussions of 438*9880d681SAndroid Build Coastguard Worker LLVM. People post to this list when they have questions about writing code 439*9880d681SAndroid Build Coastguard Worker for or using the LLVM tools. It is relatively low volume. 440*9880d681SAndroid Build Coastguard Worker 441*9880d681SAndroid Build Coastguard Worker .. __: http://lists.llvm.org/mailman/listinfo/llvm-dev 442*9880d681SAndroid Build Coastguard Worker 443*9880d681SAndroid Build Coastguard Worker`Commits Archive (llvm-commits)`__ 444*9880d681SAndroid Build Coastguard Worker This list contains all commit messages that are made when LLVM developers 445*9880d681SAndroid Build Coastguard Worker commit code changes to the repository. It also serves as a forum for 446*9880d681SAndroid Build Coastguard Worker patch review (i.e. send patches here). It is useful for those who want to 447*9880d681SAndroid Build Coastguard Worker stay on the bleeding edge of LLVM development. This list is very high 448*9880d681SAndroid Build Coastguard Worker volume. 449*9880d681SAndroid Build Coastguard Worker 450*9880d681SAndroid Build Coastguard Worker .. __: http://lists.llvm.org/pipermail/llvm-commits/ 451*9880d681SAndroid Build Coastguard Worker 452*9880d681SAndroid Build Coastguard Worker`Bugs & Patches Archive (llvm-bugs)`__ 453*9880d681SAndroid Build Coastguard Worker This list gets emailed every time a bug is opened and closed. It is 454*9880d681SAndroid Build Coastguard Worker higher volume than the LLVM-dev list. 455*9880d681SAndroid Build Coastguard Worker 456*9880d681SAndroid Build Coastguard Worker .. __: http://lists.llvm.org/pipermail/llvm-bugs/ 457*9880d681SAndroid Build Coastguard Worker 458*9880d681SAndroid Build Coastguard Worker`Test Results Archive (llvm-testresults)`__ 459*9880d681SAndroid Build Coastguard Worker A message is automatically sent to this list by every active nightly tester 460*9880d681SAndroid Build Coastguard Worker when it completes. As such, this list gets email several times each day, 461*9880d681SAndroid Build Coastguard Worker making it a high volume list. 462*9880d681SAndroid Build Coastguard Worker 463*9880d681SAndroid Build Coastguard Worker .. __: http://lists.llvm.org/pipermail/llvm-testresults/ 464*9880d681SAndroid Build Coastguard Worker 465*9880d681SAndroid Build Coastguard Worker`LLVM Announcements List (llvm-announce)`__ 466*9880d681SAndroid Build Coastguard Worker This is a low volume list that provides important announcements regarding 467*9880d681SAndroid Build Coastguard Worker LLVM. It gets email about once a month. 468*9880d681SAndroid Build Coastguard Worker 469*9880d681SAndroid Build Coastguard Worker .. __: http://lists.llvm.org/mailman/listinfo/llvm-announce 470*9880d681SAndroid Build Coastguard Worker 471*9880d681SAndroid Build Coastguard WorkerIRC 472*9880d681SAndroid Build Coastguard Worker--- 473*9880d681SAndroid Build Coastguard Worker 474*9880d681SAndroid Build Coastguard WorkerUsers and developers of the LLVM project (including subprojects such as Clang) 475*9880d681SAndroid Build Coastguard Workercan be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_. 476*9880d681SAndroid Build Coastguard Worker 477*9880d681SAndroid Build Coastguard WorkerThis channel has several bots. 478*9880d681SAndroid Build Coastguard Worker 479*9880d681SAndroid Build Coastguard Worker* Buildbot reporters 480*9880d681SAndroid Build Coastguard Worker 481*9880d681SAndroid Build Coastguard Worker * llvmbb - Bot for the main LLVM buildbot master. 482*9880d681SAndroid Build Coastguard Worker http://lab.llvm.org:8011/console 483*9880d681SAndroid Build Coastguard Worker * bb-chapuni - An individually run buildbot master. http://bb.pgr.jp/console 484*9880d681SAndroid Build Coastguard Worker * smooshlab - Apple's internal buildbot master. 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Worker* robot - Bugzilla linker. %bug <number> 487*9880d681SAndroid Build Coastguard Worker 488*9880d681SAndroid Build Coastguard Worker* clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running 489*9880d681SAndroid Build Coastguard Worker near-trunk clang instead of gcc. 490*9880d681SAndroid Build Coastguard Worker 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard WorkerIndices and tables 493*9880d681SAndroid Build Coastguard Worker================== 494*9880d681SAndroid Build Coastguard Worker 495*9880d681SAndroid Build Coastguard Worker* :ref:`genindex` 496*9880d681SAndroid Build Coastguard Worker* :ref:`search` 497