summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* - Generate error for protocol qualifiers on 'Class'.Steve Naroff2009-02-234-7/+19
| | | | | | - Generate error for protocol qualifiers on non-ObjC types. llvm-svn: 65333
* Revert http://llvm.org/viewvc/llvm-project?view=rev&revision=65244.Steve Naroff2009-02-239-76/+4
| | | | | | Remove support for "Class<P>". Will be making this an error. llvm-svn: 65332
* Add copy assignment operator, caught by doug.Chris Lattner2009-02-231-0/+9
| | | | llvm-svn: 65331
* Add more boilerplate logic to more accurately reason about autorelease pools.Ted Kremenek2009-02-231-4/+52
| | | | | | | This doesn't change the current functionality, but better codifies the autorelease pool stack itself. llvm-svn: 65328
* Correctly implement ImmutableMap::getMaxElement() by getting the actual ↵Ted Kremenek2009-02-231-1/+1
| | | | | | <key, value> pair. llvm-svn: 65327
* Add ImmutableMap::getMaxElement(), a method that returns the <key,value> ↵Ted Kremenek2009-02-232-0/+16
| | | | | | pair in a ImmutableMap that has the highest ranked key. llvm-svn: 65326
* Add low level support for generating invoke instead of calls.Daniel Dunbar2009-02-233-16/+46
| | | | | | - No functionality change. llvm-svn: 65325
* LoopDeletion needs to inform ScalarEvolution when a loop is deleted,Dan Gohman2009-02-231-1/+4
| | | | | | | | so that ScalarEvolution doesn't hang onto a dangling Loop*, which could be a problem if another Loop happens to get allocated at the same address. llvm-svn: 65323
* Fix 80 col. violations.Ted Kremenek2009-02-231-2/+4
| | | | llvm-svn: 65322
* Per Chris L.'s suggestion, use getAsFunctionType() instead of ↵Ted Kremenek2009-02-231-5/+7
| | | | | | getDesguaredType(). Constify some pointers along the way. llvm-svn: 65321
* Use the -stack-alignment option instead of using a target tripleDan Gohman2009-02-231-4/+2
| | | | | | for avoiding dynamic stack realignment. llvm-svn: 65319
* IndVarSimplify preserves ScalarEvolution. In theDan Gohman2009-02-231-0/+1
| | | | | | | -std-compile-opts sequence, this avoids the need for ScalarEvolution to be rerun before LoopDeletion. llvm-svn: 65318
* Remove isSuperExpr(), which ignores any casts on 'super'.Steve Naroff2009-02-231-22/+6
| | | | | | | I don't think casting super makes any sense (since it won't effect method lookup). Will discuss with other offline and decide what to do. llvm-svn: 65317
* Add test case for checkin @r65314.Zhou Sheng2009-02-231-0/+41
| | | | llvm-svn: 65315
* Should reset DBI_Prev if DBI_Next == 0.Zhou Sheng2009-02-231-0/+2
| | | | llvm-svn: 65314
* Only v1i16 (i.e. _m64) is returned via RAX / RDX.Evan Cheng2009-02-234-20/+60
| | | | llvm-svn: 65313
* Make this test use darwin targe triple, to avoid stack traffic on linux.Nate Begeman2009-02-231-0/+2
| | | | llvm-svn: 65312
* Generate better code for v8i16 shuffles on SSE2Nate Begeman2009-02-2314-281/+445
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generate better code for v16i8 shuffles on SSE2 (avoids stack) Generate pshufb for v8i16 and v16i8 shuffles on SSSE3 where it is fewer uops. Document the shuffle matching logic and add some FIXMEs for later further cleanups. New tests that test the above. Examples: New: _shuf2: pextrw $7, %xmm0, %eax punpcklqdq %xmm1, %xmm0 pshuflw $128, %xmm0, %xmm0 pinsrw $2, %eax, %xmm0 Old: _shuf2: pextrw $2, %xmm0, %eax pextrw $7, %xmm0, %ecx pinsrw $2, %ecx, %xmm0 pinsrw $3, %eax, %xmm0 movd %xmm1, %eax pinsrw $4, %eax, %xmm0 ret ========= New: _shuf4: punpcklqdq %xmm1, %xmm0 pshufb LCPI1_0, %xmm0 Old: _shuf4: pextrw $3, %xmm0, %eax movsd %xmm1, %xmm0 pextrw $3, %xmm1, %ecx pinsrw $4, %ecx, %xmm0 pinsrw $5, %eax, %xmm0 ======== New: _shuf1: pushl %ebx pushl %edi pushl %esi pextrw $1, %xmm0, %eax rolw $8, %ax movd %xmm0, %ecx rolw $8, %cx pextrw $5, %xmm0, %edx pextrw $4, %xmm0, %esi pextrw $3, %xmm0, %edi pextrw $2, %xmm0, %ebx movaps %xmm0, %xmm1 pinsrw $0, %ecx, %xmm1 pinsrw $1, %eax, %xmm1 rolw $8, %bx pinsrw $2, %ebx, %xmm1 rolw $8, %di pinsrw $3, %edi, %xmm1 rolw $8, %si pinsrw $4, %esi, %xmm1 rolw $8, %dx pinsrw $5, %edx, %xmm1 pextrw $7, %xmm0, %eax rolw $8, %ax movaps %xmm1, %xmm0 pinsrw $7, %eax, %xmm0 popl %esi popl %edi popl %ebx ret Old: _shuf1: subl $252, %esp movaps %xmm0, (%esp) movaps %xmm0, 16(%esp) movaps %xmm0, 32(%esp) movaps %xmm0, 48(%esp) movaps %xmm0, 64(%esp) movaps %xmm0, 80(%esp) movaps %xmm0, 96(%esp) movaps %xmm0, 224(%esp) movaps %xmm0, 208(%esp) movaps %xmm0, 192(%esp) movaps %xmm0, 176(%esp) movaps %xmm0, 160(%esp) movaps %xmm0, 144(%esp) movaps %xmm0, 128(%esp) movaps %xmm0, 112(%esp) movzbl 14(%esp), %eax movd %eax, %xmm1 movzbl 22(%esp), %eax movd %eax, %xmm2 punpcklbw %xmm1, %xmm2 movzbl 42(%esp), %eax movd %eax, %xmm1 movzbl 50(%esp), %eax movd %eax, %xmm3 punpcklbw %xmm1, %xmm3 punpcklbw %xmm2, %xmm3 movzbl 77(%esp), %eax movd %eax, %xmm1 movzbl 84(%esp), %eax movd %eax, %xmm2 punpcklbw %xmm1, %xmm2 movzbl 104(%esp), %eax movd %eax, %xmm1 punpcklbw %xmm1, %xmm0 punpcklbw %xmm2, %xmm0 movaps %xmm0, %xmm1 punpcklbw %xmm3, %xmm1 movzbl 127(%esp), %eax movd %eax, %xmm0 movzbl 135(%esp), %eax movd %eax, %xmm2 punpcklbw %xmm0, %xmm2 movzbl 155(%esp), %eax movd %eax, %xmm0 movzbl 163(%esp), %eax movd %eax, %xmm3 punpcklbw %xmm0, %xmm3 punpcklbw %xmm2, %xmm3 movzbl 188(%esp), %eax movd %eax, %xmm0 movzbl 197(%esp), %eax movd %eax, %xmm2 punpcklbw %xmm0, %xmm2 movzbl 217(%esp), %eax movd %eax, %xmm4 movzbl 225(%esp), %eax movd %eax, %xmm0 punpcklbw %xmm4, %xmm0 punpcklbw %xmm2, %xmm0 punpcklbw %xmm3, %xmm0 punpcklbw %xmm1, %xmm0 addl $252, %esp ret llvm-svn: 65311
* If nobody minds, I'm using LTO to produce faster binaries. Switch fast codegenNick Lewycky2009-02-231-2/+2
| | | | | | off in libLTO. llvm-svn: 65310
* Changed option name from inline-threshold to basic-inline-threshold becauseMon P Wang2009-02-231-1/+1
| | | | | | inline-threshold option is used by the inliner. llvm-svn: 65309
* fix some typos that Duncan noticedChris Lattner2009-02-231-3/+3
| | | | llvm-svn: 65306
* A few small improvements to Evaluate for stuff I noted in FIXMEs.Eli Friedman2009-02-232-17/+97
| | | | llvm-svn: 65305
* retain/release checker: For now don't track the retain count of NSWindow ↵Ted Kremenek2009-02-232-2/+7
| | | | | | objects (opt for false negatives). llvm-svn: 65304
* More retain/release naming convention tests.Ted Kremenek2009-02-231-0/+3
| | | | llvm-svn: 65303
* Remove typo.Ted Kremenek2009-02-231-1/+1
| | | | llvm-svn: 65302
* '[NSAutoreleasePool addObject:]' has an 'autorelease' effect, not a ↵Ted Kremenek2009-02-231-2/+2
| | | | | | DoNothing effect. llvm-svn: 65301
* Sema::ActOnInstanceMessage(): Tighen up the lookup rules for handling ↵Steve Naroff2009-02-231-9/+31
| | | | | | messages to 'Class'. Also improve "super" handling. llvm-svn: 65300
* Add test case for PR 2599.Ted Kremenek2009-02-231-0/+64
| | | | llvm-svn: 65299
* Propagate debug loc info through prologue/epilogue.Bill Wendling2009-02-237-28/+39
| | | | llvm-svn: 65298
* Introduce the BuildVectorSDNode class that encapsulates the ISD::BUILD_VECTORScott Michel2009-02-2214-318/+397
| | | | | | | | | instruction. The class also consolidates the code for detecting constant splats that's shared across PowerPC and the CellSPU backends (and might be useful for other backends.) Also introduces SelectionDAG::getBUID_VECTOR() for generating new BUILD_VECTOR nodes. llvm-svn: 65296
* Add an option to the gold plugin to make it emit a file with the public apiNick Lewycky2009-02-221-1/+23
| | | | | | | | | | list that can in turn be passed to -internalize pass through -internalize-public-api-file. Pass gold -plugin-opt=generate-api-file to produce "apifile.txt" in the current directory. llvm-svn: 65295
* Minor cleanup, replace bool with qual_empty().Steve Naroff2009-02-221-3/+1
| | | | llvm-svn: 65293
* Contains the following (related to problems found while investigting ↵Steve Naroff2009-02-227-40/+57
| | | | | | | | | | <rdar://problem/6497631> Message lookup is sometimes different than gcc's). - Implement instance/class overloading in ObjCContainerDecl (removing a FIXME). This involved hacking NamedDecl::declarationReplaces(), which took awhile to figure out (didn't realize replace was the default). - Changed Sema::ActOnInstanceMessage() to remove redundant warnings when dealing with protocols. For now, I've omitted the "protocol" term in the diagnostic. It simplifies the code flow and wan't always 100% accurate (e.g. "Foo<Prot>" looks in the class interface, not just the protocol). - Changed several test cases to jive with the above changes. llvm-svn: 65292
* Make sure to reset the DidCallStackSave variable before emitting a compound ↵Anders Carlsson2009-02-221-0/+1
| | | | | | statement. Fixes PR3649. llvm-svn: 65291
* More objc gc work. Match gcc's treatment of ivar accessFariborz Jahanian2009-02-223-1/+32
| | | | | | | true a local pointer to objective-c object in generating write barriers. llvm-svn: 65290
* Revert the part of 64623 that attempted to align the source in aDan Gohman2009-02-221-1/+1
| | | | | | | | | | | | | | | memcpy to match the alignment of the destination. It isn't necessary for making loads and stores handled like the SSE loadu/storeu intrinsics, and it was causing a performance regression in MultiSource/Applications/JM/lencod. The problem appears to have been a memcpy that copies from some highly aligned array into an alloca; the alloca was then being assigned a large alignment, which required codegen to perform dynamic stack-pointer re-alignment, which forced the enclosing function to have a frame pointer, which led to increased spilling. llvm-svn: 65289
* Properly parenthesize this expression, fixing a real bug in the newDan Gohman2009-02-221-1/+1
| | | | | | -full-lsr code, as well as a GCC warning. llvm-svn: 65288
* bug 3610: Test case.Richard Pennington2009-02-221-0/+20
| | | | llvm-svn: 65287
* Copy some clenaups from Eli to code that I copied. :-)Mike Stump2009-02-221-6/+1
| | | | llvm-svn: 65286
* Cleanp code with some recent suggestions.Mike Stump2009-02-224-23/+14
| | | | llvm-svn: 65285
* A bit of Evaluate cleanup. Also, a full audit of what's missing that Eli Friedman2009-02-221-22/+33
| | | | | | someone would reasonably expect Evaluate to handle for C/ObjC. llvm-svn: 65284
* Update to checker-0.162 (fixed header issue in tar.bz2 package).Ted Kremenek2009-02-221-1/+1
| | | | llvm-svn: 65283
* Reverted back to checker-0.161 because of a header issue.Ted Kremenek2009-02-221-1/+1
| | | | llvm-svn: 65281
* Updated checker build.Ted Kremenek2009-02-221-1/+1
| | | | llvm-svn: 65280
* If a use operand is marked isKill, don't forget to add kill to its live ↵Evan Cheng2009-02-222-4/+30
| | | | | | interval as well. llvm-svn: 65279
* x86_64 ABI: Actually, we can always pass things we want to pass inDaniel Dunbar2009-02-221-10/+2
| | | | | | | memory using Indirect; this was a holdover from when CGCall wasn't as robust. llvm-svn: 65278
* ccc: Remove unknown host warning, it was breaking gcc's configure.Daniel Dunbar2009-02-221-1/+0
| | | | llvm-svn: 65276
* Add a note.Evan Cheng2009-02-221-0/+28
| | | | llvm-svn: 65275
* Be bug compatible with gcc by returning MMX values in RAX.Evan Cheng2009-02-223-8/+18
| | | | llvm-svn: 65274
* Do not consider MMX_MOVD64rr a move instructions. The source register is in ↵Evan Cheng2009-02-221-1/+0
| | | | | | GR32, the destination is VR64. They are not compatible. llvm-svn: 65273
OpenPOWER on IntegriCloud