summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Don't set nounwind on functions when in using the new Obj-C ABI.Daniel Dunbar2009-03-021-1/+1
| | | | llvm-svn: 65806
* simplify some code.Chris Lattner2009-03-011-9/+5
| | | | llvm-svn: 65782
* Initialize NSConcreteStackBlockAnders Carlsson2009-03-011-2/+2
| | | | llvm-svn: 65749
* Fix PR3612. We ensure that we add builtins to the GlobalDeclMap andMike Stump2009-02-271-3/+12
| | | | | | | | | we ensure that things added to the module can be found even when they are not in GlobalDeclMap. The later is for increased flexibility, should someone want to do something tricky like extern "Ada" in the same module. llvm-svn: 65657
* Minor cleanup: use getDeclAlignInBytes helper.Eli Friedman2009-02-271-11/+1
| | | | llvm-svn: 65611
* fix some sema problems with wide strings and hook up basic codegen for them.Chris Lattner2009-02-261-7/+5
| | | | llvm-svn: 65582
* first wave of fixes for @encode sema support. This is part of PR3648.Chris Lattner2009-02-241-8/+20
| | | | | | | The big difference here is that (like string literal) @encode has array type, not pointer type. llvm-svn: 65391
* Emit extern_weak when needed.Daniel Dunbar2009-02-211-5/+10
| | | | | | - PR3629. llvm-svn: 65203
* Initialize the Init variable to something reasonable when we emit an Eli Friedman2009-02-201-1/+4
| | | | | | error, so we don't crash. llvm-svn: 65099
* Add irgen support for the noinline attribute.Anders Carlsson2009-02-191-0/+3
| | | | llvm-svn: 65056
* Don't emit K&R unprototyped function definitions as varargs.Daniel Dunbar2009-02-191-13/+27
| | | | | | - <rdar://problem/6584606> clang/x86-64 - too many reg saves llvm-svn: 65032
* Emission of global variable initialializer was broken in rareDaniel Dunbar2009-02-191-1/+23
| | | | | | | | | | | situation where a tentative decl was emitted *after* the actual initialization. This occurs in some rare situations with static decls. - PR3613. - I'm not particularly happy with this fix, but I don't see a simpler or more elegant solution yet. llvm-svn: 65018
* Address Chris's comments regarding C++ name mangling.Douglas Gregor2009-02-181-10/+12
| | | | llvm-svn: 64984
* Add anti-FIXME.Daniel Dunbar2009-02-181-1/+4
| | | | llvm-svn: 64969
* Simplify.Daniel Dunbar2009-02-181-2/+1
| | | | llvm-svn: 64944
OpenPOWER on IntegriCloud