llvm-project/clang/lib/AST
Derek Schuff a202096dc0 Add pnaclcall convention to Native Client targets.
Because PNaCl bitcode must be target-independent, it uses some
different bitcode representations from other targets (e.g. byval and
sret for structures). This means that without additional type
information, it cannot meet some native ABI requirements for some
targets (e.g. passing structures containing unions by value on
x86-64). To allow generation of code which uses the correct native
ABIs, we also support triples such as x86_64-nacl, which uses
target-dependent IR (as opposed to le32-nacl, which uses byval and
sret).

To allow interoperation between the two types of code, this patch adds
a calling convention attribute to be used in code compiled with the
target-dependent triple, which will generate code using the le32-style
bitcode. This calling convention does not need to be explicitly
supported in the backend because it determines bitcode representation
rather than native conventions (the backend just needs to undersand
how to handle byval and sret for the Native Client OS).

This patch implements __attribute__((pnaclcall)) to generate calls in
bitcode according to the le32 bitcode conventions, an attribute which
is accepted by any Native Client target, but issues a warning
otherwise.

llvm-svn: 166065
2012-10-16 22:30:41 +00:00
..
APValue.cpp Store SourceManager pointer on PrintingPolicy in the case where we're dumping, 2012-08-16 03:56:14 +00:00
ASTConsumer.cpp Introduce ASTConsumer::HandleImplicitImportDecl() callback that is invoked 2012-10-03 01:58:37 +00:00
ASTContext.cpp search for overridden methods with comment when overriding method 2012-10-11 23:52:50 +00:00
ASTDiagnostic.cpp Update template type diffing to handle qualifiers. Differing qualifiers will 2012-09-28 20:32:51 +00:00
ASTImporter.cpp Rename ObjCMethodDecl::isSynthesized to isPropertyAccessor. 2012-10-10 16:42:25 +00:00
AttrImpl.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
CMakeLists.txt Comment AST: TableGen'ize all command lists in CommentCommandTraits.cpp. 2012-09-10 20:32:42 +00:00
CXXABI.h [Windows] Use thiscall as the default calling convention for class methods. PR12785 2012-07-12 09:50:54 +00:00
CXXInheritance.cpp Convert a few more getAs cases to castAs where we immediately call a member function. 2012-09-12 06:50:29 +00:00
Comment.cpp Fixes location of overriding declaration with no comment 2012-10-15 20:57:52 +00:00
CommentBriefParser.cpp Comment AST: TableGen'ize all command lists in CommentCommandTraits.cpp. 2012-09-10 20:32:42 +00:00
CommentCommandTraits.cpp Comment parsing: handle non-builtin commands correctly. After semantic 2012-09-11 19:22:03 +00:00
CommentDumper.cpp structured document comment: patch to provide comment for overriding function 2012-10-15 18:58:50 +00:00
CommentLexer.cpp Comment parsing: don't parse comment marker followed by a digit as a command 2012-09-14 16:35:35 +00:00
CommentParser.cpp Comment parsing: handle non-builtin commands correctly. After semantic 2012-09-11 19:22:03 +00:00
CommentSema.cpp search for overridden methods with comment when overriding method 2012-10-11 23:52:50 +00:00
Decl.cpp Make -mms-bitfields behave consistently. 2012-10-12 23:29:20 +00:00
DeclBase.cpp Remove redundant semicolons which are null statements. 2012-09-10 21:20:09 +00:00
DeclCXX.cpp Add the TypeSourceInfo for the lambda call operator to the lambda's 2012-09-19 01:18:11 +00:00
DeclFriend.cpp Drop the ASTContext.h include from DeclFriend.h and DeclTemplate.h. 2012-07-04 20:19:54 +00:00
DeclGroup.cpp I lied. Kill off a few more Destroy methods 2010-07-25 18:32:30 +00:00
DeclObjC.cpp ObjCMethodDecl::findPropertyDecl: bail out early if not an instance method. 2012-10-11 16:02:02 +00:00
DeclPrinter.cpp Teach GetBaseType() about BlockPointerTypes. 2012-10-11 20:58:14 +00:00
DeclTemplate.cpp Fixed ClassTemplateSpecializationDecl source range. 2012-10-15 21:06:42 +00:00
DeclarationName.cpp Simplify some users of DeclarationName::getNameKind. Fold getFETokenInfoAsVoid into its only caller. 2012-05-19 16:03:58 +00:00
DumpXML.cpp Add pnaclcall convention to Native Client targets. 2012-10-16 22:30:41 +00:00
Expr.cpp StringRef-ify Binary/UnaryOperator::getOpcodeStr 2012-10-08 01:11:04 +00:00
ExprCXX.cpp Add codegen support for __uuidof(). 2012-10-11 10:13:44 +00:00
ExprClassification.cpp PR13811: Add a FunctionParmPackExpr node to handle references to function 2012-09-12 00:56:43 +00:00
ExprConstant.cpp Expose __builtin_bswap16. 2012-10-06 14:42:22 +00:00
ExternalASTSource.cpp Implement the all_lookups_iterator for PCH as a follow-up to r153970. This 2012-04-16 02:51:46 +00:00
InheritViz.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00
ItaniumCXXABI.cpp [Windows] Use thiscall as the default calling convention for class methods. PR12785 2012-07-12 09:50:54 +00:00
ItaniumMangle.cpp Add missing comment for mangling. 2012-10-04 04:58:17 +00:00
LambdaMangleContext.cpp Drop the ASTContext.h include from Stmt.h and fix up transitive users. 2012-07-04 17:04:04 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
Mangle.cpp block literal irgen: several improvements on naming block 2012-06-26 16:06:38 +00:00
MicrosoftCXXABI.cpp Revert r163078 per chandlerc's request. 2012-09-04 17:18:12 +00:00
MicrosoftMangle.cpp When mangling an APSInt with the ms abi, make sure to look at all nibbles. 2012-10-03 13:39:49 +00:00
NSAPI.cpp Change the representation of builtin functions in the AST 2012-08-31 00:14:07 +00:00
NestedNameSpecifier.cpp Use the right alignment when allocating NestedNameSpecifier objects. 2012-08-15 01:41:43 +00:00
ParentMap.cpp ParentMap: Restore the ability to update an existing map. 2012-10-06 01:19:36 +00:00
RawCommentList.cpp Move the 'find macro by spelling' infrastructure to the Preprocessor class and 2012-09-29 11:40:46 +00:00
RecordLayout.cpp Remove get(V)BaseClassOffsetInBits, the CharUnit functions should be used instead. 2012-07-04 18:45:14 +00:00
RecordLayoutBuilder.cpp Make -mms-bitfields behave consistently. 2012-10-12 23:29:20 +00:00
SelectorLocationsKind.cpp Fix crash when using archaic protocol, rdar://10238337 2011-10-05 21:28:06 +00:00
Stmt.cpp [ms-inline asm] Move some logic around to simplify the interface between the 2012-10-16 21:55:39 +00:00
StmtDumper.cpp Dont cast away const needlessly. Found by gcc48 -Wcast-qual. 2012-09-06 15:59:27 +00:00
StmtIterator.cpp Support for C++11 (non-template) alias declarations. 2011-04-15 14:24:37 +00:00
StmtPrinter.cpp Fix -ast-print for uses of operator->. 2012-10-12 22:45:14 +00:00
StmtProfile.cpp Fix the AST representation for non-type template arguments to encode 2012-09-26 02:36:12 +00:00
StmtViz.cpp
TemplateBase.cpp Added forgotten break. 2012-10-05 04:43:29 +00:00
TemplateName.cpp Print NamedDecls directly to a raw_ostream where possible. 2012-02-07 11:57:57 +00:00
Type.cpp Add pnaclcall convention to Native Client targets. 2012-10-16 22:30:41 +00:00
TypeLoc.cpp Fixed FunctionTypeLoc range for trailing return type. 2012-10-15 21:05:46 +00:00
TypePrinter.cpp Add pnaclcall convention to Native Client targets. 2012-10-16 22:30:41 +00:00
VTTBuilder.cpp Remove get(V)BaseClassOffsetInBits, the CharUnit functions should be used instead. 2012-07-04 18:45:14 +00:00
VTableBuilder.cpp Note deleted functions when dumping vtables. 2012-10-16 20:25:33 +00:00