Skip to content
Snippets Groups Projects
  1. Jan 18, 2005
    • Chris Lattner's avatar
      Allow setcc operations to have non-bool types. · 178219f9
      Chris Lattner authored
      llvm-svn: 19655
      178219f9
    • Chris Lattner's avatar
      Rely on the code in MatchAddress to do this work. Otherwise we fail to · d7f93950
      Chris Lattner authored
      match (X+Y)+(Z << 1), because we match the X+Y first, consuming the index
      register, then there is no place to put the Z.
      
      llvm-svn: 19652
      d7f93950
    • Chris Lattner's avatar
      Fix the completely broken FP constant folds for setcc's. · 2b4b7958
      Chris Lattner authored
      llvm-svn: 19651
      2b4b7958
    • Chris Lattner's avatar
      Fix a problem where probing for addressing modes caused expressions to be · a7acdda0
      Chris Lattner authored
      emitted too early.  In particular, this fixes
      Regression/CodeGen/X86/regpressure.ll:regpressure3.
      
      This also improves the 2nd basic block in 164.gzip:flush_block, which went from
      
      .LBBflush_block_1:      # loopentry.1.i
              movzx %EAX, WORD PTR [dyn_ltree + 20]
              movzx %ECX, WORD PTR [dyn_ltree + 16]
              mov DWORD PTR [%ESP + 32], %ECX
              movzx %ECX, WORD PTR [dyn_ltree + 12]
              movzx %EDX, WORD PTR [dyn_ltree + 8]
              movzx %EBX, WORD PTR [dyn_ltree + 4]
              mov DWORD PTR [%ESP + 36], %EBX
              movzx %EBX, WORD PTR [dyn_ltree]
              add DWORD PTR [%ESP + 36], %EBX
              add %EDX, DWORD PTR [%ESP + 36]
              add %ECX, %EDX
              add DWORD PTR [%ESP + 32], %ECX
              add %EAX, DWORD PTR [%ESP + 32]
              movzx %ECX, WORD PTR [dyn_ltree + 24]
              add %EAX, %ECX
              mov %ECX, 0
              mov %EDX, %ECX
      
      to
      
      .LBBflush_block_1:      # loopentry.1.i
              movzx %EAX, WORD PTR [dyn_ltree]
              movzx %ECX, WORD PTR [dyn_ltree + 4]
              add %ECX, %EAX
              movzx %EAX, WORD PTR [dyn_ltree + 8]
              add %EAX, %ECX
              movzx %ECX, WORD PTR [dyn_ltree + 12]
              add %ECX, %EAX
              movzx %EAX, WORD PTR [dyn_ltree + 16]
              add %EAX, %ECX
              movzx %ECX, WORD PTR [dyn_ltree + 20]
              add %ECX, %EAX
              movzx %EAX, WORD PTR [dyn_ltree + 24]
              add %ECX, %EAX
              mov %EAX, 0
              mov %EDX, %EAX
      
      ... which results in less spilling in the function.
      
      This change alone speeds up 164.gzip from 37.23s to 36.24s on apoc.  The
      default isel takes 37.31s.
      
      llvm-svn: 19650
      a7acdda0
    • Chris Lattner's avatar
      Fix indentation. · b93409f3
      Chris Lattner authored
      llvm-svn: 19649
      b93409f3
    • Chris Lattner's avatar
      This is a carefully contrived testcase where the X86 ISel is emitting all loads · 81841af5
      Chris Lattner authored
      before other ops, causing it to spill like mad.  This occurs in
      164.gzip:flush_block.
      
      llvm-svn: 19648
      81841af5
    • Chris Lattner's avatar
      Don't bother using max here. · a5d137f4
      Chris Lattner authored
      llvm-svn: 19647
      a5d137f4
  2. Jan 17, 2005
  3. Jan 16, 2005
Loading