summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos.Bruce Mitchener2015-09-125-14/+14
| | | | | | | | | | Summary: This fixes a variety of typos in docs, code and headers. Subscribers: jholewinski, sanjoy, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D12626 llvm-svn: 247495
* [CodeGen] Refactor TLI/AtomicExpand interface to make LLSC explicit.Ahmed Bougacha2015-09-111-1/+1
| | | | | | | | | | | | | | | We used to have this magic "hasLoadLinkedStoreConditional()" callback, which really meant two things: - expand cmpxchg (to ll/sc). - expand atomic loads using ll/sc (rather than cmpxchg). Remove it, and, instead, introduce explicit callbacks: - bool shouldExpandAtomicCmpXchgInIR(inst) - AtomicExpansionKind shouldExpandAtomicLoadInIR(inst) Differential Revision: http://reviews.llvm.org/D12557 llvm-svn: 247429
* [libFuzzer] mention more trophiesKostya Serebryany2015-09-111-0/+4
| | | | llvm-svn: 247425
* [docs][PerformanceTips] Add text on allocas and alignmentPhilip Reames2015-09-101-0/+41
| | | | | | This summarizes two recent llvm-dev discussions. Most of the text provided by David Chisnall and Benoit Belley with minor editting by me. llvm-svn: 247301
* Re-apply r247080 with order of evaluation fix.Peter Collingbourne2015-09-082-11/+56
| | | | llvm-svn: 247095
* Revert r247080, "LowerBitSets: Extend pass to support functions as bitsetPeter Collingbourne2015-09-082-56/+11
| | | | | | members." as it causes test failures on a number of bots. llvm-svn: 247088
* [docs] Fix typo in catchret exampleVedant Kumar2015-09-081-1/+1
| | | | | | | An example usage of catchret omitted the "to" in "to label" in ExceptionHandling.rst. llvm-svn: 247086
* LowerBitSets: Extend pass to support functions as bitset members.Peter Collingbourne2015-09-082-11/+56
| | | | | | | | | | | | | | This change extends the bitset lowering pass to support bitsets that may contain either functions or global variables. A function bitset is lowered to a jump table that is laid out before one of the functions in the bitset. Also add support for non-string bitset identifier names. This allows for distinct metadata nodes to stand in for names with internal linkage, as done in D11857. Differential Revision: http://reviews.llvm.org/D11856 llvm-svn: 247080
* [docs] Update documentation for the landingpad instructionVedant Kumar2015-09-081-5/+5
| | | | llvm-svn: 247062
* [libFuzzer] better documentatio for -save_minimized_corpus=1Kostya Serebryany2015-09-081-1/+1
| | | | llvm-svn: 247033
* MIRLangRef: Add documentation for the subregister indices.Alex Lorenz2015-09-081-2/+19
| | | | llvm-svn: 247005
* MIRLangRef: Add documentation for the global value machine operands.Alex Lorenz2015-09-081-1/+22
| | | | llvm-svn: 247004
* [libFuzzer] actually make the dictionaries work (+docs)Kostya Serebryany2015-09-041-0/+20
| | | | llvm-svn: 246825
* Try to clarify the semantics of fptruncDan Liew2015-09-031-3/+5
| | | | | | | | | | | | | | | | | * ``the value cannot fit within the destination type`` is ambiguous. It could mean overflow, underflow (not in the IEEE-754 sense) or a result that cannot be exactly represented and requires rounding or it could mean some combination of these. The semantics now state it means overflow **only**. * Using "truncation" in the semantics is very misleading given that it doesn't necessarily truncate (i.e. round to zero). For example on x86_64 with SSE2 this is currently mapped to cvtsd2ss instruction who's rounding behaviour is dependent on the MXCSR register which is usually set to round to nearest even by default. The semantics now state that the rounding mode is undefined. llvm-svn: 246792
* [Docs] Fix Sphinx warningJoseph Tremoulet2015-09-031-1/+1
| | | | | | Title underline was too short. llvm-svn: 246754
* [WinEH] Add llvm.eh.exceptionpointer intrinsicJoseph Tremoulet2015-09-032-3/+17
| | | | | | | | | | | | | | | | | Summary: This intrinsic can be used to extract a pointer to the exception caught by a given catchpad. Its argument has token type and must be a `catchpad`. Also clarify ExtendingLLVM documentation regarding overloaded intrinsics. Reviewers: majnemer, andrew.w.kaylor, sanjoy, rnk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12533 llvm-svn: 246752
* [WinEH] Add cleanupendpad instructionJoseph Tremoulet2015-09-032-38/+154
| | | | | | | | | | | | | | | | | | | | | | | Summary: Add a `cleanupendpad` instruction, used to mark exceptional exits out of cleanups (for languages/targets that can abort a cleanup with another exception). The `cleanupendpad` instruction is similar to the `catchendpad` instruction in that it is an EH pad which is the target of unwind edges in the handler and which itself has an unwind edge to the next EH action. The `cleanupendpad` instruction, similar to `cleanupret` has a `cleanuppad` argument indicating which cleanup it exits. The unwind successors of a `cleanuppad`'s `cleanupendpad`s must agree with each other and with its `cleanupret`s. Update WinEHPrepare (and docs/tests) to accomodate `cleanupendpad`. Reviewers: rnk, andrew.w.kaylor, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12433 llvm-svn: 246751
* [libFuzzer] remove the section about '-tokens' as I am going to deprecate ↵Kostya Serebryany2015-09-021-23/+1
| | | | | | this option llvm-svn: 246728
* Small docs fixPiotr Padlewski2015-09-021-1/+1
| | | | | | http://reviews.llvm.org/D12572 llvm-svn: 246705
* fix underlineSanjay Patel2015-09-021-1/+1
| | | | llvm-svn: 246693
* add unpredictable metadata type for control flowSanjay Patel2015-09-021-0/+10
| | | | | | | | | | | | | | | This patch defines 'unpredictable' metadata. This metadata can be used to signal to the optimizer or backend that a branch or switch is unpredictable, and therefore, it's probably better to not split a compound predicate into multiple branches such as in CodeGenPrepare::splitBranchCondition(). This was discussed in: https://llvm.org/bugs/show_bug.cgi?id=23827 Dependent patches to alter codegen and expose this in clang to follow. Differential Revision; http://reviews.llvm.org/D12341 llvm-svn: 246688
* Make trunk release notes point to 3.7, not 3.6Nico Weber2015-09-011-1/+1
| | | | llvm-svn: 246588
* [libFuzzer] update the docs to mention llvm-as-fuzzer Kostya Serebryany2015-08-311-2/+8
| | | | llvm-svn: 246471
* DI: Require subprogram definitions to be distinctDuncan P. N. Exon Smith2015-08-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | As a follow-up to r246098, require `DISubprogram` definitions (`isDefinition: true`) to be 'distinct'. Specifically, add an assembler check, a verifier check, and bitcode upgrading logic to combat testcase bitrot after the `DIBuilder` change. While working on the testcases, I realized that test/Linker/subprogram-linkonce-weak-odr.ll isn't relevant anymore. Its purpose was to check for a corner case in PR22792 where two subprogram definitions match exactly and share the same metadata node. The new verifier check, requiring that subprogram definitions are 'distinct', precludes that possibility. I updated almost all the IR with the following script: git grep -l -E -e '= !DISubprogram\(.* isDefinition: true' | grep -v test/Bitcode | xargs sed -i '' -e 's/= \(!DISubprogram(.*, isDefinition: true\)/= distinct \1/' Likely some variant of would work for out-of-tree testcases. llvm-svn: 246327
* Recommit r246175 - Add Kaleidoscope regression tests, with a fix to make sureLang Hames2015-08-271-1/+1
| | | | | | the kaleidoscope 'library' functions aren't dead-stripped in release builds. llvm-svn: 246201
* Revert r246175 to get builder green again.Lang Hames2015-08-271-1/+1
| | | | llvm-svn: 246185
* Add Kaleidoscope regression tests.Lang Hames2015-08-271-1/+1
| | | | | | These will be run if LLVM_BUILD_EXAMPLES is enabled. llvm-svn: 246175
* [docs][Statepoints] More on base pointersPhilip Reames2015-08-261-18/+62
| | | | | | Expand the information on base pointers to include an example, the assumptions a collector is allowed to make, legal optimizations over gc.relocates, and the assumptions made by RewriteStatepointsForGC. This is the result of a recent conversation with folks from LLIC and the confusions that came to light therein. llvm-svn: 246103
* [Kaleidoscope] Fix a typo in Chapter 5.Lang Hames2015-08-261-1/+1
| | | | llvm-svn: 246081
* [docs][Statepoint] Add definitions for base and derived pointersPhilip Reames2015-08-261-0/+17
| | | | | | This section will be expanded over the next few days. This is just some initial content. llvm-svn: 246041
* Big Kaleidoscope tutorial update.Lang Hames2015-08-267-265/+383
| | | | | | | | | | | | | This commit switches the underlying JIT for the Kaleidoscope tutorials from MCJIT to a custom ORC-based JIT, KaleidoscopeJIT. This fixes a lot of the bugs in Kaleidoscope that were introduced when we deleted the legacy JIT. The documentation for Chapter 4, which introduces the JIT APIs, is updated to reflect the change. Also included are a number of C++11 modernizations and general cleanup. Where appropriate, the docs have been updated to reflect these changes too. llvm-svn: 246002
* [docs] Improvements to CMake.rstVedant Kumar2015-08-251-94/+110
| | | | | | | | | | | | | | | | | - Fix some grammatical and typographical errors. - Try to improve upon some awkward/nonstandard phrasings. - Expand slightly the treatment of how you specify arguments to cmake. - Update the list of possible LLVM_BUILD_TESTS and state where to find the definitive list. - Correct the name of llvm-tblgen. - Expand slightly the treatment of several build options, including LLVM_LIT_TOOLS_DIR, LLVM_ENABLE_FFI, and LLVM_EXTERNAL_project_SOURCE_DIR. Patch by Brian R. Gaeke! Differential Revision: http://reviews.llvm.org/D11862 llvm-svn: 245911
* [docs][PerformanceTips] Framing the generic IR tipsPhilip Reames2015-08-241-14/+32
| | | | llvm-svn: 245858
* [docs][PerformanceTips] Point people towards llvm-devPhilip Reames2015-08-241-0/+7
| | | | llvm-svn: 245856
* [docs] Further organization of the Performance Tips documentPhilip Reames2015-08-241-15/+54
| | | | | | | | Arranging the language specific property section into readable groupings and adding a couple of notes about pass order, extensions, and the like. For the record, suggestion for word smithing are welcomed. I'm happy to revise; I'm just trying to get *something* in place. llvm-svn: 245855
* [docs] Organize the 'Performance Tips' pagePhilip Reames2015-08-241-46/+54
| | | | | | This change just groups the suggestions by broad topic. I'm planning a couple of follow on changes to improve the readability of this document. llvm-svn: 245854
* [LangRef] Fix sphinx warningJoseph Tremoulet2015-08-231-1/+1
| | | | | | Fix invalid inline literal introduced in r245797 llvm-svn: 245801
* [WinEH] Require token linkage in EH pad/ret signaturesJoseph Tremoulet2015-08-232-53/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: WinEHPrepare is going to require that cleanuppad and catchpad produce values of token type which are consumed by any cleanupret or catchret exiting the pad. This change updates the signatures of those operators to require/enforce that the type produced by the pads is token type and that the rets have an appropriate argument. The catchpad argument of a `CatchReturnInst` must be a `CatchPadInst` (and similarly for `CleanupReturnInst`/`CleanupPadInst`). To accommodate that restriction, this change adds a notion of an operator constraint to both LLParser and BitcodeReader, allowing appropriate sentinels to be constructed for forward references and appropriate error messages to be emitted for illegal inputs. Also add a verifier rule (noted in LangRef) that a catchpad with a catchpad predecessor must have no other predecessors; this ensures that WinEHPrepare will see the expected linear relationship between sibling catches on the same try. Lastly, remove some superfluous/vestigial casts from instruction operand setters operating on BasicBlocks. Reviewers: rnk, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12108 llvm-svn: 245797
* MIRLangRef: Add 'MIR Testing Guide' section.Alex Lorenz2015-08-211-0/+63
| | | | llvm-svn: 245757
* MIRLangRef: Describe the syntax for the immediate operands, register values,Alex Lorenz2015-08-211-6/+133
| | | | | | register operands and register flags. llvm-svn: 245738
* Disable Visual C++ 2013 Debug mode assert on null pointer in some STL ↵Yaron Keren2015-08-211-2/+0
| | | | | | | | | | | | | | | algorithms, such as std::equal on the third argument. This reverts previous workarounds. Predefining _DEBUG_POINTER_IMPL disables Visual C++ 2013 headers from defining it to a function performing the null pointer check. In practice, it's not that bad since any function actually using the nullptr will seg fault. The other iterator sanity checks remain enabled in the headers. Reviewed by Aaron Ballmanþ and Duncan P. N. Exon Smith. llvm-svn: 245711
* MIRLangRef: Describe the syntax for machine instruction names and flags.Alex Lorenz2015-08-211-1/+40
| | | | llvm-svn: 245710
* Test Commit: Reformats 2 lines in LangRef.rstMohammad Shahid2015-08-211-4/+4
| | | | llvm-svn: 245673
* [Kaleidoscope] More inter-chapter diff reduction.Lang Hames2015-08-191-1/+3
| | | | llvm-svn: 245474
* [docs] Fix minor typo in CodingStandards.rstVedant Kumar2015-08-191-1/+1
| | | | llvm-svn: 245473
* [Kaleidoscope] Clang-format the Kaleidoscope tutorials.Lang Hames2015-08-198-137/+255
| | | | | | Also reduces changes between tutorial chapters. llvm-svn: 245472
* [Kaleidoscope] Start C++11'ifying the kaleidoscope tutorials.Lang Hames2015-08-188-132/+150
| | | | llvm-svn: 245322
* Doxygen: add build option to use svg instead of png files for graphsHans Wennborg2015-08-174-1/+15
| | | | | | Differential Revision: http://reviews.llvm.org/D11994 llvm-svn: 245256
* [IR] Give catchret an optional 'return value' operandDavid Majnemer2015-08-151-1/+2
| | | | | | | | | | | Some personality routines require funclet exit points to be clearly marked, this is done by producing a token at the funclet pad and consuming it at the corresponding ret instruction. CleanupReturnInst already had a spot for this operand but CatchReturnInst did not. Other personality routines don't need to use this which is why it has been made optional. llvm-svn: 245149
* MIRLangRef: Describe the syntax that is used to represent machine basic blocks.Alex Lorenz2015-08-151-2/+111
| | | | llvm-svn: 245138
OpenPOWER on IntegriCloud