summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Objective-c++ IRGen. Support for @selector expression asFariborz Jahanian2010-06-175-13/+35
| | | | | | an lvalue. Fixes PR7390. llvm-svn: 106235
* Mangle operator names in the Microsoft C++ Mangler.Charles Davis2010-06-171-1/+131
| | | | llvm-svn: 106211
* Remove last of the bool shifts for MS VC++, patch by dimitry andricNate Begeman2010-06-171-5/+5
| | | | llvm-svn: 106206
* Update CMake build for new attribute changes.Alexis Hunt2010-06-171-1/+2
| | | | llvm-svn: 106188
* Change the test for which ABI/CC to use on ARM to be base on the environmentRafael Espindola2010-06-161-3/+4
| | | | | | (the last argument of the triple). llvm-svn: 106131
* Fixed conflict between objc_memmove_collectable builtin Fariborz Jahanian2010-06-161-1/+1
| | | | | | decl. and one ddefined in darwin header file. llvm-svn: 106107
* Don't set the calling convention for ARM if it is already the default.Rafael Espindola2010-06-161-3/+11
| | | | llvm-svn: 106106
* Start mangling function types in the Microsoft C++ Mangler.Charles Davis2010-06-161-4/+201
| | | | llvm-svn: 106081
* Give Type::isIntegralType() an ASTContext parameter, so that itDouglas Gregor2010-06-162-3/+3
| | | | | | | | | | | | provides C "integer type" semantics in C and C++ "integral type" semantics in C++. Note that I still need to update isIntegerType (and possibly other predicates) using the same approach I've taken for isIntegralType(). The two should have the same meaning, but currently don't (!). llvm-svn: 106074
* Introduce Type::isIntegralOrEnumerationType(), to cover those placesDouglas Gregor2010-06-161-1/+1
| | | | | | | | | | in C++ that involve both integral and enumeration types. Convert all of the callers to Type::isIntegralType() that are meant to work with both integral and enumeration types over to Type::isIntegralOrEnumerationType(), to prepare to eliminate enumeration types as integral types. llvm-svn: 106071
* Move CodeGenOptions.h *back* into Frontend. This should have been done when theChandler Carruth2010-06-1510-10/+10
| | | | | | dependency edge was reversed such that CodeGen depends on Frontend. llvm-svn: 106065
* Patch adds support for copying of thoseFariborz Jahanian2010-06-156-32/+61
| | | | | | | | objective-c++ class objects which have GC'able objc object pointers and need to use ObjC's objc_memmove_collectable API (radar 8070772). llvm-svn: 106061
* Break Frontend's dependency on Rewrite, Checker and CodeGen in shared ↵Daniel Dunbar2010-06-153-0/+675
| | | | | | | | | | | | | | | | | | | | | | | | | | | | library configuration Currently, all AST consumers are located in the Frontend library, meaning that in a shared library configuration, Frontend has a dependency on Rewrite, Checker and CodeGen. This is suboptimal for clients which only wish to make use of the frontend. CodeGen in particular introduces a large number of unwanted dependencies. This patch breaks the dependency by moving all AST consumers with dependencies on Rewrite, Checker and/or CodeGen to their respective libraries. The patch therefore introduces dependencies in the other direction (i.e. from Rewrite, Checker and CodeGen to Frontend). After applying this patch, Clang builds correctly using CMake and shared libraries ("cmake -DBUILD_SHARED_LIBS=ON"). N.B. This patch includes file renames which are indicated in the patch body. Changes in this revision of the patch: - Fixed some copy-paste mistakes in the header files - Modified certain aspects of the coding to comply with the LLVM Coding Standards llvm-svn: 106010
* Implement -fvisibility-inlines-hidden. <rdar://problem/7819834>Douglas Gregor2010-06-151-0/+7
| | | | llvm-svn: 106003
* Make sure to set the visible on a vtable; VTTs and typeinfo alreadyDouglas Gregor2010-06-141-0/+3
| | | | | | handle visibility properly. Fixes <rdar://problem/8091955>. llvm-svn: 105977
* Add name mangling for address spaces. We use the vendor-extensionDouglas Gregor2010-06-141-0/+12
| | | | | | | mangling for types, where the <source-name> is ASxxx (xxx is the address-space number). llvm-svn: 105975
* An implementation of __builtin__fpclassify the way Chris Lattner described ↵Benjamin Kramer2010-06-141-0/+58
| | | | | | by Jörg Blank. llvm-svn: 105936
* Microsoft C++ Mangler:Charles Davis2010-06-141-1/+116
| | | | | | | | - Mangle qualifiers. - Start mangling variables' types into the name. A variable declared with a builtin type should now mangle properly. llvm-svn: 105931
* Add some missing shiftsNate Begeman2010-06-142-25/+48
| | | | | | | | Fix multiplies by scalar Add SemaChecking code for all immediates Add SemaChecking-gen support to arm_neon.td llvm-svn: 105930
* Most of NEON sema checking & fix to polynomial type detectionNate Begeman2010-06-131-1/+1
| | | | llvm-svn: 105908
* Microsoft C++ Mangler:Charles Davis2010-06-121-1/+110
| | | | | | | - Don't mangle static variables at global scope. - Add support for mangling builtin types. This will be used later. llvm-svn: 105881
* Shifts complete. Only vld & sema checking of constants remain.Nate Begeman2010-06-121-1/+29
| | | | llvm-svn: 105879
* vbsl, vrev* is implemented via arm_neon.hNate Begeman2010-06-121-2/+0
| | | | llvm-svn: 105875
* Most of remaining builtins, 2 generics, vld, and rounding shfits remain.Nate Begeman2010-06-112-9/+115
| | | | llvm-svn: 105848
* When mangling for the Microsoft C++ ABI, mangle variables in the globalCharles Davis2010-06-112-1/+42
| | | | | | namespace, too. llvm-svn: 105809
* Start implementing the Microsoft-style name mangler. Mangle simple namesCharles Davis2010-06-111-1/+197
| | | | | | | | | | | (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. llvm-svn: 105805
* Add an option to specify the target C++ ABI to the frontend. Use it toCharles Davis2010-06-112-3/+5
| | | | | | select either the default Itanium ABI or the new, experimental Microsoft ABI. llvm-svn: 105804
* Split DependentNameType into two types. DependentNameType represents theJohn McCall2010-06-111-14/+18
| | | | | | | | | | | | | | 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. llvm-svn: 105801
* Multiplies, some shifts, set_laneNate Begeman2010-06-101-8/+109
| | | | llvm-svn: 105793
* support _lane ops, and multiplies by scalar.Nate Begeman2010-06-102-7/+24
| | | | llvm-svn: 105770
* Add a stub Microsoft Visual C++ ABI class (with stub mangler).Charles Davis2010-06-094-21/+155
| | | | llvm-svn: 105767
* Implement codegen for hadd, hsub, max, min, mlal, movl, movn, padal, mov_nNate Begeman2010-06-091-1/+35
| | | | | | Make note about how to handle the dozen or so multiply by scalar ops. llvm-svn: 105734
* Correctly handle > 257 substitutions in a single mangling, and don't introduceJohn McCall2010-06-091-10/+8
| | | | | | | a spurious substitution for an unscoped dependent template-id after introducing a substitution for the scoped template-id. llvm-svn: 105699
* More accurate BuiltinsARM.def Nate Begeman2010-06-091-0/+11
| | | | | | vget_lane support llvm-svn: 105684
* Simplify the code a bit and avoid a gcc waring about uninitialized variables.Rafael Espindola2010-06-091-29/+24
| | | | llvm-svn: 105676
* Get rid of getMangledCXXCtorName and getMangledCXXDtorName.Anders Carlsson2010-06-093-24/+8
| | | | llvm-svn: 105673
* More mangling cleanup.Anders Carlsson2010-06-091-6/+8
| | | | llvm-svn: 105672
* Get rid of an unnecessary getMangledName overload.Anders Carlsson2010-06-092-13/+1
| | | | llvm-svn: 105671
* Fix a gcc warning.Rafael Espindola2010-06-091-1/+1
| | | | llvm-svn: 105670
* Implement transpose/zip/unzip & table lookup.Nate Begeman2010-06-091-4/+81
| | | | | | Test out some basic constant-checking. llvm-svn: 105667
* On Darwin, initialization and destruction functions should go into the ↵Anders Carlsson2010-06-081-0/+5
| | | | | | __StaticInit section. llvm-svn: 105650
* Add a global CreateGlobalInitOrDestructFunction and use it for creating ↵Anders Carlsson2010-06-081-11/+17
| | | | | | global init or destruction functions. llvm-svn: 105649
* Rename __tcf_ to __cxx_global_array_dtor. Remove the ↵Anders Carlsson2010-06-083-6/+3
| | | | | | UniqueAggreDestructorCount from CodeGenFunction and let LLVM handle uniquing the internal functions instead. llvm-svn: 105648
* Move GenerateCXXAggrDestructorHelper to CGDeclCXX.cpp where it belongs.Anders Carlsson2010-06-082-38/+37
| | | | llvm-svn: 105647
* Simplify GenerateCXXAggrDestructorHelper.Anders Carlsson2010-06-083-27/+19
| | | | llvm-svn: 105646
* Block Code Gen. API. Call destructor on descriptiorFariborz Jahanian2010-06-081-2/+30
| | | | | | entry previously constructed via copy constructor. llvm-svn: 105641
* Makefiles: Set Clang CPP compiler flags in a single location, instead of ↵Daniel Dunbar2010-06-081-5/+0
| | | | | | scattered throughout the project Makefiles. llvm-svn: 105638
* Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.Daniel Dunbar2010-06-081-2/+2
| | | | | | - This eliminates most dependencies on how Clang is installed relative to LLVM. llvm-svn: 105637
* Correctly mangle static variables of anonymous struct/union type.Anders Carlsson2010-06-081-0/+44
| | | | llvm-svn: 105606
* Fix NEON intrinsic argument passing, support vext. Most now successfully ↵Nate Begeman2010-06-082-57/+87
| | | | | | make it through codegen to the .s file llvm-svn: 105599
OpenPOWER on IntegriCloud