summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* IRgen/CGValue: Add getQuals(), so qualifiers can be modified on an LValue.Daniel Dunbar2010-08-211-0/+3
| | | | llvm-svn: 111719
* IRgen/LValue: Add LValue::setNonGC instead of SetObjCNonGC, for consistency ↵Daniel Dunbar2010-08-213-8/+10
| | | | | | with isNonGC(). llvm-svn: 111718
* IRgen: Switch more MakeAddr() users to MakeAddrLValue; this time for calls ↵Daniel Dunbar2010-08-213-25/+21
| | | | | | which were previously not computing the qualifier list. In most cases, I don't think it matters, but I believe this is conservatively more correct / consistent. llvm-svn: 111717
* IRgen: Switch a bunch of trivial MakeAddr calls to use MakeAddrLValue.Daniel Dunbar2010-08-214-58/+44
| | | | llvm-svn: 111716
* IRgen: Eliminate EmitPredefinedFunctionName(), it doesn't need to be ↵Daniel Dunbar2010-08-213-36/+34
| | | | | | factored out. llvm-svn: 111715
* IRgen: Add an LValue::MakeAddr variant which takes a type and uses that to buildDaniel Dunbar2010-08-212-0/+12
| | | | | | | | | the qualifiers. Also, add CodeGenFunction::MakeAddrLValue() helper function which passes in the ASTContext. llvm-svn: 111714
* Delete an obsolete comment.Dan Gohman2010-08-211-2/+0
| | | | llvm-svn: 111711
* IRgen/CGValue: Add alignment to LValue, and use that alignment when ↵Daniel Dunbar2010-08-212-11/+15
| | | | | | generating lvalue load/stores. llvm-svn: 111710
* IRgen/LValue: Rename SetQualifiers() to Initialize().Daniel Dunbar2010-08-211-7/+7
| | | | llvm-svn: 111708
* IRgen: Change Emit{Load,Store}OfScalar to take a required Alignment argument andDaniel Dunbar2010-08-217-29/+63
| | | | | | | | update callers as best I can. - This is a work in progress, our alignment handling is very horrible / sketchy -- I am just aiming for monotonic improvement. - Serious review appreciated. llvm-svn: 111707
* IRgen: Use Ty consistently in this function.Daniel Dunbar2010-08-211-5/+4
| | | | llvm-svn: 111705
* CreateTemporaryType doesn't needs its Context argument.Dan Gohman2010-08-201-3/+2
| | | | llvm-svn: 111688
* Introduce a new temporary MDNode concept. Temporary MDNodes areDan Gohman2010-08-202-23/+12
| | | | | | | | not part of the IR, are not uniqued, and may be safely RAUW'd. This replaces a variety of alternate mechanisms for achieving the same effect. llvm-svn: 111682
* objective-c ivar refactoring patch. IterationsFariborz Jahanian2010-08-201-5/+3
| | | | | | | | over ivars for a varienty of puposes is now consolidated into two small routines; DeepCollectObjCIvars and ShallowCollectObjCIvars. llvm-svn: 111679
* Fix a major regression with value-initialization of class types withDouglas Gregor2010-08-201-1/+7
| | | | | | | | trivial default constructors. We're weren't zero-initializing them, which manifested as <rdar://problem/8320532> (a regression in the GCC test suite) and is likely to have caused significant other breakage. llvm-svn: 111650
* Translate NEON vmovl intrinsics to zero/sign-extend operations.Bob Wilson2010-08-201-2/+3
| | | | llvm-svn: 111612
* Mangle explicit template arguments in dependent or overloaded names.John McCall2010-08-201-1/+20
| | | | llvm-svn: 111591
* Add some enum goodness as requested by Chris. Now instead of storing theCharles Davis2010-08-191-3/+6
| | | | | | | | | | active C++ ABI as a raw string, we store it as an enum. This should improve performance somewhat. And yes, this time, I started from a clean build directory, and all the tests passed. :) llvm-svn: 111507
* Generate Attr subclasses with TableGen.Alexis Hunt2010-08-181-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | Now all classes derived from Attr are generated from TableGen. Additionally, Attr* is no longer its own linked list; SmallVectors or Attr* are used. The accompanying LLVM commit contains the updates to TableGen necessary for this. Some other notes about newly-generated attribute classes: - The constructor arguments are a SourceLocation and a Context&, followed by the attributes arguments in the order that they were defined in Attr.td - Every argument in Attr.td has an appropriate accessor named getFoo, and there are sometimes a few extra ones (such as to get the length of a variadic argument). Additionally, specific_attr_iterator has been introduced, which will iterate over an AttrVec, but only over attributes of a certain type. It can be accessed through either Decl::specific_attr_begin/end or the global functions of the same name. llvm-svn: 111455
* Contextual arity is a feature of mangling expressions; kill offJohn McCall2010-08-181-45/+19
| | | | | | | | mangleCallExpression. Also, operator names with unknown arity should be mangled as binary operators; this is actually covered by an oddly- positioned sentence in the ABI document. Fixes PR7891. llvm-svn: 111395
* zap dead code.Chris Lattner2010-08-182-52/+14
| | | | llvm-svn: 111365
* fix typoChris Lattner2010-08-181-1/+1
| | | | llvm-svn: 111334
* Fix PR7889 by generalizing some over specialized code. There is noChris Lattner2010-08-181-4/+2
| | | | | | reason that this should be limited to simple lvalues. llvm-svn: 111331
* fix PR7892, a crash on valid in c++ codegen of __PRETTY_FUNCTION__Chris Lattner2010-08-171-1/+5
| | | | llvm-svn: 111330
* StringRef'ication of lots stuff, patch by Peter Davies!Daniel Dunbar2010-08-171-2/+2
| | | | llvm-svn: 111314
* Whoops. Don't fall through into the overload case when mangling aJohn McCall2010-08-171-2/+2
| | | | | | dependent call expression. llvm-svn: 111300
* Convert all uses of StringLiteral::getStrData() to StringLiteral::getString()Benjamin Kramer2010-08-172-11/+7
| | | | | | and remove getStrData(). Patch by Peter Davies (with some tweaks). llvm-svn: 111229
* Implement support for member pointers under the Microsoft C++ ABI in theCharles Davis2010-08-165-11/+11
| | | | | | | | AST library. This also adds infrastructure for supporting multiple C++ ABIs in the AST. llvm-svn: 111117
* Remove dead code, caught by unused function warnings.Argyrios Kyrtzidis2010-08-151-36/+0
| | | | llvm-svn: 111091
* Explicitly handle every case in the switch in RTTIBuilder::BuildTypeInfo.Eli Friedman2010-08-151-2/+15
| | | | llvm-svn: 111085
* More cleanup enabling.John McCall2010-08-143-12/+52
| | | | llvm-svn: 111070
* Sketch out a framework for delaying the activation of a cleanup.John McCall2010-08-134-7/+119
| | | | | | Not yet complete or used. llvm-svn: 111044
* Zap unused UnaryOperator::OffsetOf.Eli Friedman2010-08-131-7/+0
| | | | llvm-svn: 110996
* Make use of __func__ in a block actually refer toFariborz Jahanian2010-08-131-6/+17
| | | | | | block's helper function. Fixes radar 7860965. llvm-svn: 110988
* Just disable the hidden-visibility optimization for now by hiding it behindJohn McCall2010-08-123-5/+16
| | | | | | | | a -cc1 option. The Darwin linker complains about mixed visibility when linking gcc-built objects with clang-built objects, and the optimization isn't really that valuable. Platforms with less ornery linkers can feel free to enable this. llvm-svn: 110979
* Implement RTTI generation for Objective C types. Fixes PR7864.John McCall2010-08-121-16/+73
| | | | llvm-svn: 110900
* Emit debug info for static const class member.Devang Patel2010-08-121-2/+25
| | | | llvm-svn: 110885
* Revise r110163: don't mark weak functions nounwind, because the optimizerJohn McCall2010-08-111-0/+4
| | | | | | treats that as a contract to be fulfilled by any replacements. llvm-svn: 110864
* Emit a stop point for delegate constructor call. This gives user a chance to ↵Devang Patel2010-08-111-0/+3
| | | | | | step into constructor body. llvm-svn: 110853
* When re-raising an exception after a cleanup, we need to call ↵John McCall2010-08-111-1/+1
| | | | | | | | | | | | | | | | | | _Unwind_Resume_or_Rethrow instead of _Unwind_Resume. With SJLJ exceptions, this is spelled "_Unwind_SjLj_Resume_or_Rethrow", not "_Unwind_SjLj_Resume", which has significantly different semantics. We should actually never be generating a call to _Unwind_SjLj_Resume directly; even if we were generating true cleanups (which we aren't because of the horrible hack), we should be calling __cxa_end_cleanup() on ARM. I haven't implemented this because there's little point as long as the HH is present. I believe this fixes <rdar://problem/8281377>. llvm-svn: 110851
* Work in progress for PR7864. Someone more familiar with ObjC++ needs to fillEli Friedman2010-08-111-3/+24
| | | | | | in the code after the "FIXME: Needs to be written". llvm-svn: 110849
* IRGen support for functions returning objc objectFariborz Jahanian2010-08-111-1/+1
| | | | | | types. Fixes PR7865. llvm-svn: 110832
* Fix a bug in @finally emission in both the fragile and non-fragile EH schemesJohn McCall2010-08-112-5/+26
| | | | | | | | | where we weren't accounting for the possibility that a @finally block might have internal cleanups and therefore might write to the cleanup destination slot. Fixes <rdar://problem/8293901>. llvm-svn: 110760
* SimplifyDevang Patel2010-08-101-2/+1
| | | | llvm-svn: 110716
* Slightly revised handling of mult-alt constraints, to avoid an assert, until ↵John Thompson2010-08-101-1/+9
| | | | | | we have the full fix. llvm-svn: 110706
* When initializing a static local, pop the guard-abort EH cleanup afterJohn McCall2010-08-101-0/+4
| | | | | | the variable is fully initialized. llvm-svn: 110704
* Do not use DIGlobalVariable to emit debugging information for enums.Devang Patel2010-08-101-0/+4
| | | | llvm-svn: 110697
* Simplify code and add comments, in code that generate debug info for ↵Devang Patel2010-08-105-18/+15
| | | | | | constant integer globals, based on Chris's feedback. llvm-svn: 110694
* Even if a constant's evaluated value is used, emit debug info for the ↵Devang Patel2010-08-105-1/+32
| | | | | | constant variable. llvm-svn: 110660
* Support ObjC implementation decls for PCH.Argyrios Kyrtzidis2010-08-091-4/+20
| | | | | | Strictly speaking, implementations don't go in headers but there's no law against it. llvm-svn: 110567
OpenPOWER on IntegriCloud