summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Suppress LinearFunctionTestReplace when the computed backedge-takenDan Gohman2010-04-121-0/+18
| | | | | | | | | | | | expression is a UDiv and it doesn't appear that the UDiv came from the user's source. ScalarEvolution has recently figured out how to compute a tripcount expression for the inner loop in SingleSource/Benchmarks/Shootout/sieve.c, using a udiv. Emitting a udiv instruction dramatically slows down the enclosing loop. llvm-svn: 101068
* Fixed a crasher in arm disassembler within ARMInstPrinter.cpp after callingJohnny Chen2010-04-122-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ARM_AM::getSoImmVal(V) with a legitimate so_imm value: #245 rotate right by 2. Introduce ARM_AM::getSOImmValOneOrNoRotate(unsigned Arg) which is called from ARMInstPrinter.cpp's printSOImm() function, replacing ARM_AM::getSOImmVal(V). [12:44:43] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ gdb Debug/bin/llvm-mc GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC 2009) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ... done (gdb) set args -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble (gdb) r Starting program: /Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble Reading symbols for shared libraries ++. done 0xf5 0x71 0xf0 0x53 Opcode=201 Name=MVNi Format=ARM_FORMAT_DPFRM(4) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ------------------------------------------------------------------------------------------------- | 0: 1: 0: 1| 0: 0: 1: 1| 1: 1: 1: 1| 0: 0: 0: 0| 0: 1: 1: 1| 0: 0: 0: 1| 1: 1: 1: 1| 0: 1: 0: 1| ------------------------------------------------------------------------------------------------- mvnpls r7, Assertion failed: (V != -1 && "Not a valid so_imm value!"), function printSOImm, file ARMInstPrinter.cpp, line 229. Program received signal SIGABRT, Aborted. 0x00007fff88c65886 in __kill () (gdb) bt #0 0x00007fff88c65886 in __kill () #1 0x00007fff88d05eae in abort () #2 0x00007fff88cf2ef0 in __assert_rtn () #3 0x000000010020e422 in printSOImm (O=@0x1010bdf80, V=-1, VerboseAsm=false, MAI=0x1020106d0) at ARMInstPrinter.cpp:229 #4 0x000000010020e5fe in llvm::ARMInstPrinter::printSOImmOperand (this=0x1020107e0, MI=0x7fff5fbfee70, OpNum=1, O=@0x1010bdf80) at ARMInstPrinter.cpp:254 #5 0x00000001001ffbc0 in llvm::ARMInstPrinter::printInstruction (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMGenAsmWriter.inc:3236 #6 0x000000010020c27c in llvm::ARMInstPrinter::printInst (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMInstPrinter.cpp:182 #7 0x000000010003cbff in PrintInsts (DisAsm=@0x10200f4e0, Printer=@0x1020107e0, Bytes=@0x7fff5fbff060, SM=@0x7fff5fbff078) at Disassembler.cpp:65 #8 0x000000010003c8b4 in llvm::Disassembler::disassemble (T=@0x1010c13c0, Triple=@0x1010b6798, Buffer=@0x102010690) at Disassembler.cpp:153 #9 0x000000010004095c in DisassembleInput (ProgName=0x7fff5fbff3f0 "/Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc") at llvm-mc.cpp:347 #10 0x000000010003eefb in main (argc=4, argv=0x7fff5fbff298) at llvm-mc.cpp:374 (gdb) q The program is running. Exit anyway? (y or n) y [13:36:26] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ llvm-svn: 101053
* Remove a #include.Dan Gohman2010-04-121-1/+0
| | | | llvm-svn: 101043
* Remove unneeded debug in PostDominator runOnFunction()Tobias Grosser2010-04-121-1/+0
| | | | | | | | The information is already available with "opt -analyze". The DominatorTree does also not have this in its runOnFunction. So they behave now more consistent. llvm-svn: 101038
* Remove dead code in the dotty dominance tree printer.Tobias Grosser2010-04-121-25/+0
| | | | | | | This template is not needed anymore as it was replaced by the DOTGraphTraitsViewer. llvm-svn: 101036
* Plug trivial leak.Benjamin Kramer2010-04-121-0/+2
| | | | llvm-svn: 101034
* Delete this code, which is no longer needed.Dan Gohman2010-04-121-4/+0
| | | | llvm-svn: 101033
* Move the EliminateIVUsers call back out to its original location. Now thatDan Gohman2010-04-121-10/+4
| | | | | | | | a ScalarEvolution bug with overflow handling is fixed, the normal analysis code will automatically decline to operate on the icmp instructions which are responsible for the loop exit. llvm-svn: 101032
* Generalize ScalarEvolution's PHI analysis to handle loops that don'tDan Gohman2010-04-121-14/+26
| | | | | | | have preheaders or dedicated exit blocks, as clients may not otherwise need to run LoopSimplify. llvm-svn: 101030
* Rewrite the overflow checking in the get{Signed,Unsigned}Range code forDan Gohman2010-04-121-10/+34
| | | | | | | | | AddRecs so that it checks for overflow in the computation that it is performing, rather than just checking hasNo{Signed,Unsigned}Wrap, since those flags are for a different computation. This fixes a bug that impacts an upcoming change. llvm-svn: 101028
* Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons,Dan Gohman2010-04-121-3/+12
| | | | | | | | instead of deleting just the user. This makes it more consistent with other code in IndVarSimplify, and theoretically can eliminate more users earlier. llvm-svn: 101027
* Enable post regalloc machine licm by default.Evan Cheng2010-04-121-5/+1
| | | | llvm-svn: 101023
* Verify function prototypes before trying to optimize functions. We alsoEric Christopher2010-04-121-2/+48
| | | | | | | | | | need TargetData, just return false if we don't have it. Update testcases accordingly. Fixes PR6807. llvm-svn: 101011
* Remove unnecessary parens.Dan Gohman2010-04-122-4/+4
| | | | llvm-svn: 101010
* Minor code simplification.Dan Gohman2010-04-121-1/+1
| | | | llvm-svn: 101009
* Re-apply r101000, with a fix: Don't eliminate an icmp which is part ofDan Gohman2010-04-121-1/+45
| | | | | | | | the loop exit test. This usually doesn't come up for a variety of reasons, but it isn't impossible, so make IndVarSimplify handle it conservatively. llvm-svn: 101008
* Revert 101000, which is breaking self-host builds.Dan Gohman2010-04-121-38/+0
| | | | llvm-svn: 101002
* Fix indentation.Dan Gohman2010-04-111-1/+1
| | | | llvm-svn: 101001
* Teach IndVarSimplify how to eliminate comparisons involving inductionDan Gohman2010-04-111-0/+38
| | | | | | | | | | | | | variables. For example, with code like this: for (i=0;i<n;++i) if (i<n) x[i] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the if. llvm-svn: 101000
* Enhance ScalarEvolution::isKnownPredicate with support forDan Gohman2010-04-111-8/+33
| | | | | | loop conditions which are invariants. llvm-svn: 100995
* Minor code simplification.Dan Gohman2010-04-111-2/+1
| | | | llvm-svn: 100994
* When creating a ConstantRange for [n,UINT_MAX], special case n == 0, becauseDan Gohman2010-04-111-3/+4
| | | | | | ConstantRange(0, 0) creates an empty range rather than a full one. llvm-svn: 100993
* Add a cast to void to show that the return value is beingDan Gohman2010-04-111-1/+1
| | | | | | intentionally ignored. llvm-svn: 100984
* Delete a dead check.Dan Gohman2010-04-111-1/+0
| | | | llvm-svn: 100983
* Delete dead code.Dan Gohman2010-04-111-26/+0
| | | | llvm-svn: 100981
* Rename isLoopGuardedByCond to isLoopEntryGuardedByCond, to emphasiseDan Gohman2010-04-113-17/+17
| | | | | | | that it's only testing for the entry condition, not full loop-invariant conditions. llvm-svn: 100979
* Implement support for varargs functions without any fixedChris Lattner2010-04-102-31/+23
| | | | | | | | parameters in the CBE by implicitly adding a fixed argument. This allows eliminating a work-around from DAE. Patch by Sylvere Teissier! llvm-svn: 100944
* fix PR6743, a case where we'd delete an instruction before using itChris Lattner2010-04-101-1/+3
| | | | | | in some cases. llvm-svn: 100937
* fix PR6760, a missing check in heap SRoA.Chris Lattner2010-04-101-1/+2
| | | | llvm-svn: 100936
* turn an assert into a proper check, fixing crash on invalid here:Chris Lattner2010-04-101-2/+1
| | | | | | | | | | | $ llvm-as t.ll llvm-as: t.ll:1:6: error: expected 'type' after '=' %0 = = type { i32, float, float, double } ^ PR6810. llvm-svn: 100934
* improve haiku portability, patch by Paul Davey.Chris Lattner2010-04-101-0/+2
| | | | llvm-svn: 100933
* add attributes and module level asm to the ocaml bindings,Chris Lattner2010-04-101-0/+5
| | | | | | patch by Patrick Walton! llvm-svn: 100932
* Fix a typo and some indentation.Dan Gohman2010-04-091-2/+2
| | | | llvm-svn: 100908
* When determining a canonical insert position, don't climb deeperDan Gohman2010-04-091-33/+73
| | | | | | | | into adjacent loops. Also, ensure that the insert position is dominated by the loop latch of any loop in the post-inc set which has a latch. llvm-svn: 100906
* Tidy whitespace.Bob Wilson2010-04-091-9/+8
| | | | llvm-svn: 100904
* suck the propagating "has dynamic libs" check into a single makefile Chris Lattner2010-04-091-2/+2
| | | | | | variable TARGET_HAS_DYNAMIC_LIBS llvm-svn: 100896
* add minix support, patch by Kees van Reeuwijk! PR6797Chris Lattner2010-04-093-2/+17
| | | | llvm-svn: 100895
* clean this up, fix std::min ambiguity on some platforms.Chris Lattner2010-04-091-7/+5
| | | | llvm-svn: 100894
* Adding IPSCCP and Internalize passes to the C-bindingsWesley Peck2010-04-091-0/+9
| | | | llvm-svn: 100893
* Provide versions of the ARM eh_sjlj_setjmp instructions for non-VFP subtargetsBob Wilson2010-04-092-2/+35
| | | | | | | | | such that the non-VFP versions have no implicit defs of VFP registers. If any callee-saved VFP registers are marked as having been defined, the prologue/epilogue code will try to save and restore them. Radar 7770432. llvm-svn: 100892
* When emitting code for an add, don't force a SCEVUnknown wrapper aroundDan Gohman2010-04-091-3/+4
| | | | | | | a hoisted intermediate result if the intermediate result isn't an Instruction. llvm-svn: 100884
* When looking for loop-invariant users, look through no-op instructions,Dan Gohman2010-04-091-3/+11
| | | | | | | so that an unfortunately placed bitcast doesn't pin a value in a register. llvm-svn: 100883
* "On SPU, variables in the .bss section that are allocated with the .lcomm ↵Chris Lattner2010-04-091-1/+0
| | | | | | | | | | directive are not aligned on 16 byte boundaries. This causes misaligned loads, as the generated assembly assumes this "default" alignment. this patch disables .lcomm in favour of '.local .comm' Patch by Kalle Raisklia! llvm-svn: 100875
* Add a comment.Dan Gohman2010-04-091-1/+2
| | | | llvm-svn: 100874
* Clear InsnsBeginScopeSet and InsnsEndScopeSet at the end of function.Devang Patel2010-04-091-0/+2
| | | | llvm-svn: 100867
* performance: cache result of looking up userGabor Greif2010-04-091-4/+6
| | | | llvm-svn: 100862
* Minor code simplification.Dan Gohman2010-04-091-9/+5
| | | | llvm-svn: 100859
* Delete this obsolete comment.Dan Gohman2010-04-091-4/+0
| | | | llvm-svn: 100858
* const-ize a predicateGabor Greif2010-04-091-2/+2
| | | | llvm-svn: 100856
* Add a missing dependency to this library when building with CMake.Chandler Carruth2010-04-091-0/+2
| | | | llvm-svn: 100852
OpenPOWER on IntegriCloud