Skip to content
  1. Apr 13, 2010
  2. Apr 12, 2010
    • Dan Gohman's avatar
      Suppress LinearFunctionTestReplace when the computed backedge-taken · 4a645b88
      Dan Gohman authored
      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
      4a645b88
    • Johnny Chen's avatar
      Fixed a crasher in arm disassembler within ARMInstPrinter.cpp after calling · fc93503c
      Johnny Chen authored
      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
      fc93503c
    • Dan Gohman's avatar
      Remove a #include. · e4148978
      Dan Gohman authored
      llvm-svn: 101043
      e4148978
    • Tobias Grosser's avatar
      Remove unneeded debug in PostDominator runOnFunction() · 4885db6f
      Tobias Grosser authored
      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
      4885db6f
    • Tobias Grosser's avatar
      Remove dead code in the dotty dominance tree printer. · 6a5eef40
      Tobias Grosser authored
      This template is not needed anymore as it was replaced by the
      DOTGraphTraitsViewer.
      
      llvm-svn: 101036
      6a5eef40
    • Benjamin Kramer's avatar
      Plug trivial leak. · d0b5c6cb
      Benjamin Kramer authored
      llvm-svn: 101034
      d0b5c6cb
    • Dan Gohman's avatar
      Delete this code, which is no longer needed. · 27c8e798
      Dan Gohman authored
      llvm-svn: 101033
      27c8e798
    • Dan Gohman's avatar
      Move the EliminateIVUsers call back out to its original location. Now that · 07f6563e
      Dan Gohman authored
      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
      07f6563e
    • Dan Gohman's avatar
      Generalize ScalarEvolution's PHI analysis to handle loops that don't · 6635bb26
      Dan Gohman authored
      have preheaders or dedicated exit blocks, as clients may not otherwise
      need to run LoopSimplify.
      
      llvm-svn: 101030
      6635bb26
    • Dan Gohman's avatar
      Rewrite the overflow checking in the get{Signed,Unsigned}Range code for · f76210ea
      Dan Gohman authored
      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
      f76210ea
    • Dan Gohman's avatar
      Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons, · 15f90c29
      Dan Gohman authored
      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
      15f90c29
    • Evan Cheng's avatar
      Enable post regalloc machine licm by default. · 25028391
      Evan Cheng authored
      llvm-svn: 101023
      25028391
    • Eric Christopher's avatar
      Verify function prototypes before trying to optimize functions. We also · 1f272f7f
      Eric Christopher authored
      need TargetData, just return false if we don't have it.
      
      Update testcases accordingly.
      
      Fixes PR6807.
      
      llvm-svn: 101011
      1f272f7f
    • Dan Gohman's avatar
      Remove unnecessary parens. · ecd40a34
      Dan Gohman authored
      llvm-svn: 101010
      ecd40a34
    • Dan Gohman's avatar
      Minor code simplification. · f1e40e60
      Dan Gohman authored
      llvm-svn: 101009
      f1e40e60
    • Dan Gohman's avatar
      Re-apply r101000, with a fix: Don't eliminate an icmp which is part of · fa5ad797
      Dan Gohman authored
      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
      fa5ad797
    • Dan Gohman's avatar
      Revert 101000, which is breaking self-host builds. · c0f1efaf
      Dan Gohman authored
      llvm-svn: 101002
      c0f1efaf
    • Dan Gohman's avatar
      Fix indentation. · 068b7936
      Dan Gohman authored
      llvm-svn: 101001
      068b7936
    • Dan Gohman's avatar
      Teach IndVarSimplify how to eliminate comparisons involving induction · af4ab1b6
      Dan Gohman authored
      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
      af4ab1b6
    • Dan Gohman's avatar
      Enhance ScalarEvolution::isKnownPredicate with support for · 07591698
      Dan Gohman authored
      loop conditions which are invariants.
      
      llvm-svn: 100995
      07591698
    • Dan Gohman's avatar
      Minor code simplification. · f7f28511
      Dan Gohman authored
      llvm-svn: 100994
      f7f28511
    • Dan Gohman's avatar
      When creating a ConstantRange for [n,UINT_MAX], special case n == 0, because · ae4a4148
      Dan Gohman authored
      ConstantRange(0, 0) creates an empty range rather than a full one.
      
      llvm-svn: 100993
      ae4a4148
  3. Apr 11, 2010
  4. Apr 10, 2010
Loading