Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | make alias definition logic more similar to functions/globals. | Chris Lattner | 2009-03-22 | 1 | -12/+29 | |
| | | | | llvm-svn: 67481 | |||||
* | fix PR3200 by making alias emission use the new infrastructure. Fold | Chris Lattner | 2009-03-22 | 1 | -11/+17 | |
| | | | | | | some tests into the alias.c file. llvm-svn: 67479 | |||||
* | pull "runtime globals" into the same framework as other functions/global ↵ | Chris Lattner | 2009-03-22 | 1 | -108/+81 | |
| | | | | | | | | variables. No intended functionality change. llvm-svn: 67478 | |||||
* | fix a fixme: non-proto struct returning function definitions should be compiled | Chris Lattner | 2009-03-22 | 1 | -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 the | Chris Lattner | 2009-03-22 | 1 | -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 Jahanian | 2009-03-21 | 1 | -11/+3 | |
| | | | | | | category or protocol. llvm-svn: 67450 | |||||
* | now that all the decl reference and creation stuff is going through two | Chris Lattner | 2009-03-21 | 1 | -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 a | Chris Lattner | 2009-03-21 | 1 | -42/+60 | |
| | | | | | | function definition. llvm-svn: 67446 | |||||
* | simplify and cleanup global variable creation stuff to all go through one | Chris Lattner | 2009-03-21 | 1 | -67/+69 | |
| | | | | | | code path. llvm-svn: 67445 | |||||
* | simplify management of llvm::Function creation to all go through | Chris Lattner | 2009-03-21 | 1 | -52/+43 | |
| | | | | | | GetAddrOfFunction. This is simpler and more efficient. llvm-svn: 67444 | |||||
* | code cleanups, rename EmitForwardFunctionDefinition -> | Chris Lattner | 2009-03-21 | 1 | -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 Lattner | 2009-03-21 | 1 | -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 fixmes | Chris Lattner | 2009-03-21 | 1 | -10/+9 | |
| | | | | llvm-svn: 67441 | |||||
* | reduce redundant calls of getMangledName. | Chris Lattner | 2009-03-21 | 1 | -8/+10 | |
| | | | | llvm-svn: 67440 | |||||
* | simplify some more code. | Chris Lattner | 2009-03-21 | 1 | -27/+32 | |
| | | | | llvm-svn: 67439 | |||||
* | simplify and comment some code better. Make BindRuntimeGlobals | Chris Lattner | 2009-03-21 | 1 | -25/+30 | |
| | | | | | | more optimistic that it will work (optimizing for the common case). llvm-svn: 67438 | |||||
* | random code cleanups. | Chris Lattner | 2009-03-21 | 1 | -14/+12 | |
| | | | | llvm-svn: 67437 | |||||
* | remove obviously dead code: you can't bitcast a pointer to "Ty" (a function ↵ | Chris Lattner | 2009-03-21 | 1 | -5/+1 | |
| | | | | | | type). llvm-svn: 67436 | |||||
* | avoid making constant folding logic eliminate obviously dead bitcasts, ↵ | Chris Lattner | 2009-03-21 | 1 | -2/+7 | |
| | | | | | | | | speeding up PR3810 by ~2%. llvm-svn: 67434 | |||||
* | Add a fast path to CodeGenModule::getMangledName for almost all C functions, | Chris Lattner | 2009-03-21 | 1 | -2/+8 | |
| | | | | | | speeding up the testcase in PR3810 by 60%. llvm-svn: 67431 | |||||
* | IRgen support for alias of global variable. | Daniel Dunbar | 2009-03-19 | 1 | -11/+9 | |
| | | | | | | - PR3818. llvm-svn: 67297 | |||||
* | objc: Implemented variables declared in class interface | Fariborz Jahanian | 2009-03-18 | 1 | -5/+13 | |
| | | | | | | whose sema decl is at the translation unit. llvm-svn: 67249 | |||||
* | Adjust for linkage name change. | Duncan Sands | 2009-03-11 | 1 | -1/+1 | |
| | | | | llvm-svn: 66691 | |||||
* | Correct for change of this name in LLVM. | Duncan Sands | 2009-03-11 | 1 | -2/+2 | |
| | | | | llvm-svn: 66652 | |||||
* | Backout r66408, we don't want handling of globals to rely on the | Daniel Dunbar | 2009-03-09 | 1 | -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 to | Mike Stump | 2009-03-09 | 1 | -32/+36 | |
| | | | | | | reuse the prior one. llvm-svn: 66408 | |||||
* | Make constant emission for @encode use the common string emission code. | Eli Friedman | 2009-03-07 | 1 | -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 Stump | 2009-03-07 | 1 | -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 add | Daniel Dunbar | 2009-03-06 | 1 | -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 Dunbar | 2009-03-06 | 1 | -4/+9 | |
| | | | | | | - <rdar://problem/6652110> clang should support weak_import llvm-svn: 66270 | |||||
* | Don't mangle names of local variables. | Daniel Dunbar | 2009-03-05 | 1 | -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 Friedman | 2009-03-05 | 1 | -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 Stump | 2009-03-04 | 1 | -1/+1 | |
| | | | | llvm-svn: 66046 | |||||
* | Move more of blocks codegen out of CodeGenModule and into the | Mike Stump | 2009-03-04 | 1 | -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 Dunbar | 2009-03-04 | 1 | -0/+6 | |
| | | | | | | - PR3698. llvm-svn: 66038 | |||||
* | Don't set nounwind on functions when in using the new Obj-C ABI. | Daniel Dunbar | 2009-03-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 65806 | |||||
* | simplify some code. | Chris Lattner | 2009-03-01 | 1 | -9/+5 | |
| | | | | llvm-svn: 65782 | |||||
* | Initialize NSConcreteStackBlock | Anders Carlsson | 2009-03-01 | 1 | -2/+2 | |
| | | | | llvm-svn: 65749 | |||||
* | Fix PR3612. We ensure that we add builtins to the GlobalDeclMap and | Mike Stump | 2009-02-27 | 1 | -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 Friedman | 2009-02-27 | 1 | -11/+1 | |
| | | | | llvm-svn: 65611 | |||||
* | fix some sema problems with wide strings and hook up basic codegen for them. | Chris Lattner | 2009-02-26 | 1 | -7/+5 | |
| | | | | llvm-svn: 65582 | |||||
* | first wave of fixes for @encode sema support. This is part of PR3648. | Chris Lattner | 2009-02-24 | 1 | -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 Dunbar | 2009-02-21 | 1 | -5/+10 | |
| | | | | | | - PR3629. llvm-svn: 65203 | |||||
* | Initialize the Init variable to something reasonable when we emit an | Eli Friedman | 2009-02-20 | 1 | -1/+4 | |
| | | | | | | error, so we don't crash. llvm-svn: 65099 | |||||
* | Add irgen support for the noinline attribute. | Anders Carlsson | 2009-02-19 | 1 | -0/+3 | |
| | | | | llvm-svn: 65056 | |||||
* | Don't emit K&R unprototyped function definitions as varargs. | Daniel Dunbar | 2009-02-19 | 1 | -13/+27 | |
| | | | | | | - <rdar://problem/6584606> clang/x86-64 - too many reg saves llvm-svn: 65032 | |||||
* | Emission of global variable initialializer was broken in rare | Daniel Dunbar | 2009-02-19 | 1 | -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 Gregor | 2009-02-18 | 1 | -10/+12 | |
| | | | | llvm-svn: 64984 | |||||
* | Add anti-FIXME. | Daniel Dunbar | 2009-02-18 | 1 | -1/+4 | |
| | | | | llvm-svn: 64969 | |||||
* | Simplify. | Daniel Dunbar | 2009-02-18 | 1 | -2/+1 | |
| | | | | llvm-svn: 64944 |