aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-04-18Use EmitCallArgs in EmitObjCMessageExpr.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69471 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Make CodeGenFunction::EmitCallArgs a template function that takes a generic ↵Anders Carlsson
"Type Info" parameter. The type info parameter knows how to iterate over its arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69469 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Use getAsPointerType instead of using getCanonicalType directly.Daniel Dunbar
- <rdar://problem/6803995> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69435 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18Fix a bug found by inspection, class/meta references could be emittedDaniel Dunbar
into the wrong section (they shared the same lookup table). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69433 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18fix incorrect lowering of __builtin_ia32_shufpd, rdar://6803924Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18FunctionDecl::getBody() is getting an ASTContext argument for use inDouglas Gregor
lazy PCH deserialization. Propagate that argument wherever it needs to be. No functionality change, except that I've tightened up a few PCH tests in preparation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17fix a crash compiling code with its own definition of objc_assign_weak.Chris Lattner
rdar://6800430 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69392 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Use PresumedLoc to record line number in debug info entries.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69389 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Don't put msgrefs in used globals (in particular, we don't wantDaniel Dunbar
no-dead-strip set on them). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Appropriately set file name and directory name in debug info compile units.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69387 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Fix rdar://6800926 - crash compiling non-fragile _Bool bitfield ivar,Chris Lattner
the functional change here is changing ConvertType -> ConvertTypeForMem so that we handle i1 fields properly as memory. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17tidy some code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Add support for generating (very basic) C++ destructors. These aren't called ↵Anders Carlsson
by anything yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69343 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Attributes on block functions were not being set.Daniel Dunbar
- <rdar://problem/6800351> clang not producing correct large struct return code for Blocks git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69337 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17Implement basic code generation of constructor calls. We can now compile:Anders Carlsson
struct S { S(int, int); }; void f() { S s(10, 10); } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69330 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16Add GetAddrOfCXXConstructor and use it.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69328 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16Removed a no longer needed FIXME comment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69315 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16Category method synbols must be qualified by gategory name toFariborz Jahanian
match gcc's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69305 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16Fix a crash bug when comparing overload quality of conversion operators with ↵Sebastian Redl
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69299 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16Ensure that the most recent declaration of a tentative definition winsDaniel Dunbar
when generating a common definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69287 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Fixup codegen for copy/dispose for block literals. Radar 6791245Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69232 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Defer generation of tentative definitions.Daniel Dunbar
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69231 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Set DebugInfo at the beginning of GenerateBlockFunction().Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69228 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Actually generate code for the simple constructors we know we can generate ↵Anders Carlsson
code for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69222 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Don't use \01 in symbol name if unnecessary.Daniel Dunbar
- 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! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69205 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Fix alignment on obj_msgrefs to match llvm-gcc.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69199 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Add test case for superrefs section (and make spacing consistent).Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69198 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15__objc_superrefs belongs to __DATA segment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69170 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Start attempting to generate code for C++ ctors.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69168 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Add support for mangling C++ constructors. Review appreciated (I'm looking ↵Anders Carlsson
at you, Doug) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69150 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Add CGCXX.h with ctor/dtor type enumerations. No functionality change.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69137 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Simplify CodeGenFunction::GenerateCode.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69134 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Tweaks to Objective-C metadata (32 & 64-bit) to match llvm-gcc.Daniel Dunbar
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69132 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Set alignment on __cstring metadata variables to 1 (matchingDaniel Dunbar
llvm-gcc). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69097 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Avoid use of magic \01 prefix when unneeded.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69093 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Comment fix.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69091 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14remove dead enumChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69070 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Fix PR3988: extern inline functions get strong symbol definitions inChris Lattner
C99 mode. This is a regression from an earlier patch of mine. This also simplifies the linkage enums a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69069 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Do not dead code strip global meta-data objects.Fariborz Jahanian
This will match gcc's behavior in the arena. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69061 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Fixup whitespacing.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69055 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Fix comment.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69053 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Support code generation of 'this' exprsAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69050 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14implement codegen support for __attribute((__gnuc_inline__)),Chris Lattner
pulling some attribute munging stuff into GetLinkageForFunction. This should fix PR3986 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69045 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Refactor how attributes are set on values.Daniel Dunbar
- 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69036 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Split SetGlobalValueAttributes into definition/declaration halves.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69035 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Rename (one) SetFunctionAttributes to SetLLVMFunctionAttributes toDaniel Dunbar
disambiguate it. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69034 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14Reduce indentation, no functionality change.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14defer emission of always_inline, extern_inline, and inline functions (when Chris Lattner
not in c89 mode). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69032 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14give always_inline functions internal linkage. If they cannot be Chris Lattner
inlined for some reason, then we don't want a strong or even weak definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-14set the linkage of an inline function according to its language rules.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69030 91177308-0d34-0410-b5e6-96231b3b80d8