Skip to content
  1. Apr 21, 2005
    • Chris Lattner's avatar
      Instcombine this: · 374e6594
      Chris Lattner authored
              %shortcirc_val = select bool %tmp.1, bool true, bool %tmp.4             ; <bool> [#uses=1]
              %tmp.6 = cast bool %shortcirc_val to int                ; <int> [#uses=1]
      
      into this:
      
              %shortcirc_val = or bool %tmp.1, %tmp.4         ; <bool> [#uses=1]
              %tmp.6 = cast bool %shortcirc_val to int                ; <int> [#uses=1]
      
      not this:
      
              %tmp.4.cast = cast bool %tmp.4 to int           ; <int> [#uses=1]
              %tmp.6 = select bool %tmp.1, int 1, int %tmp.4.cast             ; <int> [#uses=1]
      
      llvm-svn: 21389
      374e6594
    • Chris Lattner's avatar
      Teach simplifycfg that setcc is cheap and non-trapping, so that it can · b38b443b
      Chris Lattner authored
      convert this:
      
              %tmp.1 = seteq int %i, 0                ; <bool> [#uses=1]
              br bool %tmp.1, label %shortcirc_done, label %shortcirc_next
      
      shortcirc_next:         ; preds = %entry
              %tmp.4 = seteq int %j, 0                ; <bool> [#uses=1]
              br label %shortcirc_done
      
      shortcirc_done:         ; preds = %shortcirc_next, %entry
              %shortcirc_val = phi bool [ %tmp.4, %shortcirc_next ], [ true, %entry ]         ; <bool> [#uses=1]
      
      to this:
              %tmp.1 = seteq int %i, 0                ; <bool> [#uses=1]
              %tmp.4 = seteq int %j, 0                ; <bool> [#uses=1]
              %shortcirc_val = select bool %tmp.1, bool true, bool %tmp.4             ; <bool> [#uses=1]
      
      ... which is later simplified by instcombine into an or.
      
      llvm-svn: 21388
      b38b443b
  2. Apr 19, 2005
  3. Apr 18, 2005
  4. Apr 15, 2005
    • Chris Lattner's avatar
      a new simple pass, which will be extended to be more useful in the future. · 16a50fd0
      Chris Lattner authored
      This pass forward branches through conditions when it can show that the
      conditions is either always true or false for a predecessor.  This currently
      only handles the most simple cases of this, but is successful at threading
      across 2489 branches and 65 switch instructions in 176.gcc, which isn't bad.
      
      llvm-svn: 21306
      16a50fd0
  5. Apr 12, 2005
  6. Apr 08, 2005
  7. Apr 07, 2005
  8. Mar 29, 2005
  9. Mar 28, 2005
  10. Mar 25, 2005
  11. Mar 23, 2005
  12. Mar 17, 2005
  13. Mar 15, 2005
  14. Mar 06, 2005
  15. Mar 05, 2005
  16. Mar 04, 2005
  17. Mar 03, 2005
  18. Mar 01, 2005
    • Jeff Cohen's avatar
      Fixed the following LSR bugs: · 8ea6f9e8
      Jeff Cohen authored
        * Loop invariant code does not dominate the loop header, but rather
          the end of the loop preheader.
      
        * The base for a reduced GEP isn't a constant unless all of its
          operands (preceding the induction variable) are constant.
      
        * Allow induction variable elimination for the simple case after all.
      
      Also made changes recommended by Chris for properly deleting
      instructions.
      
      llvm-svn: 20383
      8ea6f9e8
  19. Feb 28, 2005
  20. Feb 27, 2005
  21. Feb 26, 2005
  22. Feb 24, 2005
    • Chris Lattner's avatar
      Implement Transforms/SimplifyCFG/switch_thread.ll · 1cca959e
      Chris Lattner authored
      This does a simple form of "jump threading", which eliminates CFG edges that
      are provably dead.  This triggers 90 times in the external tests, and
      eliminating CFG edges is always always a good thing! :)
      
      llvm-svn: 20300
      1cca959e
Loading