Skip to content
  1. Oct 11, 2012
  2. Oct 10, 2012
    • Bill Schmidt's avatar
      XFAIL for all targets pending investigation · 6d110a51
      Bill Schmidt authored
      llvm-svn: 165664
      6d110a51
    • Michael J. Spencer's avatar
      [Options] make Option a value type. · 91599874
      Michael J. Spencer authored
      llvm-svn: 165663
      91599874
    • Jason Molenda's avatar
      Move the scratch buffer allocation for x86 instructions from being allocated each instruction, · 64dc7798
      Jason Molenda authored
      to once in the AssemblyParse_x86 ctor.
      an instruction
      
      llvm-svn: 165662
      64dc7798
    • Nadav Rotem's avatar
      Patch by Shuxin Yang <shuxin.llvm@gmail.com>. · 17418964
      Nadav Rotem authored
      Original message:
      
      The attached is the fix to radar://11663049. The optimization can be outlined by following rules:
      
         (select (x != c), e, c) -> select (x != c), e, x),
         (select (x == c), c, e) -> select (x == c), x, e)
      where the <c> is an integer constant.
      
       The reason for this change is that : on x86, conditional-move-from-constant needs two instructions;
      however, conditional-move-from-register need only one instruction.
      
        While the LowerSELECT() sounds to be the most convenient place for this optimization, it turns out to be a bad place. The reason is that by replacing the constant <c> with a symbolic value, it obscure some instruction-combining opportunities which would otherwise be very easy to spot. For that reason, I have to postpone the change to last instruction-combining phase.
      
        The change passes the test of "make check-all -C <build-root/test" and "make -C project/test-suite/SingleSource".
      
      llvm-svn: 165661
      17418964
    • Jordan Rose's avatar
      [analyzer] Treat fields of unions as having symbolic offsets. · fb29410c
      Jordan Rose authored
      This allows only one field to be active at a time in RegionStore.
      This isn't quite the correct behavior for unions, but it at least
      would handle the case of "value goes in, value comes out" from the
      same field.
      
      RegionStore currently has a number of places where any access to a union
      results in UnknownVal being returned. However, it is clearly missing
      some cases, or the original issue wouldn't have occurred. It is probably
      now safe to remove those changes, but that's a potentially destabilizing
      change that should wait for more thorough testing.
      
      Fixes PR14054.
      
      llvm-svn: 165660
      fb29410c
Loading