summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGCall.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* The ssp and sspreq function attributes should only be applied to function ↵Anders Carlsson2009-11-161-5/+0
| | | | | | definitions, not declarations or calls. llvm-svn: 88915
* Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.Chandler Carruth2009-11-121-4/+4
| | | | | | This resolves the layering violation where CodeGen depended on Frontend. llvm-svn: 86998
* Set OptimizeForSize LLVM function attribute with -Os.Daniel Dunbar2009-10-271-0/+2
| | | | llvm-svn: 85278
* Twinify CodeGenFunction::CreateTempAllocaDaniel Dunbar2009-10-191-3/+2
| | | | llvm-svn: 84456
* Use new predicates for some type equality tests.Benjamin Kramer2009-10-051-2/+1
| | | | llvm-svn: 83303
* Implement code generation of member function pointer calls. Fixes PR5121.Anders Carlsson2009-10-031-0/+15
| | | | llvm-svn: 83271
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-241-1/+1
| | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-211-2/+2
| | | | | | | | | | | 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/+3
| | | | | | or a non-trivial copy constructor, it should be passed in a pointer. Daniel, plz review. llvm-svn: 82050
* Change CodeGenModule::ConstructTypeAttributes to return the calling conventionDaniel Dunbar2009-09-121-6/+9
| | | | | | to use, and allow the ABI implementation to override the calling convention. llvm-svn: 81593
* Set the calling convention based on the CGFunctionInfo.Daniel Dunbar2009-09-111-3/+3
| | | | llvm-svn: 81582
* Add CallingConvention argument to CGFunctionInfo.Daniel Dunbar2009-09-111-16/+49
| | | | | | - Currently unused. llvm-svn: 81581
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-73/+73
| | | | llvm-svn: 81346
* Update for LLVM API change.Owen Anderson2009-08-131-3/+4
| | | | llvm-svn: 78946
* map previously ignored __attribute((malloc)) to noalias attribute of llvm ↵Ryan Flynn2009-08-091-0/+2
| | | | | | function's return llvm-svn: 78541
* Add support for global initializers.Anders Carlsson2009-08-081-1/+1
| | | | llvm-svn: 78515
* Use Twine instead of utostrDaniel Dunbar2009-08-021-1/+1
| | | | llvm-svn: 77848
* Update for LLVM API change.Owen Anderson2009-07-311-1/+1
| | | | llvm-svn: 77722
* Allow functions to be marked "implicit return zero" and so mark main().John McCall2009-07-281-0/+13
| | | | | | Codegen by initializing the return value with its LLVM type's null value. llvm-svn: 77288
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-141-1/+1
| | | | llvm-svn: 75705
* De-ASTContext-ify DeclContext.Argyrios Kyrtzidis2009-06-301-6/+6
| | | | | | | 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
* Remove the ASTContext parameter from the attribute-related methods of Decl.Argyrios Kyrtzidis2009-06-301-5/+5
| | | | | | | | | The implementations of these methods can Use Decl::getASTContext() to get the ASTContext. This commit touches a lot of files since call sites for these methods are everywhere. I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it. llvm-svn: 74501
* Make the StackProtector bitfield use enums instead of obscure numbers.Bill Wendling2009-06-281-2/+2
| | | | llvm-svn: 74414
* Add stack protector support to clang. This generates the 'ssp' and 'sspreq'Bill Wendling2009-06-281-0/+5
| | | | | | | | function attributes. There are predefined macros that are defined when stack protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with -fstack-protector-all. llvm-svn: 74405
* fix PR4423.Chris Lattner2009-06-231-1/+2
| | | | llvm-svn: 73938
* 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
OpenPOWER on IntegriCloud