Skip to content
  1. Jan 02, 2005
  2. Jan 01, 2005
    • Jeff Cohen's avatar
      Add functions for determining if the stdin/out/err is connected to a · b90c31fb
      Jeff Cohen authored
      console or not.
      
      llvm-svn: 19236
      b90c31fb
    • Reid Spencer's avatar
      Add functions for determining if the stdin/out/err is connected to a · 6f802ba8
      Reid Spencer authored
      console or not.
      
      llvm-svn: 19233
      6f802ba8
    • Chris Lattner's avatar
      This is a bulk commit that implements the following primary improvements: · 86102b8a
      Chris Lattner authored
        * We can now fold cast instructions into select instructions that
          have at least one constant operand.
        * We now optimize expressions more aggressively based on bits that are
          known to be zero.  These optimizations occur a lot in code that uses
          bitfields even in simple ways.
        * We now turn more cast-cast sequences into AND instructions.  Before we
          would only do this if it if all types were unsigned.  Now only the
          middle type needs to be unsigned (guaranteeing a zero extend).
        * We transform sign extensions into zero extensions in several cases.
      
      This corresponds to these test/Regression/Transforms/InstCombine testcases:
        2004-11-22-Missed-and-fold.ll
        and.ll: test28-29
        cast.ll: test21-24
        and-or-and.ll
        cast-cast-to-and.ll
        zeroext-and-reduce.ll
      
      llvm-svn: 19220
      86102b8a
    • Chris Lattner's avatar
      Fix a FIXME: Select instructions on longs were miscompiled. · 83df5d25
      Chris Lattner authored
      While we're at it, improve codegen of select instructions.  For this
      testcase:
      
      int %test(bool %C, int %A, int %B) {
        %D = select bool %C, int %A, int %B
        ret int %D
      }
      
      We used to generate this code:
      
      _test:
              cmpwi cr0, r3, 0
              bne .LBB_test_2 ;
      .LBB_test_1:    ;
              b .LBB_test_3   ;
      .LBB_test_2:    ;
              or r5, r4, r4
      .LBB_test_3:    ;
              or r3, r5, r5
              blr
      
      Now we emit:
      
      _test:
              cmpwi cr0, r3, 0
              bne .LBB_test_2 ;
      .LBB_test_1:    ;
              or r4, r5, r5
      .LBB_test_2:    ;
              or r3, r4, r4
              blr
      
      -Chris
      
      llvm-svn: 19214
      83df5d25
    • Chris Lattner's avatar
      Substantially improve the code generated by non-folded setcc instructions. · 78394258
      Chris Lattner authored
      In particular, instead of compiling this:
      
      bool %test(int %A, int %B) {
        %C = setlt int %A, %B
        ret bool %C
      }
      
      to this:
      
      test:
              save %sp, -96, %sp
              subcc %i0, %i1, %g0
              bl .LBBtest_1   !
              nop
              ba .LBBtest_2   !
              nop
      .LBBtest_1:     !
              or %g0, 1, %i0
              ba .LBBtest_3   !
              nop
      .LBBtest_2:     !
              or %g0, 0, %i0
              ba .LBBtest_3   !
              nop
      .LBBtest_3:     !
              restore %g0, %g0, %g0
              retl
              nop
      
      We now compile it to this:
      
      test:
              save %sp, -96, %sp
              subcc %i0, %i1, %g0
              or %g0, 1, %i0
              bl .LBBtest_2   !
              nop
      .LBBtest_1:     !
              or %g0, %g0, %i0
      .LBBtest_2:     !
              restore %g0, %g0, %g0
              retl
              nop
      
      llvm-svn: 19213
      78394258
    • Chris Lattner's avatar
      Implement SimplifyCFG/DeadSetCC.ll · 3215bb60
      Chris Lattner authored
      SimplifyCFG is one of those passes that we use for final cleanup: it should
      not rely on other passes to clean up its garbage.  This fixes the "why are
      trivially dead setcc's in the output of gccas" problem.
      
      llvm-svn: 19212
      3215bb60
    • Chris Lattner's avatar
      Allow getZeroExtend and getSignExtend to work with boolean inputs. · 1ece6f83
      Chris Lattner authored
      llvm-svn: 19210
      1ece6f83
  3. Dec 31, 2004
  4. Dec 30, 2004
  5. Dec 29, 2004
  6. Dec 27, 2004
    • Reid Spencer's avatar
      Fix a bug that made the nightly tester *really* slow. During changes for · ad7bdf74
      Reid Spencer authored
      portability, the --track-space option was inadvertently ignored. This patch
      fixes that so that sys::Process::GetMallocUsage() is only invoked if the
      --track-spaces option is given. Apparently the mallinfo() call that
      GetMallocUsage() uses is *very* slow, especially when processing very large
      modules like projects/llvm-test/MultiSource/Applications/kimwitu++.
      
      llvm-svn: 19163
      ad7bdf74
    • Reid Spencer's avatar
      For PR351: · e925d8b8
      Reid Spencer authored
      * Ensure #includes are wrapped with appropriate HAVE_ guards
      * Account for variations in time.h and sys/time.h inclusion.
      * Add macros for getting wait(2) exit status correctly (per autoconf sugg.)
      * Implement ThrowErrno in terms of strerror_r, strerror or none based on
        what is available on the platform.
      
      llvm-svn: 19161
      e925d8b8
    • Reid Spencer's avatar
      For PR351: · efda887f
      Reid Spencer authored
      * Remove redundant #includes that are now in Unix.h
      
      llvm-svn: 19160
      efda887f
    • Reid Spencer's avatar
      For PR351: · cf15b874
      Reid Spencer authored
      * Move implementation of sys::PreventCoreFiles function to this file from
        the now defunct SysConfig abstraction.
      
      llvm-svn: 19159
      cf15b874
    • Reid Spencer's avatar
      For PR351: · d103e085
      Reid Spencer authored
      * Ensure #includes are wrapped with appropriate HAVE_ guards
      * Ensure variations in "dirent" structure are accounted for.
      
      llvm-svn: 19158
      d103e085
    • Reid Spencer's avatar
      For PR351: · 47cd6534
      Reid Spencer authored
      * Ensure #includes are wrapped with appropriate HAVE_ guards
      * Consolidate implementation from operating system specific directory.
      
      llvm-svn: 19157
      47cd6534
    • Reid Spencer's avatar
      For PR351: · d554bbce
      Reid Spencer authored
      * Ensure #includes are wrapped with appropriate HAVE_ guards
      
      llvm-svn: 19156
      d554bbce
    • Reid Spencer's avatar
      For PR351: · af6d3d5c
      Reid Spencer authored
      * Consolidate implementation for Unix systems into Unix/TimeValue.cpp
      * Avoid use of symbolic link to #include platform-specific implementation.
      
      llvm-svn: 19155
      af6d3d5c
    • Reid Spencer's avatar
      For PR351: · 51ea06ab
      Reid Spencer authored
      * Consolidate implementation for Unix systems into Unix/Program.cpp
      * Avoid use of symbolic link to #include platform-specific implementation.
      
      llvm-svn: 19154
      51ea06ab
    • Reid Spencer's avatar
      For PR351: · 844f3fec
      Reid Spencer authored
      * Consolidate implementation for Unix systems into Unix/Signals.cpp
      * Avoid use of symbolic link to #include platform-specific implementation.
      
      llvm-svn: 19153
      844f3fec
    • Reid Spencer's avatar
      For PR351: · 71383fb6
      Reid Spencer authored
      * Consolidate implementation for Unix systems into Unix/Memory.cpp
      * Avoid use of symbolic link to #include platform-specific implementation.
      
      llvm-svn: 19152
      71383fb6
    • Reid Spencer's avatar
      For PR351: · 1a7a435b
      Reid Spencer authored
      * Consolidate implementation for Unix systems into Unix/MappedFile.cpp
      * Avoid use of symbolic link to #include platform-specific implementation.
      
      llvm-svn: 19151
      1a7a435b
    • Reid Spencer's avatar
      For PR351: · 97d4a17f
      Reid Spencer authored
      * Consolidate implementation for Unix systems into Unix/Process.cpp
      * Avoid use of symbolic link to #include platform-specific implementation.
      
      llvm-svn: 19150
      97d4a17f
    • Reid Spencer's avatar
      For PR351: · 0d1ad6ac
      Reid Spencer authored
      SysConf abstraction was pointless because it had a single function in it that
      pertained only to the current process. So merge it into the Process abstraction
      and remove the files completely.
      
      llvm-svn: 19149
      0d1ad6ac
  7. Dec 25, 2004
  8. Dec 24, 2004
    • Jeff Cohen's avatar
      Get VC++ building again · 683b1a5e
      Jeff Cohen authored
      llvm-svn: 19140
      683b1a5e
    • Jeff Cohen's avatar
      Eliminate use of ltdl.c when doing a VC++ build. Because libtool isn't used, · 039b4abf
      Jeff Cohen authored
      ltdl's LGPL license would infect all of LLVM.
      
      llvm-svn: 19137
      039b4abf
    • Reid Spencer's avatar
      For PR351: · 20540311
      Reid Spencer authored
      Merge implementations of isValid and GetTemporaryDirectory into this file. There
      is not any point having the operating system specific files for such little
      variation between the Unix family of systems.
      
      llvm-svn: 19134
      20540311
    • Reid Spencer's avatar
      For PR351: · e7c87036
      Reid Spencer authored
      This implementation is no longer needed, its been merged to Unix/Path.cpp since
      there is such little variation between the platforms.
      
      llvm-svn: 19133
      e7c87036
    • Reid Spencer's avatar
      For PR351: · 328ee535
      Reid Spencer authored
      Use the LLVM_ON_UNIX and LLVM_ON_WIN32 #defines to include the implementation
      instead of relying upon the "platform" link
      
      llvm-svn: 19132
      328ee535
Loading