summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* Make processing @llvm.assume more efficient by using operand bundlesHal Finkel2016-12-151-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | There was an efficiency problem with how we processed @llvm.assume in ValueTracking (and other places). The AssumptionCache tracked all of the assumptions in a given function. In order to find assumptions relevant to computing known bits, etc. we searched every assumption in the function. For ValueTracking, that means that we did O(#assumes * #values) work in InstCombine and other passes (with a constant factor that can be quite large because we'd repeat this search at every level of recursion of the analysis). Several of us discussed this situation at the last developers' meeting, and this implements the discussed solution: Make the values that an assume might affect operands of the assume itself. To avoid exposing this detail to frontends and passes that need not worry about it, I've used the new operand-bundle feature to add these extra call "operands" in a way that does not affect the intrinsic's signature. I think this solution is relatively clean. InstCombine adds these extra operands based on what ValueTracking, LVI, etc. will need and then those passes need only search the users of the values under consideration. This should fix the computational-complexity problem. At this point, no passes depend on the AssumptionCache, and so I'll remove that as a follow-up change. Differential Revision: https://reviews.llvm.org/D27259 llvm-svn: 289755
* [libFuzzer] document one more desired feature of a fuzz targetKostya Serebryany2016-12-141-0/+1
| | | | llvm-svn: 289622
* IR, X86: Understand !absolute_symbol metadata on global variables.Peter Collingbourne2016-12-081-0/+19
| | | | | | | | | | | | | | | | | Summary: Attaching !absolute_symbol to a global variable does two things: 1) Marks it as an absolute symbol reference. 2) Specifies the value range of that symbol's address. Teach the X86 backend to allow absolute symbols to appear in place of immediates by extending the relocImm and mov64imm32 matchers. Start using relocImm in more places where it is legal. As previously proposed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2016-October/105800.html Differential Revision: https://reviews.llvm.org/D25878 llvm-svn: 289087
* Revert "[CodeGen] Fix invalid DWARF info on Win64"Keno Fischer2016-12-081-1/+1
| | | | | | Appears to break on build bots. Reverting pending investigation. llvm-svn: 289014
* [CodeGen] Fix invalid DWARF info on Win64Keno Fischer2016-12-081-1/+1
| | | | | | | | | | | | | | | The relocations for `DIEEntry::EmitValue` were wrong for Win64 (emitting FK_Data_4 instead of FK_SecRel_4). This corrects that oversight so that the DWARF data is correct in Win64 COFF files. Fixes PR15393. Patch by Jameson Nash <jameson@juliacomputing.com> based on a patch by David Majnemer. Differential Revision: https://reviews.llvm.org/D21731 llvm-svn: 289013
* [doc] Add .arcconfig setup to the "how to work with a monorepo" sectionMehdi Amini2016-12-031-0/+11
| | | | llvm-svn: 288562
* IR: Move NumElements field from {Array,Vector}Type to SequentialType.Peter Collingbourne2016-12-021-3/+3
| | | | | | | | | | Now that PointerType is no longer a SequentialType, all SequentialTypes have an associated number of elements, so we can move that information to the base class, allowing for a number of simplifications. Differential Revision: https://reviews.llvm.org/D27122 llvm-svn: 288464
* IR: Change PointerType to derive from Type rather than SequentialType.Peter Collingbourne2016-12-021-2/+2
| | | | | | | | | | | | | | | | | | | As proposed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2016-October/106640.html This is for a couple of reasons: - Values of type PointerType are unlike the other SequentialTypes (arrays and vectors) in that they do not hold values of the element type. By moving PointerType we can unify certain aspects of how the other SequentialTypes are handled. - PointerType will have no place in the SequentialType hierarchy once pointee types are removed, so this is a necessary step towards removing pointee types. Differential Revision: https://reviews.llvm.org/D26595 llvm-svn: 288462
* Revert 'Test commit as per developer policy'Jonas Devlieghere2016-11-301-4/+4
| | | | llvm-svn: 288233
* Test commit as per developer policyJonas Devlieghere2016-11-301-4/+4
| | | | llvm-svn: 288232
* Add documentation for the PDB Module Info stream.Zachary Turner2016-11-294-1/+88
| | | | llvm-svn: 288205
* [docs] Typos and whitespace fixed in LTO docs.Mehdi Amini2016-11-291-21/+21
| | | | | | | | | | While reading the LTO docs I fixed few small typos and whitespace issues. Patch by: Jonas Devlieghere <jonas@devlieghere.com> Differential Revision: https://reviews.llvm.org/D27196 llvm-svn: 288171
* Fix doc of `llvm.bitreverse.iN`Yichao Yu2016-11-231-1/+1
| | | | | | | | | | | | | | | Summary: The return type is `iN` rather than always `i16` Seems to be a typo in https://reviews.llvm.org/rL252878 . Reviewers: jmolloy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27047 llvm-svn: 287769
* [CUDA] Note in docs that you need to build with -lcudart on MacOSJustin Lebar2016-11-221-0/+4
| | | | | | -lcudart_static doesn't work. We don't know why. llvm-svn: 287715
* Timer: Track name and description.Matthias Braun2016-11-181-0/+4
| | | | | | | | | | | | | The previously used "names" are rather descriptions (they use multiple words and contain spaces), use short programming language identifier like strings for the "names" which should be used when exporting to machine parseable formats. Also removed a unused TimerGroup from Hexxagon. Differential Revision: https://reviews.llvm.org/D25583 llvm-svn: 287369
* [Docs][TableGen] Remove reference to tablegen supporting octal integers. It ↵Craig Topper2016-11-181-3/+0
| | | | | | doesn't and hasn't for at least 9 years. llvm-svn: 287299
* [CUDA] Update docs to indicate that MacOS is now supported.Justin Lebar2016-11-181-0/+3
| | | | llvm-svn: 287290
* [CUDA] Update docs; CUDA 8.0 is supported as of a while ago.Justin Lebar2016-11-181-2/+1
| | | | llvm-svn: 287289
* [ReleaseNotes] Mention the completion of the upstreaming of the AVR backendDylan McKay2016-11-171-0/+7
| | | | llvm-svn: 287273
* [libFuzzer] better documentation for -fsanitize-coverage=trace-cmpKostya Serebryany2016-11-171-3/+13
| | | | llvm-svn: 287240
* [CUDA] Update docs to indicate that clang now supports std::complex in CUDA ↵Justin Lebar2016-11-171-10/+3
| | | | | | | | mode. The last remaining necessary change was D25403, landed as r287012. llvm-svn: 287184
* [XRay][docs] Define requirements on installed log handlers.Dean Michael Berris2016-11-161-0/+13
| | | | | | | | | | | | | | | | | Summary: We update the documentation to define what the requirements are for the provided XRay log handler. This is to make it clear that the function pointer provided must do internal synchronisation and that there are no guarantees provided by XRay on when the function shall be invoked once it has been installed as a log handler. Reviewers: rSerge, rengolin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26651 llvm-svn: 287073
* TableGen: Add operator !orMatt Arsenault2016-11-151-1/+3
| | | | llvm-svn: 286936
* [PDB] Add documentation for the DBI Stream.Zachary Turner2016-11-142-3/+450
| | | | | | Differential Revision: https://reviews.llvm.org/D26552 llvm-svn: 286853
* [PDB] Add documentation for the PDB Stream.Zachary Turner2016-11-141-3/+80
| | | | | | https://reviews.llvm.org/D26516 llvm-svn: 286852
* [LangRef] Drop misleading anecdoteSanjoy Das2016-11-131-3/+1
| | | | | | | | | | | `shl nsw i8 1, i8 8` is poison, but `mul i8 1, i8 128` is not. This was discussed previously here: http://lists.llvm.org/pipermail/llvm-dev/2015-April/084195.html. From the discussion, it was not clear which semantics we want for `shl`, but for now at least make the language reference more accurate. llvm-svn: 286785
* As we released 3.9, from the 4.0 release notes, points to version 3.9 ↵Sylvestre Ledru2016-11-121-1/+1
| | | | | | instead of 3.8 llvm-svn: 286719
* [OCaml] Adapt to the new attribute C API.whitequark2016-11-121-1/+2
| | | | llvm-svn: 286705
* [libFuzzer] one more trophyKostya Serebryany2016-11-121-1/+1
| | | | llvm-svn: 286703
* [Support] Introduce llvm::formatv() function.Zachary Turner2016-11-111-0/+130
| | | | | | | | | | | | | | | | | | This introduces a new type-safe general purpose formatting library. It provides compile-time type safety, does not require a format specifier (since the type is deduced), and provides mechanisms for extending the format capability to user defined types, and overriding the formatting behavior for existing types. This patch additionally adds documentation for the API to the LLVM programmer's manual. Mailing List Thread: http://lists.llvm.org/pipermail/llvm-dev/2016-October/105836.html Differential Revision: https://reviews.llvm.org/D25587 llvm-svn: 286682
* NFC ProgrammersManual fixPiotr Padlewski2016-11-111-1/+1
| | | | llvm-svn: 286645
* IR: Introduce inrange attribute on getelementptr indices.Peter Collingbourne2016-11-101-3/+15
| | | | | | | | | | | | | | | | | If the inrange keyword is present before any index, loading from or storing to any pointer derived from the getelementptr has undefined behavior if the load or store would access memory outside of the bounds of the element selected by the index marked as inrange. This can be used, e.g. for alias analysis or to split globals at element boundaries where beneficial. As previously proposed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2016-July/102472.html Differential Revision: https://reviews.llvm.org/D22793 llvm-svn: 286514
* [PDB] Begin adding documentation for the PDB file format.Zachary Turner2016-11-1010-0/+306
| | | | | | Differential Revision: https://reviews.llvm.org/D26374 llvm-svn: 286491
* [LangRef] Drop "experimental" caveat from operand bundlesSanjoy Das2016-11-101-3/+0
| | | | | | I think we're past that point now. llvm-svn: 286428
* [XRay][docs] Fix llvm snippets to be well-formedDean Michael Berris2016-11-091-3/+3
| | | | llvm-svn: 286330
* [doc] Remove explicit CMake version requirement for MSVCMehdi Amini2016-11-091-3/+1
| | | | | | The global minimum one is way past this version. llvm-svn: 286328
* [XRay][Docs] Add documentation for XRay in LLVMDean Michael Berris2016-11-092-0/+223
| | | | | | | | | | | | | | | | | | | Summary: This is the initial version of the documentation for how to use XRay as it stands in LLVM, Clang, and compiler-rt. We leave some room for later expansion mentioining what is work in progress and what could be expected moving forward. We also give a high level overview of future work that's both ongoing and planned. Reviewers: echristo, dblaikie, chandlerc Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D26386 llvm-svn: 286319
* [libFuzzer] minor docs updateKostya Serebryany2016-11-081-3/+3
| | | | llvm-svn: 286299
* [docs] fix link to AMD manuals (PR30946)Sanjay Patel2016-11-081-1/+1
| | | | llvm-svn: 286249
* [docs] Add a pointer to ExitOnError to the discussion of handleErrors in theLang Hames2016-11-071-2/+9
| | | | | | | | | | | | programmer's manual. ExitOnError is often a better alternative to handleErrors for tool code. This patch makes it easier to find the ExitOnError discussion when reading the handleErrors section. Thanks to Peter Collingbourne for the suggestion. llvm-svn: 286167
* [doc] Add documentation about how to use a monorepoMehdi Amini2016-11-071-0/+56
| | | | llvm-svn: 286163
* Add experimental support for unofficial monorepo-like directory layoutMehdi Amini2016-11-071-0/+8
| | | | | | | | | | | | | | | | | | | | Summary: This allows to have clang and llvm and the other subprojects side-by-side instead of nested. This can be used with the monorepo or multiple repos. It will help having a single set of sources checked out but allows to have a build directory with llvm and another one with llvm+clang. Basically it abstracts LLVM_EXTERNAL_xxxx_SOURCE_DIR making it more convenient by adopting a convention. Reviewers: bogner, beanz, jlebar Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D26365 llvm-svn: 286162
* Revert "Add some facilities to work with a git monorepo (experimental setup)"Mehdi Amini2016-11-071-54/+0
| | | | | | This reverts commit r286123, accidentally commited while testing itself... llvm-svn: 286124
* Add some facilities to work with a git monorepo (experimental setup)Mehdi Amini2016-11-071-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Some changes are made to cmake, especially the addition of a new LLVM_ENABLE_PROJECTS option that makes the build system aware of the monorepo directory structure. Also a new script is added in llvm/utils/git-svn/. When present in the $PATH, it enables a `git llvm` command. It is providing at this point only the ability to push from the git monorepo: `git llvm push`. It is intended to evolves with more features, for instance I plan on features like `git llvm show r284955` to help working with sequential revision numbers. The push feature is taken from Justin Lebar's script available here: https://github.com/jlebar/llvm-repo-tools/ Reviewers: jlebar Subscribers: mgorny, modocache, llvm-commits Differential Revision: https://reviews.llvm.org/D26334 llvm-svn: 286123
* Update CommandLine.rst getRegisteredOptions exampleBrian Gesiak2016-11-071-2/+1
| | | | | | | | | | Summary: Update the docs to match the changes in http://reviews.llvm.org/D7132 Reviewers: beanz, llvm-commits, modocache Differential Revision: https://reviews.llvm.org/D26296 llvm-svn: 286094
* Kill deprecated attribute APIAmaury Sechet2016-11-061-0/+6
| | | | | | | | | | | | | | | Summary: This kill various depreacated API related to attribute : - The deprecated C API attribute based on LLVMAttribute enum. - The Raw attribute set format (planned to be removed in 4.0). Reviewers: bkramer, echristo, mehdi_amini, void Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D23039 llvm-svn: 286062
* [docs] Add initial Global ISel documentation.Ahmed Bougacha2016-11-042-0/+676
| | | | | | | | This reflects the current state of Global ISel. As progress is made, we'll document our design decisions in it. Comments very welcome! llvm-svn: 286002
* [libFuzzer] fix -error_exitcode=N, now with a test Kostya Serebryany2016-11-031-2/+3
| | | | llvm-svn: 285958
* [docs] Fix some typos. NFC.Vedant Kumar2016-11-011-15/+14
| | | | llvm-svn: 285772
* [RISCV] Add stub backendAlex Bradbury2016-11-011-0/+4
| | | | | | | | | | | | | | This contains just enough for lib/Target/RISCV to compile. Notably a basic RISCVTargetMachine and RISCVTargetInfo. At this point you can attempt llc -march=riscv32 myinput.ll and will find it fails due to the lack of MCAsmInfo. See http://lists.llvm.org/pipermail/llvm-dev/2016-August/103748.html for further discussion Differential Revision: https://reviews.llvm.org/D23560 llvm-svn: 285712
OpenPOWER on IntegriCloud