Commit Graph

93 Commits

Author SHA1 Message Date
Hal Finkel
bcc06085a8 Add __builtin_assume and __builtin_assume_aligned using @llvm.assume.
This makes use of the recently-added @llvm.assume intrinsic to implement a
__builtin_assume(bool) intrinsic (to provide additional information to the
optimizer). This hooks up __assume in MS-compatibility mode to mirror
__builtin_assume (the semantics have been intentionally kept compatible), and
implements GCC's __builtin_assume_aligned as assume((p - o) & mask == 0). LLVM
now contains special logic to deal with assumptions of this form.

llvm-svn: 217349
2014-09-07 22:58:14 +00:00
Anton Yartsev
94e46f3eb8 Enhance the 'Vectors and Extended Vectors' section.
Added cast operations to the table of vector operations. Supported status 'no' means that there are no tests in the Clang test suite for the given cast.

llvm-svn: 217055
2014-09-03 17:59:21 +00:00
Yunzhong Gao
637cb90ba8 Fixing a typo in the documented __builtin_convertvector example.
"vf[0]" ==> "vs[0]"

llvm-svn: 216935
2014-09-02 19:24:14 +00:00
Mark Heffernan
450c23843e In unroll pragma syntax and loop hint metadata, change "enable" forms to a new form using the string "full".
llvm-svn: 213771
2014-07-23 17:31:31 +00:00
Yi Kong
4de26fb2e0 ARM: Add doc for ACLE memory barrier intrinsics
Add documentations for ACLE memory barrier intrinsics, describing their motion
barrier characteristics.

llvm-svn: 213733
2014-07-23 09:25:02 +00:00
Alp Toker
958027b698 Fix typos
Also consolidate 'backward compatibility'

llvm-svn: 212974
2014-07-14 19:42:55 +00:00
Tim Northover
3acd6bd0b6 ARM: add support for v8 ldaex/stlex builtins.
ARMv8 adds (to both AArch32 and AArch64) acquiring and releasing
variants of the exclusive operations, in line with the C++11 memory
model.

This adds support for two new intrinsics to expose them to C & C++
developers directly: __builtin_arm_ldaex and __builtin_arm_stlex, in
direct analogy with the versions with no implicit barrier.

rdar://problem/15885451

llvm-svn: 212175
2014-07-02 12:56:02 +00:00
Eli Bendersky
778268df57 Document unroll and unroll_count directives.
Extend the documentation for "#pragma clang loop" hints to include the unroll
and unroll_count directives.

