aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2012-01-12Formatting.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147988 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-12Take into account the pointer to an aggregate that is passed as a hiddenAkira Hatanaka
argument when Offset is initialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147986 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-12Call CodeGenTypes::ConvertType to get LLVM::Type*.Akira Hatanaka
Remove function MipsABIInfo::GetFloatingPointTy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147985 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-11Fixed VLA code generation.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147933 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10Remove switch/case statements and call GetFloatingPointTy() instead to get theAkira Hatanaka
floating point type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147894 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10Flatten float complex arguments. N32/64 requires float complex arguments beAkira Hatanaka
passed in floating point registers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147892 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10Remove space.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147889 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10Add support for the androideabi environment to our triple support, andChandler Carruth
for the arm-linux-androideabi triple in particular. Also use this to do a better job of selecting soft FP settings. Patch by Evgeniy Stepanov. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147872 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10Contrary to the other BSDs, NetBSD followed the ELF ABI for structureJoerg Sonnenberger
passing on i386 and does not use registers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147856 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10The `-fwritable-strings' flag doesn't make the backing store strings of allBill Wendling
CFStrings writable. The strings (both Unicode and ASCII) should reside in a read-only section. E.g., __TEXT,__cstring instead of __DATA,__data. This is done by making the global variable created for the strings constant despite the value of that flag. <rdar://problem/10657500> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147845 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10Implement the missing pieces of Evaluate for _Complex types. With that ↵Eli Friedman
complete, remove some code from CGExprConstant which is no longer necessary. While I'm here, a couple minor tweaks to _Complex-in-C++. (Specifically, make _Complex types literal types, and don't warn for _Complex int.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147840 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-10objc++: patch for IRgen for atomic properties ofFariborz Jahanian
c++ objects with non-trivial assignment/copy functions. Also, one additional sema check. // rdar://6137845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147817 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-09Insert padding before unaligned long double arguments.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-09Move the piece of code up that skips the padding argument. Without this change,Akira Hatanaka
padding insertion will not work if the coerced type is not a structure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147786 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-08objc++: more atomic property api code forFariborz Jahanian
c++ object properties. wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147750 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-07objc++: More codegen stuff for atomic properties of c++ objectsFariborz Jahanian
with non-trivial copies. // rdar://6137845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147735 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-07Fixed TypeofExpr AST and code generation.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147730 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-07Add field PaddingType to ABIArgInfo which specifies the type of padding thatAkira Hatanaka
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147699 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06objc++: more code gen stuff for atomic property api,Fariborz Jahanian
currently turned off. // rdar://6137845 Also, fixes a test case which should be nonatomic under new API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147691 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06Revert r147664; it's breaking clang regression tests.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147681 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06Revert r147655; it's breaking the compiler_rt build on OSX.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147677 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06objc++: some declarations related to atomicFariborz Jahanian
properties of c++ object types with non-trivial assignment copy. Not used yet. // rdar://6137845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147666 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06Silence GCC warnings.Jakub Staszak
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147664 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06If we are compiling with -fno-builtin then don't do constant folding ofDavid Chisnall
builtins. This fixes PR11711. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147655 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-06objc++: sythesize a helper function to be usedFariborz Jahanian
for copying atomic properties of c++ objects with non-trivial copy assignment in setters/getters. Not yet used. // rdar://6137845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147636 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-05Address Richard's review comments on r147561 (Evaluate support for ↵Eli Friedman
address-of-label differences). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147631 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-05Fixes a code gen bug for setter code for a property ofFariborz Jahanian
c++ object reference type with trivial copy constructor. This causes an assert crash and bad code gen. when assert is off. // rdar://6137845 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147573 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-04Add an APValue representation for the difference between two ↵Eli Friedman
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147561 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-04implement rdar://10639962 by keeping track of increased alignment Chris Lattner
information even in subscripting operations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147557 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-04Restore r147493 and remove the part of the test that was checking the wrong ↵David Chisnall
thing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147530 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-04Have functions return structures smaller than 128-bit in registers if ABIAkira Hatanaka
is either N32 or N64. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147520 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-04Revert r147493. It broke test/CodeGenObjC/constant-strings.m.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147511 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-03Initialise constant Objective-C string isa pointers with a weak reference to ↵David Chisnall
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) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147493 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-01Eliminate ObjCForwardProtocolDecl, which is redundant now thatDouglas Gregor
ObjCProtocolDecl modules forward declarations properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147415 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-01Introduce the core infrastructure needed to model redeclaration chainsDouglas Gregor
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147410 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-30Unrevert r147271, reverted in r147361.Richard Smith
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147384 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-28Small refactoring and simplification of constant evaluation and some of itsRichard Smith
clients. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147318 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-27Eliminate ObjCClassDecl, which is redundant now that ObjCInterfaceDeclDouglas Gregor
covers both declarations (@class) and definitions (@interface) of an Objective-C class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147299 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-27constexpr: support for evaluation and codegen of typeid constants.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147290 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-25Add intrinsics for lzcnt and tzcnt instructions.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147263 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-22Fix a failure (which led to a crash) in constant emission code with vector ↵Eli Friedman
compound literals. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147111 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-20Unweaken vtables as per ↵David Blaikie
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146959 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19Mark the calls to the _setjmp function as returns twice. ↵Bill Wendling
<rdar://problem/10492556> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146926 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19Switch a few callers of MakeAddrLValue places over to ↵Eli Friedman
MakeNaturalAlignAddrLValue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146920 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19Fix PR5279 - don't sliently drop alignment information on stores of types ↵Chris Lattner
that have alignment less than the natural alignment of the type when it comes from a typedef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146908 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19Extend the fix for PR9614 to handle inline asm in the outer decl andRafael Espindola
the inner decl being a builtin. This is needed to support the glibc headers in fedora 16 (2.14). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146867 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19More AVX2 intrinsic support including saturating add/sub and palignr.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146857 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-16When in a limited debug information situation if we can find the originalEric Christopher
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146779 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-16Start down the path of getting clang to internally agree on structs versusEric Christopher
classes. Part of rdar://10520586 and a couple others. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146778 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-15When generating debug info for an ObjCInterfaceDecl, try to dig out the ↵Douglas Gregor
definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146705 91177308-0d34-0410-b5e6-96231b3b80d8