- Feb 20, 2014
-
-
Warren Hunt authored
This patch adds several built-ins that are required for ms compatibility. _mm_prefetch must be a built-in because it takes a compile-time constant argument and our prior approach of using a #define to the current built-in doesn't work in the presence of re-declaration of _mm_prefetch. The others can be obtained by including the windows system headers. If a user includes the windows system headers but not intrin.h they still need to work and therefore must be built-in because we don't get a chance to implement them in intrin.h in this case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201734 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
Until attribute documentation is implemented as a server-side feature, I will be manually committing AttributeReference.rst so that attribute documentation can be on the live server instead of simply disappearing from the language extensions page without obvious replacement. This is a temporary stop-gap solution until server-side generation is implemented, at which point the AttributeReference.rst will go back to holding placeholder text. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201733 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Feb 19, 2014
-
-
Aaron Ballman authored
Refactored the way attribute category headers are handled so that it is possible to use custom categories. This allows for moving the consumable attributes (consumable, callable_when, return_typestate, etc) to be grouped together, with a content heading, like they were in the language extensions documentation. Moved the consumable attribute documentation from the language extensions into the attribute documentation table. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201732 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Smith authored
This was broken because __has_include_next(...) would not be valid in a preprocessor condition if __has_include_next is not defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201731 91177308-0d34-0410-b5e6-96231b3b80d8
-
Joerg Sonnenberger authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201730 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chandler Carruth authored
This definition is not chosen idly. There is an unfortunate reality with max_align_t -- the specific nature of its definition leaks into the ABI almost immediately. Because it is part of C11 and C++11 it becomes essential for it to match with other systems on that ABI. There is an effort to discourage any further use of this construct as a consequence -- using max_align_t introduces an immediate ABI problem. We can never update it to have larger alignment even as the microarchitecture changes to necessitate higher alignment. =/ The particular definition here exactly matches the ABI of GCC's chosen ::max_align_t definition, for better or worse. This was written with the help of Richard Smith who was decoding the exact ABI implications of the selected definition in GCC. Notably, in-register arguments are impacted by the particular definition chosen. =/ No one is under the illusion that this is a "good" or "useful" definition of max_align_t, and we are working with the standards committee to specify a more useful interface to address this need. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201729 91177308-0d34-0410-b5e6-96231b3b80d8
-
Joerg Sonnenberger authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201728 91177308-0d34-0410-b5e6-96231b3b80d8
-
Joerg Sonnenberger authored
netbsd::Assemble::ConstructJob. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201725 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
In the Microsoft ABI, the vftable is laid out as if all methods in every overload set were declared in reverse order of declaration at the point of declaration of the first overload in the set. Previously we only considered virtual methods in an overload set, but MSVC includes non-virtual methods for ordering purposes. Fixes PR18902. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201722 91177308-0d34-0410-b5e6-96231b3b80d8
-
Reid Kleckner authored
Clang itself only emits CodeView line tables, so it seems more consistent to ask cl.exe for the same format. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201721 91177308-0d34-0410-b5e6-96231b3b80d8
-
Joerg Sonnenberger authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201719 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201716 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201715 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
Added a documentation category for statement attributes so that things like clang::fallthrough can be documented. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201714 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
Some of these headings had the incorrect number of "underlines" and so would get warnings when generating the content from Sphinx. No functional changes intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201713 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201712 91177308-0d34-0410-b5e6-96231b3b80d8
-
Yunzhong Gao authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201709 91177308-0d34-0410-b5e6-96231b3b80d8
-
Jordan Rose authored
IdenticalExprChecker now warns if any expressions in a logical or bitwise chain (&&, ||, &, |, or ^) are the same. Unlike the previous patch, this actually checks all subexpressions against each other (an O(N^2) operation, but N is likely to be small). Patch by Daniel Fahlgren! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201702 91177308-0d34-0410-b5e6-96231b3b80d8
-
Jordan Rose authored
This extends the checks for identical expressions to handle identical statements, and compares the consequent and alternative ("then" and "else") branches of an if-statement to see if they are identical, treating a single statement surrounded by braces as equivalent to one without braces. This does /not/ check subsequent branches in an if/else chain, let alone branches that are not consecutive. This may improve in a future patch, but it would certainly take more work. Patch by Daniel Fahlgren! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201701 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
No functional change git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201696 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexander Kornienko authored
Thanks to Konrad Kleine for reporting the inconsistency! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201693 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
Use camel-case names, remove some dead code, and fix a copy-and-pasted test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201691 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201687 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201686 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
Fixes PR18895 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201685 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201678 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
Moving the documentation for the enable_if attribute into AttrDocs. Removed the "clang introduces" phrase for style consistency, but otherwise the documentation is identical. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201677 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
This fixes one immediate bug where an expression with side-effects could be emitted twice during a NEON call. It also prepares the way for folding CodeGen for many of the SISD intrinsics into a table, reducing code size and hopefully increasing performance eventually ("binary search + few switch cases" should be better than "lots of switch cases"). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201667 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
Apparently it's not True C++. rdar://problem/16035743 still. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201663 91177308-0d34-0410-b5e6-96231b3b80d8
-
Renato Golin authored
Patch by Andrew Turner. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201662 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
These instructions (well, the f32 ones) are supported on 32-bit ARMv8, not just AArch64. Now that the arm_neon.td refactoring is complete, adding them is surprisingly simple. rdar://problem/16035743 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201661 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
We used to have special handling for isCrypto and isA64 bits in the NeonEmitter.cpp file (it knew the former was predicated on __ARM_FEATURE_CRYPTO and the latter on __aarch64__ and went through various contortions to make sure the correct intrinsics were emitted under the correct guard. This is ugly and has obvious scalability problems (e.g. vcvtX intrinsics are needed, which are ARMv8 only but available on both, yet another category). This patch moves the #if predicate into the arm_neon.td file directly and makes NeonEmitter.cpp agnostic about what goes in there. It also deduplicates arm_neon.td so that each desired intrinsic is mentioned in just one place (necessary because of the new mechanism for creating arm_neon.h). rdar://problem/16035743 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201660 91177308-0d34-0410-b5e6-96231b3b80d8
-
Tim Northover authored
There are two kinds of automatically generated tests for NEON intrinsics, both of which can be merged without adversely affecting users. 1. We check that a valid kind of __builtin_neon_XYZ overload is requested (e.g. we're not asking for a float32x4_t version when it only accepts integers. Since the __builtin_neon_XYZ intrinsics should only be used in arm_neon.h, relaxing this test and permitting AArch64 types for AArch32 should not cause a problem. The extra arm_neon.h definitions should be #ifdefed out anyway. 2. We check that intrinsics which take immediates are actually given compile-time constants within range. Since all NEON intrinsics should be backwards compatible, these tests should be identical on AArch64 and AArch32 anyway. This patch, therefore, merges the separate AArch64 and 32-bit checks. rdar://problem/16035743 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201659 91177308-0d34-0410-b5e6-96231b3b80d8
-
Dmitri Gribenko authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201657 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ted Kremenek authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201648 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ted Kremenek authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201640 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
Explicit operator bool doesn't not play nicely with gtest assertion macros (i.e. it performs as advertised and I wish that gtest subverted it for me). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201639 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
This change was somehow missed from r201618 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201636 91177308-0d34-0410-b5e6-96231b3b80d8
-
Ben Langmuir authored
Provides a way to merge multiple vfs::FileSystem objects into a single filesystem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201635 91177308-0d34-0410-b5e6-96231b3b80d8
-
David Majnemer authored
Accidentally piped the stdout from make_cxx_dr_status into cxx_dr_status.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201634 91177308-0d34-0410-b5e6-96231b3b80d8
-