summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Appropriately set file name and directory name in debug info compile units.Devang Patel2009-04-172-27/+31
| | | | llvm-svn: 69387
* Fix rdar://6800926 - crash compiling non-fragile _Bool bitfield ivar,Chris Lattner2009-04-171-5/+5
| | | | | | | the functional change here is changing ConvertType -> ConvertTypeForMem so that we handle i1 fields properly as memory. llvm-svn: 69361
* tidy some code.Chris Lattner2009-04-171-5/+2
| | | | llvm-svn: 69360
* Add support for generating (very basic) C++ destructors. These aren't called ↵Anders Carlsson2009-04-175-40/+143
| | | | | | by anything yet. llvm-svn: 69343
* Attributes on block functions were not being set.Daniel Dunbar2009-04-174-8/+16
| | | | | | | - <rdar://problem/6800351> clang not producing correct large struct return code for Blocks llvm-svn: 69337
* Implement basic code generation of constructor calls. We can now compile:Anders Carlsson2009-04-174-0/+71
| | | | | | | | | | | | struct S { S(int, int); }; void f() { S s(10, 10); } llvm-svn: 69330
* Add GetAddrOfCXXConstructor and use it.Anders Carlsson2009-04-162-5/+16
| | | | llvm-svn: 69328
* Removed a no longer needed FIXME comment.Fariborz Jahanian2009-04-161-2/+0
| | | | llvm-svn: 69315
* Category method synbols must be qualified by gategory name toFariborz Jahanian2009-04-161-0/+6
| | | | | | match gcc's. llvm-svn: 69305
* Fix a crash bug when comparing overload quality of conversion operators with ↵Sebastian Redl2009-04-161-55/+56
| | | | | | | | | | | conversion constructors. Remove an atrocious amount of trailing whitespace in the overloaded operator mangler. Sorry, couldn't help myself. Change the DeclType parameter of Sema::CheckReferenceInit to be passed by value instead of reference. It wasn't changed anywhere. Let the parser handle C++'s irregular grammar around assignment-expression and conditional-expression. And finally, the reason for all this stuff: implement C++ semantics for the conditional operator. The implementation is complete except for determining lvalueness. llvm-svn: 69299
* Ensure that the most recent declaration of a tentative definition winsDaniel Dunbar2009-04-161-3/+5
| | | | | | when generating a common definition. llvm-svn: 69287
* Fixup codegen for copy/dispose for block literals. Radar 6791245Mike Stump2009-04-151-4/+10
| | | | llvm-svn: 69232
* Defer generation of tentative definitions.Daniel Dunbar2009-04-152-31/+46
| | | | | | | | | | | | | | - PR3980. - <rdar://problem/6762287> [irgen] crash when generating tentative definition of incomplete structure - This also avoids creating common definitions for things which are later overwritten. - XFAIL'ed external-defs.c, it isn't completing types properly yet. llvm-svn: 69231
* Set DebugInfo at the beginning of GenerateBlockFunction().Devang Patel2009-04-151-0/+5
| | | | llvm-svn: 69228
* Actually generate code for the simple constructors we know we can generate ↵Anders Carlsson2009-04-151-1/+22
| | | | | | code for. llvm-svn: 69222
* Don't use \01 in symbol name if unnecessary.Daniel Dunbar2009-04-151-1/+1
| | | | | | | | - This was particularly bad since I fixed one instance of this name and not another, meaning we got an LLVM module with the same effective name in two different globals! llvm-svn: 69205
* Fix alignment on obj_msgrefs to match llvm-gcc.Daniel Dunbar2009-04-151-2/+1
| | | | llvm-svn: 69199
* Add test case for superrefs section (and make spacing consistent).Daniel Dunbar2009-04-151-2/+2
| | | | llvm-svn: 69198
* __objc_superrefs belongs to __DATA segment.Fariborz Jahanian2009-04-151-1/+1
| | | | llvm-svn: 69170
* Start attempting to generate code for C++ ctors.Anders Carlsson2009-04-153-5/+65
| | | | llvm-svn: 69168
* Add support for mangling C++ constructors. Review appreciated (I'm looking ↵Anders Carlsson2009-04-152-10/+57
| | | | | | at you, Doug) llvm-svn: 69150
* Add CGCXX.h with ctor/dtor type enumerations. No functionality change.Anders Carlsson2009-04-151-0/+36
| | | | llvm-svn: 69137
* Simplify CodeGenFunction::GenerateCode.Anders Carlsson2009-04-151-9/+4
| | | | llvm-svn: 69134
* Tweaks to Objective-C metadata (32 & 64-bit) to match llvm-gcc.Daniel Dunbar2009-04-151-19/+21
| | | | | | | | | | | | | | | | | | | - Set alignment on property lists. - 32-bit: o Set section on property lists. o Fix section name for category class methods. o Fix symbol name for property lists. o Fix section name for class method. o Set alignment and section on class extension structure. o Set alignment on a number of things: instance variables, methods, method descriptions, the symbols structure. - 64-bit: o Fix section flags for protocol list. I doubt most of these were problems in practice, but it is nice to match llvm-gcc. llvm-svn: 69132
* Set alignment on __cstring metadata variables to 1 (matchingDaniel Dunbar2009-04-141-15/+10
| | | | | | llvm-gcc). llvm-svn: 69097
* Avoid use of magic \01 prefix when unneeded.Daniel Dunbar2009-04-141-1/+1
| | | | llvm-svn: 69093
* Comment fix.Daniel Dunbar2009-04-141-1/+1
| | | | llvm-svn: 69091
* remove dead enumChris Lattner2009-04-141-1/+0
| | | | llvm-svn: 69070
* Fix PR3988: extern inline functions get strong symbol definitions inChris Lattner2009-04-142-26/+23
| | | | | | | | C99 mode. This is a regression from an earlier patch of mine. This also simplifies the linkage enums a bit. llvm-svn: 69069
* Do not dead code strip global meta-data objects.Fariborz Jahanian2009-04-141-15/+10
| | | | | | This will match gcc's behavior in the arena. llvm-svn: 69061
* Fixup whitespacing.Mike Stump2009-04-141-1/+1
| | | | llvm-svn: 69055
* Fix comment.Daniel Dunbar2009-04-141-1/+1
| | | | llvm-svn: 69053
* Support code generation of 'this' exprsAnders Carlsson2009-04-143-0/+20
| | | | llvm-svn: 69050
* implement codegen support for __attribute((__gnuc_inline__)),Chris Lattner2009-04-142-38/+47
| | | | | | | | pulling some attribute munging stuff into GetLinkageForFunction. This should fix PR3986 llvm-svn: 69045
* Refactor how attributes are set on values.Daniel Dunbar2009-04-142-101/+90
| | | | | | | | | | | | | | | | | | | | | | | | - Pull out SetCommonAttributes, which handles the things common to aliases, methods, functions, and variables. - Pull out SetLLVMFunctionAttributesForDefinition, which handles the LLVM attributes which we only want to apply to a definition (like noinline and alwaysinline). - Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes and specialized). - Kill SetFunctionAttributesForDefinition (inlined into sole caller). - Inline SetGVDefinitionAttributes into SetMethodAttributes and specialize. - Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes. This is supposed to be a no functionality change commit, but I may have made a mistake. llvm-svn: 69036
* Split SetGlobalValueAttributes into definition/declaration halves.Daniel Dunbar2009-04-142-40/+45
| | | | | | - No functionality change. llvm-svn: 69035
* Rename (one) SetFunctionAttributes to SetLLVMFunctionAttributes toDaniel Dunbar2009-04-142-8/+13
| | | | | | | disambiguate it. - No functionality change. llvm-svn: 69034
* Reduce indentation, no functionality change.Daniel Dunbar2009-04-141-12/+13
| | | | llvm-svn: 69033
* defer emission of always_inline, extern_inline, and inline functions (when Chris Lattner2009-04-141-11/+16
| | | | | | not in c89 mode). llvm-svn: 69032
* give always_inline functions internal linkage. If they cannot be Chris Lattner2009-04-141-1/+3
| | | | | | | inlined for some reason, then we don't want a strong or even weak definition. llvm-svn: 69031
* set the linkage of an inline function according to its language rules.Chris Lattner2009-04-141-2/+26
| | | | llvm-svn: 69030
* Add a comment on SetGlobalValueAttributes.Daniel Dunbar2009-04-141-2/+7
| | | | llvm-svn: 69029
* add a new enum type for linkage, no functionality change.Chris Lattner2009-04-142-19/+35
| | | | llvm-svn: 69028
* Clean up handling of visibility.Daniel Dunbar2009-04-143-115/+59
| | | | llvm-svn: 69027
* reduce indentation, no functionality change.Chris Lattner2009-04-141-27/+23
| | | | llvm-svn: 69026
* do not set visibility on "private" or "available externally" linkage objects.Chris Lattner2009-04-141-2/+2
| | | | llvm-svn: 69025
* Use hasAttr instead of getAttr for conditionals.Mike Stump2009-04-141-1/+1
| | | | llvm-svn: 69021
* Audit __private_extern__ handling.Daniel Dunbar2009-04-143-9/+9
| | | | | | | | | | | | | | - Exposed quite a few Sema issues and a CodeGen crash. - See FIXMEs in test case, and in SemaDecl.cpp (PR3983). I'm skeptical that __private_extern__ should actually be a storage class value. I think that __private_extern__ basically amounts to extern A __attribute__((visibility("hidden"))) and would be better off handled (a) as that, or (b) with an extra bit in the VarDecl. llvm-svn: 69020
* Fixup CodeGen for __weak __block variables. Radar 6756266Mike Stump2009-04-141-3/+4
| | | | llvm-svn: 69010
* Minor work related to removing the assumption that value initialization Eli Friedman2009-04-133-11/+24
| | | | | | implies an all-zero bit pattern. llvm-svn: 68994
OpenPOWER on IntegriCloud