Patch by Mark Heffernan [http://reviews.llvm.org/D4198]

llvm-svn: 211286
2014-06-19 18:12:44 +00:00
Tyler Nowicki
db2668a1da Documentation for #pragma clang loop directive and options vectorize and interleave.
Reviewed by: Aaron Ballman and Dmitri Gribenko

llvm-svn: 211135
2014-06-18 00:51:32 +00:00
Richard Smith
760520bcb7 Add __builtin_operator_new and __builtin_operator_delete, which act like calls
to the normal non-placement ::operator new and ::operator delete, but allow
optimizations like new-expressions and delete-expressions do.

llvm-svn: 210137
2014-06-03 23:27:44 +00:00
Dario Domizioli
33c1787147 [DOC] Documentation for #pragma clang optimize on/off
llvm-svn: 209738
2014-05-28 14:06:38 +00:00
Tim Northover
573cbee543 AArch64/ARM64: rename ARM64 components to AArch64
This keeps Clang consistent with backend naming conventions.

llvm-svn: 209579
2014-05-24 12:52:07 +00:00
Richard Smith
6d54014144 PR19698, PR19674: enable __has_feature checks for cxx_generic_lambdas and
cxx_decltype_auto, and fix documentation of cxx_generic_lambdas and
cxx_init_captures to specify the right feature-check name.

llvm-svn: 208445
2014-05-09 21:08:59 +00:00
Yunzhong Gao
a8c45c9f88 Add description about the __is_identifier() macro
llvm-svn: 206099
2014-04-12 02:25:32 +00:00
Tim Northover
a2ee433c8d ARM64: initial clang support commit.
This adds Clang support for the ARM64 backend. There are definitely
still some rough edges, so please bring up any issues you see with
this patch.

As with the LLVM commit though, we think it'll be more useful for
merging with AArch64 from within the tree.

llvm-svn: 205100
2014-03-29 15:09:45 +00:00
Aaron Ballman
5ee46d2a9e Moving the documentation for the format attribute into AttrDocs.
llvm-svn: 201857
2014-02-21 14:36:13 +00:00
Aaron Ballman
ea6668c4e8 Moving the documentation for the type safety checking attributes into AttrDocs. If a custom heading is provided, do not automatically generate the alternate spelling list. This is necessary because some attributes have distinct semantic spellings and meanings, but use the same semantic attribute internally. Such attributes should have multiple elements in their documentation list, but not show all spellings. At some point, it would be nice to have a way to attach the documentation element to a specific spelling for these cases.
llvm-svn: 201851
2014-02-21 14:14:04 +00:00
Aaron Ballman
7803b888c4 Moving the documentation for the sanitizer negation attributes into AttrDocs.
llvm-svn: 201850
2014-02-21 13:44:43 +00:00
Aaron Ballman
68893db056 Doing some temporary touch-up on the gnu namespace attribute documentation, from a post-commit review comment.
Ideally, this content will eventually find a home with the rest of the attribute documentation.

llvm-svn: 201736
2014-02-19 23:21:40 +00:00
Aaron Ballman
4de1b584cd 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.
llvm-svn: 201732
2014-02-19 22:59:32 +00:00
Aaron Ballman
0e4aa52e88 Moving the documentation for the ARM interrupt attribute into AttrDocs.
llvm-svn: 201716
2014-02-19 21:12:23 +00:00
Aaron Ballman
896bace47f Moving the documentation for the clang::fallthrough attribute into AttrDocs.
llvm-svn: 201715
2014-02-19 20:56:51 +00:00
Aaron Ballman
9751a7285e Moving the documentation for the availability attribute into AttrDocs.
llvm-svn: 201712
2014-02-19 20:39:48 +00:00
Aaron Ballman
840cef3e0d Moving the documentation for the objc_requires_super attribute into AttrDocs.
llvm-svn: 201687
2014-02-19 15:45:13 +00:00
Aaron Ballman
c0331f5fe0 Moving the documentation for the objc_method_family attribute into AttrDocs.
llvm-svn: 201686
2014-02-19 15:38:02 +00:00
Aaron Ballman
683ea9cb12 Moving the documentation for the overloadable attribute into AttrDocs.
llvm-svn: 201678
2014-02-19 14:53:20 +00:00
Aaron Ballman
20750f591d Moving the documentation for the enable_if attribute into AttrDocs. Removed the "clang introduces" phrase for style consistency, but otherwise the documentation is identical.
llvm-svn: 201677
2014-02-19 14:48:31 +00:00
DeLesley Hutchins
c51e08c7ea Updated documentation for Thread Safety Analysis.
llvm-svn: 201598
2014-02-18 19:42:01 +00:00
Nick Lewycky
8993f26550 Clarify. Thanks to Sean Silva and Warren Hunt for help wordsmithing!
llvm-svn: 200292
2014-01-28 07:03:46 +00:00
Nick Lewycky
b05a8440cc Fix always-false conditional thinko in documentation.
llvm-svn: 200289
2014-01-28 06:20:56 +00:00
Richard Smith
81830b204b Remove outdated documentation suggesting we don't support the C++1y lambda extensions.
llvm-svn: 199964
2014-01-24 02:12:28 +00:00
Alp Toker
73287bfe40 MSVC 2013 type trait support
Implement type trait primitives used in the latest edition of the Microsoft
standard C++ library type_traits header.

With this change we can parse much of the Visual Studio 2013 standard headers,
particularly anything that includes <type_traits>.

Fully implemented, available in all language modes:

 * __is_constructible()
 * __is_nothrow_constructible()
 * __is_nothrow_assignable()

Partially implemented, semantic analysis WIP, available as MS extensions:

 * __is_destructible()
 * __is_nothrow_destructible()

llvm-svn: 199619
2014-01-20 00:24:09 +00:00
Alp Toker
64197b9eb9 docs: clarify the role of compiler-builtin type trait primitives
Update the documentation to clarify the intent of clang's built-in type trait
facilities, their relation to user-facing C++ type traits and means to check
for availability.

Also explain that __has_feature() is not currently up to date and should not
generally be used in user code (there's a proposal to provide more consistent
checks via __has_builtin(), see cfe-dev).

llvm-svn: 199562
2014-01-18 21:49:02 +00:00
Nick Lewycky
ed91da719e Try to fix this link.
llvm-svn: 199538
2014-01-18 02:29:10 +00:00
Nick Lewycky
9c8754f56b This code block wasn't showing up in the html. Try this?
llvm-svn: 199306
2014-01-15 08:33:00 +00:00
Nick Lewycky
b9737cd0bc Fix the attribute enable_if example in the docs to be 100% real-world, instead of merely being close to the real world to mislead people. This now matches the test.
llvm-svn: 199298
2014-01-15 06:34:12 +00:00
Alp Toker
a8bb9c97c6 Fix cxx_variable_templates feature check and documentation
This C++ feature has been marked complete since r191549, but the documentation
claimed it wasn't supported at all and the extension check misreported it as
being available in C.

No regression test; this was a short-lived typo.

llvm-svn: 199292
2014-01-15 04:11:24 +00:00
Nick Lewycky
7dae818117 Whoops! Fix major think-o in the first example in the documentation that I edited at 3am.
llvm-svn: 198997
2014-01-11 02:55:22 +00:00
Nick Lewycky
35a6ef4c35 Add a new attribute 'enable_if' which can be used to control overload resolution based on the values of the function arguments at the call site.
llvm-svn: 198996
2014-01-11 02:50:57 +00:00
Aaron Ballman
a4bb4b9f0b Updating documentation for the __has_attribute changes landed in r198897.
llvm-svn: 198899
2014-01-09 23:11:13 +00:00
Alp Toker
3b557ba3f6 Documentation typo corrections
llvm-svn: 196215
2013-12-03 06:53:39 +00:00
Warren Hunt
e0bc980500 Undoing accidental change to docs/LanguageExtensions.rst in my previous
patch.

llvm-svn: 193293
2013-10-24 00:59:24 +00:00
Warren Hunt
55d8e82f86 Implements 64 bit microsoft record layout and adds lit tests to cover
it.  Also removes all of the microsoft C++ ABI related code from the 
itanium layout builder.

Differential Revision: http://llvm-reviews.chandlerc.com/D2003

llvm-svn: 193290
2013-10-23 23:53:07 +00:00
Ted Kremenek
c95fe7ca31 More wordsmithing on objc_requires_super documentation.
llvm-svn: 193288
2013-10-23 23:30:08 +00:00
Ted Kremenek
7f7a483c75 Wordsmith text of objc_requires_super.
llvm-svn: 193283
2013-10-23 22:41:52 +00:00
Ted Kremenek
620cde38a2 Fix typo.
llvm-svn: 193281
2013-10-23 22:25:59 +00:00
Ted Kremenek
f2ee81ddff Provide documentation on attribute((objc_requires_super)).
llvm-svn: 193278
2013-10-23 22:15:01 +00:00
Ted Kremenek
c3481f4c41 Change title of section to reflect the concept, and not the mechanism.
llvm-svn: 193277
2013-10-23 22:14:59 +00:00
Chris Wailes
155df7143f Updated and added to the Consumed documentation.
llvm-svn: 193120
2013-10-21 20:54:06 +00:00
Dmitry Vyukov
ae4ea1d338 tsan: update docs
update docs for no_sanitize_thread attribute and blacklist

llvm-svn: 192872
2013-10-17 08:06:19 +00:00