summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a new 'type_visibility' attribute to allow users toJohn McCall2013-02-201-1/+1
| | | | | | | | | | | | | | control the visibility of a type for the purposes of RTTI and template argument restrictions independently of how visibility propagates to its non-type member declarations. Also fix r175326 to not ignore template argument visibility on a template explicit instantiation when a member has an explicit attribute but the instantiation does not. The type_visibility work is rdar://11880378 llvm-svn: 175587
* Pass the target options through to code generation.Bill Wendling2013-02-141-3/+5
| | | | | | | The code generation stuff is going to set attributes on the functions it generates. To do that it needs the target options. Pass them through. llvm-svn: 175141
* Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.Jordan Rose2013-02-081-1/+2
| | | | | | | Nearly all of these changes are one-to-one replacements; the few that aren't have to do with custom identifier validation. llvm-svn: 174768
* Add support for AArch64 target.Tim Northover2013-01-311-0/+1
| | | | | | | | | | | | | In cooperation with the LLVM patch, this should implement all scalar front-end parts of the C and C++ ABIs for AArch64. This patch excludes the NEON support also reviewed due to an outbreak of batshit insanity in our legal department. That will be committed soon bringing the changes to precisely what has been approved. Further reviews would be gratefully received. llvm-svn: 174055
* Make sure that the Attribute object represents one attribute only.Bill Wendling2013-01-311-4/+4
| | | | | | | | Several places were still treating the Attribute object as respresenting multiple attributes. Those places now use the AttributeSet to represent multiple attributes. llvm-svn: 174004
* Move UTF conversion routines from clang/lib/Basic to llvm/lib/SupportDmitri Gribenko2013-01-301-1/+2
| | | | | | This is required to use them in TableGen. llvm-svn: 173924
* Use the AttributeSet instead of AttributeWithIndex.Bill Wendling2013-01-271-12/+8
| | | | | | | In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the internals of the AttributeSet to outside users, which isn't goodness. llvm-svn: 173605
* Move the decision about the kind of CGCXXABI to make insideJohn McCall2013-01-251-6/+6
| | | | | | the family-specific files. llvm-svn: 173530
* The standard ARM C++ ABI dictates that inline functions areJohn McCall2013-01-251-80/+13
| | | | | | | | never key functions. We did not implement that rule for the iOS ABI, which was driven by what was implemented in gcc-4.2. However, implement it now for other ARM-based platforms. llvm-svn: 173515
* First pass at abstracting out a class for the target C++ ABI.John McCall2013-01-251-4/+7
| | | | llvm-svn: 173514
* Remove the last of uses that use the Attribute object as a collection of ↵Bill Wendling2013-01-231-3/+6
| | | | | | | | | attributes. Collections of attributes are handled via the AttributeSet class now. This finally frees us up to make significant changes to how attributes are structured. llvm-svn: 173229
* Use the AttributeSet when adding multiple attributes and an Attribute::AttrKindBill Wendling2013-01-231-2/+7
| | | | | | when adding a single attribute to the function. llvm-svn: 173211
* Have AttributeSet::getRetAttributes() return an AttributeSet instead of ↵Bill Wendling2013-01-211-3/+4
| | | | | | | | | Attribute. This further restricts the use of the Attribute class to the Attribute family of classes. llvm-svn: 173099
* Make AttributeSet::getFnAttributes() return an AttributeSet instead of an ↵Bill Wendling2013-01-211-6/+6
| | | | | | | | | Attribute. This is more code to isolate the use of the Attribute class to that of just holding one attribute instead of a collection of attributes. llvm-svn: 173095
* Use the AttributeSet query method instead of the Attribute method.Bill Wendling2013-01-181-1/+1
| | | | llvm-svn: 172849
* [ubsan] Add support for -fsanitize-blacklistWill Dietz2013-01-181-6/+9
| | | | llvm-svn: 172808
* [IRgen] Update modules autolink metadata to use module flags (as now specifiedDaniel Dunbar2013-01-171-10/+6
| | | | | | in the LangRef). llvm-svn: 172692
* Add -fmodules-autolink/-fno-modules-autolink (defaults to on) so thatDouglas Gregor2013-01-161-1/+4
| | | | | | users can explicitly enable/disable modules autolinking. llvm-svn: 172592
* Fix Const CastDavid Greene2013-01-151-1/+2
| | | | | | Do proper casting to avoid a cast-away-const error. llvm-svn: 172559
* Topologically sort the link options generated for modules based onDouglas Gregor2013-01-141-67/+112
| | | | | | | module-import dependencies, so we'll get the link order correct for those silly linkers that need it. llvm-svn: 172459
* When forming the link options for an imported module, also include theDouglas Gregor2013-01-141-2/+7
| | | | | | link options for the modules it imports. llvm-svn: 172448
* Switch autolinking metadata format over to actual linker options, e.g.,Douglas Gregor2013-01-141-24/+33
| | | | | | | | | | | | | | | | | | | !0 = metadata !{metadata !"-lautolink"} !1 = metadata !{metadata !"-framework", metadata !"autolink_framework"} referenced from llvm.module.linkoptions, e.g., !llvm.module.linkoptions = !{!0, !1, !2, !3} This conceptually moves the logic for figuring out the syntax the linker will accept from LLVM into Clang. Moreover, it makes it easier to support MSVC's #pragma comment(linker, "some option") in the future, should anyone care to do so. llvm-svn: 172441
* Implement parsing, AST, (de-)serialization, and placeholder globalDouglas Gregor2013-01-141-2/+68
| | | | | | | | | | | | | | | | | | | | | | | | | metadata for linking against the libraries/frameworks for imported modules. The module map language is extended with a new "link" directive that specifies what library or framework to link against when a module is imported, e.g., link "clangAST" or link framework "MyFramework" Importing the corresponding module (or any of its submodules) will eventually link against the named library/framework. For now, I've added some placeholder global metadata that encodes the imported libraries/frameworks, so that we can test that this information gets through to the IR. The format of the data is still under discussion. llvm-svn: 172437
* Remove useless 'llvm::' qualifier from names like StringRef and others that areDmitri Gribenko2013-01-121-2/+2
| | | | | | brought into 'clang' namespace by clang/Basic/LLVM.h llvm-svn: 172323
* Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate toChandler Carruth2013-01-021-5/+5
| | | | | | | | reflect the migration in r171366. Re-sort the #include lines to reflect the new paths. llvm-svn: 171369
* Remove the Function::getFnAttributes method in favor of using the AttributeSetBill Wendling2012-12-301-1/+2
| | | | | | | | | directly. This is in preparation for removing the use of the 'Attribute' class as a collection of attributes. That will shift to the AttributeSet class instead. llvm-svn: 171254
* Rename llvm::Attributes to llvm::Attribute.Bill Wendling2012-12-201-16/+16
| | | | llvm-svn: 170722
* Revert r170500. It over-zealously converted *ALL* things named Attributes, ↵Bill Wendling2012-12-201-16/+16
| | | | | | which is wrong here. llvm-svn: 170721
* Rename the 'Attributes' class to 'Attribute'. It's going to represent a ↵Bill Wendling2012-12-191-16/+16
| | | | | | single attribute in the future. llvm-svn: 170500
* Rewrite calls to bitcast unprototyped functions when emitting a definition.John McCall2012-12-121-77/+113
| | | | | | | | | | | | My variadics patch, r169588, changed these calls to typically be bitcasts rather than calls to a supposedly variadic function. This totally subverted a hack where we intentionally dropped excess arguments from such calls in order to appease the inliner and a "warning" from the optimizer. This patch extends the hack to also work with bitcasts, as well as teaching it to rewrite invokes. llvm-svn: 170034
* s/AttrListPtr/AttributeSet/g to better label what this class is going to be ↵Bill Wendling2012-12-071-6/+6
| | | | | | in the near future. llvm-svn: 169652
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-12/+12
| | | | | | | | | | | | | uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. llvm-svn: 169237
* Fix PR14474: don't emit debug info for interface types in -gline-tables-only ↵Alexey Samsonov2012-12-031-3/+3
| | | | | | mode. llvm-svn: 169138
* Update method calls to the new interface re r168354.Bill Wendling2012-11-201-2/+2
| | | | llvm-svn: 168355
* Rename LangOptions members for address sanitizer and thread sanitizer fromRichard Smith2012-11-051-3/+3
| | | | | | *Sanitizer to Sanitize* in preparation for later patches. llvm-svn: 167405
* Update the front end to use minsize attributeQuentin Colombet2012-11-011-0/+3
| | | | llvm-svn: 167266
* Revert commit r166946Quentin Colombet2012-10-291-3/+0
| | | | llvm-svn: 166957
* Make forcesizeopt attribute available to the end userQuentin Colombet2012-10-291-0/+3
| | | | llvm-svn: 166946
* Add comment for my patch in r166809.Fariborz Jahanian2012-10-261-0/+2
| | | | llvm-svn: 166823
* objective-C IRGen: for @implementation nested in Fariborz Jahanian2012-10-261-1/+8
| | | | | | | | | extern "C", its method definitions must be IRGen'ed before meta-data for class is generated. Otherwise, IRGen crashes (to say the least). // rdar://12581683 llvm-svn: 166809
* Remove the HiddenWeakTemplateVTables CodeGen option. It's currently unused.Douglas Gregor2012-10-241-3/+1
| | | | llvm-svn: 166561
* Switch CodeGenOptions over to a .def file, like we do with LangOptions.Douglas Gregor2012-10-231-3/+3
| | | | llvm-svn: 166497
* Set a special flag in class metadata when an Objective-C classJohn McCall2012-10-171-2/+2
| | | | | | | | | has ivars that require destruction, but none that require anything except zero-initialization. This is common in ARC and (when true throughout a class hierarchy) permits the elimination of an unnecessary message-send during allocation. llvm-svn: 166088
* "'Might as well make it static const.' -- John McCall" -- Michael ScottNico Weber2012-10-171-1/+1
| | | | llvm-svn: 166080
* When using a symbol with attribute weakref, search for it first andJoerg Sonnenberger2012-10-161-5/+8
| | | | | | | | don't try the normal GetOrCreateLLVM. The latter could drop the weak atrtibute on the second reference, if there is no explicit declaration of the aliasee. llvm-svn: 166032
* Use enum values instead of magic numbers for indexing into the attribute list.Bill Wendling2012-10-151-3/+7
| | | | llvm-svn: 165925
* Attributes RewriteBill Wendling2012-10-151-1/+2
| | | | | | | | Convert the uses of the Attributes class over to the new format. The Attributes::get method call now takes an LLVM context so that the attributes object can be uniquified and stored. llvm-svn: 165918
* Remove operator cast method in favor of querying with the correct method.Bill Wendling2012-10-141-3/+5
| | | | llvm-svn: 165900
* Simplify. Suggestion by Sean Silva.Nico Weber2012-10-131-11/+3
| | | | llvm-svn: 165885
* Add codegen support for __uuidof().Nico Weber2012-10-111-1/+81
| | | | llvm-svn: 165710
OpenPOWER on IntegriCloud