summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Comment fix: change a question to an answer.Eli Friedman2009-03-041-5/+3
| | | | llvm-svn: 66010
* Attempt to fix PR3709: when converting from an integer to a pointer, Eli Friedman2009-03-041-1/+8
| | | | | | first extend the integer to the correct width. llvm-svn: 66009
* Improved ABI compliance for __block variables. No testcases yet as weMike Stump2009-03-045-65/+264
| | | | | | | still give an unsupported error for them due to the fact this is a work in progress. llvm-svn: 66007
* Fix <rdar://problem/6640991> Exception handling executes wrong clause ↵Steve Naroff2009-03-031-19/+17
| | | | | | | | | | | (Daniel, please verify). Also necessary to fix: <rdar://problem/6632061> [sema] non object types should not be allowed in @catch statements <rdar://problem/6252237> [sema] qualified id should be disallowed in @catch statements llvm-svn: 65964
* Fixed an ir-gen bug in syntheszing a getter functionFariborz Jahanian2009-03-031-3/+7
| | | | | | | with property type which does not match its ivar and in -fobjc-gc-only mode! llvm-svn: 65955
* Return 0 if the ConstExprEmitter can't handle an expression.Anders Carlsson2009-03-031-3/+1
| | | | llvm-svn: 65951
* Fix for PR3687: use the memory representation for booleans when a Eli Friedman2009-03-032-5/+13
| | | | | | | sub-type describes a memory location, like the pointee type of a pointer or the element type of an array. llvm-svn: 65925
* inline asm calls should be nounwind. Chris, please review.Anders Carlsson2009-03-021-1/+4
| | | | llvm-svn: 65866
* Enable Objective-C interface debug info.Devang Patel2009-03-021-1/+2
| | | | llvm-svn: 65850
* Avoid crash when child iterator gives null result.Daniel Dunbar2009-03-021-1/+2
| | | | llvm-svn: 65812
* First cut at zero-cost EH support.Daniel Dunbar2009-03-021-72/+210
| | | | | | | | | | | - Still manually generates the EH code; the parts related to cleanup need to be integrated into the cleanup stack (for proper interaction with VLAs, etc.). - Some differences vs gcc in corner cases; I believe our behavior is correct but need to verify/file bugs vs gcc. llvm-svn: 65809
* Make sure to invoke (not call) to objc_exception_throw if necessary.Daniel Dunbar2009-03-021-2/+11
| | | | llvm-svn: 65808
* Fix completely broken thinko in GetClassGlobal.Daniel Dunbar2009-03-021-1/+1
| | | | llvm-svn: 65807
* Don't set nounwind on functions when in using the new Obj-C ABI.Daniel Dunbar2009-03-021-1/+1
| | | | llvm-svn: 65806
* Cleanup handling of function attributes in calls.Daniel Dunbar2009-03-021-35/+27
| | | | | | - No intended functionality change. llvm-svn: 65805
* Push checking down, also, give the user a hit as to which part of theMike Stump2009-03-022-39/+11
| | | | | | | block literal is causing the problem, instead of the vague reference to the entire block literal. llvm-svn: 65798
* Add BLOCK_HAS_DESCRIPTOR to global blocks.Anders Carlsson2009-03-011-1/+2
| | | | llvm-svn: 65788
* Be sure to mark blocks with no imports as being global.Mike Stump2009-03-011-0/+4
| | | | llvm-svn: 65784
* simplify some code.Chris Lattner2009-03-011-9/+5
| | | | llvm-svn: 65782
* Obj-C non fragile ABI: Use GetClassGlobal in one more instance I missed.Daniel Dunbar2009-03-011-12/+1
| | | | llvm-svn: 65762
* Obj-C non fragile ABI: Add GetInterfaceEHType for getting the Obj-CDaniel Dunbar2009-03-011-3/+73
| | | | | | | exception typeinfo metadata, and a few other EH related types/functions. - No functionality change. llvm-svn: 65761
* NeXT: Unify code for creating a class global.Daniel Dunbar2009-03-011-85/+27
| | | | | | - No functionality change. llvm-svn: 65760
* ObjCAtCatchStmt's ParamStmt is always a DeclStmt.Daniel Dunbar2009-03-011-2/+1
| | | | llvm-svn: 65759
* Remove debugging code.Anders Carlsson2009-03-011-2/+0
| | | | llvm-svn: 65753
* Emit errors about unsupported blocks features.Anders Carlsson2009-03-011-0/+41
| | | | llvm-svn: 65751
* Initialize NSConcreteStackBlockAnders Carlsson2009-03-011-2/+2
| | | | llvm-svn: 65749
* Do some blocks cleanup and simplification. Fix a crash, and add a test case.Anders Carlsson2009-03-013-16/+48
| | | | llvm-svn: 65746
* Obscure code gen bug related to sending Fariborz Jahanian2009-02-284-7/+40
| | | | | | | message to 'super' in a class method declared in cateogy (darwin specific). llvm-svn: 65709
* improve compatibility with the VC++'08 C++ compiler. Patch byChris Lattner2009-02-282-7/+7
| | | | | | Niklas Larsson! llvm-svn: 65706
* brain thinking memcpy, fingers thinking memset :)Chris Lattner2009-02-281-2/+2
| | | | llvm-svn: 65701
* after going around in circles a few times, finally cave and emit structureChris Lattner2009-02-281-2/+11
| | | | | | | | copies with memcpy instead of memmove. This matches what GCC does and if it causes a problem with a particular libc we can always fix it with a target hook. llvm-svn: 65699
* First cut CodeGen support for __block variables.Mike Stump2009-02-285-76/+129
| | | | llvm-svn: 65688
* Eliminate CXXRecordTypeDouglas Gregor2009-02-282-2/+0
| | | | llvm-svn: 65671
* Alignment of pointers in __objc_classlist must be on theirFariborz Jahanian2009-02-281-0/+2
| | | | | | | natural alignment. Otherwise, the excess hole confuses the objc2 runtime (this is darwin specific). llvm-svn: 65666
* Fix enumeration in switch warnings. No behavior change.Eli Friedman2009-02-271-0/+6
| | | | llvm-svn: 65659
* Fix PR3612. We ensure that we add builtins to the GlobalDeclMap andMike Stump2009-02-272-5/+14
| | | | | | | | | 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
* Change the AST generated for offsetof a bit so that it looks like a Eli Friedman2009-02-271-40/+2
| | | | | | | | normal expression, and change Evaluate and IRGen to evaluate it like a normal expression. This simplifies the code significantly, and fixes PR3396. llvm-svn: 65622
* Change the way clang generates union types a bit so it plays well Eli Friedman2009-02-271-1/+6
| | | | | | with the LLVM C backend. llvm-svn: 65615
OpenPOWER on IntegriCloud