aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-03-04Comment fix: change a question to an answer.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66010 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-04Attempt to fix PR3709: when converting from an integer to a pointer, Eli Friedman
first extend the integer to the correct width. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66009 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-04Improved ABI compliance for __block variables. No testcases yet as weMike Stump
still give an unsupported error for them due to the fact this is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66007 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03Fix <rdar://problem/6640991> Exception handling executes wrong clause ↵Steve Naroff
(Daniel, please verify). Also necessary to fix: <rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements <rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65964 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03Fixed an ir-gen bug in syntheszing a getter functionFariborz Jahanian
with property type which does not match its ivar and in -fobjc-gc-only mode! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03Return 0 if the ConstExprEmitter can't handle an expression.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65951 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03Fix for PR3687: use the memory representation for booleans when a Eli Friedman
sub-type describes a memory location, like the pointee type of a pointer or the element type of an array. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65925 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02inline asm calls should be nounwind. Chris, please review.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65866 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Enable Objective-C interface debug info.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65850 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Avoid crash when child iterator gives null result.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02First cut at zero-cost EH support.Daniel Dunbar
- Still manually generates the EH code; the parts related to cleanup need to be integrated into the cleanup stack (for proper interaction with VLAs, etc.). - Some differences vs gcc in corner cases; I believe our behavior is correct but need to verify/file bugs vs gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65809 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Make sure to invoke (not call) to objc_exception_throw if necessary.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65808 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Fix completely broken thinko in GetClassGlobal.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65807 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Don't set nounwind on functions when in using the new Obj-C ABI.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65806 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Cleanup handling of function attributes in calls.Daniel Dunbar
- No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65805 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Push checking down, also, give the user a hit as to which part of theMike Stump
block literal is causing the problem, instead of the vague reference to the entire block literal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Add BLOCK_HAS_DESCRIPTOR to global blocks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Be sure to mark blocks with no imports as being global.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65784 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01simplify some code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Obj-C non fragile ABI: Use GetClassGlobal in one more instance I missed.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65762 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Obj-C non fragile ABI: Add GetInterfaceEHType for getting the Obj-CDaniel Dunbar
exception typeinfo metadata, and a few other EH related types/functions. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65761 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01NeXT: Unify code for creating a class global.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65760 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01ObjCAtCatchStmt's ParamStmt is always a DeclStmt.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Remove debugging code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Emit errors about unsupported blocks features.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65751 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Initialize NSConcreteStackBlockAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65749 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-01Do some blocks cleanup and simplification. Fix a crash, and add a test case.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65746 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28Obscure code gen bug related to sending Fariborz Jahanian
message to 'super' in a class method declared in cateogy (darwin specific). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28improve compatibility with the VC++'08 C++ compiler. Patch byChris Lattner
Niklas Larsson! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65706 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28brain thinking memcpy, fingers thinking memset :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65701 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28after going around in circles a few times, finally cave and emit structureChris Lattner
copies with memcpy instead of memmove. This matches what GCC does and if it causes a problem with a particular libc we can always fix it with a target hook. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65699 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28First cut CodeGen support for __block variables.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65688 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28Eliminate CXXRecordTypeDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28Alignment of pointers in __objc_classlist must be on theirFariborz Jahanian
natural alignment. Otherwise, the excess hole confuses the objc2 runtime (this is darwin specific). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65666 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27Fix enumeration in switch warnings. No behavior change.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65659 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27Fix PR3612. We ensure that we add builtins to the GlobalDeclMap andMike Stump
we ensure that things added to the module can be found even when they are not in GlobalDeclMap. The later is for increased flexibility, should someone want to do something tricky like extern "Ada" in the same module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65657 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27Change the AST generated for offsetof a bit so that it looks like a Eli Friedman
normal expression, and change Evaluate and IRGen to evaluate it like a normal expression. This simplifies the code significantly, and fixes PR3396. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65622 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27Change the way clang generates union types a bit so it plays well Eli Friedman
with the LLVM C backend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65615 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-27Minor cleanup: use getDeclAlignInBytes helper.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65611 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Create a new TypeNodes.def file that enumerates all of the types,Douglas Gregor
giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26fix some sema problems with wide strings and hook up basic codegen for them.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65582 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Couple of meta-data segments were wrong. This patch fixes them.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65578 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Add support to emit debug info for objective-c interfaces.Devang Patel
(This is not yet used.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65573 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Add Type::hasPointerRepresentation predicate.Daniel Dunbar
- For types whose native representation is a pointer. - Use to replace ExprConstant.cpp:HasPointerEvalType, CodeGenFunction::isObjCPointerType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65569 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Remove PointerLikeType.Daniel Dunbar
- Having pointers and references share a base was not a useful notion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Change PointersToResolve to list the pointee type to resolve, not theDaniel Dunbar
pointer type. - Drops use of PointerLikeType. - No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65566 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Drop uses of isPointerLikeType.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Fix an inconsistance in objc2's meta-data related toFariborz Jahanian
the symbol for the root meta-data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65548 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Classify enum types correctlyAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65533 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26x86_64 ABI: Qualified id types are passed as pointers.Daniel Dunbar
- <rdar://problem/6622451> Bad x86_64 code gen for message call taking one argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65510 91177308-0d34-0410-b5e6-96231b3b80d8