Skip to content
  1. Nov 27, 2007
  2. Nov 26, 2007
  3. Nov 25, 2007
    • Nick Lewycky's avatar
      Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops. · cdb7e54c
      Nick Lewycky authored
      llvm-svn: 44319
      cdb7e54c
    • Chris Lattner's avatar
      Implement PR1822 · c00e8adf
      Chris Lattner authored
      llvm-svn: 44318
      c00e8adf
    • Duncan Sands's avatar
      Fix PR1816. If a bitcast of a function only exists because of a · 185eeac0
      Duncan Sands authored
      trivial difference in function attributes, allow calls to it to
      be converted to direct calls.  Based on a patch by Török Edwin.
      While there, move the various lists of mutually incompatible
      parameters etc out of the verifier and into ParameterAttributes.h.
      
      llvm-svn: 44315
      185eeac0
    • Chris Lattner's avatar
      Fix a long standing deficiency in the X86 backend: we would · 5728bdd4
      Chris Lattner authored
      sometimes emit "zero" and "all one" vectors multiple times,
      for example:
      
      _test2:
      	pcmpeqd	%mm0, %mm0
      	movq	%mm0, _M1
      	pcmpeqd	%mm0, %mm0
      	movq	%mm0, _M2
      	ret
      
      instead of:
      
      _test2:
      	pcmpeqd	%mm0, %mm0
      	movq	%mm0, _M1
      	movq	%mm0, _M2
      	ret
      
      This patch fixes this by always arranging for zero/one vectors
      to be defined as v4i32 or v2i32 (SSE/MMX) instead of letting them be
      any random type.  This ensures they get trivially CSE'd on the dag.
      This fix is also important for LegalizeDAGTypes, as it gets unhappy
      when the x86 backend wants BUILD_VECTOR(i64 0) to be legal even when
      'i64' isn't legal.
      
      This patch makes the following changes:
      
      1) X86TargetLowering::LowerBUILD_VECTOR now lowers 0/1 vectors into
         their canonical types.
      2) The now-dead patterns are removed from the SSE/MMX .td files.
      3) All the patterns in the .td file that referred to immAllOnesV or
         immAllZerosV in the wrong form now use *_bc to match them with a
         bitcast wrapped around them.
      4) X86DAGToDAGISel::SelectScalarSSELoad is generalized to handle 
         bitcast'd zero vectors, which simplifies the code actually.
      5) getShuffleVectorZeroOrUndef is updated to generate a shuffle that
         is legal, instead of generating one that is illegal and expecting
         a later legalize pass to clean it up.
      6) isZeroShuffle is generalized to handle bitcast of zeros.
      7) several other minor tweaks.
      
      This patch is definite goodness, but has the potential to cause random
      code quality regressions.  Please be on the lookout for these and let 
      me know if they happen.
      
      llvm-svn: 44310
      5728bdd4
  4. Nov 24, 2007
  5. Nov 23, 2007
  6. Nov 22, 2007
  7. Nov 21, 2007
    • Duncan Sands's avatar
      Fix a bug in which node A is replaced by node B, but later · b87dde7e
      Duncan Sands authored
      node A gets back into the DAG again because it was hiding in
      one of the node maps: make sure that node replacement happens
      in those maps too.
      
      llvm-svn: 44263
      b87dde7e
    • Nick Lewycky's avatar
      typo · 1d6f1962
      Nick Lewycky authored
      llvm-svn: 44262
      1d6f1962
    • Dale Johannesen's avatar
      Fix compiler warning. · e70850cf
      Dale Johannesen authored
      llvm-svn: 44261
      e70850cf
    • Chuck Rose III's avatar
      This change does a couple of things. First it gets the Visual Studio builds working. · 07b57d26
      Chuck Rose III authored
      I added the lexing files to the VStudio projects and removed the .l files from the 
      VStudio projects.  There was a problem with use of strtoll in TGLexer.cpp and Chris
      suggested switching to strtol, so that's included here.
      
      Additionally, this checkin adds minimal x64 builds to the VStudio builds.  Build issues
      related to x64 in the windows specific files for DynamicLibrary.inc and Singals.inc
      are worked around, but not ultimately solved.  Binaries used to be stored in
      
      ...\win32\{Debug|Release}
      
      but are now kept in
      
      ...\win32\bin\{win32|x64}\{Debug|Release}
      
      intermediate files will continue to be stored in the individual project directories under 
      win32.  
      
      Some names will likely change in the future to reflect that the vstudio projects
      are no longer 32-bit only, but I wanted to get things up and running today so kept away
      from bigger restructuring.
      
      llvm-svn: 44260
      07b57d26
    • Dale Johannesen's avatar
      Fix .eh table linkage issues on Darwin. Some EH support · 763e110a
      Dale Johannesen authored
      for Darwin PPC, but it's not fully working yet.
      
      llvm-svn: 44258
      763e110a
  8. Nov 20, 2007
  9. Nov 19, 2007
    • Chris Lattner's avatar
      ExpandUnalignedLoad doesn't handle vectors right at all apparently. · 09c0393d
      Chris Lattner authored
      Fix a couple of problems:
      1. Don't assume the VT-1 is a VT that is half the size.
      2. Treat vectors of FP in the vector path, not the FP path.
      
      This has a couple of remaining problems before it will work with
      the code in PR1811: the code below this change assumes that it can
      use extload/shift/or to construct the result, which isn't right for
      vectors.
      
      This also doesn't handle vectors of 1 or vectors that aren't pow-2.
      
      llvm-svn: 44243
      09c0393d
Loading