summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCall.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.Douglas Gregor2009-06-181-5/+6
| | | | llvm-svn: 73702
* Fix PR4372, another case where non-prototyped functions can prevent Chris Lattner2009-06-131-4/+36
| | | | | | always_inline from working. llvm-svn: 73273
* Add new ABIArgInfo kind: Extend. This allows target to implement its own ↵Anton Korobeynikov2009-06-061-20/+26
| | | | | | | | | 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-1368/+0
| | | | llvm-svn: 72962
* Set function Attribute::NoImplicitFloat appropriately.Devang Patel2009-06-051-0/+2
| | | | llvm-svn: 72961
* ABI handling: Fix nasty thinko where IRgen could generate an out-of-bounds readDaniel Dunbar2009-06-051-7/+8
| | | | | | | | | | when generating a coercion for ABI handling purposes. - This may only manifest itself when building at -O0, but the practical effect is that other arguments may get clobbered. - <rdar://problem/6930451> [irgen] ABI coercion clobbers other arguments llvm-svn: 72932
* Set function attribute llvm::Attribute::NoRedZone appropriately.Devang Patel2009-06-041-0/+4
| | | | llvm-svn: 72902
* When trying to pass an argument on the stack, assume LLVM will do the rightDaniel Dunbar2009-05-261-3/+19
| | | | | | | | | | | | | thing for non-aggregate types. - Otherwise we unnecessarily pin values to the stack and currently end up triggering a backend bug in one case. - This loose cooperation with LLVM to implement the ABI is pretty ugly. - <rdar://problem/6918722> [irgen] clang miscompile of many pointer varargs on x86-64 llvm-svn: 72419
* x86_64 ABI: Account for sret parameters consuming an integer register.Daniel Dunbar2009-05-221-0/+5
| | | | | | - PR4242. llvm-svn: 72268
* Set correct calling convention even if there is a bitcast in the way.Torok Edwin2009-05-221-1/+1
| | | | | | This attempts to fix PR4239. llvm-svn: 72251
* Use v.data() instead of &v[0] when SmallVector v might be empty.Jay Foad2009-05-211-2/+2
| | | | llvm-svn: 72210
* Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't ↵Anders Carlsson2009-05-201-0/+3
| | | | | | support anything but at least we don't crash ;) llvm-svn: 72147
* Pass the destination QualType to EmitStoreOfScalar. No functionality change.Anders Carlsson2009-05-191-3/+3
| | | | llvm-svn: 72118
* Clean up some unnecessary includes.Eli Friedman2009-05-191-2/+0
| | | | llvm-svn: 72101
* Reflow some comments.Mike Stump2009-05-161-52/+45
| | | | llvm-svn: 71937
* ABI handling: Fix invalid assertion, it is possible for a validDaniel Dunbar2009-05-131-6/+16
| | | | | | | | coercion to be specified which truncates padding bits. It would be nice to still have the assert, but we don't have any API call for the unpadding size of a type yet. llvm-svn: 71695
* static methods don't get this pointers.Chris Lattner2009-05-121-4/+4
| | | | llvm-svn: 71586
* Darwin x86-32 ABI: Now that structure passing is farther along, weDaniel Dunbar2009-05-121-12/+5
| | | | | | don't need special treatment for unions. llvm-svn: 71559
* x86-64 ABI: clang incorrectly passes union { long double, float } inDaniel Dunbar2009-05-121-1/+2
| | | | | | | register. - Merge algorithm was returning MEMORY as it should. llvm-svn: 71556
* Darwin x86-32: Multi-dimensional arrays were not handled correctly,Daniel Dunbar2009-05-111-9/+12
| | | | | | spotted by Eli! llvm-svn: 71490
* Darwin x86_32: Treat records with unnamed bit-fields as "empty".Daniel Dunbar2009-05-111-19/+27
| | | | llvm-svn: 71461
* Correct for renaming PaddedSize -> AllocSize inDuncan Sands2009-05-091-4/+4
| | | | | | LLVM. llvm-svn: 71350
* x86_64 ABI: Ignore padding bit-fields during classification.Daniel Dunbar2009-05-081-2/+5
| | | | | | | - {return-types,single-args}-{32,64} pass the first 1k ABI tests with bit-fields enabled. llvm-svn: 71272
* Darwin x86_32: When coercing a "single element" structure, make sureDaniel Dunbar2009-05-081-4/+8
| | | | | | | | | to use a wide enough type. This might be wider than the "single element"'s type in the presence of padding bit-fields. - Darwin x86_32 now passes the first 1k ABI tests with bit-field generation enabled. llvm-svn: 71270
* Darwin x86_32: Ignore padding bit-fields when looking for "singleDaniel Dunbar2009-05-081-4/+8
| | | | | | element" structures. llvm-svn: 71266
* Darwin x86_32: Improve bit-field handling for returning records.Daniel Dunbar2009-05-081-4/+0
| | | | | | | - This turns out to be a no-op now that most of the handling for everything else is in place. llvm-svn: 71261
* Darwin x86_32: Ignore arrays of empty structures inside records.Daniel Dunbar2009-05-081-0/+7
| | | | | | | - This eliminates 5/1000 failures on return-types-32, on the current ABITest config. llvm-svn: 71250
* fix i128 to return in 2 64-bit registers (rax/rdx on x86-64)Chris Lattner2009-04-301-2/+2
| | | | llvm-svn: 70481
* initial support for __[u]int128_t, which should be basicallyChris Lattner2009-04-301-1/+3
| | | | | | | | compatible with VC++ and GCC. The codegen/mangling angle hasn't been fully ironed out yet. Note that we accept int128_t even in 32-bit mode, unlike gcc. llvm-svn: 70464
* x86-32 ABI: Fix crash on return of structure with flexible arrayDaniel Dunbar2009-04-271-4/+10
| | | | | | | | member. Also, spell bitfield more consistently as bit-field. llvm-svn: 70220
* Remove getIntegerConstantExprValue in favor of using EvaluateAsInt.Eli Friedman2009-04-261-2/+1
| | | | llvm-svn: 70145
* Pass and return aggregate types directly to function calls.Sanjiv Gupta2009-04-211-0/+41
| | | | llvm-svn: 69668
* Make CodeGenFunction::EmitCallArgs a template function that takes a generic ↵Anders Carlsson2009-04-181-32/+0
| | | | | | "Type Info" parameter. The type info parameter knows how to iterate over its arguments. llvm-svn: 69469
* Update to use hasAttr() instead of getAttr().Daniel Dunbar2009-04-131-4/+4
| | | | | | - No functionality change. llvm-svn: 68987
* Don't set both readnone and readonly.Daniel Dunbar2009-04-101-2/+2
| | | | llvm-svn: 68833
* Propagate the ASTContext to various AST traversal and lookup functions.Douglas Gregor2009-04-091-22/+24
| | | | | | No functionality change (really). llvm-svn: 68726
* Add code for emitting call arguments (not used yet).Anders Carlsson2009-04-081-0/+36
| | | | llvm-svn: 68639
* Don't assume that a block always has a FunctionProtoType. Fixes rdar://6768379.Anders Carlsson2009-04-081-13/+0
| | | | llvm-svn: 68583
* Add a getFunctionInfo that takes a BlockPointerType.Anders Carlsson2009-04-061-0/+13
| | | | llvm-svn: 68452
* Basic support for regparm codegenAnton Korobeynikov2009-04-041-3/+22
| | | | llvm-svn: 68414
* Add a getFunctionInfo that takes a CXXMethodDecl.Anders Carlsson2009-04-031-0/+17
| | | | llvm-svn: 68411
* x86-32 Darwin ABI: Handle small structures correctly.Daniel Dunbar2009-04-011-2/+68
| | | | | | | | | | | | | | - Small structures are returned in a register if: 1. They fit nicely in a register. 2. All fields fit nicely in a register. (more or less) - We now pass the first 5000 ABITests if unions are disabled. - <rdar://problem/6497882> [irgen] x86-32 ABI compatibility with small structs llvm-svn: 68197
* x86-32 Darwin ABI: Single element arrays can be part of "singleDaniel Dunbar2009-04-011-18/+26
| | | | | | | | | | element structures", which have different ABI rules. - Current return-arguments-32 status is: 1 out of 1000 failures (-7) - Also, vectors inside "single element structs" require special handling. llvm-svn: 68196
* x86-32 Darwin ABI: Handle direct return of vectors.Daniel Dunbar2009-04-011-0/+22
| | | | | | - Current return-arguments-32 status is: 8 out of 1000 failures (-7) llvm-svn: 68192
* x86_32 Darwin ABI: Treat empty unions like empty structures.Daniel Dunbar2009-03-311-5/+5
| | | | | | - Current return-arguments-32 status: 15/1000 failures llvm-svn: 68132
* Initial implementation of ARM ABI. Mostly untested. Note that I'm not Eli Friedman2009-03-291-0/+88
| | | | | | | | really intending to take ownership of this; I wrote this mostly because I was curious about how the ARM ABI works. It should be a decent start, though. llvm-svn: 67969
* Fix the ABI convention for struct returns on x86 outside of Darwin.Eli Friedman2009-03-231-1/+9
| | | | llvm-svn: 67577
* don't set the name of a call instruction to "call" in release-asserts Chris Lattner2009-03-221-10/+9
| | | | | | build. This shaves another 3% off. llvm-svn: 67460
* PR3835: Interaction with ABI structure passing can inhibitDaniel Dunbar2009-03-181-0/+6
| | | | | | readnone/readonly attributes. llvm-svn: 67224
* x86_32 ABI: Don't try and expand structures with bitfields.Daniel Dunbar2009-03-111-7/+7
| | | | | | | | | | - This is an ABI incompatiblity, but this is not likely to be a huge deal in practice. For now we at least generate self consistent code instead of crashing. - <rdar://problem/6657601> x86-32 ABI: Bitfields in small structures are not passed correctly llvm-svn: 66713
OpenPOWER on IntegriCloud