Skip to content
  1. Jan 26, 2009
    • Evan Cheng's avatar
      Enhance logic in X86DAGToDAGISel::PreprocessForRMW which move load inside... · 6c7e8514
      Evan Cheng authored
      Enhance logic in X86DAGToDAGISel::PreprocessForRMW which move load inside callseq_start to allow it to be folded into a call. It was not considering the cases where a token factor is between the load and the callseq_start.
      
      llvm-svn: 63022
      6c7e8514
    • Dan Gohman's avatar
      Take the next steps in making SDUse more consistent with LLVM Use, and · 8e4ac9b7
      Dan Gohman authored
      tidy up SDUse and related code.
       - Replace the operator= member functions with a set method, like
         LLVM Use has, and variants setInitial and setNode, which take
         care up updating use lists, like LLVM Use's does. This simplifies
         code that calls these functions.
       - getSDValue() is renamed to get(), as in LLVM Use, though most
         places can either use the implicit conversion to SDValue or the
         convenience functions instead.
       - Fix some more node vs. value terminology issues.
      
      Also, eliminate the one remaining use of SDOperandPtr, and
      SDOperandPtr itself.
      
      llvm-svn: 62995
      8e4ac9b7
    • Scott Michel's avatar
      Untabify code. · 95b2a206
      Scott Michel authored
      llvm-svn: 62991
      95b2a206
    • Scott Michel's avatar
      CellSPU: · 9e3e4a92
      Scott Michel authored
      - Rename fcmp.ll test to fcmp32.ll, start adding new double tests to fcmp64.ll
      - Fix select_bits.ll test
      - Capitulate to the DAGCombiner and move i64 constant loads to instruction
        selection (SPUISelDAGtoDAG.cpp).
      
        <rant>DAGCombiner will insert all kinds of 64-bit optimizations after
        operation legalization occurs and now we have to do most of the work that
        instruction selection should be doing twice (once to determine if v2i64
        build_vector can be handled by SelectCode(), which then runs all of the
        predicates a second time to select the necessary instructions.) But,
        CellSPU is a good citizen.</rant>
      
      llvm-svn: 62990
      9e3e4a92
    • Nate Begeman's avatar
      Fix a typo · 624801e8
      Nate Begeman authored
      llvm-svn: 62989
      624801e8
    • Nate Begeman's avatar
      De-identifying per sabre review · a2550a8e
      Nate Begeman authored
      llvm-svn: 62988
      a2550a8e
    • Nate Begeman's avatar
      Map address space 256 to gs; similar mappings could be supported for the · 5eca2655
      Nate Begeman authored
      other x86 segments.  address space 0 is stack/default, 1-255 are reserved for
      client use.
      
      llvm-svn: 62980
      5eca2655
    • Nate Begeman's avatar
      Support pattern matching various x86 sse shifts. · 8a51d8c8
      Nate Begeman authored
      llvm-svn: 62979
      8a51d8c8
    • Chris Lattner's avatar
      silence a warning when assertions are disabled. · 80b283c1
      Chris Lattner authored
      llvm-svn: 62976
      80b283c1
  2. Jan 25, 2009
  3. Jan 24, 2009
  4. Jan 23, 2009
  5. Jan 22, 2009
  6. Jan 21, 2009
  7. Jan 20, 2009
  8. Jan 19, 2009
    • Evan Cheng's avatar
      DIVREM isel deficiency: If sign bit is known zero, zero out DX/EDX/RDX instead... · 44cc5543
      Evan Cheng authored
      DIVREM isel deficiency: If sign bit is known zero, zero out DX/EDX/RDX instead of sign extending the low part (in AX/EAX/RAX) into it.
      
      llvm-svn: 62519
      44cc5543
    • Evan Cheng's avatar
      Fix 80 col violations. · 0346c04f
      Evan Cheng authored
      llvm-svn: 62518
      0346c04f
    • Evan Cheng's avatar
      Handle ISD::DECLARE with PIC relocation model. · 6c024982
      Evan Cheng authored
      llvm-svn: 62516
      6c024982
    • Evan Cheng's avatar
      Minor tweak to LowerUINT_TO_FP_i32. Bias (after scalar_to_vector) has two uses... · 8f367e53
      Evan Cheng authored
      Minor tweak to LowerUINT_TO_FP_i32. Bias (after scalar_to_vector) has two uses so we should make it the second source operand of ISD::OR so 2-address pass won't have to be smart about commuting.
      
      %reg1024<def> = MOVSDrm %reg0, 1, %reg0, <cp#0>, Mem:LD(8,8) [ConstantPool + 0]
      %reg1025<def> = MOVSD2PDrr %reg1024
      %reg1026<def> = MOVDI2PDIrm <fi#-1>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack-1 + 0]
      %reg1027<def> = ORPSrr %reg1025<kill>, %reg1026<kill>
      %reg1028<def> = MOVPD2SDrr %reg1027<kill>
      %reg1029<def> = SUBSDrr %reg1028<kill>, %reg1024<kill>
      %reg1030<def> = CVTSD2SSrr %reg1029<kill>
      MOVSSmr <fi#0>, 1, %reg0, 0, %reg1030<kill>, Mem:ST(4,4) [FixedStack0 + 0]
      %reg1031<def> = LD_Fp32m80 <fi#0>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack0 + 0]
      RET %reg1031<kill>, %ST0<imp-use,kill>
      
      The reason 2-addr pass isn't smart enough to commute the ORPSrr is because it can't look pass the MOVSD2PDrr instruction.
      
      llvm-svn: 62505
      8f367e53
    • Evan Cheng's avatar
      Now not UINT_TO_FP is legal (it's marked custom), dag combiner won't · 7e9ef4d7
      Evan Cheng authored
      optimize it to a SINT_TO_FP when the sign bit is known zero. X86 isel should perform the optimization itself.
      
      llvm-svn: 62504
      7e9ef4d7
  9. Jan 17, 2009
Loading