teak-llvm/clang/lib/AST
Simon Tatham 7c11da0cfd [clang] New __attribute__((__clang_arm_mve_alias)).
This allows you to declare a function with a name of your choice (say
`foo`), but have clang treat it as if it were a builtin function (say
`__builtin_foo`), by writing

  static __inline__ __attribute__((__clang_arm_mve_alias(__builtin_foo)))
  int foo(args);

I'm intending to use this for the ACLE intrinsics for MVE, which have
to be polymorphic on their argument types and also need to be
implemented by builtins. To avoid having to implement the polymorphism
with several layers of nested _Generic and make error reporting
hideous, I want to make all the user-facing intrinsics correspond
directly to clang builtins, so that after clang resolves
__attribute__((overloadable)) polymorphism it's already holding the
right BuiltinID for the intrinsic it selected.

However, this commit itself just introduces the new attribute, and
doesn't use it for anything.

To avoid unanticipated side effects if this attribute is used to make
aliases to other builtins, there's a restriction mechanism: only
(BuiltinID, alias) pairs that are approved by the function
ArmMveAliasValid() will be permitted. At present, that function
doesn't permit anything, because the Tablegen that will generate its
list of valid pairs isn't yet implemented. So the only test of this
facility is one that checks that an unapproved builtin _can't_ be
aliased.

