Skip to content
  1. Dec 29, 2010
  2. Dec 28, 2010
  3. Dec 27, 2010
  4. Dec 26, 2010
  5. Dec 25, 2010
  6. Dec 24, 2010
  7. Dec 23, 2010
    • Bob Wilson's avatar
      Radar 8803471: Fix expansion of ARM BCCi64 pseudo instructions. · 36be00ce
      Bob Wilson authored
      If the basic block containing the BCCi64 (or BCCZi64) instruction ends with
      an unconditional branch, that branch needs to be deleted before appending
      the expansion of the BCCi64 to the end of the block.
      
      llvm-svn: 122521
      36be00ce
    • Torok Edwin's avatar
      XFAIL vg_leak the new test as the rest. · 78561c96
      Torok Edwin authored
      llvm-svn: 122517
      78561c96
    • Torok Edwin's avatar
      Fix OCaml bindings crash, PR8847. · 5abf51bd
      Torok Edwin authored
      See http://caml.inria.fr/mantis/view.php?id=4166
      If we call only external functions from a module, then its 'let _' bindings
      don't get executed, which means that the exceptions don't get registered for use
      in the C code.
      This in turn causes llvm_raise to call raise_with_arg() with a NULL pointer and
      cause a segmentation fault.
      
      The workaround is to declare all 'external' functions as 'val' in these .mli
      files.
      
      Also added a separate testcase (the testcase must call only external functions
      for the bug to occur).
      
      llvm-svn: 122497
      5abf51bd
    • Andrew Trick's avatar
      Fixes PR8823: add-with-overflow-128.ll · 033efdf4
      Andrew Trick authored
      In the bottom-up selection DAG scheduling, handle two-address
      instructions that read/write unspillable registers. Treat
      the entire chain of two-address nodes as a single live range.
      
      llvm-svn: 122472
      033efdf4
    • Benjamin Kramer's avatar
      DAGCombine add (sext i1), X into sub X, (zext i1) if sext from i1 is illegal. ... · 1f4dfbbc
      Benjamin Kramer authored
      DAGCombine add (sext i1), X into sub X, (zext i1) if sext from i1 is illegal.  The latter usually compiles into smaller code.
      
      example code:
      unsigned foo(unsigned x, unsigned y) {
        if (x != 0) y--;
        return y;
      }
      
      before:
        _foo:                           ## @foo
          cmpl  $1, 4(%esp)             ## encoding: [0x83,0x7c,0x24,0x04,0x01]
          sbbl  %eax, %eax              ## encoding: [0x19,0xc0]
          notl  %eax                    ## encoding: [0xf7,0xd0]
          addl  8(%esp), %eax           ## encoding: [0x03,0x44,0x24,0x08]
          ret                           ## encoding: [0xc3]
      
      after:
        _foo:                           ## @foo
          cmpl  $1, 4(%esp)             ## encoding: [0x83,0x7c,0x24,0x04,0x01]
          movl  8(%esp), %eax           ## encoding: [0x8b,0x44,0x24,0x08]
          adcl  $-1, %eax               ## encoding: [0x83,0xd0,0xff]
          ret                           ## encoding: [0xc3]
      
      llvm-svn: 122455
      1f4dfbbc
    • Benjamin Kramer's avatar
    • Benjamin Kramer's avatar
      X86: Lower a select directly to a setcc_carry if possible. · 6020ed9d
      Benjamin Kramer authored
        int test(unsigned long a, unsigned long b) { return -(a < b); }
      compiles to
        _test:                              ## @test
          cmpq  %rsi, %rdi                  ## encoding: [0x48,0x39,0xf7]
          sbbl  %eax, %eax                  ## encoding: [0x19,0xc0]
          ret                               ## encoding: [0xc3]
      instead of
        _test:                              ## @test
          xorl  %ecx, %ecx                  ## encoding: [0x31,0xc9]
          cmpq  %rsi, %rdi                  ## encoding: [0x48,0x39,0xf7]
          movl  $-1, %eax                   ## encoding: [0xb8,0xff,0xff,0xff,0xff]
          cmovael %ecx, %eax                ## encoding: [0x0f,0x43,0xc1]
          ret                               ## encoding: [0xc3]
      
      llvm-svn: 122451
      6020ed9d
  8. Dec 22, 2010
Loading