Skip to content
  1. Mar 10, 2008
  2. Mar 01, 2008
  3. Feb 10, 2008
  4. Feb 08, 2008
  5. Jan 11, 2008
    • Chris Lattner's avatar
      Simplify the side effect stuff a bit more and make licm/sinking · c8226f32
      Chris Lattner authored
      both work right according to the new flags.
      
      This removes the TII::isReallySideEffectFree predicate, and adds
      TII::isInvariantLoad. 
      
      It removes NeverHasSideEffects+MayHaveSideEffects and adds
      UnmodeledSideEffects as machine instr flags.  Now the clients
      can decide everything they need.
      
      I think isRematerializable can be implemented in terms of the
      flags we have now, though I will let others tackle that.
      
      llvm-svn: 45843
      c8226f32
  6. Jan 07, 2008
  7. Jan 05, 2008
  8. Jan 02, 2008
  9. Jan 01, 2008
  10. Dec 31, 2007
  11. Dec 30, 2007
    • Bill Wendling's avatar
      If we have a load of a global address that's not modified during the · 7749a901
      Bill Wendling authored
      function, then go ahead and hoist it out of the loop. This is the result:
      
      $ cat a.c
      volatile int G;
      
      int A(int N) {
        for (; N > 0; --N)
          G++;
      }
      $ llc -o - -relocation-model=pic
      _A:
      ...
      LBB1_2: # bb
              movl    L_G$non_lazy_ptr-"L1$pb"(%eax), %esi
              incl    (%esi)
              incl    %edx
              cmpl    %ecx, %edx
              jne     LBB1_2  # bb
      ...
      $ llc -o - -relocation-model=pic -machine-licm
      _A:
      ...
              movl    L_G$non_lazy_ptr-"L1$pb"(%eax), %eax
      LBB1_2: # bb
              incl    (%eax)
              incl    %edx
              cmpl    %ecx, %edx
              jne     LBB1_2  # bb
      ...
      
      I'm limiting this to the MOV32rm x86 instruction for now.
      
      llvm-svn: 45444
      7749a901
  12. Dec 29, 2007
  13. Dec 18, 2007
  14. Dec 09, 2007
  15. Dec 08, 2007
    • Bill Wendling's avatar
      Renaming: · 2b07d8c5
      Bill Wendling authored
        isTriviallyReMaterializable -> hasNoSideEffects
        isReallyTriviallyReMaterializable -> isTriviallyReMaterializable
      
      llvm-svn: 44702
      2b07d8c5
  16. Aug 29, 2007
  17. Jun 26, 2007
  18. Jun 19, 2007
    • Dan Gohman's avatar
      Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad · 9e820649
      Dan Gohman authored
      with a general target hook to identify rematerializable instructions. Some
      instructions are only rematerializable with specific operands, such as loads
      from constant pools, while others are always rematerializable. This hook
      allows both to be identified as being rematerializable with the same
      mechanism.
      
      llvm-svn: 37644
      9e820649
  19. Jun 15, 2007
  20. Jun 14, 2007
  21. May 18, 2007
  22. Apr 11, 2007
  23. Jan 26, 2007
  24. Dec 05, 2006
  25. Dec 01, 2006
  26. Oct 28, 2006
  27. Oct 21, 2006
  28. Oct 20, 2006
  29. Oct 18, 2006
  30. Oct 13, 2006
  31. Sep 08, 2006
  32. May 30, 2006
  33. May 24, 2006
  34. May 18, 2006
  35. Feb 02, 2006
  36. Feb 01, 2006
    • Evan Cheng's avatar
      - Use xor to clear integer registers (set R, 0). · 9e350cd6
      Evan Cheng authored
      - Added a new format for instructions where the source register is implied
        and it is same as the destination register. Used for pseudo instructions
        that clear the destination register.
      
      llvm-svn: 25872
      9e350cd6
Loading