Skip to content
  1. Jan 29, 2009
  2. Jan 28, 2009
  3. Jan 27, 2009
  4. Jan 26, 2009
  5. Jan 25, 2009
    • Dan Gohman's avatar
      Eliminate the loop that searches through each of the operands · f1d38be2
      Dan Gohman authored
      of each use in the SelectionDAG ReplaceAllUses* functions. Thanks
      to Chris for spotting this opportunity.
      
      Also, factor out code from all 5 of the ReplaceAllUses* functions
      into AddNonLeafNodeToCSEMaps, which is now renamed
      AddModifiedNodeToCSEMaps to more accurately reflect its purpose.
      
      llvm-svn: 62964
      f1d38be2
    • Dan Gohman's avatar
      Whitespace tidiments. · 3a113ec4
      Dan Gohman authored
      llvm-svn: 62963
      3a113ec4
    • Dan Gohman's avatar
      Move the N->use_empty() assert from DeleteNode to · e7b0dde2
      Dan Gohman authored
      DeleteNodeNotInCSEMaps, since DeleteNode just calls
      DeleteNodeNotInCSEMaps.
      
      llvm-svn: 62962
      e7b0dde2
    • 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
  6. Jan 24, 2009
Loading