Skip to content
  1. Feb 26, 2010
  2. Feb 25, 2010
  3. Feb 24, 2010
  4. Feb 23, 2010
  5. Feb 22, 2010
  6. Feb 21, 2010
  7. Feb 19, 2010
    • Bob Wilson's avatar
      Revert 96634. It causes assertion failures for 126.gcc and 176.gcc in · fbc9d8d4
      Bob Wilson authored
      the armv6 nightly tests.
      
      llvm-svn: 96691
      fbc9d8d4
    • Charles Davis's avatar
      Add support for the 'alignstack' attribute to the x86 backend. Fixes PR5254. · 7e477677
      Charles Davis authored
      Also, FileCheck'ize a test.
      
      llvm-svn: 96686
      7e477677
    • 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
    • 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
Loading