aboutsummaryrefslogtreecommitdiff
path: root/llvm/docs/ProgrammersManual.rst
AgeCommit message (Collapse)AuthorFilesLines
2016-09-02Fixed a typo (LLVM/Support/CFG.h -> LLVM/IR/CFG.h)Andrey Bokhanko1-1/+1
llvm-svn: 280481
2016-09-02[Docs] Fix another typo in the Error/Expected docs.Lang Hames1-2/+2
llvm-svn: 280461
2016-09-02[Docs] Fix a couple of typos in the Error/Expected docs.Lang Hames1-4/+4
llvm-svn: 280460
2016-07-13fix incorrect xref in sphinx docEtienne Bergeron1-1/+1
llvm-svn: 275255
2016-07-09[docs] Fix up a broken link.Sean Silva1-1/+1
llvm-svn: 275002
2016-04-14Remove every uses of getGlobalContext() in LLVM (but the C API)Mehdi Amini1-5/+0
At the same time, fixes InstructionsTest::CastInst unittest: yes you can leave the IR in an invalid state and exit when you don't destroy the context (like the global one), no longer now. This is the first part of http://reviews.llvm.org/D19094 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266379
2016-03-24Try to fix ODR violation of ErrorInfo::IDReid Kleckner1-0/+3
This implements my suggestion to Lang. llvm-svn: 264360
2016-03-24[docs] Clarify Error example in Programmer's Manual.Lang Hames1-4/+6
llvm-svn: 264314
2016-03-23docs: Fix a missing language in a code-blockJustin Bogner1-1/+1
This should fix the docs build. Spotted by spstarr, thanks! llvm-svn: 264209
2016-03-23[docs] Fix typo in ProgrammersManual.rstVedant Kumar1-1/+1
Patch by Miod Vallat! llvm-svn: 264138
2016-03-23[Docs] Clarify boolean conversion for Error and Expected<T> in the Programmer'sLang Hames1-4/+16
Manual. llvm-svn: 264135
2016-03-16[Support] Add the 'Error' class for structured error handling.Lang Hames1-0/+168
This patch introduces the Error classs for lightweight, structured, recoverable error handling. It includes utilities for creating, manipulating and handling errors. The scheme is similar to exceptions, in that errors are described with user-defined types. Unlike exceptions however, errors are represented as ordinary return types in the API (similar to the way std::error_code is used). For usage notes see the LLVM programmer's manual, and the Error.h header. Usage examples can be found in unittests/Support/ErrorTest.cpp. Many thanks to David Blaikie, Mehdi Amini, Kevin Enderby and others on the llvm-dev and llvm-commits lists for lots of discussion and review. llvm-svn: 263609
2016-02-14Fix some typos in the llvm docSylvestre Ledru1-2/+2
llvm-svn: 260855
2016-01-12The --debug-only option now takes a comma separated list of debug types.Christof Douma1-1/+5
This means that the DEBUG_TYPE cannot take a comma anymore. All existing passes conform to this rule. Differential Revision: http://reviews.llvm.org/D15645 llvm-svn: 257466
2015-10-15docs: Stop using DEBUG() without DEBUG_TYPE in the ProgrammersManualJustin Bogner1-18/+10
The DEBUG() macro has required that a DEBUG_TYPE be set since r206822. Update the programmers manual to reflect that, and also update the wording to point out that DEBUG_TYPE should be defined after #includes. llvm-svn: 250436
2015-07-29Reverting r243386 because it has serious post-commit concerns that have not ↵Aaron Ballman1-2/+1
been addressed. Also reverts r243389, which relied on this commit. llvm-svn: 243527
2015-07-28Adding ADT SortedVector; client patch will follow.Puyan Lotfi1-1/+2
llvm-svn: 243386
2015-07-12Fix PR24099 reported by Tomas Brukner.Yaron Keren1-1/+1
llvm-svn: 241997
2015-05-19Fix documentation for Set-Like ContainersArtyom Skrobov1-10/+26
llvm-svn: 237677
2015-04-16Editorial changes in the programmers manual.Charlie Turner1-4/+5
VMCore was renamed to IR back in 2013. The relevant "core" implementations were moved into the lib/IR directory at the same time. llvm-svn: 235116
2015-04-14Correct 'teh' and other typos / repeated words.Ed Maste1-2/+2
Patch by Eitan Adler. Differential Revision: http://reviews.llvm.org/D8514 llvm-svn: 234939
2015-03-26[ADT][CMake][AutoConf] Fail-fast iterators for DenseMapSanjoy Das1-0/+16
Summary: This patch is an attempt at making `DenseMapIterator`s "fail-fast". Fail-fast iterators that have been invalidated due to insertion into the host `DenseMap` deterministically trip an assert (in debug mode) on access, instead of non-deterministically hitting memory corruption issues. Enabling fail-fast iterators breaks the LLVM C++ ABI, so they are predicated on `LLVM_ENABLE_ABI_BREAKING_CHECKS`. `LLVM_ENABLE_ABI_BREAKING_CHECKS` by default flips with `LLVM_ENABLE_ASSERTS`, but can be clamped to ON or OFF using the CMake / autoconf build system. Reviewers: chandlerc, dexonsmith, rnk, zturner Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8351 llvm-svn: 233310
2015-03-17[docs] Fix copy-and-paste bug in def-use exampleAdam Nemet1-1/+1
This appeared when the example was converted to use range-based loop in r207755. llvm-svn: 232509
2015-02-21docs: Mention that assertions must be enabled to use the -stats flagJustin Bogner1-0/+3
Patch by Rob Stewart. Thanks! llvm-svn: 230144
2015-01-28[docs] Use slightly more proper .rst markupSean Silva1-3/+3
Again, I'd like to emphasize to everyone that this sort of markup change is *not* what you should be concerned about when writing docs. Focus on *content*. I applaud Chandler for focusing on the fantastic content of this new section! llvm-svn: 227305
2015-01-28Introduce a section to the programmers manual about type hierarchies,Chandler Carruth1-0/+70
polymorphism, and virtual dispatch. This is essentially trying to explain the emerging design techniques being used in LLVM these days somewhere more accessible than the comments on a particular piece of infrastructure. It covers the "concepts-based polymorphism" that caused some confusion during initial reviews of the new pass manager as well as the tagged-dispatch mechanism used pervasively in LLVM and Clang. Perhaps most notably, I've tried to provide some criteria to help developers choose between these options when designing new pieces of infrastructure. Differential Revision: http://reviews.llvm.org/D7191 llvm-svn: 227292
2015-01-17ProgrammersManual.rst: fix a typoHans Wennborg1-1/+1
llvm-svn: 226367
2014-09-25Update my previous commit to fit 80 cols...Sylvestre Ledru1-1/+2
llvm-svn: 218448
2014-09-25Details that -debug-only is not available when LLVM is built with ↵Sylvestre Ledru1-0/+2
--enable-optimized llvm-svn: 218447
2014-08-29Fix typos in comments, NFCRobin Morisset1-1/+1
Summary: Just fixing comments, no functional change. Test Plan: N/A Reviewers: jfb Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D5130 llvm-svn: 216784
2014-08-23ProgrammersManual: the flag is called -debug-onlyHans Wennborg1-1/+1
llvm-svn: 216316
2014-07-21Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) ↵Duncan P. N. Exon Smith1-2/+3
iterator ranges." This reverts commit r213474 (and r213475), which causes a miscompile on a stage2 LTO build. I'll reply on the list in a moment. llvm-svn: 213562
2014-07-20[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ↵Manuel Jacob1-3/+2
ranges. Summary: This patch introduces two new iterator ranges and updates existing code to use it. No functional change intended. Test Plan: All tests (make check-all) still pass. Reviewers: dblaikie Reviewed By: dblaikie Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D4481 llvm-svn: 213474
2014-07-17Remove rules against std::function from the programmer's manualReid Kleckner1-12/+8
Clarify that llvm::function_ref is like StringRef for callables. llvm-svn: 213326
2014-07-15ADT: Add MapVector::remove_ifDuncan P. N. Exon Smith1-2/+4
Add a `MapVector::remove_if()` that erases items in bulk in linear time, as opposed to quadratic time for repeated calls to `MapVector::erase()`. llvm-svn: 213090
2014-07-15ADT: Fix MapVector::erase()Duncan P. N. Exon Smith1-1/+1
Actually update the changed indexes in the map portion of `MapVector` when erasing from the middle. Add a unit test that checks for this. Note that `MapVector::erase()` is a linear time operation (it was and still is). I'll commit a new method in a moment called `MapVector::remove_if()` that deletes multiple entries in linear time, which should be slightly less painful. llvm-svn: 213084
2014-06-27Re-apply r211287: Remove support for LLVM runtime multi-threading.Chandler Carruth1-41/+4
I'll fix the problems in libclang and other projects in ways that don't require <mutex> until we sort out the cygwin situation. llvm-svn: 211900
2014-06-24Revert r211287, "Remove support for LLVM runtime multi-threading."NAKAMURA Takumi1-4/+41
libclang still requires it on cygming, lack of incomplete <mutex>. llvm-svn: 211592
2014-06-19Remove support for LLVM runtime multi-threading.Zachary Turner1-41/+4
After a number of previous small iterations, the functions llvm_start_multithreaded() and llvm_stop_multithreaded() have been reduced essentially to no-ops. This change removes them entirely. Reviewed by: rnk, dblaikie Differential Revision: http://reviews.llvm.org/D4216 llvm-svn: 211287
2014-06-19Kill the LLVM global lock.Zachary Turner1-5/+0
This patch removes the LLVM global lock, and updates all existing users of the global lock to use their own mutex. None of the existing users of the global lock were protecting code that was mutually exclusive with any of the other users of the global lock, so its purpose was not being met. Reviewed by: rnk Differential Revision: http://reviews.llvm.org/D4142 llvm-svn: 211277
2014-06-16Revert r211066, 211067, 211068, 211069, 211070.Zachary Turner1-4/+47
These were committed accidentally from the wrong branch before having a review sign-off. llvm-svn: 211072
2014-06-16Programmer's Manual changes.Zachary Turner1-47/+4
llvm-svn: 211070
2014-06-06Fix a typo made in Programmer's Manual made in r210354. SpottedDan Liew1-1/+1
by Paul Robinson. llvm-svn: 210363
2014-06-06Mention the IRBuilder in Programmer's Manual with a few small examples.Dan Liew1-1/+36
llvm-svn: 210354
2014-06-05Fix markup for -debug-only optionAlexey Samsonov1-1/+2
llvm-svn: 210300
2014-06-02GraphWriter: detect graph viewer programs at runtimeAlp Toker1-3/+4
Replace the crufty build-time configure checks for program paths with equivalent runtime logic. This lets users install graphing tools as needed without having to reconfigure and rebuild LLVM, while eliminating a long chain of inappropriate compile dependencies that included GUI programs and the windowing system. Additional features: * Support the OS X 'open' command to view graphs generated by any of the Graphviz utilities. This is an alternative to the Graphviz OS X UI which is no longer available on Mountain Lion. * Produce informative log output upon failure to indicate which programs can be installed to view graphs. Ping me if this doesn't work for your particular environment. llvm-svn: 210001
2014-05-06Update programmers manual to cover llvm::function_ref, and add a note to theRichard Smith1-0/+72
coding standard suggesting using it instead of the (unavailable) std::function. llvm-svn: 208067
2014-05-06Revert accidentally-committed files.Richard Smith1-72/+0
llvm-svn: 208034
2014-05-06Re-commit r208025, reverted in r208030, with a fix for a conformance issueRichard Smith1-0/+72
which GCC detects and Clang does not! llvm-svn: 208033
2014-05-03Updated Doxygen link for InstIterator.h.Yaron Keren1-1/+1
llvm-svn: 207906