Skip to content
  1. Apr 14, 2010
  2. Apr 13, 2010
  3. 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
      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
    • 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
      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
      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
  4. Apr 10, 2010
  5. Apr 09, 2010
Loading