summaryrefslogtreecommitdiffstats
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
* Partial fix for <rdar://problem/6645157> [clang on Xcode; regression]: ↵Steve Naroff2009-03-042-3/+59
| | | | | | | | | | error: instance variable 'someField' is private. A recent regression caused by http://llvm.org/viewvc/llvm-project?rev=65912&view=rev. This commit isn't fully baked. Nevertheless, it should cause Xcode to compile again. Will speak with Fariborz offline. llvm-svn: 66045
* fixes suggested by Sebastian!Chris Lattner2009-03-041-2/+2
| | | | llvm-svn: 66044
* 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
* Some refactoring of recent code. No functionality change.Fariborz Jahanian2009-03-042-23/+15
| | | | llvm-svn: 66041
* Fix a corner case of message lookup looking for class methods.Fariborz Jahanian2009-03-043-4/+68
| | | | | | | If all else failed, find the message in class's root's list of instacne methods! llvm-svn: 66040
* Fix BuildVectorSDNode::isConstantSplat to handle one-element vectors.Bob Wilson2009-03-041-2/+2
| | | | | | | It is an error to call APInt::zext with a size that is equal to the value's current size, so use zextOrTrunc instead. llvm-svn: 66039
* Support "asm" renaming of external symbols.Daniel Dunbar2009-03-042-0/+14
| | | | | | - PR3698. llvm-svn: 66038
* Driver: Add ArgList implementation.Daniel Dunbar2009-03-042-2/+25
| | | | llvm-svn: 66037
* GRExprEngine::VisitCast: Just pass through function and block pointers.Ted Kremenek2009-03-041-0/+6
| | | | llvm-svn: 66036
* 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
* Finish up some fixes related to <rdar://problem/6497631> Message lookup is ↵Steve Naroff2009-03-048-18/+136
| | | | | | | | | sometimes different than gcc's. - Disallow casting 'super'. GCC allows this, however it doesn't make sense (super isn't an expression and the cast won't alter lookup/dispatch). - Tighten up lookup when messaging 'self'. llvm-svn: 66033
* .emacs file bits for automatically setting the llvm.org coding style. ↵Mike Stump2009-03-041-0/+24
| | | | | | Thanks Anton. llvm-svn: 66032
* Add __block codegen testcase. We introduce a temporary flag to enableMike Stump2009-03-042-1/+27
| | | | | | | codegen, until such time as codegen is complete enough to turn on with -fblocks. llvm-svn: 66031
* Add a restore folder, which shaves a dozen or so machineinstrs off oggenc. ↵Owen Anderson2009-03-042-7/+76
| | | | | | Update a testcase to check this. llvm-svn: 66029
* Driver: More Option implementation.Daniel Dunbar2009-03-047-49/+441
| | | | | | | | | | | - Add Options.def file, collects option information. - Actual option instantiation is handled lazily by OptTable to allow the driver to not need to instantiate all options. - cast<> support for Option, other minor tweaks. llvm-svn: 66028
* Check that the return type for function definitions is complete.Eli Friedman2009-03-043-0/+12
| | | | llvm-svn: 66027
* "Ghostify" embedded sentinels. This is a real win in all casesGabor Greif2009-03-043-9/+10
| | | | | | | | | because less bytes are allocated and subobject construction is gone. For reference how it works, see BasicBlock.h. Btw. it is very assuring to see that somebody has invented this ilist-embedded sentinel technique before me :-) llvm-svn: 66026
* make the token lexer allocate its temporary token buffers forChris Lattner2009-03-043-3/+15
| | | | | | | preexpanded macro arguments from the preprocessor's bump pointer. This reduces # mallocs from 12444 to 11792. llvm-svn: 66025
* Fix PR3666: isel calls to constant addresses.Evan Cheng2009-03-044-4/+18
| | | | llvm-svn: 66024
* Switch attributes to be allocated from the declcontext bump pointer just likeChris Lattner2009-03-045-60/+77
| | | | | | | decls. This reduces the number of calls to malloc on cocoa.h with pth and -disable-free from 15958 to 12444 times (down ~3500). llvm-svn: 66023
* Adjust indentation.Zhongxing Xu2009-03-041-1/+1
| | | | llvm-svn: 66022
* PR3686: make the legalizer handle bitcast from i80 to x86 long double.Eli Friedman2009-03-043-0/+20
| | | | llvm-svn: 66021
* add an a Attr::Destroy method and force clients to go through it. As part of Chris Lattner2009-03-043-17/+25
| | | | | | this, make DeclBase::Destroy destroy attributes instead of the DeclBase dtor. llvm-svn: 66020
* Make this test a bit more specific about the target so that it passes on Eli Friedman2009-03-041-1/+1
| | | | | | Linux. llvm-svn: 66019
* Minor cleanup for choose expressions: add a helper that returns the Eli Friedman2009-03-046-34/+24
| | | | | | chosen sub-expression, rather than just evaluating the condition. llvm-svn: 66018
* allocate MultiKeywordSelector's out of a bump pointer allocator instead of ↵Chris Lattner2009-03-042-11/+23
| | | | | | | | | | | | malloc. This has two advantages 1) no more leaking them, 2) fewer calls to malloc. This changes us from calling malloc 3685/1390/883/2974/1185 times respectively on 16/20/24/28/32 byte objects when parsing cocoa.h with pth and -disable-free to calling it 2816/1020/702/2903/1168 times each respectively. llvm-svn: 66017
* simplify Sema::AddInstanceMethodToGlobalPool, no functionality change.Chris Lattner2009-03-041-17/+15
| | | | llvm-svn: 66016
* 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
* fix infinite recursionChris Lattner2009-03-041-1/+1
| | | | llvm-svn: 66014
* make CaseStmt::getSourceRange() iterative for deeplyChris Lattner2009-03-041-5/+11
| | | | | | nested cases instead of recursive. llvm-svn: 66013
* Continuation of PR3687: fix more places to use the right type for Eli Friedman2009-03-042-6/+9
| | | | | | booleans. llvm-svn: 66012
* Change Parser::ParseCaseStatement to use an iterative approach to parsingChris Lattner2009-03-048-60/+128
| | | | | | | | | | | | | | | | | | multiple sequential case statements instead of doing it with recursion. This fixes a problem where we run out of stack space parsing 100K directly nested cases. There are a couple other problems that prevent this from being useful in practice (right now the example only parses correctly with -disable-free and doesn't work with -emit-llvm), but this is a start. I'm not including a testcase because it is large and uninteresting for regtesting. Sebastian, I would appreciate it if you could scrutinize the smart pointer gymnastics I do. llvm-svn: 66011
* 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-042-1/+13
| | | | | | first extend the integer to the correct width. llvm-svn: 66009
* Revert r66004 for now; it's causing a variety of test failures.Dan Gohman2009-03-045-317/+127
| | | | llvm-svn: 66008
* 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
* Rename test.Evan Cheng2009-03-041-0/+0
| | | | llvm-svn: 66006
* Added the notion of a "boundable region", which is a region that can have a ↵Ted Kremenek2009-03-044-7/+35
| | | | | | direct binding in the StoreManager. llvm-svn: 66005
* Teach the x86 backend to eliminate "test" instructions by using the EFLAGSDan Gohman2009-03-045-127/+317
| | | | | | result from add, sub, inc, and dec instructions in simple cases. llvm-svn: 66004
* Add some more FIXME's about bits we could pack better.Daniel Dunbar2009-03-041-0/+4
| | | | llvm-svn: 66003
* Woot, save 8 bytes in Decl on 64-bit by reordering fields. ThisDaniel Dunbar2009-03-041-5/+6
| | | | | | reduces allocated Decl size by ~8% on Cocoa.h (~700k). llvm-svn: 66002
* Revert unintended commmit.Dale Johannesen2009-03-041-5/+2
| | | | llvm-svn: 66001
* Skip ptr-to-ptr bitcasts when counting in another case.Dale Johannesen2009-03-041-4/+4
| | | | llvm-svn: 66000
* Always skip ptr-to-ptr bitcasts when counting,Dale Johannesen2009-03-042-7/+10
| | | | | | per Chris' suggestion. Slightly faster. llvm-svn: 65999
* Fix PR3701. 1. X86 target renamed eflags register to flags. This matches ↵Evan Cheng2009-03-043-26/+72
| | | | | | what llvm-gcc generates so codegen knows flags register is being clobbered by inline asm. 2. BURR scheduler should also check if inline asm nodes can clobber "live" physical registers. Previously it was only checking target nodes with implicit defs. llvm-svn: 65996
OpenPOWER on IntegriCloud