Reviewers: dmgreen, miyuki, ostannard

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D67159
2019-10-24 16:33:13 +01:00
..
Interp AST - silence static analyzer getAs<> null dereference warnings. NFCI. 2019-10-07 13:58:05 +00:00
APValue.cpp Silence static analyzer getAs<RecordType> null dereference warnings. NFCI. 2019-10-03 11:22:48 +00:00
ASTConsumer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ASTContext.cpp [ObjC] Diagnose implicit type coercion from ObjC 'Class' to object 2019-10-17 15:27:04 +00:00
ASTDiagnostic.cpp Rename TypeNodes.def to TypeNodes.inc for consistency across all 2019-10-02 06:35:23 +00:00
ASTDumper.cpp When dumping the AST to JSON, dump the type information from a typeid expression with a type operand. 2019-05-27 14:34:31 +00:00
ASTImporter.cpp [hip][cuda] Fix the extended lambda name mangling issue. 2019-10-19 00:15:19 +00:00
ASTImporterLookupTable.cpp [ASTImporter] Fix unhandled cases in ASTImporterLookupTable 2019-06-11 13:35:25 +00:00
ASTStructuralEquivalence.cpp [AST] AST structural equivalence to work internally with pairs. 2019-09-02 11:01:09 +00:00
ASTTypeTraits.cpp Rename TypeNodes.def to TypeNodes.inc for consistency across all 2019-10-02 06:35:23 +00:00
AttrImpl.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [Clang Interpreter] Initial patch for the constexpr interpreter 2019-09-13 09:46:16 +00:00
Comment.cpp [clang] Ensure that comment classes are trivially destructible 2019-08-27 11:21:00 +00:00
CommentBriefParser.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CommentCommandTraits.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CommentLexer.cpp [AST] CommentLexer - Remove (optional) Invalid parameter from getSpelling. 2019-09-18 12:11:16 +00:00
CommentParser.cpp Adds a warning when an inline Doxygen comment has no argument 2019-08-05 08:05:16 +00:00
CommentSema.cpp [Wdocumentation] fixes an assertion failure with typedefed function and block pointer 2019-09-02 18:24:33 +00:00
ComparisonCategories.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CXXABI.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CXXInheritance.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
DataCollection.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Decl.cpp [clang] New __attribute__((__clang_arm_mve_alias)). 2019-10-24 16:33:13 +01:00
DeclarationName.cpp Use getOperatorSpelling to get the spelling of an overloaded operator 2019-06-14 20:01:51 +00:00
DeclBase.cpp DeclBase/DeclCXX/DeclTemplate - silence static analyzer getAs<> null dereference warnings. NFCI. 2019-10-03 16:58:01 +00:00
DeclCXX.cpp Move most CXXRecordDecl::DefinitionData bit-fields out into a separate 2019-10-11 00:29:04 +00:00
DeclFriend.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DeclGroup.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DeclObjC.cpp Use llvm::stable_sort 2019-04-24 14:43:05 +00:00
DeclOpenMP.cpp [OPENMP 5.0]Initial support for 'allocator' clause. 2019-03-12 18:52:33 +00:00
DeclPrinter.cpp Support for DWARF-5 C++ language tags. 2019-09-24 00:38:49 +00:00
DeclTemplate.cpp [Concept] Associated Constraints Infrastructure 2019-10-15 18:44:06 +00:00
Expr.cpp [c++20] Add CXXRewrittenBinaryOperator to represent a comparison 2019-10-19 00:04:38 +00:00
ExprClassification.cpp [c++20] Add CXXRewrittenBinaryOperator to represent a comparison 2019-10-19 00:04:38 +00:00
ExprConstant.cpp [c++20] Add CXXRewrittenBinaryOperator to represent a comparison 2019-10-19 00:04:38 +00:00
ExprCXX.cpp [c++20] Add rewriting from comparison operators to <=> / ==. 2019-10-19 00:04:43 +00:00
ExprObjC.cpp [AST][NFC] Add const children() accessors to all AST nodes 2019-04-12 15:36:02 +00:00
ExternalASTMerger.cpp [lldb][modern-type-lookup] No longer import temporary declarations into the persistent AST 2019-10-04 08:26:17 +00:00
ExternalASTSource.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FormatString.cpp [Sema] Split out -Wformat-type-confusion from -Wformat-pedantic 2019-10-04 19:20:27 +00:00
FormatStringParsing.h Add a missing header comment, NFC 2019-08-13 22:01:39 +00:00
InheritViz.cpp Silence static analyzer getAs<RecordType> null dereference warnings. NFCI. 2019-10-03 11:22:48 +00:00
ItaniumCXXABI.cpp [c++20] Fix some ambiguities in our mangling of lambdas with explicit 2019-09-05 01:23:47 +00:00
ItaniumMangle.cpp [c++20] Add CXXRewrittenBinaryOperator to represent a comparison 2019-10-19 00:04:38 +00:00
JSONNodeDumper.cpp Add more information to JSON AST dumping of source locations. 2019-10-15 17:30:19 +00:00
Linkage.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Mangle.cpp AST - silence static analyzer getAs<> null dereference warnings. NFCI. 2019-10-07 13:58:05 +00:00
MicrosoftCXXABI.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
MicrosoftMangle.cpp [MS ABI]: Fix mangling function arguments for template types to be compatible with MSVC 2019-10-11 12:27:51 +00:00
NestedNameSpecifier.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
NSAPI.cpp Removed dead code from clang/AST/NSAPI.h 2019-08-29 06:30:12 +00:00
ODRHash.cpp [ODRHash] Fix null pointer dereference for ObjC selectors with empty slots. 2019-06-28 17:42:17 +00:00
OpenMPClause.cpp [OPENMP]Allow priority clause in combined task-based directives. 2019-10-16 18:09:37 +00:00
OSLog.cpp os_log: Allow specifying mask type in format string. 2018-11-06 07:05:14 +00:00
ParentMap.cpp [OPENMP]Fix PR42632: crash on the analysis of the OpenMP constructs. 2019-07-17 18:03:39 +00:00
PrintfFormatString.cpp [Sema][ObjC] Fix a -Wformat false positive with localizedStringForKey 2019-08-14 16:57:11 +00:00
QualTypeNames.cpp Make getFullyQualifiedName qualify both the pointee and class type for member ptr types 2019-03-15 11:09:41 +00:00
RawCommentList.cpp [clang] Refactor doc comments to Decls attribution 2019-08-13 18:11:44 +00:00
RecordLayout.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RecordLayoutBuilder.cpp P0840R2: support for [[no_unique_address]] attribute 2019-06-20 20:44:45 +00:00
ScanfFormatString.cpp Fix parameter name comments using clang-tidy. NFC. 2019-07-16 04:46:31 +00:00
SelectorLocationsKind.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Stmt.cpp [clang] Ensure that statements, expressions and types are trivially destructible 2019-08-27 11:35:49 +00:00
StmtCXX.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StmtIterator.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StmtObjC.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StmtOpenMP.cpp [OPENMP50]Add support for master taskloop simd. 2019-10-18 16:47:35 +00:00
StmtPrinter.cpp [c++20] Add CXXRewrittenBinaryOperator to represent a comparison 2019-10-19 00:04:38 +00:00
StmtProfile.cpp [c++20] Add CXXRewrittenBinaryOperator to represent a comparison 2019-10-19 00:04:38 +00:00
StmtViz.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TemplateBase.cpp AST - silence static analyzer getAs<> null dereference warnings. NFCI. 2019-10-07 13:58:05 +00:00
TemplateName.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
TextNodeDumper.cpp Include whether the destructor is constexpr in -ast-dump output for a 2019-10-11 00:40:08 +00:00
Type.cpp Revert r374202"[ObjC generics] Fix not inheriting type bounds in categories/extensions." 2019-10-22 22:39:01 +02:00
TypeLoc.cpp Add SVE opaque built-in types 2019-08-09 08:52:54 +00:00
TypePrinter.cpp DebugInfo: Render the canonical name of a class template specialization, even when nested in another class template specialization 2019-10-18 23:58:34 +00:00
VTableBuilder.cpp [Clang] Migrate llvm::make_unique to std::make_unique 2019-08-14 23:04:18 +00:00
VTTBuilder.cpp Silence static analyzer getAs<RecordType> null dereference warnings. NFCI. 2019-10-03 11:22:48 +00:00