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
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
Add _mm_prefetch and some others as MS builtins

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
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201736 91177308-0d34-0410-b5e6-96231b3b80d8
Fix two pedantic issues with our builtin headers. The __STDC_VERSION__
for C99 is '199901L' and we shouldn't be comparing it with anything
else.

Neither of these should have had any impact in practice.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201738 91177308-0d34-0410-b5e6-96231b3b80d8
Use llvm::DeleteContainerSeconds when possible

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201739 91177308-0d34-0410-b5e6-96231b3b80d8