summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
...
* Re-committing r130454, which does not in fact break anything.Eli Friedman2011-04-291-0/+11
| | | | | | | Fix a rather obscure crash caused by ARM fast-isel generating code which redefines a register. rdar://problem/9338332 . llvm-svn: 130539
* Add trunc->branch support, this won't help with clang's i8->i1 truncationsEric Christopher2011-04-291-1/+16
| | | | | | for bools, but is a start. llvm-svn: 130534
* SimplifyCFG: Expose phi node folding cost threshold as command line parameterPeter Collingbourne2011-04-291-0/+34
| | | | llvm-svn: 130528
* SimplifyCFG: Add CostRemaining parameter to DominatesMergePointPeter Collingbourne2011-04-291-0/+1
| | | | llvm-svn: 130527
* SimplifyCFG: Add Trunc, ZExt and SExt to the list of cheap instructions for ↵Peter Collingbourne2011-04-291-6/+9
| | | | | | phi node folding llvm-svn: 130526
* MCAsmLayout: Add support for computing the symbol offset of variables. NotDaniel Dunbar2011-04-291-0/+8
| | | | | | currently used, because variables don't get reported as being "defined". llvm-svn: 130524
* MC: Change variable symbols to be recognized as defined, by assigning their ↵Daniel Dunbar2011-04-291-0/+446
| | | | | | sections based on FindAssociatedSection(). llvm-svn: 130523
* Change DwarfCFIException's member variables to track what it actuallyRafael Espindola2011-04-291-1/+1
| | | | | | emmits: .cfi_personality, .cfi_lsda and the moves. llvm-svn: 130503
* Teach Thumb2 isel to fold and->rotr ==> ROR.Andrew Trick2011-04-291-2/+4
| | | | | | Generalization of Nate Begeman's patch! llvm-svn: 130502
* Combine thumb2-ror tests.Andrew Trick2011-04-292-13/+13
| | | | llvm-svn: 130498
* InstCombine: turn (C1 << A) << C2) into (C1 << C2) << A)Benjamin Kramer2011-04-291-0/+21
| | | | | | Fixes PR9809. llvm-svn: 130485
* Revert r130454; apparently this doesn't actually work.Eli Friedman2011-04-281-11/+0
| | | | llvm-svn: 130462
* Fix runline.Eli Friedman2011-04-281-1/+1
| | | | llvm-svn: 130455
* Fix a rather obscure crash caused by ARM fast-isel generating code which ↵Eli Friedman2011-04-281-0/+11
| | | | | | | | redefines a register. rdar://problem/9338332 . llvm-svn: 130454
* fast-isel sret calls, try 2. We actually do need to do something on x86-32. ↵Eli Friedman2011-04-282-0/+28
| | | | | | rdar://problem/9303592 . llvm-svn: 130429
* Actually revert r130348 correctly.Eli Friedman2011-04-281-27/+1
| | | | llvm-svn: 130418
* final step needed to resolve PR6627, which allows us to flatten the code down toChris Lattner2011-04-282-4/+71
| | | | | | | | | | | | a nice and tidy: %x1 = load i32* %0, align 4 %1 = icmp eq i32 %x1, 1179403647 br i1 %1, label %if.then, label %if.end instead of doing lots of loads and branches. May the FreeBSD bootloader long fit in its allocated space. llvm-svn: 130416
* Revert r130348; causing buildbot issues on x86-32.Eli Friedman2011-04-281-0/+13
| | | | llvm-svn: 130412
* InstCombine: Merge "(trunc x) == C1 & (and x, CA) == C2" into a single and+icmp.Benjamin Kramer2011-04-281-0/+29
| | | | | | This happens when GVN widens loads. Part of PR6627. llvm-svn: 130405
* teach GVN to widen integer loads when they are overaligned, when doing an Chris Lattner2011-04-281-1/+24
| | | | | | | | | | | wider load would allow elimination of subsequent loads, and when the wider load is still a native integer type. This eliminates a ton of loads on various benchmarks involving struct fields, though it is somewhat hobbled by clang not being very aggressive about field alignment. This is yet another step along the way towards resolving PR6627. llvm-svn: 130390
* Teach dwarf writer to handle complex address expression for .debug_loc entries.Devang Patel2011-04-282-4/+4
| | | | | | | This fixes clang generated blocks' variables' debug info. Radar 9279956. llvm-svn: 130373
* Fix a silly mistake in r130338.Eli Friedman2011-04-281-0/+9
| | | | llvm-svn: 130360
* PTX: support for bitwise operations on predicatesJustin Holewinski2011-04-281-0/+24
| | | | | | | | | - selection of bitwise preds (AND, OR, XOR) - new bitwise.ll test Patch by Dan Bailey llvm-svn: 130353
* fast-isel sret. We actually don't need to do anything special on x86. :) ↵Eli Friedman2011-04-271-0/+13
| | | | | | rdar://problem/9303592 . llvm-svn: 130348
* Add tests for A8.6.110 NOP.Johnny Chen2011-04-272-0/+9
| | | | llvm-svn: 130345
* Fixes PR9730: indvars: An asserting value handle still pointed to this valueAndrew Trick2011-04-271-5/+6
| | | | | | | | | Modified LinearFunctionTestReplace to push the condition on the dead list instead of eagerly deleting it. This can cause unnecessary IV rewrites, which should have no effect on codegen and will not be an issue once we stop generating canonical IVs. llvm-svn: 130340
* Make the fast-isel code for literal 0.0 a bit shorter/faster, since 0.0 is ↵Eli Friedman2011-04-271-0/+13
| | | | | | common. rdar://problem/9303592 . llvm-svn: 130338
* Teach BasicAA about arm.neon.vld1 and vst1.Dan Gohman2011-04-271-0/+16
| | | | llvm-svn: 130327
* If converter was being too cute. It look for root BBs (which don't haveEvan Cheng2011-04-271-0/+59
| | | | | | | | | | successors) and use inverse depth first search to traverse the BBs. However that doesn't work when the CFG has infinite loops. Simply do a linear traversal of all BBs work just fine. rdar://9344645 llvm-svn: 130324
* When analyzing functions known to only access argument pointees,Dan Gohman2011-04-272-0/+50
| | | | | | | | | only check arguments with pointer types. Update the documentation of IntrReadArgMem reflect this. While here, add support for TBAA tags on intrinsic calls. llvm-svn: 130317
* Simplify cfg inserts a call to trap when unreachable code is detected. ↵Devang Patel2011-04-271-0/+19
| | | | | | Assign DebugLoc to this new trap instruction. llvm-svn: 130315
* Also add <imp-def> operands for defined and dead super-registers when rewriting.Jakob Stoklund Olesen2011-04-271-1/+24
| | | | | | | We cannot rely on the <imp-def> operands added by LiveIntervals in all cases as demonstrated by the test case. llvm-svn: 130313
* Test case and comment for PR9633.Andrew Trick2011-04-271-0/+33
| | | | llvm-svn: 130294
* Fix an edge case involving branches in fast-isel on x86.Eli Friedman2011-04-271-9/+30
| | | | | | rdar://problem/9303306 . llvm-svn: 130272
* remove support for llvm.invariant.end from memdep. It is a Chris Lattner2011-04-261-36/+0
| | | | | | work-in-progress that is not progressing, and it has issues. llvm-svn: 130247
* Be careful about scheduling nodes above previous calls. It increase usages ofEvan Cheng2011-04-265-23/+73
| | | | | | | | | | | | more callee-saved registers and introduce copies. Only allows it if scheduling a node above calls would end up lessen register pressure. Call operands also has added ABI restrictions for register allocation, so be extra careful with hoisting them above calls. rdar://9329627 llvm-svn: 130245
* This test should be in MC. It breaks with changes to scheduling / register ↵Evan Cheng2011-04-261-100/+0
| | | | | | allocation so it's being removed. llvm-svn: 130243
* make a couple of changes to the standard pass pipeline:Chris Lattner2011-04-262-1/+74
| | | | | | | | | | | | | | | | | | 1. Only run the early (in the module pass pipe) instcombine/simplifycfg if the "unit at a time" passes they are cleaning up after runs. 2. Move the "clean up after the unroller" pass to the very end of the function-level pass pipeline. Loop unroll uses instsimplify now, so it doesn't create a ton of trash. Moving instcombine later allows it to clean up after opportunities are exposed by GVN, DSE, etc. 3. Introduce some phase ordering tests for things that are specifically intended to be simplified by the full optimizer as a whole. This resolves PR2338, and is progress towards PR6627, which will be generating code that looks similar to test2. llvm-svn: 130241
* Transform: "icmp eq (trunc (lshr(X, cst1)), cst" to "icmp (and X, mask), cst"Chris Lattner2011-04-261-0/+16
| | | | | | | | | | when X has multiple uses. This is useful for exposing secondary optimizations, but the X86 backend isn't ready for this when X has a single use. For example, this can disable load folding. This is inching towards resolving PR6627. llvm-svn: 130238
* Force a triple on this test to unbreak windows buildbots.Benjamin Kramer2011-04-261-1/+1
| | | | llvm-svn: 130226
* Improve the bail-out predicate to really only kick in when phiChris Lattner2011-04-262-3/+24
| | | | | | | translation fails. We were bailing out in some cases that would cause us to miss GVN'ing some non-local cases away. llvm-svn: 130206
* Fast-isel support for simple inline asms.Dan Gohman2011-04-261-0/+1
| | | | llvm-svn: 130205
* Add test for PR9743.Rafael Espindola2011-04-261-0/+17
| | | | llvm-svn: 130198
* don't emit the symbol name twice for local bss and commonChris Lattner2011-04-261-1/+1
| | | | | | | | | | | symbols. For example, don't emit: .comm _i,4,2 ## @i ## @i instead emit: .comm _i,4,2 ## @i llvm-svn: 130192
* Enhance MemDep: When alias analysis returns a partial alias result,Chris Lattner2011-04-261-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | return it as a clobber. This allows GVN to do smart things. Enhance GVN to be smart about the case when a small load is clobbered by a larger overlapping load. In this case, forward the value. This allows us to compile stuff like this: int test(void *P) { int tmp = *(unsigned int*)P; return tmp+*((unsigned char*)P+1); } into: _test: ## @test movl (%rdi), %ecx movzbl %ch, %eax addl %ecx, %eax ret which has one load. We already handled the case where the smaller load was from a must-aliased base pointer. llvm-svn: 130180
* Make this test disable fast isel as it's not needed.Eric Christopher2011-04-251-1/+1
| | | | llvm-svn: 130165
* Lower BlockAddress node when relocation-model is static.Akira Hatanaka2011-04-251-5/+10
| | | | llvm-svn: 130131
* A dbg.declare may not be in entry block, even if it is referring to an ↵Devang Patel2011-04-251-0/+123
| | | | | | incoming argument. However, It is appropriate to emit DBG_VALUE referring to this incoming argument in entry block in MachineFunction. llvm-svn: 130129
* Make tests more useful.Benjamin Kramer2011-04-258-12/+12
| | | | | | lit needs a linter ... llvm-svn: 130126
* Remove some hard coded CR-LFs. Some of these were the entire files, one ofChandler Carruth2011-04-256-498/+498
| | | | | | | these was just one line of a file. Explicitly set the eol-style property on the files to try and ensure this fix stays. llvm-svn: 130125
OpenPOWER on IntegriCloud