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
    • 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
    • Bill Schmidt's avatar
      When generating spill and reload code for vector registers on PowerPC, · b9bc4740
      Bill Schmidt authored
      the compiler makes use of GPR0.  However, there are two flavors of
      GPR0 defined by the target:  the 32-bit GPR0 (R0) and the 64-bit GPR0
      (X0).  The spill/reload code makes use of R0 regardless of whether we
      are generating 32- or 64-bit code.
      
      This patch corrects the problem in the obvious manner, using X0 and
      ADDI8 for 64-bit and R0 and ADDI for 32-bit.
      
      llvm-svn: 165658
      b9bc4740
    • Bill Schmidt's avatar
      The PowerPC VRSAVE register has been somewhat of an odd beast since · 38d94587
      Bill Schmidt authored
      the Altivec extensions were introduced.  Its use is optional, and
      allows the compiler to communicate to the operating system which
      vector registers should be saved and restored during a context switch.
      In practice, this information is ignored by the various operating
      systems using the SVR4 ABI; the kernel saves and restores the entire
      register state.  Setting the VRSAVE register is no longer performed by
      the AIX XL compilers, the IBM i compilers, or by GCC on Power Linux
      systems.  It seems best to avoid this logic within LLVM as well.
      
      This patch avoids generating code to update and restore VRSAVE for the
      PowerPC SVR4 ABIs (32- and 64-bit).  The code remains in place for the
      Darwin ABI.
      
      llvm-svn: 165656
      38d94587
    • Micah Villmow's avatar
      Add in support for expansion of all of the comparison operations to the... · 0242b9b5
      Micah Villmow authored
      Add in support for expansion of all of the comparison operations to the absolute minimum required set. This allows a backend to expand any arbitrary set of comparisons as long as a minimum set is supported.
      The minimum set of required instructions is ISD::AND, ISD::OR, ISD::SETO(or ISD::SETOEQ) and ISD::SETUO(or ISD::SETUNE). Everything is expanded into one of two patterns:
      Pattern 1: (LHS CC1 RHS) Opc (LHS CC2 RHS)
      Pattern 2: (LHS CC1 LHS) Opc (RHS CC2 RHS)
      
      llvm-svn: 165655
      0242b9b5
    • Sean Silva's avatar
      Revert r165652: "Remove unnecessary RTTI from the build." · c399c753
      Sean Silva authored
      ... Apparently the RTTI is still necessary for some reason.
      
      llvm-svn: 165654
      c399c753
    • Sean Silva's avatar
      Remove unnecessary RTTI from the build. · 9b72524e
      Sean Silva authored
      llvm-svn: 165652
      9b72524e
    • Sean Silva's avatar
      tblgen: Compile TableGen without RTTI. · bd7d2431
      Sean Silva authored
      TableGen no longer needs RTTI!
      
      llvm-svn: 165651
      bd7d2431
    • Sean Silva's avatar
      tblgen: Move mini Type hierarchy to LLVM-style RTTI. · c0a9e39d
      Sean Silva authored
      llvm-svn: 165648
      c0a9e39d
    • Sean Silva's avatar
      tblgen: Use semantically correct RTTI functions. · 88eb8dd4
      Sean Silva authored
      Also, some minor cleanup.
      
      llvm-svn: 165647
      88eb8dd4
    • Sean Silva's avatar
      tblgen: Mechanically move dynamic_cast<> to dyn_cast<>. · fb509ed1
      Sean Silva authored
      Some of these dyn_cast<>'s would be better phrased as isa<> or cast<>.
      That will happen in a future patch.
      
      There are also two dyn_cast_or_null<>'s slipped in instead of
      dyn_cast<>'s, since they were causing crashes with just dyn_cast<>.
      
      llvm-svn: 165646
      fb509ed1
    • Sean Silva's avatar
      tblgen: Put dyn_cast<> machinery in place for Init hierarchy. · be46d12e
      Sean Silva authored
      llvm-svn: 165645
      be46d12e
    • Duncan Sands's avatar
      Add the testcase from pr13254 (the old scalarreply pass handles this wrong; · 244e3ba5
      Duncan Sands authored
      the new sroa pass handles it right).
      
      llvm-svn: 165644
      244e3ba5
    • Bill Wendling's avatar
      Remove dead variable. · 9a6717f6
      Bill Wendling authored
      llvm-svn: 165639
      9a6717f6
    • Michael Liao's avatar
      Specify CPU model to avoid breaking ATOM builds · e26b0313
      Michael Liao authored
      llvm-svn: 165638
      e26b0313
    • Bill Wendling's avatar
      Remove unused argument. · 707953d0
      Bill Wendling authored
      llvm-svn: 165636
      707953d0
    • Sean Silva's avatar
      docs: Propagate fix from r165632 to other docs. · 529ecebe
      Sean Silva authored
      There are only two other instances of using `.. code::` instead of
      `..  code-block::`.
      
      llvm-svn: 165633
      529ecebe
    • Sean Silva's avatar
      docs: Attempt to fix PR14053. · 9ce5c066
      Sean Silva authored
      Hypothesis 1: use of `.. code::` directive instead of `.. code-block::`
      is causing Sphinx to discard the block. On my machine, `.. code::`
      renders fine. However, I don't think that `..  code::` is actually a
      legit Sphinx directive. I believe that on my machine Sphinx is falling
      back to just displaying it monospace with no syntax, whereas llvm.org's
      Sphinx is just discarding it.
      
      This is truly "remote debugging" since I can't reproduce this on my
      machine. It would be helpful to be able to see the llvm.org Sphinx
      build logs; if that's possible please let me know.
      
      llvm-svn: 165632
      9ce5c066
Loading