summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename loop unrolling and loop vectorizer metadata to have a common prefix.Eli Bendersky2014-06-252-24/+27
| | | | | | | | | | | | | | | | | | | [LLVM part] These patches rename the loop unrolling and loop vectorizer metadata such that they have a common 'llvm.loop.' prefix. Metadata name changes: llvm.vectorizer.* => llvm.loop.vectorizer.* llvm.loopunroll.* => llvm.loop.unroll.* This was a suggestion from an earlier review (http://reviews.llvm.org/D4090) which added the loop unrolling metadata. Patch by Mark Heffernan. llvm-svn: 211710
* Revert r211287, "Remove support for LLVM runtime multi-threading."NAKAMURA Takumi2014-06-241-4/+41
| | | | | | libclang still requires it on cygming, lack of incomplete <mutex>. llvm-svn: 211592
* Emit the ARM build attributes ABI_PCS_wchar_t and ABI_enum_size.Oliver Stannard2014-06-201-0/+36
| | | | | | | Emit the ARM build attributes ABI_PCS_wchar_t and ABI_enum_size based on module flags metadata. llvm-svn: 211349
* Remove support for LLVM runtime multi-threading.Zachary Turner2014-06-191-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
* [ValueTracking] Extend range metadata to call/invokeJingyue Wu2014-06-191-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: With this patch, range metadata can be added to call/invoke including IntrinsicInst. Previously, it could only be added to load. Rename computeKnownBitsLoad to computeKnownBitsFromRangeMetadata because range metadata is not only used by load. Update the language reference to reflect this change. Test Plan: Add several tests in range-2.ll to confirm the verifier is happy with having range metadata on call/invoke. Add two tests in AddOverFlow.ll to confirm annotating range metadata to call/invoke can benefit InstCombine. Reviewers: meheff, nlewycky, reames, hfinkel, eliben Reviewed By: eliben Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D4187 llvm-svn: 211281
* Kill the LLVM global lock.Zachary Turner2014-06-191-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
* Revert r211066, 211067, 211068, 211069, 211070.Zachary Turner2014-06-161-4/+47
| | | | | | | These were committed accidentally from the wrong branch before having a review sign-off. llvm-svn: 211072
* Programmer's Manual changes.Zachary Turner2014-06-161-47/+4
| | | | llvm-svn: 211070
* Docs: remove extra {} around result types.Tim Northover2014-06-131-97/+97
| | | | | | | | It makes the types look like they're single-element structures. And when we have instructions that *do* result in a struct, that can get confusing rather quickly. llvm-svn: 210905
* Docs: fix grammar error in descriptionTim Northover2014-06-131-4/+4
| | | | llvm-svn: 210904
* IR: add "cmpxchg weak" variant to support permitted failure.Tim Northover2014-06-132-15/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a weak variant of the cmpxchg operation, as described in C++11. A cmpxchg instruction with this modifier is permitted to fail to store, even if the comparison indicated it should. As a result, cmpxchg instructions must return a flag indicating success in addition to their original iN value loaded. Thus, for uniformity *all* cmpxchg instructions now return "{ iN, i1 }". The second flag is 1 when the store succeeded. At the DAG level, a new ATOMIC_CMP_SWAP_WITH_SUCCESS node has been added as the natural representation for the new cmpxchg instructions. It is a strong cmpxchg. By default this gets Expanded to the existing ATOMIC_CMP_SWAP during Legalization, so existing backends should see no change in behaviour. If they wish to deal with the enhanced node instead, they can call setOperationAction on it. Beware: as a node with 2 results, it cannot be selected from TableGen. Currently, no use is made of the extra information provided in this patch. Test updates are almost entirely adapting the input IR to the new scheme. Summary for out of tree users: ------------------------------ + Legacy Bitcode files are upgraded during read. + Legacy assembly IR files will be invalid. + Front-ends must adapt to different type for "cmpxchg". + Backends should be unaffected by default. llvm-svn: 210903
* LangRef: clarify that global declarations can have section and alignment info.Bob Wilson2014-06-121-4/+6
| | | | | | | | I'm not sure what it means to set a section for a declaration in another translation unit, but there are some tests in the tree that do it so it seems to be legal now regardless. llvm-svn: 210819
* Add missing "InitializerConstant" to global variable syntax in LangRef.Bob Wilson2014-06-121-2/+2
| | | | | | | | | | The syntax for Global Variables in LangRef is missing the initializer. This syntax section was added in r199218 along with changes to the dllexport/dllimport handling, and I guess it was just an oversight to omit the initializer values. I’ve marked the initializer as optional because this syntax is used for both declarations and definitions. llvm-svn: 210808
* Reduce verbiage of lit.local.cfg filesAlp Toker2014-06-091-2/+1
| | | | | | We can just split targets_to_build in one place and make it immutable. llvm-svn: 210496
* Update langref for unnamed_addr being allowed in aliases.Rafael Espindola2014-06-091-2/+2
| | | | | | Thanks to Duncan P. N. Exon Smith and Owen Anderson for noticing. llvm-svn: 210490
* ARM: add VLA extension for WoA Itanium ABISaleem Abdulrasool2014-06-091-0/+14
| | | | | | | | | | | | | | | | The armv7-windows-itanium environment is nearly identical to the MSVC ABI. It has a few divergences, mostly revolving around the use of the Itanium ABI for C++. VLA support is one of the extensions that are amongst the set of the extensions. This adds support for proper VLA emission for this environment. This is somewhat similar to the handling for __chkstk emission on X86 and the large stack frame emission for ARM. The invocation style for chkstk is still controlled via the -mcmodel flag to clang. Make an explicit note that this is an extension. llvm-svn: 210489
* [docs] Fix typo, align comments, fix syntax highlightingJeroen Ketema2014-06-091-17/+17
| | | | llvm-svn: 210462
* Fix a few issues with comdat handling on COFF.Rafael Espindola2014-06-061-15/+20
| | | | | | | | | | | | | | | | | | | | | * Section association cannot use just the section name as many sections can have the same name. With this patch, the comdat symbol in an assoc section is interpreted to mean a symbol in the associated section and the mapping is discovered from it. * Comdat symbols were not being set correctly. Instead we were getting whatever was output first for that section. A consequence is that associative sections now must use .section to set the association. Using .linkonce would not work since it is not possible to change a sections comdat symbol (it is used to decide if we should create a new section or reuse an existing one). This includes r210298, which was reverted because it was asserting on an associated section having the same comdat as the associated section. llvm-svn: 210367
* Fix a typo made in Programmer's Manual made in r210354. SpottedDan Liew2014-06-061-1/+1
| | | | | | by Paul Robinson. llvm-svn: 210363
* Mention the IRBuilder in Programmer's Manual with a few small examples.Dan Liew2014-06-061-1/+36
| | | | llvm-svn: 210354
* Slight language tweak from Jonathan Humphreys.Pekka Jaaskelainen2014-06-061-1/+1
| | | | llvm-svn: 210327
* Allow aliases to be unnamed_addr.Rafael Espindola2014-06-061-1/+2
| | | | | | | | | | | | | | | | | | Alias with unnamed_addr were in a strange state. It is stored in GlobalValue, the language reference talks about "unnamed_addr aliases" but the verifier was rejecting them. It seems natural to allow unnamed_addr in aliases: * It is a property of how it is accessed, not of the data itself. * It is perfectly possible to write code that depends on the address of an alias. This patch then makes unname_addr legal for aliases. One side effect is that the syntax changes for a corner case: In globals, unnamed_addr is now printed before the address space. llvm-svn: 210302
* Fix markup for -debug-only optionAlexey Samsonov2014-06-051-1/+2
| | | | llvm-svn: 210300
* Add a new attribute called 'jumptable' that creates jump-instruction tables ↵Tom Roeder2014-06-051-0/+8
| | | | | | | | | | | | for functions marked with this attribute. It includes a pass that rewrites all indirect calls to jumptable functions to pass through these tables. This also adds backend support for generating the jump-instruction tables on ARM and X86. Note that since the jumptable attribute creates a second function pointer for a function, any function marked with jumptable must also be marked with unnamed_addr. llvm-svn: 210280
* Document how to select build configuration with Visual C++ IDE or command line.Yaron Keren2014-06-051-0/+3
| | | | llvm-svn: 210273
* docs: Remove documentation for legacy PGO optionsJustin Bogner2014-06-044-50/+0
| | | | | | | | Late last year r191835 removed a largely unmaintained legacy PGO infrastructure, but some of the docs were missed. Since these docs are for things that don't actually exist anymore, they should be removed. llvm-svn: 210165
* Allow alias to point to an arbitrary ConstantExpr.Rafael Espindola2014-06-031-10/+20
| | | | | | | | | | | | | | | | | | | | | This patch changes GlobalAlias to point to an arbitrary ConstantExpr and it is up to MC (or the system assembler) to decide if that expression is valid or not. This reduces our ability to diagnose invalid uses and how early we can spot them, but it also lets us do things like @test5 = alias inttoptr(i32 sub (i32 ptrtoint (i32* @test2 to i32), i32 ptrtoint (i32* @bar to i32)) to i32*) An important implication of this patch is that the notion of aliased global doesn't exist any more. The alias has to encode the information needed to access it in its metadata (linkage, visibility, type, etc). Another consequence to notice is that getSection has to return a "const char *". It could return a NullTerminatedStringRef if there was such a thing, but when that was proposed the decision was to just uses "const char*" for that. llvm-svn: 210062
* GraphWriter: detect graph viewer programs at runtimeAlp Toker2014-06-021-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
* fixed more typosSanjay Patel2014-05-301-2/+2
| | | | llvm-svn: 209921
* added link to CMake pageSanjay Patel2014-05-301-3/+4
| | | | llvm-svn: 209918
* fixed typoSanjay Patel2014-05-301-1/+1
| | | | llvm-svn: 209916
* Sync list of targets with configure's realityJeroen Ketema2014-05-291-8/+6
| | | | llvm-svn: 209855
* fixed a few typosSanjay Patel2014-05-281-3/+3
| | | | llvm-svn: 209768
* [pr19844] Add thread local mode to aliases.Rafael Espindola2014-05-281-19/+32
| | | | | | | | | | This matches gcc's behavior. It also seems natural given that aliases contain other properties that govern how it is accessed (linkage, visibility, dll storage). Clang still has to be updated to expose this feature to C. llvm-svn: 209759
* Wording fix for llvm.global_dtors docs.Reid Kleckner2014-05-271-1/+1
| | | | llvm-svn: 209687
* Fix link.Rafael Espindola2014-05-261-1/+3
| | | | llvm-svn: 209640
* AArch64/ARM64: move ARM64 into AArch64's placeTim Northover2014-05-241-1/+1
| | | | | | | | | | | | | | | This commit starts with a "git mv ARM64 AArch64" and continues out from there, renaming the C++ classes, intrinsics, and other target-local objects for consistency. "ARM64" test directories are also moved, and tests that began their life in ARM64 use an arm64 triple, those from AArch64 use an aarch64 triple. Both should be equivalent though. This finishes the AArch64 merge, and everyone should feel free to continue committing as normal now. llvm-svn: 209577
* Updated the llvm.mem.parallel_loop_access semantics to include the possibilityPekka Jaaskelainen2014-05-231-9/+23
| | | | | | | | | to have only some of the loop's memory instructions be annotated and still _help_ the loop carried dependence analysis. This was discussed in the llvmdev ML (topic: "parallel loop metadata question"). llvm-svn: 209507
* [YAML] Add an optional argument `EnumMask` to the `yaml::IO::bitSetCase()`.Simon Atanasyan2014-05-231-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some bit-set fields used in ELF file headers in fact contain two parts. The first one is a regular bit-field. The second one is an enumeraion. For example ELF header `e_flags` for MIPS target might contain the following values: Bit-set values: EF_MIPS_NOREORDER = 0x00000001 EF_MIPS_PIC = 0x00000002 EF_MIPS_CPIC = 0x00000004 EF_MIPS_ABI2 = 0x00000020 Enumeration: EF_MIPS_ARCH_32 = 0x50000000 EF_MIPS_ARCH_64 = 0x60000000 EF_MIPS_ARCH_32R2 = 0x70000000 EF_MIPS_ARCH_64R2 = 0x80000000 For printing bit-sets we use the `yaml::IO::bitSetCase()`. It does not support bit-set/enumeration combinations and prints too many flags from an enumeration part. This patch fixes this problem. New method `yaml::IO::maskedBitSetCase()` handle "enumeration" part of bitset defined by provided mask. Patch reviewed by Nick Kledzik and Sean Silva. llvm-svn: 209504
* Update some AliasAnalysis pass docs for getAdjustedAnalysisPointer.Eric Christopher2014-05-221-0/+14
| | | | | | Patch by George Burgess. llvm-svn: 209467
* Clean up language and grammar.Eric Christopher2014-05-201-1/+1
| | | | | | | Based on a patch by jfcaron3@gmail.com! PR19806 llvm-svn: 209216
* Add 'nonnull', a new parameter and return attribute which indicates that the ↵Nick Lewycky2014-05-201-0/+7
| | | | | | pointer is not null. Instcombine will elide comparisons between these and null. Patch by Luqman Aden! llvm-svn: 209185
* Add documentation for llvm-dwarfdump toolAlexey Samsonov2014-05-192-0/+31
| | | | llvm-svn: 209173
* [DWARF parser] Teach DIContext to fetch short (non-linkage) function names ↵Alexey Samsonov2014-05-171-2/+5
| | | | | | | | | | for a given address. Change --functions option in llvm-symbolizer tool to accept values "none", "short" or "linkage". Update the tests and docs accordingly. llvm-svn: 209050
* Add comdat key field to llvm.global_ctors and llvm.global_dtorsReid Kleckner2014-05-161-13/+21
| | | | | | | | | | | | | | This allows us to put dynamic initializers for weak data into the same comdat group as the data being initialized. This is necessary for MSVC ABI compatibility. Once we have comdats for guard variables, we can use the combination to help GlobalOpt fire more often for weak data with guarded initialization on other platforms. Reviewers: nlewycky Differential Revision: http://reviews.llvm.org/D3499 llvm-svn: 209015
* Fix typosAlp Toker2014-05-153-3/+3
| | | | llvm-svn: 208839
* Update of the documentation: I think we are now happy with PhabricatorSylvestre Ledru2014-05-141-2/+1
| | | | llvm-svn: 208764
* Fix strange typo in markup.Jay Foad2014-05-141-2/+2
| | | | llvm-svn: 208759
* [ARM64-BE] Correct grammar mistake pointed out by Tobias.James Molloy2014-05-121-1/+1
| | | | llvm-svn: 208580
* [ARM64-BE] Add sphinx documentation for the ARM64 NEON implementation.James Molloy2014-05-126-0/+211
| | | | | | | There are some interesting decisions based on non-obvious rationale in the ARM64-BE NEON implementation - decent documentation is definitely required. llvm-svn: 208577
OpenPOWER on IntegriCloud