Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | The ssp and sspreq function attributes should only be applied to function ↵ | Anders Carlsson | 2009-11-16 | 1 | -5/+0 | |
| | | | | | | definitions, not declarations or calls. llvm-svn: 88915 | |||||
* | Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library. | Chandler Carruth | 2009-11-12 | 1 | -4/+4 | |
| | | | | | | This resolves the layering violation where CodeGen depended on Frontend. llvm-svn: 86998 | |||||
* | Set OptimizeForSize LLVM function attribute with -Os. | Daniel Dunbar | 2009-10-27 | 1 | -0/+2 | |
| | | | | llvm-svn: 85278 | |||||
* | Twinify CodeGenFunction::CreateTempAlloca | Daniel Dunbar | 2009-10-19 | 1 | -3/+2 | |
| | | | | llvm-svn: 84456 | |||||
* | Use new predicates for some type equality tests. | Benjamin Kramer | 2009-10-05 | 1 | -2/+1 | |
| | | | | llvm-svn: 83303 | |||||
* | Implement code generation of member function pointer calls. Fixes PR5121. | Anders Carlsson | 2009-10-03 | 1 | -0/+15 | |
| | | | | llvm-svn: 83271 | |||||
* | Refactor the representation of qualifiers to bring ExtQualType out of the | John McCall | 2009-09-24 | 1 | -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 McCall | 2009-09-21 | 1 | -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 Carlsson | 2009-09-16 | 1 | -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 convention | Daniel Dunbar | 2009-09-12 | 1 | -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 Dunbar | 2009-09-11 | 1 | -3/+3 | |
| | | | | llvm-svn: 81582 | |||||
* | Add CallingConvention argument to CGFunctionInfo. | Daniel Dunbar | 2009-09-11 | 1 | -16/+49 | |
| | | | | | | - Currently unused. llvm-svn: 81581 | |||||
* | Remove tabs, and whitespace cleanups. | Mike Stump | 2009-09-09 | 1 | -73/+73 | |
| | | | | llvm-svn: 81346 | |||||
* | Update for LLVM API change. | Owen Anderson | 2009-08-13 | 1 | -3/+4 | |
| | | | | llvm-svn: 78946 | |||||
* | map previously ignored __attribute((malloc)) to noalias attribute of llvm ↵ | Ryan Flynn | 2009-08-09 | 1 | -0/+2 | |
| | | | | | | function's return llvm-svn: 78541 | |||||
* | Add support for global initializers. | Anders Carlsson | 2009-08-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 78515 | |||||
* | Use Twine instead of utostr | Daniel Dunbar | 2009-08-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 77848 | |||||
* | Update for LLVM API change. | Owen Anderson | 2009-07-31 | 1 | -1/+1 | |
| | | | | llvm-svn: 77722 | |||||
* | Allow functions to be marked "implicit return zero" and so mark main(). | John McCall | 2009-07-28 | 1 | -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 Anderson | 2009-07-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 75705 | |||||
* | De-ASTContext-ify DeclContext. | Argyrios Kyrtzidis | 2009-06-30 | 1 | -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 Kyrtzidis | 2009-06-30 | 1 | -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 Wendling | 2009-06-28 | 1 | -2/+2 | |
| | | | | llvm-svn: 74414 | |||||
* | Add stack protector support to clang. This generates the 'ssp' and 'sspreq' | Bill Wendling | 2009-06-28 | 1 | -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 Lattner | 2009-06-23 | 1 | -1/+2 | |
| | | | | llvm-svn: 73938 | |||||
* | Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>. | Douglas Gregor | 2009-06-18 | 1 | -5/+6 | |
| | | | | llvm-svn: 73702 | |||||
* | Fix PR4372, another case where non-prototyped functions can prevent | Chris Lattner | 2009-06-13 | 1 | -4/+36 | |
| | | | | | | always_inline from working. llvm-svn: 73273 | |||||
* | Add new ABIArgInfo kind: Extend. This allows target to implement its own ↵ | Anton Korobeynikov | 2009-06-06 | 1 | -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 Korobeynikov | 2009-06-05 | 1 | -1368/+0 | |
| | | | | llvm-svn: 72962 | |||||
* | Set function Attribute::NoImplicitFloat appropriately. | Devang Patel | 2009-06-05 | 1 | -0/+2 | |
| | | | | llvm-svn: 72961 | |||||
* | ABI handling: Fix nasty thinko where IRgen could generate an out-of-bounds read | Daniel Dunbar | 2009-06-05 | 1 | -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 Patel | 2009-06-04 | 1 | -0/+4 | |
| | | | | llvm-svn: 72902 | |||||
* | When trying to pass an argument on the stack, assume LLVM will do the right | Daniel Dunbar | 2009-05-26 | 1 | -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 Dunbar | 2009-05-22 | 1 | -0/+5 | |
| | | | | | | - PR4242. llvm-svn: 72268 | |||||
* | Set correct calling convention even if there is a bitcast in the way. | Torok Edwin | 2009-05-22 | 1 | -1/+1 | |
| | | | | | | This attempts to fix PR4239. llvm-svn: 72251 | |||||
* | Use v.data() instead of &v[0] when SmallVector v might be empty. | Jay Foad | 2009-05-21 | 1 | -2/+2 | |
| | | | | llvm-svn: 72210 | |||||
* | Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't ↵ | Anders Carlsson | 2009-05-20 | 1 | -0/+3 | |
| | | | | | | support anything but at least we don't crash ;) llvm-svn: 72147 | |||||
* | Pass the destination QualType to EmitStoreOfScalar. No functionality change. | Anders Carlsson | 2009-05-19 | 1 | -3/+3 | |
| | | | | llvm-svn: 72118 | |||||
* | Clean up some unnecessary includes. | Eli Friedman | 2009-05-19 | 1 | -2/+0 | |
| | | | | llvm-svn: 72101 | |||||
* | Reflow some comments. | Mike Stump | 2009-05-16 | 1 | -52/+45 | |
| | | | | llvm-svn: 71937 | |||||
* | ABI handling: Fix invalid assertion, it is possible for a valid | Daniel Dunbar | 2009-05-13 | 1 | -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 Lattner | 2009-05-12 | 1 | -4/+4 | |
| | | | | llvm-svn: 71586 | |||||
* | Darwin x86-32 ABI: Now that structure passing is farther along, we | Daniel Dunbar | 2009-05-12 | 1 | -12/+5 | |
| | | | | | | don't need special treatment for unions. llvm-svn: 71559 | |||||
* | x86-64 ABI: clang incorrectly passes union { long double, float } in | Daniel Dunbar | 2009-05-12 | 1 | -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 Dunbar | 2009-05-11 | 1 | -9/+12 | |
| | | | | | | spotted by Eli! llvm-svn: 71490 | |||||
* | Darwin x86_32: Treat records with unnamed bit-fields as "empty". | Daniel Dunbar | 2009-05-11 | 1 | -19/+27 | |
| | | | | llvm-svn: 71461 | |||||
* | Correct for renaming PaddedSize -> AllocSize in | Duncan Sands | 2009-05-09 | 1 | -4/+4 | |
| | | | | | | LLVM. llvm-svn: 71350 | |||||
* | x86_64 ABI: Ignore padding bit-fields during classification. | Daniel Dunbar | 2009-05-08 | 1 | -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 sure | Daniel Dunbar | 2009-05-08 | 1 | -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 "single | Daniel Dunbar | 2009-05-08 | 1 | -4/+8 | |
| | | | | | | element" structures. llvm-svn: 71266 |