summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Be sure to never create two functions with the same name, instead arrange toMike Stump2009-03-092-45/+52
| | | | | | reuse the prior one. llvm-svn: 66408
* Code refactoring. No functional change.Fariborz Jahanian2009-03-081-25/+17
| | | | llvm-svn: 66391
* Make mangling work with anonymous tag types. Doug, please reviewAnders Carlsson2009-03-071-5/+19
| | | | llvm-svn: 66353
* Mangle Objective-C interfaces correctly (where correctly refers to what gcc ↵Anders Carlsson2009-03-071-0/+9
| | | | | | does) llvm-svn: 66349
* 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
* correct bitfield ivar offset in ivar meta-data.Fariborz Jahanian2009-03-071-12/+27
| | | | | | (objc abi specific). llvm-svn: 66345
* Mangle param names with .arg. only.Sanjiv Gupta2009-03-071-1/+1
| | | | llvm-svn: 66343
* Fixup our uses of various linkages to match how llvm now works. I think ↵Mike Stump2009-03-072-11/+13
| | | | | | | | they are all correct, but an extra set of ObjC eyes would be good. llvm-svn: 66342
* If someone could figure out this is necessary, that would be good.Mike Stump2009-03-071-1/+3
| | | | llvm-svn: 66341
* Fix typo, need parens.Mike Stump2009-03-071-2/+2
| | | | llvm-svn: 66337
* Some struct/class mismatch fixes, to silence MSVC warnings.Sebastian Redl2009-03-071-1/+1
| | | | llvm-svn: 66335
* Remove last FIXME for block literal codegen that I know about and turnMike Stump2009-03-071-2/+1
| | | | | | | | on all the new code by default. There is still plenty of testing to do and issues I'm sure need resolving. Let me know if you find anything. llvm-svn: 66323
* Remove some FIXMEs for block literals that should be close to working.Mike Stump2009-03-072-10/+8
| | | | llvm-svn: 66322
* Back out the patch in r66302, and re-fix it properly. We assume for Eli Friedman2009-03-072-3/+6
| | | | | | | | performance that the type of the returned llvm::Value for an expression matches the converted type of the clang::Expr; mismatches will cause all sorts of errors and silent miscompilations. llvm-svn: 66321
* codegen support for dispose helpers for block literals.Mike Stump2009-03-071-1/+23
| | | | llvm-svn: 66320
* Codegen support for copy helpers for block literals.Mike Stump2009-03-075-51/+127
| | | | llvm-svn: 66319
* Fixed a bug where generation of read-barriers causedFariborz Jahanian2009-03-061-0/+3
| | | | | | crash in ir-gen. llvm-svn: 66302
* (LLVM svn up) Generalize RuntimeFunctions to RuntimeGlobals and addDaniel Dunbar2009-03-062-25/+44
| | | | | | | | | | | | | | 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
* Pass the type of the block literal around to make required temporal ordering ↵Mike Stump2009-03-063-17/+22
| | | | | | of code clearer. llvm-svn: 66284
* x86_64 ABI: Handle long double in union when upper eightbyte resultsDaniel Dunbar2009-03-061-8/+16
| | | | | | | in a lone X87 class. - PR3735. llvm-svn: 66277
* IRgen support for weak_import.Daniel Dunbar2009-03-061-4/+9
| | | | | | - <rdar://problem/6652110> clang should support weak_import llvm-svn: 66270
* Complete __Block_byref_id_object_copy cogegen for block literals.Mike Stump2009-03-063-10/+55
| | | | llvm-svn: 66257
* Finish off __Block_byref_id_object_dispose codegen for block literals.Mike Stump2009-03-063-17/+32
| | | | llvm-svn: 66247
* Remove extra arg.Mike Stump2009-03-063-4/+4
| | | | llvm-svn: 66243
* More codegen support for the copy/dispose helpers for block literals.Mike Stump2009-03-063-14/+98
| | | | llvm-svn: 66241
* Framework for codegen for copy/dispose helpers.Mike Stump2009-03-064-21/+94
| | | | llvm-svn: 66231
* Cleanup EH a bit given changes to ObjCCatchStmt.Daniel Dunbar2009-03-061-13/+15
| | | | | | - No functionality change. llvm-svn: 66218
* Don't mangle names of local variables.Daniel Dunbar2009-03-052-3/+5
| | | | | | | | - 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
* More function stop for objc2's ivar layout bit map.Fariborz Jahanian2009-03-051-0/+50
| | | | llvm-svn: 66209
* Adds a template for a function for objc2's gc's ivar layoutFariborz Jahanian2009-03-051-4/+16
| | | | | | bitmap. llvm-svn: 66175
* prep work for copy/destroy helpers for block literals.Mike Stump2009-03-054-51/+77
| | | | llvm-svn: 66159
* if we die in IR generation of a compound statement, include Chris Lattner2009-03-051-1/+4
| | | | | | | | | | | | | | it in the stack trace, giving us stuff like: Stack dump: 0. Program arguments: clang t.c -emit-llvm 1. <eof> parser at end of file 2. t.c:1:5: LLVM IR generation of declaration 'a' 3. t.c:1:9: LLVM IR generation of compound statement ('{}') 4. t.c:2:3: LLVM IR generation of compound statement ('{}') Abort llvm-svn: 66154
* 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
* Initial implementation of CodeGen for incomplete function types; fixes Eli Friedman2009-03-052-4/+55
| | | | | | | PR3688. (The FIXME is a rather big performance issue, but it only affects code using this feature, which is relatively rare.) llvm-svn: 66128
* Avoid dispose calls when only doing gc.Mike Stump2009-03-051-1/+1
| | | | llvm-svn: 66126
* Set isMain bit for MainFile.Devang Patel2009-03-051-1/+3
| | | | llvm-svn: 66120
* Add codegen support for __block variables to call _Block_object_dispose as ↵Mike Stump2009-03-054-28/+53
| | | | | | necessary. llvm-svn: 66117
* Fixup __block codegen in nested block literals.Mike Stump2009-03-041-15/+28
| | | | llvm-svn: 66091
* Move more blocks CodeGenFunction code up and out.Mike Stump2009-03-042-23/+23
| | | | llvm-svn: 66049
* Move some of the CodeGenFunction blocks code up and out. NoMike Stump2009-03-044-7/+12
| | | | | | functionality change. llvm-svn: 66048
* Move more of the blocks code up and out.Mike Stump2009-03-044-10/+16
| | | | llvm-svn: 66046
* Refactor code. Devang Patel2009-03-041-12/+24
| | | | llvm-svn: 66043
* Move more of blocks codegen out of CodeGenModule and into theMike Stump2009-03-045-38/+73
| | | | | | | | | 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
* Start the migration of more of the blocks code out of sight for mostMike Stump2009-03-041-0/+54
| | | | | | people. De-duplicates BLOCK_NEEDS_FREE and friends. llvm-svn: 66035
* Start the migration of more of the blocks code out of sight for mostMike Stump2009-03-042-32/+4
| | | | | | people. De-duplicates BLOCK_NEEDS_FREE and friends. llvm-svn: 66034
* Add __block codegen testcase. We introduce a temporary flag to enableMike Stump2009-03-041-1/+13
| | | | | | | codegen, until such time as codegen is complete enough to turn on with -fblocks. llvm-svn: 66031
* Minor cleanup for choose expressions: add a helper that returns the Eli Friedman2009-03-043-10/+3
| | | | | | chosen sub-expression, rather than just evaluating the condition. llvm-svn: 66018
* add a special case for codegen that improves the case where we haveChris Lattner2009-03-041-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | multiple sequential cases to a) not create tons of fall-through basic blocks and b) not recurse deeply. This fixes codegen on 100K deep cases, and improves codegen on moderate cases from this: switch i32 %tmp, label %sw.epilog [ i32 1000, label %sw.bb i32 1001, label %sw.bb1 i32 1002, label %sw.bb2 i32 1003, label %sw.bb3 i32 1004, label %sw.bb4 ... sw.bb: ; preds = %entry br label %sw.bb1 sw.bb1: ; preds = %entry, %sw.bb br label %sw.bb2 sw.bb2: ; preds = %entry, %sw.bb1 br label %sw.bb3 sw.bb3: ; preds = %entry, %sw.bb2 br label %sw.bb4 to: switch i32 %tmp, label %sw.epilog [ i32 1000, label %sw.bb i32 1001, label %sw.bb i32 1002, label %sw.bb i32 1003, label %sw.bb i32 1004, label %sw.bb sw.bb: ;; many preds llvm-svn: 66015
* Continuation of PR3687: fix more places to use the right type for Eli Friedman2009-03-041-5/+5
| | | | | | booleans. llvm-svn: 66012
OpenPOWER on IntegriCloud