aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-09-02Add mangling for thunks.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80743 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01More overriding base work and some cleanups. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80737 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01Split out overriding. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80732 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01Handle member expressions that return references correctly.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80723 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01Assert that we don't have any virtual bases. We can emit dtors for ↵Anders Carlsson
polymorphics classes just fune. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80722 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01Use the correct cast kinds for bit casts and function to pointer decay. ↵Anders Carlsson
Fixes PR4827. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80720 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01We can generate constructors/destructors with base classes and non-trivial ↵Anders Carlsson
fields just fine now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80701 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01Fixed a property getter ir-gen crash.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80681 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01PR4836, part 2: CodeGen for __builtin_isnan.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80655 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Eliminate CXXAdornedMemberExpr entirely. Instead, optionally allocateDouglas Gregor
space within the MemberExpr for the nested-name-specifier and its source range. We'll do the same thing with explicitly-specified template arguments, assuming I don't flip-flop again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80642 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Rename DIBlock as DILexicalBlock.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80634 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Rename CXXQualifiedMemberExpr -> CXXAdornedMemberExpr, since we willDouglas Gregor
also be adding explicit template arguments as an additional "adornment". No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80628 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Re-implemented generation of objc_memmove_collectableFariborz Jahanian
API for copying GC'able aggregates (Next runtime only). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80607 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Updated GNU runtime non-fragile ABI.David Chisnall
Added -fconstant-string-class= option. Added __has_feature() test for non-fragile ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29Make IRGen for initializing a member reference work correctly.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80439 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29Patch to ir-gen user-defined conversions used in expressionsFariborz Jahanian
[12.3.2-p3] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80436 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29Patch for code gen. for c-style cast which ends inFariborz Jahanian
using class's conversion functions [12.3.2-p2] git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80433 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28iGenerate vcalls as we build up the methods. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28ir-gen related patch for type conversionFariborz Jahanian
with class type conversion methods. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80365 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27Clean up CodeGenFunction::EmitCastLValue to use the cast kind. Error Eli Friedman
out for user-defined conversions instead of crashing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80282 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26Fixup codegen for static dispatch to a virtual function that wasMike Stump
almost correct. :-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80181 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26ir-gen for type convesion of class objects. WIP.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80178 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26When a member reference expression includes a qualifier on the memberDouglas Gregor
name, e.g., x->Base::f() retain the qualifier (and its source range information) in a new subclass of MemberExpr called CXXQualifiedMemberExpr. Provide construction, transformation, profiling, printing, etc., for this new expression type. When a virtual function is called via a qualified name, don't emit a virtual call. Instead, call that function directly. Mike, could you add a CodeGen test for this, too? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80167 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26Regularize the case and sort.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80163 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26Implement virtual dispatch. :-) This is self-consistent with clang,Mike Stump
but not yet necessarily perfectly consistent with gcc. Also addressed Doug and John's comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80137 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26Make address-space qualification work correctly for compound literals. Eli Friedman
Issue reported on cfe-dev. Also fixed the code to use isConstant to determine whether to generate a constant global, to be consistent with CodeGenModule. This probably needs to be refactored to deal with C++, though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80131 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26Revert r80064 since it broke the build.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80066 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26Implement virtual dispatch. :-) This is self-consistent with clang, but ↵Mike Stump
not yet necessarily perfectly consistent with gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80064 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26Simplified default construction of array data membersFariborz Jahanian
in the constructor prologue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80060 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25Emit conversion functions correctly.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25Fix ivar layout map generation (hopefully).Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79968 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Remove #ifdef'out code.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79956 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Remove ivarlayout bitmap optimization, instead if all zeros,Fariborz Jahanian
put out the bitmap when all objects are scanned. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79947 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Handle array to pointer decay in EmitCastExpr and get rid of ↵Anders Carlsson
VisitImplicitCastExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79930 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Handle CK_NullToMemberPointer in ScalarExprEmitter::EmitCastAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79929 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Pass the cast kind to ScalarExprEmitter::EmitCastExpr.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24More member pointer work.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79922 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Remove dead codeAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79921 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Fix build of clang with gcc-4.4: #include <cstdio> was missing.Torok Edwin
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Remove TargetInfo::getTargetPrefix().Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Switch TargetInfo to store an llvm::Triple.Daniel Dunbar
- Primarily to discourage clients form making decisions based on the string. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Switch ABI selection to use llvm::Triple instead of string munging.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23Don't install Clang libraries.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79824 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23Whoops, comment this out for now. I'll fix it shortly.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79806 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23More work towards zero-initializing structs that contain member pointers in ↵Anders Carlsson
constant expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79805 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23Remove the PaddingFields member from CGRecordLayout, it wasn't used anyway.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23Handle CK_NullToMemberPointer casts in the constant expr emitter.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79790 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22Change the constant expression emitter to look at the cast kind for to-union ↵Anders Carlsson
casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22Add a -fno-elide-constructors option to clang-cc.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21Calculate the address point for a vtable better, and start fleshing out the ↵Mike Stump
vcall calculations better. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79687 91177308-0d34-0410-b5e6-96231b3b80d8