Skip to content
  1. Feb 21, 2009
  2. Jan 28, 2009
  3. Jan 25, 2009
    • Evan Cheng's avatar
      Teach 2addr pass to be do more commuting. If both uses of a two-address... · abda665f
      Evan Cheng authored
      Teach 2addr pass to be do more commuting. If both uses of a two-address instruction are killed, but the first operand has a use before and after the def, commute if the second operand does not suffer from the same issue.
      %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1                                                                                                                                     
      %reg1029<def> = MOV8rr %reg1028                                                                                                                                                      
      %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead>                                                                                                                            
      insert => %reg1030<def> = MOV8rr %reg1028                                                                                                                                            
      %reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<imp-def,dead>                                                                                                         
      
      In this case, it might not be possible to coalesce the second MOV8rr                                                                                                                 
      instruction if the first one is coalesced. So it would be profitable to                                                                                                              
      commute it:                                                                                                                                                                          
      %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1                                                                                                                                     
      %reg1029<def> = MOV8rr %reg1028                                                                                                                                                      
      %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead>                                                                                                                            
      insert => %reg1030<def> = MOV8rr %reg1029                                                                                                                                            
      %reg1030<def> = ADD8rr %reg1029<kill>, %reg1028<kill>, %EFLAGS<imp-def,dead>
      
      llvm-svn: 62954
      abda665f
  4. Jan 24, 2009
  5. Jan 05, 2009
  6. Nov 12, 2008
  7. Oct 07, 2008
  8. Oct 03, 2008
  9. Sep 04, 2008
  10. Aug 27, 2008
  11. Jul 03, 2008
    • Evan Cheng's avatar
      - Remove calls to copyKillDeadInfo which is an N^2 function. Instead,... · 7d98a48f
      Evan Cheng authored
      - Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
      - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.
      
      llvm-svn: 53097
      7d98a48f
    • Evan Cheng's avatar
      - Add LiveVariables::replaceKillInstruction. This does a subset of... · 7a265d83
      Evan Cheng authored
      - Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers.
      - CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead.
      
      llvm-svn: 53061
      7a265d83
    • Owen Anderson's avatar
      Make LiveVariables even more optional, by making it optional in the call to... · 30cc028e
      Owen Anderson authored
      Make LiveVariables even more optional, by making it optional in the call to TargetInstrInfo::convertToThreeAddressInstruction
      Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place.
      
      llvm-svn: 53058
      30cc028e
  12. Jul 02, 2008
  13. Jun 30, 2008
  14. Jun 25, 2008
  15. Jun 19, 2008
  16. Jun 18, 2008
  17. May 29, 2008
  18. May 27, 2008
  19. May 26, 2008
    • Bill Wendling's avatar
      The enabling of remat in 2-address conversion breaks this test: · 2e8c8289
      Bill Wendling authored
      Running /Users/void/llvm/llvm.src/test/CodeGen/X86/dg.exp ...
      FAIL: /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
      Failed with exit(1) at line 1
      while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll | llc -march=x86 -mattr=+sse2 -stats |&  grep {1 .*folded into instructions}
      child process exited abnormally
      
      Make this conditional for now.
      
      llvm-svn: 51563
      2e8c8289
    • Bill Wendling's avatar
      A problem that's exposed when machine LICM is enabled. Consider this code: · c737e463
      Bill Wendling authored
      LBB1_3:   # bb
      ...
              xorl    %ebp, %ebp
              subl    (%ebx), %ebp
      ...
              incl    %ecx
              cmpl    %edi, %ecx
              jl      LBB1_3  # bb
      
      Whe using machine LICM, LLVM converts it into:
      
              xorl %esi, %esi
      LBB1_3: # bb
      ...
              movl    %esi, %ebp
              subl    (%ebx), %ebp
      ...
              incl    %ecx
              cmpl    %edi, %ecx
              jl      LBB1_3  # bb
      
      Two address conversion inserts the copy instruction. However, it's cheaper to
      rematerialize it, and remat helps reduce register pressure.
      
      llvm-svn: 51562
      c737e463
  20. May 13, 2008
  21. May 10, 2008
    • Bill Wendling's avatar
      Cosmetic changes: · 19e3c857
      Bill Wendling authored
       - Comment fixes.
       - Moar whitespace.
       - Made ivars "private" by default.
      No functionality change.
      
      llvm-svn: 50926
      19e3c857
  22. Mar 27, 2008
  23. Mar 13, 2008
  24. Mar 05, 2008
  25. Feb 10, 2008
  26. Jan 15, 2008
  27. Jan 07, 2008
Loading