aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2010-06-11Start implementing the Microsoft-style name mangler. Mangle simple namesCharles Davis
(but not their types; that's later). NOTE: Right now, variables in the global namespace don't get mangled, even though they're supposed to be. This is because the default mangler implements the shouldMangleDeclName() method that tells clang not to mangle them. This will be fixed in a later patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105805 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-11Add an option to specify the target C++ ABI to the frontend. Use it toCharles Davis
select either the default Itanium ABI or the new, experimental Microsoft ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105804 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-11Split DependentNameType into two types. DependentNameType represents theJohn McCall
case of an elaborated-type-specifier like 'typename A<T>::foo', and DependentTemplateSpecializationType represents the case of an elaborated-type-specifier like 'typename A<T>::template B<T>'. The TypeLoc representation of a DependentTST conveniently exactly matches that of an ElaboratedType wrapping a TST. Kill off the explicit rebuild methods for RebuildInCurrentInstantiation; the standard implementations work fine because the nested name specifier is computable in the newly-entered context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105801 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-10Multiplies, some shifts, set_laneNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105793 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-10support _lane ops, and multiplies by scalar.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105770 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Add a stub Microsoft Visual C++ ABI class (with stub mangler).Charles Davis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105767 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Implement codegen for hadd, hsub, max, min, mlal, movl, movn, padal, mov_nNate Begeman
Make note about how to handle the dozen or so multiply by scalar ops. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105734 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Correctly handle > 257 substitutions in a single mangling, and don't introduceJohn McCall
a spurious substitution for an unscoped dependent template-id after introducing a substitution for the scoped template-id. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105699 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09More accurate BuiltinsARM.def Nate Begeman
vget_lane support git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105684 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Simplify the code a bit and avoid a gcc waring about uninitialized variables.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105676 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Get rid of getMangledCXXCtorName and getMangledCXXDtorName.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105673 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09More mangling cleanup.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105672 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Get rid of an unnecessary getMangledName overload.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105671 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Fix a gcc warning.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105670 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-09Implement transpose/zip/unzip & table lookup.Nate Begeman
Test out some basic constant-checking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105667 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08On Darwin, initialization and destruction functions should go into the ↵Anders Carlsson
__StaticInit section. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105650 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Add a global CreateGlobalInitOrDestructFunction and use it for creating ↵Anders Carlsson
global init or destruction functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105649 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Rename __tcf_ to __cxx_global_array_dtor. Remove the ↵Anders Carlsson
UniqueAggreDestructorCount from CodeGenFunction and let LLVM handle uniquing the internal functions instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Move GenerateCXXAggrDestructorHelper to CGDeclCXX.cpp where it belongs.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105647 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Simplify GenerateCXXAggrDestructorHelper.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105646 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Block Code Gen. API. Call destructor on descriptiorFariborz Jahanian
entry previously constructed via copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105641 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Makefiles: Set Clang CPP compiler flags in a single location, instead of ↵Daniel Dunbar
scattered throughout the project Makefiles. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105638 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.Daniel Dunbar
- This eliminates most dependencies on how Clang is installed relative to LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105637 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Correctly mangle static variables of anonymous struct/union type.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105606 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Fix NEON intrinsic argument passing, support vext. Most now successfully ↵Nate Begeman
make it through codegen to the .s file git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105599 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Fix what looks like a merge problem that broke __clear_cache.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105595 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Fix passing and returning of objects with non trivial copy constructors onRafael Espindola
ARM. Fixes PR7310. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105592 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Implement ARM NEON up through vcvt, alphabetically.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105590 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-08Extend __builtin_shufflevector to expose the full power of the llvm ↵Nate Begeman
shufflevector instruction. This means it can now be used for vector truncation and concatenation. This will be used for the ARM NEON implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105589 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07When using property-dot assignment syntax to call a setter method,Fariborz Jahanian
type of rhs need be compared to setter's argument and not the getter type. Fixes radar 8062778 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105560 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07Fixed a block regression caused by trying to useFariborz Jahanian
an existing ir for load of a bock variable. This cannot be done across basic blocks. Fixes radar 8064140. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105549 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07Implement __clear_cache on ARM.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105537 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07weekend checkpoint of arm neon builtins codegen. Nate Begeman
TODO: add remainder of builtins to CGBuiltin, add code to SemaChecking to validate constants. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105532 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-05Added AccessSpecDecl node.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105525 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-05Preserve type info for local variables in optimized builds. Devang Patel
llvm-gcc enabled this couple of weeks ago. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105516 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-04Build AST for copy-construction of copied-inFariborz Jahanian
class object in blocks and carry it to IRGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105487 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-04For C++ copied in objects, use copy constructors inFariborz Jahanian
setting up block's descriptor. This is on going work to support c++ specific issues in setting up blocks various APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105469 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-04Remove now unused code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105448 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-04Use CXXRecordDecl::getFinalOverriders to get final overriders. This speeds ↵Anders Carlsson
up vtable layout by moving away from the old final overrider computation code that had O(N^2) complexity in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105447 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-03Don't intentionally try to ignore the value of a scalar expression when weEli Friedman
actually care about it. Fixes PR7291. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105404 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-03Don't try to explicitly zero out bit-fields.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105391 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02Block C++ code gen. Adds support for block reference argumentFariborz Jahanian
types. Executable test will be added to LLVM test suite. (radar 8041962). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105347 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02Don't try to emit the vtable for a class just because we're emitting aJohn McCall
virtual function from it. Fixes PR7241. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105345 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02Don't substitute 'St' for 'std' when the namespace is nested inside another ↵Anders Carlsson
namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105330 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02When building RTTI descriptors for pointer types, we need to get the ↵Anders Carlsson
unqualified array type and the qualifiers from it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105326 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02Correctly mangle unsigned integer literals where the high bit is set.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105312 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02Correctly mangle variadic functions that don't have any other parameters.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105311 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02When mangling member function pointers, fake adding a substitution ↵Anders Carlsson
corresponding to the function type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105310 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-01More cleanup.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105301 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-01More cleanup.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105299 91177308-0d34-0410-b5e6-96231b3b80d8