summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Add Code gen support for '->*' operator which fellFariborz Jahanian2009-10-262-2/+6
| | | | | | through the crack. llvm-svn: 85160
* Switch vtable to linkeonce_odr. Patch by nlewycky.Chandler Carruth2009-10-261-1/+1
| | | | llvm-svn: 85131
* assert -> llvm_unreachableDouglas Gregor2009-10-261-1/+1
| | | | llvm-svn: 85125
* Update location of DataTypes.h to reflect move in LLVM with r85086.Chandler Carruth2009-10-261-1/+1
| | | | llvm-svn: 85087
* Fix a bug in calculating shufflevector indices when constructing vectors ↵Nate Begeman2009-10-251-4/+3
| | | | | | | | from other vectors. If I can find it again, I will check in a testcase. llvm-svn: 85032
* Store the builtin types as CanQualTypes. Expand a bit on the CanQual API,John McCall2009-10-231-1/+1
| | | | | | | but also remove some methods that cause ambiguities, and generally make CanQual<blah> more analogous to QualType. llvm-svn: 84976
* Eliminate QualifiedDeclRefExpr, which captured the notion of aDouglas Gregor2009-10-234-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | qualified reference to a declaration that is not a non-static data member or non-static member function, e.g., namespace N { int i; } int j = N::i; Instead, extend DeclRefExpr to optionally store the qualifier. Most clients won't see or care about the difference (since QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the number of top-level expression types that clients need to cope with, brings the implementation of DeclRefExpr into line with MemberExpr, and simplifies and unifies our handling of declaration references. Extended DeclRefExpr to (optionally) store explicitly-specified template arguments. This occurs when naming a declaration via a template-id (which will be stored in a TemplateIdRefExpr) that, following template argument deduction and (possibly) overload resolution, is replaced with a DeclRefExpr that refers to a template specialization but maintains the template arguments as written. llvm-svn: 84962
* Emit calls using the canonical prototype of the called function.John McCall2009-10-231-3/+5
| | | | llvm-svn: 84947
* Fixup the return type of functions.Mike Stump2009-10-233-5/+7
| | | | llvm-svn: 84922
* Complete code gen for '.*' binary expression forFariborz Jahanian2009-10-224-26/+43
| | | | | | both scalar and aggregates. llvm-svn: 84910
* When building types from declarators, instead of building two types (one forJohn McCall2009-10-221-1/+6
| | | | | | | | | | | | | | | | | | | | | the DeclaratorInfo, one for semantic analysis), just build a single type whose canonical type will reflect the semantic analysis (assuming the type is well-formed, of course). To make that work, make a few changes to the type system: * allow the nominal pointee type of a reference type to be a (possibly sugared) reference type. Also, preserve the original spelling of the reference type. Both of these can be ignored on canonical reference types. * Remove ObjCProtocolListType and preserve the associated source information on the various ObjC TypeLocs. Preserve the spelling of protocol lists except in the canonical form. * Preserve some level of source type structure on parameter types, but canonicalize on the canonical function type. This is still a WIP. Drops code size, makes strides towards accurate source location representation, slight (~1.7%) progression on Cocoa.h because of complexity drop. llvm-svn: 84907
* Canonicality is a property of qualified types, not unqualified types.John McCall2009-10-221-1/+1
| | | | llvm-svn: 84891
* Remove some misguided code.Mike Stump2009-10-221-8/+2
| | | | llvm-svn: 84823
* Extend out the block descriptor structure for debug information withMike Stump2009-10-221-3/+6
| | | | | | the copy/dispose helpers as appropriate. llvm-svn: 84817
* Code gen for '.*' binary expressions - WIP.Fariborz Jahanian2009-10-211-0/+27
| | | | llvm-svn: 84800
* Turn on the preallocation of all BlockDeclRefExprs.Mike Stump2009-10-211-3/+1
| | | | llvm-svn: 84789
* Refine collection of BlockDeclRefExprs. WIP.Mike Stump2009-10-211-9/+16
| | | | llvm-svn: 84787
* Expand on code gen. for pointer to data members so it worksFariborz Jahanian2009-10-211-3/+4
| | | | | | for base classe members as well. Test case enhanced for this. llvm-svn: 84780
* Code gen for pointer-to-datamember - WIP.Fariborz Jahanian2009-10-212-0/+22
| | | | llvm-svn: 84771
* Fix typo.Mike Stump2009-10-211-2/+1
| | | | llvm-svn: 84770
* Refactor.Mike Stump2009-10-212-14/+4
| | | | llvm-svn: 84769
* Add AuroraUX ABI Triple in correct place.Edward O'Callaghan2009-10-211-1/+2
| | | | llvm-svn: 84758
* Prep work to always preallocate BlockDeclRefExprs so that we canMike Stump2009-10-213-48/+77
| | | | | | | generate the debug information for the first parameter to the block invoke functions. WIP. llvm-svn: 84737
* Fix 80-col violation.Mike Stump2009-10-211-2/+2
| | | | llvm-svn: 84719
* Code-gen for CXXZeroInitValueExpr AST passedFariborz Jahanian2009-10-203-5/+16
| | | | | | as argument to a function call. Removes a FIXME. llvm-svn: 84694
* Fix the 32-bit ABI to return structures with non-trivial copy ctors or dtors ↵Anders Carlsson2009-10-201-3/+9
| | | | | | indirectly. llvm-svn: 84686
* For now, we need to have the llvm type of the block pointer remain asMike Stump2009-10-201-1/+4
| | | | | | it was. Fixes codegen bug introduced yesterday. llvm-svn: 84668
* Do not eagerly cache DITypes because it allows real struct type to be ↵Devang Patel2009-10-201-31/+58
| | | | | | shadowed by forward declared struct type. llvm-svn: 84659
* Encode global variable name in debug info.Devang Patel2009-10-201-2/+2
| | | | llvm-svn: 84653
* Add missing semi-colon.Daniel Dunbar2009-10-201-1/+1
| | | | llvm-svn: 84650
* Bring Darwin into the switch-case statement instead of its own if for ↵Edward O'Callaghan2009-10-201-3/+2
| | | | | | readability. llvm-svn: 84646
* Refine the type of the first parameter to block invoke functions.Mike Stump2009-10-201-2/+22
| | | | | | | WIP. I have yet to find the magic incantation to get the structure type to be defined. If someone has a pointer, love to hear it. llvm-svn: 84590
* Handle emitting the assignment operator when the lhs is a reference. Fixes ↵Anders Carlsson2009-10-191-0/+10
| | | | | | PR5227. llvm-svn: 84518
* Avoid std::string concatenation.Daniel Dunbar2009-10-191-16/+10
| | | | llvm-svn: 84458
* Twinify CodeGenFunction::CreateTempAllocaDaniel Dunbar2009-10-193-6/+6
| | | | llvm-svn: 84456
* When binding a reference to a temporary, it's important that other ↵Anders Carlsson2009-10-181-16/+22
| | | | | | temporaries created as on the RHS are destroyed before emitting the dtor for the temporary. llvm-svn: 84451
* PR5218: Replace IdentifierInfo::getName with StringRef version, now that clientsDaniel Dunbar2009-10-182-6/+6
| | | | | | are updated. llvm-svn: 84447
* Twinify CGObjCMac, this simplifies the code and should reduce std::stringDaniel Dunbar2009-10-181-97/+86
| | | | | | trashing. llvm-svn: 84439
* Use CK_BitCast for member function pointer casts. Fixes PR5138.Anders Carlsson2009-10-182-1/+11
| | | | llvm-svn: 84438
* Move misc clients to IdentifierInfo StringRef API.Daniel Dunbar2009-10-181-4/+1
| | | | | | | | | - strcmp -> == - OS.write(II->getName() ...) -> OS << II->getNameStr() - Avoid std::string concatenation - Use getNameStr().str() when an std::string is really needed. llvm-svn: 84437
* Move clients to use IdentifierInfo::getNameStart() instead of getName()Daniel Dunbar2009-10-181-4/+4
| | | | llvm-svn: 84436
* Support IRgen of OpenCL vector initializers, ensuring the resulting IR is in aNate Begeman2009-10-181-42/+169
| | | | | | | | form that LLVM code generators can turn into efficient code. For example, int4 a, b, c; a = (int4)(b.yzw, a.x) llvm-svn: 84434
* Add some more cast kinds.Anders Carlsson2009-10-181-1/+10
| | | | llvm-svn: 84423
* add support for codegening CXXZeroInitValueExprsNuno Lopes2009-10-181-0/+6
| | | | llvm-svn: 84418
* Suppress -Asserts warning.Daniel Dunbar2009-10-171-0/+1
| | | | llvm-svn: 84329
* Fix PR5211: codegen shouldn't assume that the result of ||/&& is int Chris Lattner2009-10-171-10/+14
| | | | | | anymore. In C++ it is bool. llvm-svn: 84308
* Implement derived-to-base AST/code gen. There is aFariborz Jahanian2009-10-161-6/+13
| | | | | | | FIXME in CGCXX.cpp that I would like Anders to take a look at. llvm-svn: 84265
* ignore 'using' directive in CodeGenFunction::EmitDecl(). this fixes PR5085Nuno Lopes2009-10-161-0/+1
| | | | llvm-svn: 84255
* Builtin types are subsitutable if they are qualified. Fixes PR5196.Anders Carlsson2009-10-161-1/+1
| | | | llvm-svn: 84237
* Remove the ConstantArrayType subtypes. This information is preserved in theJohn McCall2009-10-161-2/+0
| | | | | | | | | | TypeLoc records for declarations; it should not be necessary to represent it directly in the type system. Please complain if you were using these classes and feel you can't replicate previous functionality using the TypeLoc API. llvm-svn: 84222
OpenPOWER on IntegriCloud