Skip to content
  1. Jun 10, 2004
    • Chris Lattner's avatar
      Fix a bug in my checkin from last night that caused miscompilations of · ee59d4bf
      Chris Lattner authored
      186.crafty, fhourstones and 132.ijpeg.
      
      Bugpoint makes really nasty miscompilations embarassingly easy to find.  It
      narrowed it down to the instcombiner and this testcase (from fhourstones):
      
      bool %l7153_l4706_htstat_loopentry_2E_4_no_exit_2E_4(int* %i, [32 x int]* %works, int* %tmp.98.out) {
      newFuncRoot:
              %tmp.96 = load int* %i          ; <int> [#uses=1]
              %tmp.97 = getelementptr [32 x int]* %works, long 0, int %tmp.96         ; <int*> [#uses=1]
              %tmp.98 = load int* %tmp.97             ; <int> [#uses=2]
              %tmp.99 = load int* %i          ; <int> [#uses=1]
              %tmp.100 = and int %tmp.99, 7           ; <int> [#uses=1]
              %tmp.101 = seteq int %tmp.100, 7                ; <bool> [#uses=2]
              %tmp.102 = cast bool %tmp.101 to int            ; <int> [#uses=0]
              br bool %tmp.101, label %codeRepl4.exitStub, label %codeRepl3.exitStub
      
      codeRepl4.exitStub:             ; preds = %newFuncRoot
              store int %tmp.98, int* %tmp.98.out
              ret bool true
      
      codeRepl3.exitStub:             ; preds = %newFuncRoot
              store int %tmp.98, int* %tmp.98.out
              ret bool false
      }
      
      ... which only has one combination performed on it:
      
      $ llvm-as < t.ll | opt -instcombine -debug | llvm-dis
      IC: Old =       %tmp.101 = seteq int %tmp.100, 7                ; <bool> [#uses=1]
          New =       setne int %tmp.100, 0           ; <bool>:<badref> [#uses=0]
      IC: MOD =       br bool %tmp.101, label %codeRepl3.exitStub, label %codeRepl4.exitStub
      IC: MOD =       %tmp.97 = getelementptr [32 x int]* %works, uint 0, int %tmp.96         ; <int*> [#uses=1]
      
      It doesn't get much better than this.  :)
      
      llvm-svn: 14109
      ee59d4bf
    • Chris Lattner's avatar
      More minor cleanups · c8e7e298
      Chris Lattner authored
      llvm-svn: 14108
      c8e7e298
    • Chris Lattner's avatar
      Eliminate many occurrances of Instruction:: · df20a4d5
      Chris Lattner authored
      llvm-svn: 14107
      df20a4d5
    • Chris Lattner's avatar
      Share some code · 88ba175c
      Chris Lattner authored
      llvm-svn: 14106
      88ba175c
    • Chris Lattner's avatar
      Tolerate more errors · 68a038e6
      Chris Lattner authored
      llvm-svn: 14104
      68a038e6
  2. Jun 09, 2004
  3. Jun 08, 2004
  4. Jun 07, 2004
    • Chris Lattner's avatar
      Make all of this functionality work directly on win32. Properly conditionalize · 07ab2d1d
      Chris Lattner authored
      system specific stuff on HAVE_MKSTEMP
      
      llvm-svn: 14051
      07ab2d1d
    • Chris Lattner's avatar
      Implement getTimeRecord natively in Win32, properly conditionalize the · 6068345c
      Chris Lattner authored
      getrusage implementation on HAVE_GETRUSAGE
      
      llvm-svn: 14050
      6068345c
    • Reid Spencer's avatar
      Commit For New Tool: llvm-abcd (Analysis of ByteCode Dumper). This tool · db5c86d0
      Reid Spencer authored
      will (eventually) provide statistical analysis of bytecode files as well
      as the ability to dump them in a low level format (slot numbers not
      resolved). The purpose of this is to aid in the Type!=Value change of
      bug 122. With this initial release, llvm-abcd merely dumps out the
      bytecode. However, the infrastructure for separating bytecode parsing from
      handling the parsing events is in place. The style chosen is similar to
      SAX XML parsing where a handler object is called to handlign the parsing
      events. This probably isn't useful to anyone but me right now as there is
      no analysis yet, and the dumper doesn't work on every bytecode file. It
      will probably be useful by the end of this week. Note that there is some
      duplication of code from the bytecode reader.  This was done to eliminate
      errors from being introduced in the reader and to minimize the impact to
      other LLVM developers. At some point, the Analyzer and the Reader will be
      integrated to use the same infrastructure. Also, sorry for the minor change
      to Instruction.h but I just couldn't bring myself to write code that
      depends on Instruction internals.
      
      llvm-svn: 14048
      db5c86d0
  5. Jun 05, 2004
Loading