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
  7. Jan 23, 2009
    • Devang Patel's avatar
      Introduce two DWARF attribute extentions DW_AT_APPLE_optimized, DW_AT_APPLE_flags. · ccfacfff
      Devang Patel authored
      DW_AT_APPLE_optimized flag is set when a compile_unit is optimized. The debugger takes advantage of this information some way.
      
      DW_AT_APPLE_flags encodes command line options when certain env. variable is set. This is used by build engineers to track various gcc command lines used by by  a project, irrespective of whether the project used makefile, Xcode or something else.
      
      llvm-gcc patch is next.
      
      llvm-svn: 62888
      ccfacfff
    • Devang Patel's avatar
      dd7aa378
    • Dan Gohman's avatar
      Fold x-0 to x in unsafe-fp-math mode. This comes up in the · 1275e28d
      Dan Gohman authored
      testcase from PR3376, and in fact is sufficient to completely
      avoid the problem in that testcase.
      
      There's an underlying problem though; TLI.isOperationLegal
      considers Custom to be Legal, which might be ok in some
      cases, but that's what DAGCombiner is using in many places
      to test if something is legal when LegalOperations is true.
      When DAGCombiner is running after legalize, this isn't
      sufficient. I'll address this in a separate commit.
      
      llvm-svn: 62860
      1275e28d
Loading