summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Emit code for linkage specifications.Anders Carlsson2009-04-021-7/+15
| | | | llvm-svn: 68300
* CodeGenModule::GetAddrOfConstantCFString():Steve Naroff2009-04-011-5/+10
| | | | | | | | | | - Finish up support for converting UTF8->UTF16 to support ObjC @"string" constants. Remove warning from CheckObjCString. As the FIXME in the test case indicates, I still have a bug to work out (apparently with \u handling). llvm-svn: 68245
* Add ConvertUTF module from http://www.unicode.org/Public/PROGRAMS/CVTUTF.Steve Naroff2009-04-011-4/+19
| | | | | | | | | | #ifdef'd out the 5 conversion routines that we don't currently need. Still need a bit more work in GetAddrOfConstantCFString(). Added a FIXME to indicate this. Expect to remove the FIXME today... llvm-svn: 68208
* More "prep" work for handling UTF16 CFString.Steve Naroff2009-04-011-1/+5
| | | | | | Patch by Jean-Daniel Dupas. Thanks! llvm-svn: 68203
* fix the two xfails I added with a previous patch by making ObjC interfaceChris Lattner2009-04-011-2/+5
| | | | | | | 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-011-6/+0
| | | | llvm-svn: 68176
* Implement code generation of namespaces and add mangling tests.Anders Carlsson2009-04-011-1/+7
| | | | llvm-svn: 68170
* 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-311-9/+13
| | | | | | | | that occurs when attribute(used) and asm renaming are used together. llvm-svn: 68155
* remove some obsolete comments, use an AssertingVH.Chris Lattner2009-03-311-11/+0
| | | | llvm-svn: 68151
* 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
* most of this is plumbing to get CompileOptions down into Chris Lattner2009-03-261-6/+8
| | | | | | | CodeGenModule. Once there, add a new NoCommon option to it and implement -fno-common. llvm-svn: 67735
* switch getBuiltinLibFunction to use the new GetOrCreateLLVMFunction Chris Lattner2009-03-221-31/+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-221-76/+63
| | | | | | the end of the module. llvm-svn: 67482
* make alias definition logic more similar to functions/globals.Chris Lattner2009-03-221-12/+29
| | | | llvm-svn: 67481
* fix PR3200 by making alias emission use the new infrastructure. Fold Chris Lattner2009-03-221-11/+17
| | | | | | some tests into the alias.c file. llvm-svn: 67479
* pull "runtime globals" into the same framework as other functions/global ↵Chris Lattner2009-03-221-108/+81
| | | | | | | | variables. No intended functionality change. llvm-svn: 67478
* fix a fixme: non-proto struct returning function definitions should be compiledChris Lattner2009-03-221-4/+7
| | | | | | | | | to something like: define void @bar(%struct.foo* noalias sret %agg.result) nounwind { instead of: define void @bar(%struct.foo* noalias sret %agg.result, ...) nounwind { llvm-svn: 67475
* set function/global names with setName instead of passing the name into theChris Lattner2009-03-221-2/+4
| | | | | | | ctor function. This avoids creating a temporary std::string for the name, speeding up the testcase in PR3810 by 3.8% llvm-svn: 67457
* Issue error if variables are defined inside an objc class,Fariborz Jahanian2009-03-211-11/+3
| | | | | | category or protocol. llvm-svn: 67450
* now that all the decl reference and creation stuff is going through twoChris Lattner2009-03-211-34/+59
| | | | | | | very simple places, reimplement the deferred decl emission logic to not be O(N^2), fixing PR3810. llvm-svn: 67447
* fix a crash that could occur when a variable declaration became aChris Lattner2009-03-211-42/+60
| | | | | | function definition. llvm-svn: 67446
* simplify and cleanup global variable creation stuff to all go through oneChris Lattner2009-03-211-67/+69
| | | | | | code path. llvm-svn: 67445
* simplify management of llvm::Function creation to all go throughChris Lattner2009-03-211-52/+43
| | | | | | GetAddrOfFunction. This is simpler and more efficient. llvm-svn: 67444
* code cleanups, rename EmitForwardFunctionDefinition -> Chris Lattner2009-03-211-42/+43
| | | | | | | CreateFunctionPrototypeIR, though my next patch will eliminate it entirely. llvm-svn: 67443
* fix several problems with asm renaming, by pulling it into the mangling code:Chris Lattner2009-03-211-18/+0
| | | | | | | | 1. it wasn't applying to definitions, only declarations, e.g. int x __asm("foo") 2. multiple definitions were conflicting, they weren't getting merged. 3. the code was duplicated in several places. llvm-svn: 67442
* add some fixmesChris Lattner2009-03-211-10/+9
| | | | llvm-svn: 67441
* reduce redundant calls of getMangledName.Chris Lattner2009-03-211-8/+10
| | | | llvm-svn: 67440
* simplify some more code.Chris Lattner2009-03-211-27/+32
| | | | llvm-svn: 67439
* simplify and comment some code better. Make BindRuntimeGlobalsChris Lattner2009-03-211-25/+30
| | | | | | more optimistic that it will work (optimizing for the common case). llvm-svn: 67438
* random code cleanups.Chris Lattner2009-03-211-14/+12
| | | | llvm-svn: 67437
* remove obviously dead code: you can't bitcast a pointer to "Ty" (a function ↵Chris Lattner2009-03-211-5/+1
| | | | | | type). llvm-svn: 67436
* avoid making constant folding logic eliminate obviously dead bitcasts, ↵Chris Lattner2009-03-211-2/+7
| | | | | | | | speeding up PR3810 by ~2%. llvm-svn: 67434
* Add a fast path to CodeGenModule::getMangledName for almost all C functions,Chris Lattner2009-03-211-2/+8
| | | | | | speeding up the testcase in PR3810 by 60%. llvm-svn: 67431
* IRgen support for alias of global variable.Daniel Dunbar2009-03-191-11/+9
| | | | | | - PR3818. llvm-svn: 67297
* objc: Implemented variables declared in class interface Fariborz Jahanian2009-03-181-5/+13
| | | | | | whose sema decl is at the translation unit. llvm-svn: 67249
* Adjust for linkage name change.Duncan Sands2009-03-111-1/+1
| | | | llvm-svn: 66691
* Correct for change of this name in LLVM.Duncan Sands2009-03-111-2/+2
| | | | llvm-svn: 66652
* Backout r66408, we don't want handling of globals to rely on theDaniel Dunbar2009-03-091-36/+32
| | | | | | | module symbol table. The root problem inspiring this was fixed in r66316 (and again in r66506). llvm-svn: 66512
* Be sure to never create two functions with the same name, instead arrange toMike Stump2009-03-091-32/+36
| | | | | | reuse the prior one. llvm-svn: 66408
* Make constant emission for @encode use the common string emission code. Eli Friedman2009-03-071-6/+2
| | | | | | | This is a bit cleaner, and also "fixes" bad code that compares the addresses of the string constants. llvm-svn: 66346
* Fixup our uses of various linkages to match how llvm now works. I think ↵Mike Stump2009-03-071-5/+5
| | | | | | | | they are all correct, but an extra set of ObjC eyes would be good. llvm-svn: 66342
* (LLVM svn up) Generalize RuntimeFunctions to RuntimeGlobals and addDaniel Dunbar2009-03-061-20/+34
| | | | | | | | | | | | | | CodeGenModule::CreateRuntimeVariable. - No real functionality change; although we now assert on silly things like: -- int objc_exception_throw; void f0() { @throw(@"A"); } -- instead of accepting it. llvm-svn: 66292
* IRgen support for weak_import.Daniel Dunbar2009-03-061-4/+9
| | | | | | - <rdar://problem/6652110> clang should support weak_import llvm-svn: 66270
* Don't mangle names of local variables.Daniel Dunbar2009-03-051-1/+3
| | | | | | | | - For one thing, this adds unneeded overhead; for another, this routine can be used to emit unnamed decls which we shouldn't try to mangle. llvm-svn: 66212
* Make IRGen compatible with declaring a function with incomplete Eli Friedman2009-03-051-2/+13
| | | | | | | return/argument types. (The generated IR isn't ideal, but we can't really do better in general.) llvm-svn: 66132
* Move more of the blocks code up and out.Mike Stump2009-03-041-1/+1
| | | | llvm-svn: 66046
* Move more of blocks codegen out of CodeGenModule and into theMike Stump2009-03-041-6/+3
| | | | | | | | | BlockModule. No functionality change. This should help people that don't want to know anything about blocks not be confused by the overloaded use of the term block or nor want to see all the blocks goop. llvm-svn: 66042
* Support "asm" renaming of external symbols.Daniel Dunbar2009-03-041-0/+6
| | | | | | - PR3698. llvm-svn: 66038
OpenPOWER on IntegriCloud