summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* The address of an indirect call must be in R12 on Darwin.Dale Johannesen2010-03-091-0/+19
| | | | | | | | Make it so. (This patch is in LowerCall_Darwin, which seems to be used by SVR4 code as well; since that doesn't belong here, I haven't worried about this case.) llvm-svn: 98077
* In cases where the carry / borrow unused converted ladd / lsubRichard Osborne2010-03-091-0/+39
| | | | | | to an add or a sub. llvm-svn: 98059
* Add DAG combine for ladd / lsub.Richard Osborne2010-03-091-0/+28
| | | | llvm-svn: 98057
* Make isLCSSA ignore uses in blocks not reachable from the entry block,Dan Gohman2010-03-091-0/+27
| | | | | | as LCSSA no longer transforms such uses. llvm-svn: 98033
* Start using DIFile. See updated SourceLevelDebugging.html for more information.Devang Patel2010-03-091-1/+1
| | | | | | | | | This patch updates LLVMDebugVersion to 8. Debug info descriptors encoded using LLVMDebugVersion 7 is supported. Corresponding llvmgcc and clang FE commits are required. llvm-svn: 98020
* move .set generation out of DwarfPrinter into AsmPrinter and Chris Lattner2010-03-081-1/+1
| | | | | | MCize it. llvm-svn: 98010
* simplify EmitSectionOffset to always use .set if it isChris Lattner2010-03-081-1/+1
| | | | | | | | | available, the only thing this affects is that we produce .set in one case we didn't before, which shouldn't harm anything. Make EmitSectionOffset call EmitDifference instead of duplicating it. llvm-svn: 98005
* Fix a crash compiling 254.gap for Thumb2. The Thumb2 add/sub with 12-bitBob Wilson2010-03-081-0/+266
| | | | | | | | immediate instructions cannot set the condition codes, so they do not have the extra cc_out operand. We hit an assertion during tail duplication because the instruction being duplicated had more operands that expected. llvm-svn: 98001
* Re-commit 97860 with fix. getMallocAllocatedType may return null.Evan Cheng2010-03-081-0/+16
| | | | llvm-svn: 98000
* Fix the vmxon entry in the X86InstrInfo.td so it has the correct prefix bytesKevin Enderby2010-03-081-1/+10
| | | | | | for the encoding and is not the same as vmptrld. llvm-svn: 97992
* MC/Macho-O: Align the zerofill section itself to the maximum alignment.Daniel Dunbar2010-03-082-1/+16
| | | | llvm-svn: 97991
* MC/Mach-O: Fix address compution for zero fill sections.Daniel Dunbar2010-03-081-0/+35
| | | | llvm-svn: 97984
* X86: Fix encoding for TEST{8,16,32}rr.Daniel Dunbar2010-03-081-1/+3
| | | | llvm-svn: 97982
* Add documentation on sibling call optimization. Rename tailcall2.ll test to ↵Evan Cheng2010-03-081-0/+0
| | | | | | sibcall.ll. llvm-svn: 97980
* Revert r97726 and r97728 at ddunbar's request; we want to solve thisJohn McCall2010-03-081-3/+0
| | | | | | some other way when it comes to be necessary. llvm-svn: 97972
* Re-committing the failed r97807 commit with changes to eliminate warnings.Wesley Peck2010-03-061-14/+14
| | | | llvm-svn: 97891
* Initial bits of ARMv4-only support.Anton Korobeynikov2010-03-061-0/+13
| | | | | | Patch by John Tytgat! llvm-svn: 97886
* Do not use '&' prefix for globals when register base field is non-zero, ↵Anton Korobeynikov2010-03-064-8/+8
| | | | | | | | otherwise msp430-as will silently miscompile the code (TI's assembler report an error though). This fixes PR6349 llvm-svn: 97877
* Migrate _chk call lowering from SimplifyLibCalls to InstCombine. StubEric Christopher2010-03-063-4/+4
| | | | | | | | out the remainder of the calls that we should lower in some way and move the tests to the new correct directory. Fix up tests that are now optimized more than they were before by -instcombine. llvm-svn: 97875
* revert r97807, it introduced build warnings.Chris Lattner2010-03-061-14/+14
| | | | llvm-svn: 97869
* Temporarily revert:Eric Christopher2010-03-061-16/+0
| | | | | | | | | | | | | Log: Transform @llvm.objectsize to integer if the argument is a result of malloc of known size. Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/trunk/test/Transforms/InstCombine/objsize.ll It appears to be causing swb and nightly test failures. llvm-svn: 97866
* Transform @llvm.objectsize to integer if the argument is a result of malloc ↵Evan Cheng2010-03-061-0/+16
| | | | | | of known size. llvm-svn: 97860
* Add a LLVMWriteBitcodeToFD that exposes the raw_fd_ostream options.Erick Tryzelaar2010-03-061-3/+31
| | | | llvm-svn: 97858
* Test case for r97851.Devang Patel2010-03-051-0/+10
| | | | llvm-svn: 97852
* Don't emit global symbols into the (__TEXT,__ustring) section on Darwin. ThisCharles Davis2010-03-051-2/+1
| | | | | | | | | is a workaround for <rdar://problem/7672401/> (which I filed). This let's us build Wine on Darwin, and it gets the Qt build there a little bit further (so Doug says). llvm-svn: 97845
* Better handling of dead super registers in LiveVariables. We used to do this:Jakob Stoklund Olesen2010-03-051-1/+1
| | | | | | | | | | | | | | | | | | | | | CALL ... %RAX<imp-def> ... [not using %RAX] %EAX = ..., %RAX<imp-use, kill> RET %EAX<imp-use,kill> Now we do this: CALL ... %RAX<imp-def, dead> ... [not using %RAX] %EAX = ... RET %EAX<imp-use,kill> By not artificially keeping %RAX alive, we lower register pressure a bit. The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously 55, anybody can see that. Sheesh. llvm-svn: 97838
* We don't really care about correct register liveness information after theJakob Stoklund Olesen2010-03-051-0/+49
| | | | | | post-ra scheduler has run. Disable the verifier checks that late in the game. llvm-svn: 97837
* Avoid creating bad PHI instructions when BR is being const-folded.Jakob Stoklund Olesen2010-03-051-0/+42
| | | | llvm-svn: 97836
* Safely turn memset_chk etc. to non-chk variant if the known object size is ↵Evan Cheng2010-03-051-0/+18
| | | | | | >= memset / memcpy / memmove size. llvm-svn: 97828
* Instcombine should turn llvm.objectsize of a alloca with static size to an ↵Evan Cheng2010-03-051-0/+20
| | | | | | integer. llvm-svn: 97827
* fix bss section printing for cell, patch by Kalle Raiskila!Chris Lattner2010-03-051-0/+5
| | | | llvm-svn: 97814
* fix PR6512, a case where instcombine would incorrectly merge loadsChris Lattner2010-03-051-0/+40
| | | | | | from different addr spaces. llvm-svn: 97813
* Reworking the stack layout that the MicroBlaze backend generates.Wesley Peck2010-03-051-14/+14
| | | | | | | | | | | The MicroBlaze backend was generating stack layouts that did not conform correctly to the ABI. This update generates stack layouts which are closer to what GCC does. Variable arguments support was added as well but the stack layout for varargs has not been finalized. llvm-svn: 97807
* Fix PR6503. This turned into a much more interesting and nasty bug. Various Chris Lattner2010-03-051-0/+15
| | | | | | | | | | | parts of the cmp|cmp and cmp&cmp folding logic wasn't prepared for vectors (unrelated to the bug but noticed while in the code) and the code was *definitely* not safe to use by the (cast icmp)|(cast icmp) handling logic that I added in r95855. Fix all this up by changing the various routines to more consistently use IRBuilder and not pass in the I which had the wrong type. llvm-svn: 97801
* make these less sensitive to temporary naming.Chris Lattner2010-03-053-15/+15
| | | | llvm-svn: 97799
* remove this testcase, it isn't clear what it was testing and it is subsumed ↵Chris Lattner2010-03-051-18/+0
| | | | | | by or.ll llvm-svn: 97798
* Fix an oops in x86 sibcall optimization. If the ByVal callee argument is ↵Evan Cheng2010-03-051-0/+21
| | | | | | itself passed as a pointer, then it's obviously not safe to do a tail call. llvm-svn: 97797
* fix a nice subtle reassociate bug which would only occurChris Lattner2010-03-051-2/+13
| | | | | | | in a very specific use pattern embodied in the carefully reduced testcase. llvm-svn: 97794
* Fix PR6497, a bug where we'd fold a load into an addcChris Lattner2010-03-051-0/+20
| | | | | | | | | | | node which has a flag. That flag in turn was used by an already-selected adde which turned into an ADC32ri8 which used a selected load which was chained to the load we folded. This flag use caused us to form a cycle. Fix this by not ignoring chains in IsLegalToFold even in cases where the isel thinks it can. llvm-svn: 97791
* cleanupChris Lattner2010-03-051-6/+6
| | | | llvm-svn: 97790
* Rever 96389 and 96990. They are causing some miscompilation that I do not ↵Evan Cheng2010-03-052-12/+4
| | | | | | fully understand. llvm-svn: 97782
* Revert r97766. It's deleting a tag.Bill Wendling2010-03-051-22/+0
| | | | llvm-svn: 97768
* Micro-optimization:Bill Wendling2010-03-051-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code: float floatingPointComparison(float x, float y) { double product = (double)x * y; if (product == 0.0) return product; return product - 1.0; } produces this: _floatingPointComparison: 0000000000000000 cvtss2sd %xmm1,%xmm1 0000000000000004 cvtss2sd %xmm0,%xmm0 0000000000000008 mulsd %xmm1,%xmm0 000000000000000c pxor %xmm1,%xmm1 0000000000000010 ucomisd %xmm1,%xmm0 0000000000000014 jne 0x00000004 0000000000000016 jp 0x00000002 0000000000000018 jmp 0x00000008 000000000000001a addsd 0x00000006(%rip),%xmm0 0000000000000022 cvtsd2ss %xmm0,%xmm0 0000000000000026 ret The "jne/jp/jmp" sequence can be reduced to this instead: _floatingPointComparison: 0000000000000000 cvtss2sd %xmm1,%xmm1 0000000000000004 cvtss2sd %xmm0,%xmm0 0000000000000008 mulsd %xmm1,%xmm0 000000000000000c pxor %xmm1,%xmm1 0000000000000010 ucomisd %xmm1,%xmm0 0000000000000014 jp 0x00000002 0000000000000016 je 0x00000008 0000000000000018 addsd 0x00000006(%rip),%xmm0 0000000000000020 cvtsd2ss %xmm0,%xmm0 0000000000000024 ret for a savings of 2 bytes. This xform can happen when we recognize that jne and jp jump to the same "true" MBB, the unconditional jump would jump to the "false" MBB, and the "true" branch is the fall-through MBB. llvm-svn: 97766
* Drop the ".w" qualifier for t2UXTB16* instructions as there is no 16-bit versionJohnny Chen2010-03-041-10/+10
| | | | | | of either sxtb16 or uxtb16, and the unified syntax does not specify ".w". llvm-svn: 97760
* pr6478: The frame pointer spill frame index is only defined when there is aBob Wilson2010-03-041-0/+65
| | | | | | frame pointer. llvm-svn: 97755
* pr6480: Don't try producing ld/st-multiple instructions when the address isBob Wilson2010-03-041-0/+54
| | | | | | | | an undef value. This is only going to come up for bugpoint-reduced tests -- correct programs will not access memory at undefined addresses -- so it's not worth the effort of doing anything more aggressive. llvm-svn: 97745
* Fix the remaining MUL8 and DIV8 to define AX instead of AL,AH.Jakob Stoklund Olesen2010-03-041-0/+25
| | | | | | | | | These instructions technically define AL,AH, but a trick in X86ISelDAGToDAG reads AX in order to avoid reading AH with a REX instruction. Fix PR6489. llvm-svn: 97742
* Fix recognition of 16-bit bswap for C front-ends which emit theDan Gohman2010-03-041-2/+65
| | | | | | clobber registers in a different order. llvm-svn: 97741
* Teach lit to honor conditional directives. The syntax is:John McCall2010-03-041-0/+3
| | | | | | | | | | | | | | | | IF(condition(value)): If the value satisfies the condition, the line is processed by lit; otherwise it is skipped. A test with no unignored directives is resolved as Unsupported. The test suite is responsible for defining conditions; conditions are unary functions over strings. I've defined two conditions in the LLVM test suite, TARGET (with values like those in TARGETS_TO_BUILD) and BINDING (with values like those in llvm_bindings). So for example you can write: IF(BINDING(ocaml)): RUN: %blah %s -o - and the RUN line will only execute if LLVM was configured with the ocaml bindings. llvm-svn: 97726
* Make the 'icmp pred trunc(ext(X)), CST --> icmp pred X, ext(trunc(CST))'Nick Lewycky2010-03-041-0/+18
| | | | | | | | | | transformation much more careful. Truncating binary '01' to '1' sounds like it's safe until you realize that it switched from positive to negative under a signed interpretation, and that depends on the icmp predicate. Also a few miscellaneous cleanups. llvm-svn: 97721
OpenPOWER on IntegriCloud