aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-04-21don't bother emitting a zero byte memset at all. We used to get themChris Lattner
in cases like this: typedef struct { short instance; char name[0]; } ATTR_LIST_ENTRY2; void test() { ATTR_LIST_ENTRY2 X = (ATTR_LIST_ENTRY2) { .instance = 7, }; } While it is safe to emit them, it is pretty silly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69687 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21Explictly track tentative definitions within Sema, then hand thoseDouglas Gregor
tentative definitions off to the ASTConsumer at the end of the translation unit. Eliminate CodeGen's internal tracking of tentative definitions, and instead hook into ASTConsumer::CompleteTentativeDefinition. Also, tweak the definition-deferal logic for C++, where there are no tentative definitions. Fixes <rdar://problem/6808352>, and will make it much easier for precompiled headers to cope with tentative definitions in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69681 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21Pass and return aggregate types directly to function calls.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69668 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21use of predefined identifiers like __func__ at global scope warn in sema,Chris Lattner
but crashed codegen. Fix this to report the name of the llvm function. This fixes rdar://6808051 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69658 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21Remove unnused variable.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69650 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21Kill ASTContext::[gs]etFieldForDecl, instead we just lookup thingsDaniel Dunbar
when we need them -- which is exactly what some code was already doing! - No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69648 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21Remove LateBoundIVars() runtime interface, it is unused.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69641 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-21Assert on a few conditions that (I believe) should holdDaniel Dunbar
w.r.t. ASTContext::[gs]etFieldDecl, and the Field argument to EmitObjCValueForIvar). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69639 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20ObjC2's Ivar bitmap layout work. No change in functionality.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69629 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Move countInheritedIvars to within striking distance ofDaniel Dunbar
GetClassSizeInfo Reduce nesting in GetInterfaceDeclStructLayout. Tweak some comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69621 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20the __gnuc_inline__ attribute is actually named __gnu_inline__,Chris Lattner
PR4023 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69618 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Inline GetFirstIvarInRecord into sole caller.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69582 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Set a bit in IMAGE_INFO to indicate that we don't contain anyDaniel Dunbar
@synthesized ivars for superclasses. - <rdar://problem/6806371> [clang] Mark code without miscompiled @synthesized properties git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69581 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Lift out GetNamedIvarList.Daniel Dunbar
Drop uses of GetFirstInvarInRecord, instead we lookup the ivars we know are in the record. - This is somewhat less efficient, but I need to detangle this code first... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Don't emit ivar offsets for unnamed bit fields.Daniel Dunbar
Also, added assertion that the field matches what would be looked up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69572 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20PR3247: Handle a couple of cases where we weren't emitting VLA sizes (and Eli Friedman
subsequently crashed). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20PR3248: Make sure the evaluate the operand of a sizeof when it has a VLA type.Eli Friedman
Adapted from patch by Tim Northover. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69566 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Remove non-const form of lookupFieldDeclForIvar.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69563 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-20Comment fixes.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69562 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Lift GetClassSizeInfo out of GenerateClass, add a FIXME.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19PR3853: Add CodeGen support for __thread.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69545 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Silence gcc warning.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69541 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19silence a warning, it isn't clear what the right answer is here,Chris Lattner
will talk to steve. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69519 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19silence a warning, I need to talk to Devang about this code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Fix rdar://6804402 - crash on objc implementations declared withChris Lattner
@class but no implementation. This was broken in all 3 runtime impls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69512 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Fix bug in computation of ivar offsets for (adjacent) bitfields.Daniel Dunbar
- The confusing IRgen bitfield interface is partly to blame here; fixing the functional error for now, cleanups to the interface to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69503 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19revert david's patch, which causes a testsuite failure.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Reuse ObjcIvarOffsetVariable instead of duplicating code.Daniel Dunbar
- No functionality change (but added a FIXME). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69496 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-19Remove some unnecessary complexity.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69495 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-18"This patch fixes message sends to super in class methods for the GNU ↵Chris Lattner
runtime (currently an instance method lookup is being performed)." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69493 91177308-0d34-0410-b5e6-96231b3b80d8
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