Skip to content
  1. Feb 19, 2010
    • Dan Gohman's avatar
      Teach ScalarEvolution how to compute a tripcount for a loop with · 6b1e2a82
      Dan Gohman authored
      true or false as its exit condition. These are usually eliminated by
      SimplifyCFG, but the may be left around during a pass which wishes
      to preserve the CFG.
      
      llvm-svn: 96683
      6b1e2a82
    • Bob Wilson's avatar
      Revert Anton's most recent EH patch (r96637), since it breaks a lot of · 336c0a1c
      Bob Wilson authored
      ARM and Thumb tests.
      
      llvm-svn: 96680
      336c0a1c
    • Duncan Sands's avatar
      Revert commits 96556 and 96640, because commit 96556 breaks the · d0bf6f64
      Duncan Sands authored
      dragonegg self-host build.  I reverted 96640 in order to revert
      96556 (96640 goes on top of 96556), but it also looks like with
      both of them applied the breakage happens even earlier.  The
      symptom of the 96556 miscompile is the following crash:
      
        llvm[3]: Compiling AlphaISelLowering.cpp for Release build
        cc1plus: /home/duncan/tmp/tmp/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:4982: void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode*, llvm::SDNode*, llvm::SelectionDAG::DAGUpdateListener*): Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) == To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"' failed.
        Stack dump:
        0.	Running pass 'X86 DAG->DAG Instruction Selection' on function '@_ZN4llvm19AlphaTargetLowering14LowerOperationENS_7SDValueERNS_12SelectionDAGE'
        g++: Internal error: Aborted (program cc1plus)
      
      This occurs when building LLVM using LLVM built by LLVM (via
      dragonegg).  Probably LLVM has miscompiled itself, though it
      may have miscompiled GCC and/or dragonegg itself: at this point
      of the self-host build, all of GCC, LLVM and dragonegg were built
      using LLVM.  Unfortunately this kind of thing is extremely hard
      to debug, and while I did rummage around a bit I didn't find any
      smoking guns, aka obviously miscompiled code.
      
      Found by bisection.
      
      r96556 | evancheng | 2010-02-18 03:13:50 +0100 (Thu, 18 Feb 2010) | 5 lines
      
      Some dag combiner goodness:
      Transform br (xor (x, y)) -> br (x != y)
      Transform br (xor (xor (x,y), 1)) -> br (x == y)
      Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm"
      
      r96640 | evancheng | 2010-02-19 01:34:39 +0100 (Fri, 19 Feb 2010) | 16 lines
      
      Transform (xor (setcc), (setcc)) == / != 1 to
      (xor (setcc), (setcc)) != / == 1.
      
      e.g. On x86_64
        %0 = icmp eq i32 %x, 0
        %1 = icmp eq i32 %y, 0
        %2 = xor i1 %1, %0
        br i1 %2, label %bb, label %return
      =>
      	testl   %edi, %edi
      	sete    %al
      	testl   %esi, %esi
      	sete    %cl
      	cmpb    %al, %cl
      	je      LBB1_2
      
      llvm-svn: 96672
      d0bf6f64
    • Dale Johannesen's avatar
      recommit 96626, evidence that it broke things appears · 1d6827ad
      Dale Johannesen authored
      to be spurious
      
      llvm-svn: 96662
      1d6827ad
    • Johnny Chen's avatar
      Added entries for ASR, LSL, LSR, ROR, and RRX so that the disassembler prints · 1ca8af9b
      Johnny Chen authored
      out the canonical form (A8.6.98) instead of the pseudo-instruction as provided
      via MOVs.
      
      DBG_ARM_DISASM=YES llvm-mc -triple=arm-unknown-unknown --disassemble
      0xc0 0x00 0xa0 0xe1
      Opcode=29 Name=ASR Format=ARM_FORMAT_LDMISCFRM
       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 
      -------------------------------------------------------------------------------------------------
      | 1: 1: 1: 0| 0: 0: 0: 1| 1: 0: 1: 0| 0: 0: 0: 0| 0: 0: 0: 0| 0: 0: 0: 0| 1: 1: 0: 0| 0: 0: 0: 0|
      -------------------------------------------------------------------------------------------------
      
      	asr	r0, r0, #1
      
      llvm-svn: 96654
      1ca8af9b
    • Dale Johannesen's avatar
      Revert 96626, which causes build failure on ppc Darwin. · 1f790c28
      Dale Johannesen authored
      llvm-svn: 96653
      1f790c28
    • Evan Cheng's avatar
      Transform (xor (setcc), (setcc)) == / != 1 to · d2d9252f
      Evan Cheng authored
      (xor (setcc), (setcc)) != / == 1.
      
      e.g. On x86_64
        %0 = icmp eq i32 %x, 0
        %1 = icmp eq i32 %y, 0
        %2 = xor i1 %1, %0
        br i1 %2, label %bb, label %return
      =>
      	testl   %edi, %edi
      	sete    %al
      	testl   %esi, %esi
      	sete    %cl
      	cmpb    %al, %cl
      	je      LBB1_2
      
      llvm-svn: 96640
      d2d9252f
    • Anton Korobeynikov's avatar
      Use the same encoding for EH stuff uniformly on all MachO targets. · 9baeb020
      Anton Korobeynikov authored
      This hopefulyl should unbreak EH on PPC/Darwin.
      
      llvm-svn: 96637
      9baeb020
    • Jim Grosbach's avatar
      Radar 7636153. In the presence of large call frames, it's not sufficient · aa34003f
      Jim Grosbach authored
      for ARM to just check if a function has a FP to determine if it's safe
      to simplify the stack adjustment pseudo ops prior to eliminating frame
      indices. Allow targets to override the default behavior and does so for ARM
      and Thumb2.
      
      llvm-svn: 96634
      aa34003f
    • Dan Gohman's avatar
      When determining the set of interesting reuse factors, consider · 2446f575
      Dan Gohman authored
      strides in foreign loops. This helps locate reuse opportunities
      with existing induction variables in foreign loops and reduces
      the need for inserting new ones. This fixes rdar://7657764.
      
      llvm-svn: 96629
      2446f575
    • Dan Gohman's avatar
      Indvars needs to explicitly notify ScalarEvolution when it is replacing · 60b33264
      Dan Gohman authored
      a loop exit value, so that if a loop gets deleted, ScalarEvolution
      isn't stick holding on to dangling SCEVAddRecExprs for that loop. This
      fixes PR6339.
      
      llvm-svn: 96626
      60b33264
  2. Feb 18, 2010
  3. Feb 17, 2010
Loading