Skip to content
  1. Nov 13, 2013
  2. Nov 12, 2013
  3. Nov 11, 2013
  4. Nov 10, 2013
  5. Nov 09, 2013
  6. Nov 08, 2013
  7. Nov 07, 2013
  8. Nov 06, 2013
  9. Nov 05, 2013
    • Reed Kotler's avatar
      Get rid of all references to soimm in MipsConstantIslands pass because · b09ebe93
      Reed Kotler authored
      we don't have such an operand.
      Suprisingly enough, this is never actually accounted for in the 
      ARM version when determining offset ranges. In both places there is the
      comment:
      -    // FIXME: Make use full range of soimm values.
      (soimm = shift operand immediate).
      
      llvm-svn: 194101
      b09ebe93
    • Reed Kotler's avatar
      Cleanup getUserOffset. Issues related to inline assembler length and · 0eb87390
      Reed Kotler authored
      alignment will be handled differently than in ARM constant islands.
      
      llvm-svn: 194096
      0eb87390
    • Reed Kotler's avatar
      Remove the word "thumb" from comments. Remove also an incorrect · 4d0313d8
      Reed Kotler authored
      command regarding the porting from the ARM version (was an old comment).
      
      llvm-svn: 194066
      4d0313d8
    • Reed Kotler's avatar
      Fix r194019 as requested by Eric Christopher. · 0f007fc4
      Reed Kotler authored
      Submit the basic port of the rest of ARM constant islands code to Mips. 
      Two test cases are added which reflect the next level of functionality:
      constants getting moved to water areas that are out of range from the
      initial placement at the end of the function and basic blocks being split to
      create water when none exists that can be used. There is a bunch of this
      code that is not complete and has been marked with IN_PROGRESS. I will
      finish cleaning this all up during the next week or two and submit the
      rest of the test cases. I have elminated some code for dealing with
      inline assembly because to me it unecessarily complicates things and
      some of the newer features of llvm like function attributies and builtin
      assembler give me better tools to solve the alignment issues created
      there. Also, for Mips16 I even have the option of not doing constant
      islands in the present of inline assembler if I chose. When everything
      has been completed I will summarize the port and notify people that
      are knowledgable regarding the ARM Constant Islands code so they can
      review it in it's entirety if they wish.
      
      llvm-svn: 194053
      0f007fc4
    • NAKAMURA Takumi's avatar
      Revert r194019 to r194021, "Submit the basic port of the rest of ARM constant... · 5267613e
      NAKAMURA Takumi authored
      Revert r194019 to r194021, "Submit the basic port of the rest of ARM constant islands code to Mips."
      
      It broke -Asserts build.
      
      llvm-svn: 194026
      5267613e
  10. Nov 04, 2013
    • Reed Kotler's avatar
      Make sure we don't get a warning from this variable that is only used · 7f601b9a
      Reed Kotler authored
      when compiling with DEBUG.
      
      llvm-svn: 194021
      7f601b9a
    • Reed Kotler's avatar
      Submit the basic port of the rest of ARM constant islands code to Mips. · 526804f7
      Reed Kotler authored
      Two test cases are added which reflect the next level of functionality:
      constants getting moved to water areas that are out of range from the
      initial placement at the end of the function and basic blocks being split to
      create water when none exists that can be used. There is a bunch of this
      code that is not complete and has been marked with IN_PROGRESS. I will
      finish cleaning this all up during the next week or two and submit the
      rest of the test cases. I have elminated some code for dealing with
      inline assembly because to me it unecessarily complicates things and
      some of the newer features of llvm like function attributies and builtin
      assembler give me better tools to solve the alignment issues created
      there. Also, for Mips16 I even have the option of not doing constant
      islands in the present of inline assembler if I chose.
      
      llvm-svn: 194019
      526804f7
    • Zoran Jovanovic's avatar
      Support for microMIPS branch instructions. · 8a80aa76
      Zoran Jovanovic authored
      llvm-svn: 193992
      8a80aa76
  11. Oct 30, 2013
    • Hans Wennborg's avatar
      Add #include of raw_ostream.h to MipsSEISelLowering.cpp · 3e9b1c10
      Hans Wennborg authored
      Fixing this Windows build error:
      
      ..\lib\Target\Mips\MipsSEISelLowering.cpp(997) : error C2027: use of undefined type 'llvm::raw_ostream'
      
      llvm-svn: 193696
      3e9b1c10
    • Daniel Sanders's avatar
      d5f554f0
    • Daniel Sanders's avatar
      [mips][msa] Added support for matching bmnz, bmnzi, bmz, and bmzi from normal... · ab94b537
      Daniel Sanders authored
      [mips][msa] Added support for matching bmnz, bmnzi, bmz, and bmzi from normal IR (i.e. not intrinsics)
      
      Also corrected the definition of the intrinsics for these instructions (the
      result register is also the first operand), and added intrinsics for bsel and
      bseli to clang (they already existed in the backend).
      
      These four operations are mostly equivalent to bsel, and bseli (the difference
      is which operand is tied to the result). As a result some of the tests changed
      as described below.
      
      bitwise.ll:
      - bsel.v test adapted so that the mask is unknown at compile-time. This stops
        it emitting bmnzi.b instead of the intended bsel.v.
      - The bseli.b test now tests the right thing. Namely the case when one of the
        values is an uimm8, rather than when the condition is a uimm8 (which is
        covered by bmnzi.b)
      
      compare.ll:
      - bsel.v tests now (correctly) emits bmnz.v instead of bsel.v because this
        is the same operation (see MSA.txt).
      
      i8.ll
      - CHECK-DAG-ized test.
      - bmzi.b test now (correctly) emits equivalent bmnzi.b with swapped operands
        because this is the same operation (see MSA.txt).
      - bseli.b still emits bseli.b though because the immediate makes it
        distinguishable from bmnzi.b.
      
      vec.ll:
      - CHECK-DAG-ized test.
      - bmz.v tests now (correctly) emits bmnz.v with swapped operands (see
        MSA.txt).
      - bsel.v tests now (correctly) emits bmnz.v with swapped operands (see
        MSA.txt).
      
      llvm-svn: 193693
      ab94b537
    • Daniel Sanders's avatar
      [mips][msa] Added support for matching bins[lr]i.[bhwd] from normal IR (i.e. not intrinsics) · d74b130c
      Daniel Sanders authored
      This required correcting the definition of the bins[lr]i intrinsics because
      the result is also the first operand.
      
      It also required removing the (arbitrary) check for 32-bit immediates in
      MipsSEDAGToDAGISel::selectVSplat().
      
      Currently using binsli.d with 2 bits set in the mask doesn't select binsli.d
      because the constant is legalized into a ConstantPool. Similar things can
      happen with binsri.d with more than 10 bits set in the mask. The resulting
      code when this happens is correct but not optimal.
      
      llvm-svn: 193687
      d74b130c
    • Daniel Sanders's avatar
      [mips][msa] Combine binsri-like DAG of AND and OR into equivalent VSELECT · 53fe6c4d
      Daniel Sanders authored
      (or (and $a, $mask), (and $b, $inverse_mask)) => (vselect $mask, $a, $b).
      where $mask is a constant splat. This allows bitwise operations to make use
      of bsel.
      
      It's also a stepping stone towards matching bins[lr], and bins[lr]i from
      normal IR.
      
      Two sets of similar tests have been added in this commit. The bsel_* functions
      test the case where binsri cannot be used. The binsr_*_i functions will
      start to use the binsri instruction in the next commit.
      
      llvm-svn: 193682
      53fe6c4d
    • Daniel Sanders's avatar
      [mips] MipsSETargetLowering now reports DAGCombiner changes when using -debug-only=mips-isel · 62aeab83
      Daniel Sanders authored
      No test since -debug output is intended for developers and not end-users.
      
      llvm-svn: 193681
      62aeab83
    • Daniel Sanders's avatar
      [mips][msa] Added support for matching splat.[bhw] from normal IR (i.e. not intrinsics) · e7ef0c81
      Daniel Sanders authored
      splat.d is implemented but this subtest is currently disabled. This is because
      it is difficult to match the appropriate IR on MIPS32. There is a patch under
      review that should help with this so I hope to enable the subtest soon.
      
      llvm-svn: 193680
      e7ef0c81
    • Akira Hatanaka's avatar
      [mips] Compute stack alignment on the fly. · 3048b024
      Akira Hatanaka authored
      llvm-svn: 193673
      3048b024
  12. Oct 29, 2013
Loading