summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* objc++: patch for IRgen for atomic properties ofFariborz Jahanian2012-01-102-37/+164
| | | | | | | c++ objects with non-trivial assignment/copy functions. Also, one additional sema check. // rdar://6137845 llvm-svn: 147817
* Insert padding before unaligned long double arguments.Akira Hatanaka2012-01-091-13/+28
| | | | llvm-svn: 147791
* Move the piece of code up that skips the padding argument. Without this change,Akira Hatanaka2012-01-091-4/+4
| | | | | | padding insertion will not work if the coerced type is not a structure. llvm-svn: 147786
* objc++: more atomic property api code forFariborz Jahanian2012-01-082-12/+29
| | | | | | c++ object properties. wip. llvm-svn: 147750
* objc++: More codegen stuff for atomic properties of c++ objectsFariborz Jahanian2012-01-072-9/+22
| | | | | | with non-trivial copies. // rdar://6137845 llvm-svn: 147735
* Fixed TypeofExpr AST and code generation.Abramo Bagnara2012-01-071-5/+19
| | | | llvm-svn: 147730
* Add field PaddingType to ABIArgInfo which specifies the type of padding thatAkira Hatanaka2012-01-073-16/+55
| | | | | | | | is inserted before the real argument. Padding is needed to ensure the backend reads from or writes to the correct argument slots when the original alignment of a byval structure is unavailable due to flattening. llvm-svn: 147699
* objc++: more code gen stuff for atomic property api,Fariborz Jahanian2012-01-063-14/+77
| | | | | | | | currently turned off. // rdar://6137845 Also, fixes a test case which should be nonatomic under new API. llvm-svn: 147691
* Revert r147664; it's breaking clang regression tests.Eli Friedman2012-01-063-3/+3
| | | | llvm-svn: 147681
* Revert r147655; it's breaking the compiler_rt build on OSX.Eli Friedman2012-01-061-2/+1
| | | | llvm-svn: 147677
* objc++: some declarations related to atomicFariborz Jahanian2012-01-063-0/+34
| | | | | | | properties of c++ object types with non-trivial assignment copy. Not used yet. // rdar://6137845 llvm-svn: 147666
* Silence GCC warnings.Jakub Staszak2012-01-063-3/+3
| | | | llvm-svn: 147664
* If we are compiling with -fno-builtin then don't do constant folding ofDavid Chisnall2012-01-061-1/+2
| | | | | | | | builtins. This fixes PR11711. llvm-svn: 147655
* objc++: sythesize a helper function to be usedFariborz Jahanian2012-01-062-2/+91
| | | | | | | | for copying atomic properties of c++ objects with non-trivial copy assignment in setters/getters. Not yet used. // rdar://6137845 llvm-svn: 147636
* Address Richard's review comments on r147561 (Evaluate support for ↵Eli Friedman2012-01-051-1/+1
| | | | | | address-of-label differences). llvm-svn: 147631
* Fixes a code gen bug for setter code for a property ofFariborz Jahanian2012-01-051-1/+2
| | | | | | | | c++ object reference type with trivial copy constructor. This causes an assert crash and bad code gen. when assert is off. // rdar://6137845 llvm-svn: 147573
* Add an APValue representation for the difference between two ↵Eli Friedman2012-01-041-68/+26
| | | | | | | | | | address-of-label expressions. Add support to Evaluate and CGExprConstant for generating/handling them. Remove the special-case for such differences in Expr::isConstantInitializer. With that done, remove a bunch of buggy code from CGExprConstant for handling scalar expressions which is no longer necessary. Fixes PR11705. llvm-svn: 147561
* implement rdar://10639962 by keeping track of increased alignment Chris Lattner2012-01-041-1/+5
| | | | | | information even in subscripting operations. llvm-svn: 147557
* Restore r147493 and remove the part of the test that was checking the wrong ↵David Chisnall2012-01-041-6/+32
| | | | | | thing. llvm-svn: 147530
* Have functions return structures smaller than 128-bit in registers if ABIAkira Hatanaka2012-01-041-3/+54
| | | | | | is either N32 or N64. llvm-svn: 147520
* Revert r147493. It broke test/CodeGenObjC/constant-strings.m.Rafael Espindola2012-01-041-32/+6
| | | | llvm-svn: 147511
* Initialise constant Objective-C string isa pointers with a weak reference to ↵David Chisnall2012-01-031-6/+32
| | | | | | the class, so that they are usable in +load methods if the string class has been compiled with clang - if it's been compiled with GCC, the ABI makes this impossible. (GNU runtimes) llvm-svn: 147493
* Eliminate ObjCForwardProtocolDecl, which is redundant now thatDouglas Gregor2012-01-012-5/+6
| | | | | | ObjCProtocolDecl modules forward declarations properly. llvm-svn: 147415
* Introduce the core infrastructure needed to model redeclaration chainsDouglas Gregor2012-01-012-0/+13
| | | | | | | | | | | | | | | for Objective-C protocols, including: - Using the first declaration as the canonical declaration - Using the definition as the primary DeclContext - Making sure that all declarations have a pointer to the definition data, and that we know which declaration is the definition - Serialization support for redeclaration chains and for adding definitions to already-serialized declarations. However, note that we're not taking advantage of much of this code yet, because we're still re-using ObjCProtocolDecls. llvm-svn: 147410
* Unrevert r147271, reverted in r147361.Richard Smith2011-12-301-6/+7
| | | | | | | | | | | | Also temporarily remove the assumption from IR gen that we can emit IR for every constant we can fold, since it isn't currently true in C++11, to fix PR11676. Original comment from r147271: constexpr: perform zero-initialization prior to / instead of performing a constructor call when appropriate. Thanks to Eli for spotting this. llvm-svn: 147384
* Small refactoring and simplification of constant evaluation and some of itsRichard Smith2011-12-285-26/+20
| | | | | | clients. No functionality change. llvm-svn: 147318
* Eliminate ObjCClassDecl, which is redundant now that ObjCInterfaceDeclDouglas Gregor2011-12-272-2/+0
| | | | | | | covers both declarations (@class) and definitions (@interface) of an Objective-C class. llvm-svn: 147299
* constexpr: support for evaluation and codegen of typeid constants.Richard Smith2011-12-271-0/+9
| | | | llvm-svn: 147290
* Add intrinsics for lzcnt and tzcnt instructions.Craig Topper2011-12-251-0/+26
| | | | llvm-svn: 147263
* Fix a failure (which led to a crash) in constant emission code with vector ↵Eli Friedman2011-12-221-1/+2
| | | | | | compound literals. llvm-svn: 147111
* Unweaken vtables as per ↵David Blaikie2011-12-202-0/+11
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146959
* Mark the calls to the _setjmp function as returns twice. ↵Bill Wendling2011-12-191-0/+2
| | | | | | <rdar://problem/10492556> llvm-svn: 146926
* Switch a few callers of MakeAddrLValue places over to ↵Eli Friedman2011-12-192-5/+5
| | | | | | MakeNaturalAlignAddrLValue. llvm-svn: 146920
* Fix PR5279 - don't sliently drop alignment information on stores of types ↵Chris Lattner2011-12-191-1/+1
| | | | | | that have alignment less than the natural alignment of the type when it comes from a typedef. llvm-svn: 146908
* Extend the fix for PR9614 to handle inline asm in the outer decl andRafael Espindola2011-12-192-16/+33
| | | | | | | the inner decl being a builtin. This is needed to support the glibc headers in fedora 16 (2.14). llvm-svn: 146867
* More AVX2 intrinsic support including saturating add/sub and palignr.Craig Topper2011-12-191-0/+38
| | | | llvm-svn: 146857
* When in a limited debug information situation if we can find the originalEric Christopher2011-12-162-6/+24
| | | | | | | | | declaration for the type then go ahead and use that, it's still smaller than creating an all new derived type. Part of rdar://10335756 and others. llvm-svn: 146779
* Start down the path of getting clang to internally agree on structs versusEric Christopher2011-12-161-12/+15
| | | | | | | | classes. Part of rdar://10520586 and a couple others. llvm-svn: 146778
* When generating debug info for an ObjCInterfaceDecl, try to dig out the ↵Douglas Gregor2011-12-151-1/+3
| | | | | | definition. llvm-svn: 146705
* Keep track of all declarations of an Objective-C class (both forwardDouglas Gregor2011-12-151-1/+1
| | | | | | | | | | declarations and definitions) as ObjCInterfaceDecls within the same redeclaration chain. This new representation matches what we do for C/C++ variables/functions/classes/templates/etc., and makes it possible to answer the query "where are all of the declarations of this class?" llvm-svn: 146679
* Replace all comparisons between ObjCInterfaceDecl pointers with callsDouglas Gregor2011-12-151-1/+1
| | | | | | | | to declaresSameEntity(), as a baby step toward tracking forward declarations of Objective-C classes precisely. Part of <rdar://problem/10583531>. llvm-svn: 146618
* Per discussion on the list, remove BitcodeVerify pass to reimplement as a ↵Chad Rosier2011-12-142-7/+0
| | | | | | free function. llvm-svn: 146530
* Make CGRecordLayoutBuilder correctly switch over to a packed class when a ↵Eli Friedman2011-12-121-36/+50
| | | | | | class has a base whose alignment will break the class layout. <rdar://problem/10551376>. llvm-svn: 146443
* Add frontend flags to enable bitcode verifier pass.Chad Rosier2011-12-122-0/+7
| | | | llvm-svn: 146441
* Hexagon backend supportTony Linthicum2011-12-123-0/+2134
| | | | llvm-svn: 146413
* Update Clang to emit the new form of llvm.cttz and llvm.ctlz intrinsics,Chandler Carruth2011-12-121-3/+4
| | | | | | | | | setting the is_zero_undef flag appropriately to true as that matches the semantics of these GCC builtins. This is the Clang side of r146357 in LLVM. llvm-svn: 146358
* Reuse forAddr to create ignored AggValueSlots.Benjamin Kramer2011-12-111-5/+2
| | | | | | Silences valgrind warnings about uninitalized alignment values. llvm-svn: 146342
* Make array new on a pointer to data member type work correctly. PR11523.Eli Friedman2011-12-091-2/+3
| | | | llvm-svn: 146291
* Don't get the exception obj from the slot more than once.Bill Wendling2011-12-081-4/+3
| | | | llvm-svn: 146202
* Fix an edge case in IRGen for conditionals. PR11509.Eli Friedman2011-12-081-0/+5
| | | | llvm-svn: 146189
OpenPOWER on IntegriCloud