diff --git a/llvm/docs/GettingStarted.rst b/llvm/docs/GettingStarted.rst --- a/llvm/docs/GettingStarted.rst +++ b/llvm/docs/GettingStarted.rst @@ -95,7 +95,7 @@ ``make -j NNN`` (with an appropriate value of NNN, e.g. number of CPUs you have.) - * For more information see `CMake `_ + * For more information see `CMake `__ * If you get an "internal compiler error (ICE)" or test failures, see `below`_. @@ -169,7 +169,7 @@ =========================================================== ============ ========================================== Package Version Notes =========================================================== ============ ========================================== -`CMake `_ >=3.4.3 Makefile/workspace generator +`CMake `__ >=3.4.3 Makefile/workspace generator `GCC `_ >=5.1.0 C/C++ compiler\ :sup:`1` `python `_ >=2.7 Automated test suite\ :sup:`2` `zlib `_ >=1.2.3.4 Compression library\ :sup:`3` diff --git a/llvm/docs/GlobalISel.rst b/llvm/docs/GlobalISel.rst --- a/llvm/docs/GlobalISel.rst +++ b/llvm/docs/GlobalISel.rst @@ -573,11 +573,13 @@ since G_ANYEXT doesn't define the value of the additional bits and G_TRUNC is discarding bits. The other conversions can be lowered into G_ANYEXT/G_TRUNC with some additional operations that are subject to further legalization. For -example, G_SEXT can lower to: +example, G_SEXT can lower to:: + %1 = G_ANYEXT %0 %2 = G_CONSTANT ... %3 = G_SHL %1, %2 %4 = G_ASHR %3, %2 + and the G_CONSTANT/G_SHL/G_ASHR can further lower to other operations or target instructions. Similarly, G_FPEXT has no legality requirement since it can lower to a G_ANYEXT followed by a target instruction. @@ -622,6 +624,7 @@ G_BUILD_VECTOR_TRUNC, G_CONCAT_VECTORS, G_UNMERGE_VALUES, G_PTRTOINT, and G_INTTOPTR have already been noted above. In addition to those, the following operations have requirements: + * At least one G_IMPLICIT_DEF must be legal. This is usually trivial as it requires no code to be selected. * G_PHI must be legal for all types in the producer and consumer typesets. This diff --git a/llvm/docs/LoopTerminology.rst b/llvm/docs/LoopTerminology.rst --- a/llvm/docs/LoopTerminology.rst +++ b/llvm/docs/LoopTerminology.rst @@ -1,4 +1,5 @@ .. _loop-terminology: + =========================================== LLVM Loop Terminology (and Canonical Forms) =========================================== diff --git a/llvm/docs/ORCv2.rst b/llvm/docs/ORCv2.rst --- a/llvm/docs/ORCv2.rst +++ b/llvm/docs/ORCv2.rst @@ -476,24 +476,21 @@ .. code-block:: c++ + ThreadSafeContext TSCtx(llvm::make_unique()); - ThreadSafeContext TSCtx(llvm::make_unique()); - - ThreadPool TP(NumThreads); - JITStack J; - - for (auto &ModulePath : ModulePaths) { - TP.async( - [&]() { - auto Lock = TSCtx.getLock(); - - auto M = loadModuleOnContext(ModulePath, TSCtx.getContext()); + ThreadPool TP(NumThreads); + JITStack J; - J.addModule(ThreadSafeModule(std::move(M), TSCtx)); - }); - } + for (auto &ModulePath : ModulePaths) { + TP.async( + [&]() { + auto Lock = TSCtx.getLock(); + auto M = loadModuleOnContext(ModulePath, TSCtx.getContext()); + J.addModule(ThreadSafeModule(std::move(M), TSCtx)); + }); + } - TP.wait(); + TP.wait(); To make exclusive access to Modules easier to manage the ThreadSafeModule class provides a convenince function, ``withModuleDo``, that implicitly (1) locks the diff --git a/llvm/docs/index.rst b/llvm/docs/index.rst --- a/llvm/docs/index.rst +++ b/llvm/docs/index.rst @@ -274,6 +274,7 @@ BlockFrequencyTerminology BranchWeightMetadata Bugpoint + BugpointRedesign CodeGenerator ExceptionHandling AddingConstrainedIntrinsics @@ -313,6 +314,7 @@ CFIVerify SpeculativeLoadHardening StackSafetyAnalysis + LoopTerminology :doc:`WritingAnLLVMPass` Information on how to write LLVM transformations and analyses. @@ -363,6 +365,9 @@ Automatic bug finder and test-case reducer description and usage information. +:doc:`BugpointRedesign` + Design doc for a redesign of the Bugpoint tool. + :doc:`BitCodeFormat` This describes the file format and encoding used for LLVM "bc" files. @@ -461,6 +466,9 @@ This document describes the design of the stack safety analysis of local variables. +:doc:`LoopTerminology` + A document describing Loops and associated terms as used in LLVM. + Development Process Documentation ================================= diff --git a/llvm/docs/tutorial/index.rst b/llvm/docs/tutorial/index.rst --- a/llvm/docs/tutorial/index.rst +++ b/llvm/docs/tutorial/index.rst @@ -10,9 +10,10 @@ :glob: :numbered: -#. `My First Language Frontend with LLVM Tutorial `_ - This is the "Kaleidoscope" Language tutorial, showing how to implement - a simple language using LLVM components in C++. + MyFirstLanguageFrontend/index + +This is the "Kaleidoscope" Language tutorial, showing how to implement a simple +language using LLVM components in C++. Kaleidoscope: Implementing a Language with LLVM in Objective Caml =================================================================