summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Patches to build EFI with Clang/LLVM. By Carl Norum.Evan Cheng2011-02-018-17/+41
| | | | llvm-svn: 124639
* Remove stale test that has never worked, afaik.Devang Patel2011-02-011-60/+0
| | | | llvm-svn: 124635
* Don't tell the linker about available_externally definitions. If we do, it willRafael Espindola2011-02-011-0/+4
| | | | | | complain about duplicated definitions. llvm-svn: 124634
* Keep track of incoming argument's location while emitting LiveIns.Devang Patel2011-01-3113-32/+144
| | | | llvm-svn: 124611
* While printing "interesting" breakpoint locations for debug info quality ↵Devang Patel2011-01-311-27/+12
| | | | | | test harness, focus only on entry block's terminator for now. llvm-svn: 124610
* Enumerate .code16/32/64 instead of checking .code prefix. ThisRoman Divacky2011-01-311-1/+1
| | | | | | unbreaks some ARM tests. llvm-svn: 124608
* Tidy up. Devang Patel2011-01-311-35/+132
| | | | llvm-svn: 124605
* Focus on arguments for now.Devang Patel2011-01-311-2/+2
| | | | llvm-svn: 124604
* Error on all .code* directives instead of just .code16 as theyRoman Divacky2011-01-311-2/+2
| | | | | | all lead to a silent miscompilation of code. llvm-svn: 124603
* Fix vector sign extend to put the source and destination types in theDavid Greene2011-01-311-3/+3
| | | | | | correct places. llvm-svn: 124601
* add a note, progress unblocked by PR8575 being fixed.Chris Lattner2011-01-311-0/+48
| | | | llvm-svn: 124599
* Adds some platform checks to cmake/config-ix.cmake and fixes checkingOscar Fuentes2011-01-312-12/+36
| | | | | | | | for dlopen/dlerror. Patch by arrowdodger! llvm-svn: 124590
* Fix bug where ReduceLoadWidth was creating illegal ZEXTLOAD instructions.Richard Osborne2011-01-312-2/+12
| | | | llvm-svn: 124587
* CMake: Fix a few definition to suppress warnings.NAKAMURA Takumi2011-01-311-3/+3
| | | | llvm-svn: 124583
* Save a mapping between original and cloned constpool entries.Anton Korobeynikov2011-01-302-0/+25
| | | | llvm-svn: 124570
* Clarify the LSDASection NULL checkAnton Korobeynikov2011-01-301-0/+2
| | | | llvm-svn: 124569
* Recognize and simplifyAnders Carlsson2011-01-302-1/+27
| | | | | | | (A+B) == A -> B == 0 A == (A+B) -> B == 0 llvm-svn: 124567
* Respect the -tail-dup-size command line option even when optimizing for size.Jakob Stoklund Olesen2011-01-301-1/+2
| | | | | | | This is similar to the -unroll-threshold option. There should be no change in behavior when -tail-dup-size is not explicit on the llc command line. llvm-svn: 124564
* Commit 124487 broke 254.gap. See if disabling the part that might be triggeredDuncan Sands2011-01-302-9/+5
| | | | | | by PR9088 fixes things. llvm-svn: 124561
* Transform (X/Y)*Y into X if the division is exact. Instcombine already ↵Duncan Sands2011-01-302-0/+27
| | | | | | | | | | | | knows how to do this and more, but would only do it if X/Y had only one use. Spotted as the most common missed simplification in SPEC by my auto-simplifier, now that it knows about nuw/nsw/exact flags. This removes a bunch of multiplications from 447.dealII and 483.xalancbmk. It also removes a lot from tramp3d-v4, which results in much more inlining. llvm-svn: 124560
* Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, ↵Benjamin Kramer2011-01-303-21/+32
| | | | | | | | | | | | | | | | | | c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
* Fix 'fcmp one' constant folding. Noticed by inspection.Nick Lewycky2011-01-301-1/+1
| | | | llvm-svn: 124557
* Fix some formatting and upgrade comments from llvm 1.x to 2.x syntax.Nick Lewycky2011-01-301-6/+6
| | | | llvm-svn: 124556
* This is #included by .c files. Remove C++-style comments.Bill Wendling2011-01-291-1/+1
| | | | llvm-svn: 124552
* Add the select optimization recently added to instcombine to constant folding.Nick Lewycky2011-01-292-0/+21
| | | | | | | This is the one where one of the branches of the select is another select on the same condition. llvm-svn: 124547
* Unbreak the MSVC build.Francois Pichet2011-01-291-0/+1
| | | | | | The DEBUG() call at line 606 demands to see raw_ostream's definition. I have no idea why this seems to only break MSVC. llvm-svn: 124545
* Fix comment.Nick Lewycky2011-01-291-1/+1
| | | | llvm-svn: 124544
* Call SimplifyFDivInst() in InstCombiner::visitFDiv().Frits van Bommel2011-01-292-0/+10
| | | | llvm-svn: 124535
* Move InstCombine's knowledge of fdiv to SimplifyInstruction().Frits van Bommel2011-01-295-18/+47
| | | | llvm-svn: 124534
* Fix typo: should have been testing that X was odd, not V.Duncan Sands2011-01-292-3/+27
| | | | llvm-svn: 124533
* Add the missing sub identity "A-(A-B) -> B" to DAGCombine.Benjamin Kramer2011-01-291-0/+3
| | | | | | | | This happens e.g. for code like "X - X%10" where we lower the modulo operation to a series of multiplies and shifts that are then subtracted from X, leading to this missed optimization. llvm-svn: 124532
* Add a test for TCE return duplication.Evan Cheng2011-01-292-0/+25
| | | | llvm-svn: 124527
* Re-apply r124518 with fix. Watch out for invalidated iterator.Evan Cheng2011-01-2913-73/+226
| | | | llvm-svn: 124526
* Revert r124518. It broke Linux self-host.Evan Cheng2011-01-2913-223/+73
| | | | llvm-svn: 124522
* Re-commit r124462 with fixes. Tail recursion elim will now dup ret into ↵Evan Cheng2011-01-2913-73/+223
| | | | | | unconditional predecessor to enable TCE on demand. llvm-svn: 124518
* Implementation of path profiling.Andrew Trick2011-01-2923-51/+3423
| | | | | | | | | | Modified patch by Adam Preuss. This builds on the existing framework for block tracing, edge profiling and optimal edge profiling. See -help-hidden for new flags. For documentation, see the technical report "Implementation of Path Profiling..." in llvm.org/pubs. llvm-svn: 124515
* Most browsers eliminate whitespace between anchor tags. Force whitespace withNick Lewycky2011-01-291-1/+1
| | | | | | &nbsp; so that the code reads properly. llvm-svn: 124514
* Error on .code16 instead of producing wrong (32bit) code.Roman Divacky2011-01-281-0/+3
| | | | llvm-svn: 124498
* This dyn_cast should be a cast. Pointed out by Frits van Bommel.Duncan Sands2011-01-281-1/+1
| | | | llvm-svn: 124497
* Thread divisions over selects and phis. This doesn't fire much and has ↵Duncan Sands2011-01-281-9/+19
| | | | | | | | basically zero effect on the testsuite (it improves two Ada testcases). llvm-svn: 124496
* PR9030: Fix disassembly of ARM "mov pc, lr" instruction.Bob Wilson2011-01-282-2/+5
| | | | | | Patch by Jyun-Yan You. llvm-svn: 124492
* My auto-simplifier noticed that ((X/Y)*Y)/Y occurs several times in SPECDuncan Sands2011-01-285-61/+235
| | | | | | | | | | | | | | | | | benchmarks, and that it can be simplified to X/Y. (In general you can only simplify (Z*Y)/Y to Z if the multiplication did not overflow; if Z has the form "X/Y" then this is the case). This patch implements that transform and moves some Div logic out of instcombine and into InstructionSimplify. Unfortunately instcombine gets in the way somewhat, since it likes to change (X/Y)*Y into X-(X rem Y), so I had to teach instcombine about this too. Finally, thanks to the NSW/NUW flags, sometimes we know directly that "Z*Y" does not overflow, because the flag says so, so I added that logic too. This eliminates a bunch of divisions and subtractions in 447.dealII, and has good effects on some other benchmarks too. It seems to have quite an effect on tramp3d-v4 but it's hard to say if it's good or bad because inlining decisions changed, resulting in massive changes all over. llvm-svn: 124487
* Fix libffi usage when it is on a custom path.Oscar Fuentes2011-01-281-9/+1
| | | | llvm-svn: 124486
* Add support for parsing .floatRoman Divacky2011-01-282-1/+4
| | | | llvm-svn: 124485
* Rename functions to follow coding standard. Also rejiggers comments. NoNick Lewycky2011-01-281-89/+88
| | | | | | functionality change. llvm-svn: 124482
* Add a doxygen comment for this class.Nick Lewycky2011-01-281-0/+2
| | | | llvm-svn: 124480
* Reorder for readability. (Chris, is this what you meant?)Nick Lewycky2011-01-281-148/+150
| | | | llvm-svn: 124479
* Revert r124462. There are a few big regressions that I need to fix first.Evan Cheng2011-01-2810-78/+32
| | | | llvm-svn: 124478
* Reduce the number of functions we look at in the first pass, and preallocateNick Lewycky2011-01-281-1/+3
| | | | | | the function equality set. llvm-svn: 124475
* Clean up the tests a little, make sure we match an instruction in the rightNick Lewycky2011-01-281-5/+4
| | | | | | test. llvm-svn: 124473
OpenPOWER on IntegriCloud