summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/TargetABIInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename file to generalization in next commitsAnton Korobeynikov2010-01-101-1821/+0
| | | | llvm-svn: 93117
* x86_64: Structures with no fields but which have padding should be classified asDaniel Dunbar2009-12-221-0/+4
| | | | | | | | integer. - This is consistent, but may not be correct. I will revisit x86_64 ABI handling for C++ as a whole at some point. - PR5831. llvm-svn: 91874
* Convert ABIArgInfo::dump to raw_ostream.Daniel Dunbar2009-12-031-11/+11
| | | | llvm-svn: 90440
* x86_64, PR5582: Layout bases for C++ records.Daniel Dunbar2009-11-221-1/+27
| | | | | | | - Ideally we would have an single iteration interface for this, but this works for now. llvm-svn: 89632
* Rename areAllFields32Or64BitBasicType to canExpandIndirectArgument to closer ↵Daniel Dunbar2009-11-091-10/+29
| | | | | | | | match what it is semantically used for. Also, fix a major bug where fields from a C++ struct might be dropped -- the expand action doesn't handle them correctly yet. llvm-svn: 86502
* Add AuroraUX ABI Triple in correct place.Edward O'Callaghan2009-10-211-1/+2
| | | | llvm-svn: 84758
* Fix the 32-bit ABI to return structures with non-trivial copy ctors or dtors ↵Anders Carlsson2009-10-201-3/+9
| | | | | | indirectly. llvm-svn: 84686
* Add missing semi-colon.Daniel Dunbar2009-10-201-1/+1
| | | | llvm-svn: 84650
* Bring Darwin into the switch-case statement instead of its own if for ↵Edward O'Callaghan2009-10-201-3/+2
| | | | | | readability. llvm-svn: 84646
* Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer2009-10-131-5/+3
| | | | llvm-svn: 83964
* Use ABIArgInfo::getDirect() for all types that have a pointer representation.Anders Carlsson2009-09-261-1/+1
| | | | llvm-svn: 82845
* Darwin/x86-32: Enumerated types and block pointer types in structures were notDaniel Dunbar2009-09-241-3/+7
| | | | | | | | handled correctly. - <rdar://problem/7247671> Function arguments incorrect when function returns a struct on i386 w/ llvm-g++ and clang llvm-svn: 82681
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-211-10/+10
| | | | | | | | | | | Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. llvm-svn: 82501
* x86-64 ABI: If a type is a C++ record with either a non-trivial destructor ↵Anders Carlsson2009-09-161-1/+30
| | | | | | or a non-trivial copy constructor, it should be passed in a pointer. Daniel, plz review. llvm-svn: 82050
* ARM/[A]APCS: Ignore empty records passed as arguments.Daniel Dunbar2009-09-141-0/+4
| | | | llvm-svn: 81798
* ARM/APCS: Don't treat structs w/ floating point types as "integer like".Daniel Dunbar2009-09-141-0/+4
| | | | llvm-svn: 81748
* Some minor clang/ARM/AAPCS tweaks.Daniel Dunbar2009-09-141-1/+11
| | | | llvm-svn: 81737
* Add TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.Daniel Dunbar2009-09-141-4/+1
| | | | llvm-svn: 81735
* ARM/APCS: Only "integer like" aggregates should be returned in r0 (followingDaniel Dunbar2009-09-131-21/+128
| | | | | | gcc's interpretation of APCS' somewhat loose specification). llvm-svn: 81671
* Stub out room for ARM APCS ABI implementation (and AAPCS_VFP, although you can'tDaniel Dunbar2009-09-121-2/+39
| | | | | | hit this via command line options yet). llvm-svn: 81595
* Formatting fixes.Daniel Dunbar2009-09-121-27/+39
| | | | llvm-svn: 81594
* Swizzle the target triple based on -mthumb, and update clang-cc to recognizeDaniel Dunbar2009-09-111-0/+1
| | | | | | thumb-foo-bar as an ARM target. llvm-svn: 81497
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-6/+6
| | | | llvm-svn: 81346
* Fixed bug introduced in r79900 where FreeBSD was turned into NetBSD, ↵David Chisnall2009-09-031-1/+1
| | | | | | transposing the ABIs and breaking both platforms. llvm-svn: 80870
* Fix build of clang with gcc-4.4: #include <cstdio> was missing.Torok Edwin2009-08-241-0/+1
| | | | llvm-svn: 79916
* Switch TargetInfo to store an llvm::Triple.Daniel Dunbar2009-08-241-8/+5
| | | | | | - Primarily to discourage clients form making decisions based on the string. llvm-svn: 79901
* Switch ABI selection to use llvm::Triple instead of string munging.Daniel Dunbar2009-08-241-22/+35
| | | | llvm-svn: 79900
* Fixed typo in last commit pointed out by Anton.David Chisnall2009-08-171-2/+2
| | | | llvm-svn: 79290
* Changes to TargetABIInfo to (hopefully) select the correct calling ↵David Chisnall2009-08-171-7/+16
| | | | | | convention. This has been tested on FreeBSD, and now correctly generates GCC-compatible code for functions returning small structures. Please test it on other platforms! llvm-svn: 79288
* Update for LLVM API change.Owen Anderson2009-08-131-46/+49
| | | | llvm-svn: 78946
* Update for LLVM API change.Owen Anderson2009-08-051-8/+14
| | | | llvm-svn: 78259
* Update for LLVM API change.Owen Anderson2009-07-291-34/+30
| | | | llvm-svn: 77514
* Change uses of:Ted Kremenek2009-07-291-5/+5
| | | | | | | | | | | | | | | | | | | | Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. llvm-svn: 77510
* No longer need to keep base class offsets in the offsetFariborz Jahanian2009-07-291-4/+0
| | | | | | table as it has its own place now. llvm-svn: 77491
* Some minor changes toward support of dataFariborz Jahanian2009-07-271-0/+4
| | | | | | member access in the presense of non-virtual bases. llvm-svn: 77246
* Update for LLVM API change.Owen Anderson2009-07-241-10/+10
| | | | llvm-svn: 77012
* Revert r75641.Anders Carlsson2009-07-181-1/+1
| | | | llvm-svn: 76327
* Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek2009-07-171-5/+5
| | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193
* Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), ↵Ted Kremenek2009-07-171-5/+5
| | | | | | Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. llvm-svn: 76139
* Hook in s390x stuff into clangAnton Korobeynikov2009-07-161-0/+77
| | | | llvm-svn: 76099
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-141-77/+119
| | | | llvm-svn: 75705
* Rename RecordLayout.h to ASTRecordLayout.hAnders Carlsson2009-07-141-1/+1
| | | | llvm-svn: 75641
* De-ASTContext-ify DeclContext.Argyrios Kyrtzidis2009-06-301-12/+12
| | | | | | | Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating". Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit. llvm-svn: 74506
* Fix the calling convention for structs/unions containing SSE vectors on Eli Friedman2009-06-131-4/+34
| | | | | | x86-32. This is slightly messy, but I think it's consistent with gcc. llvm-svn: 73306
* Add new ABIArgInfo kind: Extend. This allows target to implement its own ↵Anton Korobeynikov2009-06-061-9/+19
| | | | | | | | | argument zero/sign extension logic (consider, e.g. target has only 64 bit registers and thus i32's should be extended as well). llvm-svn: 72998
* Factor out TargetABIInfo stuff into separate file. No functionality change.Anton Korobeynikov2009-06-051-0/+1379
llvm-svn: 72962
OpenPOWER on IntegriCloud