summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a subtle bug where the cleanup scope entries had a dangling block referenceDaniel Dunbar2009-04-012-14/+32
| | | | | | | | | - <rdar://problem/6732143> Crash when generating @synchronize for zero-cost exception - Thanks to Anders for helping track down the problem. llvm-svn: 68186
* fix the two xfails I added with a previous patch by making ObjC interfaceChris Lattner2009-04-013-2/+41
| | | | | | | types get completed when their definition is seen if previously laid out by the code generator. llvm-svn: 68177
* move trivial forwarding function inline.Chris Lattner2009-04-012-7/+4
| | | | llvm-svn: 68176
* tidy some code.Chris Lattner2009-04-012-11/+9
| | | | llvm-svn: 68174
* Fix block comparisons. Radar 6732116.Mike Stump2009-04-011-7/+8
| | | | llvm-svn: 68171
* Implement code generation of namespaces and add mangling tests.Anders Carlsson2009-04-012-2/+9
| | | | llvm-svn: 68170
* Fix a bug (that I thought I had fixed already) where mangling a prefix could ↵Anders Carlsson2009-04-011-2/+2
| | | | | | get us into an infinite loop llvm-svn: 68168
* Fix a mangling bug where functions with no arguments weren't getting the 'v' ↵Anders Carlsson2009-04-011-0/+5
| | | | | | parameter specifier. llvm-svn: 68162
* Add Target hooks for IRgen of [cf]string literals.Daniel Dunbar2009-03-311-18/+29
| | | | | | | | | | | - Notably, set section on cfstring literal string data (for now, this is done everywhere because it matches what we were already doing for the CFString data itself) - <rdar://problem/6599098> [irgen] linker requires objc string data to go into cstring llvm-svn: 68160
* Change UsedArray to be a vector of WeakVH to fix a dangling pointer problem ↵Chris Lattner2009-03-312-10/+15
| | | | | | | | that occurs when attribute(used) and asm renaming are used together. llvm-svn: 68155
* remove some obsolete comments, use an AssertingVH.Chris Lattner2009-03-313-20/+7
| | | | llvm-svn: 68151
* x86_32 Darwin ABI: Treat empty unions like empty structures.Daniel Dunbar2009-03-311-5/+5
| | | | | | - Current return-arguments-32 status: 15/1000 failures llvm-svn: 68132
* Patch to fix proptocol reference ir-gen for GNU runtime.Fariborz Jahanian2009-03-311-2/+39
| | | | | | Patch by David Chisnal. llvm-svn: 68125
* ir-gen support for nonfragile abi's synthesized ivars.Fariborz Jahanian2009-03-311-4/+17
| | | | llvm-svn: 68122
* More toward nonfragile abi's synthesized ivars.Fariborz Jahanian2009-03-311-0/+8
| | | | llvm-svn: 68115
* Some "prep" work for handling ObjC @-string constants that contain UTF-8. No ↵Steve Naroff2009-03-315-12/+17
| | | | | | | | functionality change. Changed GenerateConstantString() to take an ObjCStringLiteral (instead of a std::string). While this isn't strictly necessary, it seems cleaner and allows us to cache to "containsNonAscii" if necessary (to avoid checking in both Sema and CodeGen). llvm-svn: 68114
* remove a dead prototypeChris Lattner2009-03-312-7/+6
| | | | llvm-svn: 68105
* remove the warning. We don't control what users do, and this codeChris Lattner2009-03-311-6/+0
| | | | | | | is run for perfectly reasonable things like NSString* because type layout is recursive. llvm-svn: 68104
* do not *copy* objc interface types, just use their reference.Chris Lattner2009-03-311-12/+8
| | | | llvm-svn: 68102
* fill in temporary smallvectors instead of vectors for performance.Chris Lattner2009-03-311-32/+29
| | | | | | Fix BuildAggrIvarLayout to not access vectors out of range. llvm-svn: 68101
* small cleanups.Chris Lattner2009-03-311-9/+7
| | | | llvm-svn: 68095
* Improve the representation of template names in the AST. ThisDouglas Gregor2009-03-302-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | representation handles the various ways in which one can name a template, including unqualified references ("vector"), qualified references ("std::vector"), and dependent template names ("MetaFun::template apply"). One immediate effect of this change is that the representation of nested-name-specifiers in type names for class template specializations (e.g., std::vector<int>) is more accurate. Rather than representing std::vector<int> as std::(vector<int>) we represent it as (std::vector)<int> which more closely follows the C++ grammar. Additionally, templates are no longer represented as declarations (DeclPtrTy) in Parse-Sema interactions. Instead, I've introduced a new OpaquePtr type (TemplateTy) that holds the representation of a TemplateName. This will simplify the handling of dependent template-names, once we get there. llvm-svn: 68074
* Code gen does not yet supports __asm__ on a variableFariborz Jahanian2009-03-301-0/+3
| | | | | | declaration. Reject it. llvm-svn: 68058
* Use CodeGenModule API for ObjC runtime function references.Fariborz Jahanian2009-03-301-14/+28
| | | | | | Patch by David Chisnall. llvm-svn: 68043
* Push DeclGroup much farther throughout the compiler. Now the variousChris Lattner2009-03-291-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | productions (except the already broken ObjC cases like @class X,Y;) in the parser that can produce more than one Decl return a DeclGroup instead of a Decl, etc. This allows elimination of the Decl::NextDeclarator field, and exposes various clients that should look at all decls in a group, but which were only looking at one (such as the dumper, printer, etc). These have been fixed. Still TODO: 1) there are some FIXME's in the code about potentially using DeclGroup for better location info. 2) ParseObjCAtDirectives should return a DeclGroup due to @class etc. 3) I'm not sure what is going on with StmtIterator.cpp, or if it can be radically simplified now. 4) I put a truly horrible hack in ParseTemplate.cpp. I plan to bring up #3/4 on the mailing list, but don't plan to tackle #1/2 in the short term. llvm-svn: 68002
* Initial implementation of ARM ABI. Mostly untested. Note that I'm not Eli Friedman2009-03-291-0/+88
| | | | | | | | really intending to take ownership of this; I wrote this mostly because I was curious about how the ARM ABI works. It should be a decent start, though. llvm-svn: 67969
* rename some methods.Chris Lattner2009-03-281-1/+1
| | | | llvm-svn: 67923
* change HandleTranslationUnit to take an ASTContext instead of TranslationUnitChris Lattner2009-03-281-1/+1
| | | | llvm-svn: 67910
* Trivial cleanup.Eli Friedman2009-03-281-2/+2
| | | | llvm-svn: 67899
* Move where block-related variables are initialized so that block Eli Friedman2009-03-282-10/+10
| | | | | | types don't get generated when blocks aren't used. llvm-svn: 67898
* Minor cleanup.Eli Friedman2009-03-281-11/+1
| | | | llvm-svn: 67896
* Misc small fixes/cleanups/comment changes.Eli Friedman2009-03-281-20/+28
| | | | llvm-svn: 67895
* Change compound assignment operators to keep track of both the promoted Eli Friedman2009-03-282-63/+18
| | | | | | | | | | | | | | | | | LHS type and the computation result type; this encodes information into the AST which is otherwise non-obvious. Fix Sema to always come up with the right answer for both of these types. Fix IRGen and the analyzer to account for these changes. This fixes PR2601. The approach is inspired by PR2601 comment 2. Note that this changes real *= complex in CodeGen from a silent miscompilation to an explicit error. I'm not really sure that the analyzer changes are correct, or how to test them... someone more familiar with the analyzer should check those changes. llvm-svn: 67889
* Do not emit debug information for variables while generating optimized code. ↵Devang Patel2009-03-272-0/+17
| | | | | | The llvm optimizer and code generator are not yet ready to support optimized code debugging. llvm-svn: 67876
* Finish off semantic analysis for regparm, and remove the warning. Also Eli Friedman2009-03-271-3/+0
| | | | | | remove a redundant error in CodeGen. llvm-svn: 67868
* Besides the warning, issue unsupported diagnostics in Fariborz Jahanian2009-03-271-0/+6
| | | | | | ir gen. No intended change in functionality. llvm-svn: 67857
* - Minor change to dump of ivar layout map.Fariborz Jahanian2009-03-261-1/+4
| | | | | | | | - Temporarily undef'ed __OBJC2__ in nonfragile objc abi mode as it was forcing ivar synthesis in a certain project which clang does not yet support. llvm-svn: 67766
* most of this is plumbing to get CompileOptions down into Chris Lattner2009-03-263-31/+25
| | | | | | | CodeGenModule. Once there, add a new NoCommon option to it and implement -fno-common. llvm-svn: 67735
* More for for objc2's ivar layout map (currentlyFariborz Jahanian2009-03-251-3/+22
| | | | | | is not in use). llvm-svn: 67713
* Remove -f__block as codegen for __block variables should be solid.Mike Stump2009-03-251-22/+0
| | | | llvm-svn: 67697
* Fixup codegen for block literals that bleed copy/dispose informationMike Stump2009-03-252-6/+12
| | | | | | from previous block literals. llvm-svn: 67696
* simplify some conditionals, don't copy LangOptions.Chris Lattner2009-03-251-11/+15
| | | | llvm-svn: 67674
* Encode language.Devang Patel2009-03-241-4/+15
| | | | llvm-svn: 67650
* Support member reference on ?: of struct type.Daniel Dunbar2009-03-242-0/+21
| | | | llvm-svn: 67603
* Fix the ABI convention for struct returns on x86 outside of Darwin.Eli Friedman2009-03-231-1/+9
| | | | llvm-svn: 67577
* Must allow for strong cast of floats as well (objc2 gc).Fariborz Jahanian2009-03-231-17/+50
| | | | llvm-svn: 67551
* Some minor fixes for complex IRGen.Eli Friedman2009-03-231-23/+16
| | | | llvm-svn: 67501
* Fix a subtle bug in CodeGen for the increment of a bitfield.Eli Friedman2009-03-231-5/+7
| | | | llvm-svn: 67499
* switch getBuiltinLibFunction to use the new GetOrCreateLLVMFunction Chris Lattner2009-03-222-36/+5
| | | | | | | | functionality, fixing a crash on the attached testcase. Eliminate the BuiltinFunctions cache, as it can contain dangling pointers. This fixes a bunch of valgrind errors on test/CodeGen/builtins.c llvm-svn: 67484
* emit aliases as the definitions fly by, don't bother deferring untilChris Lattner2009-03-222-82/+64
| | | | | | the end of the module. llvm-svn: 67482
OpenPOWER on IntegriCloud