Skip to content
Snippets Groups Projects
  1. May 24, 2018
    • Lei Huang's avatar
      [PowerPC] Remove the match pattern in the definition of LXSDX/STXSDX · f4ec6782
      Lei Huang authored
      The match pattern in the definition of LXSDX is xoaddr, so the Pseudo
      instruction XFLOADf64 never gets selected. XFLOADf64 expands to LXSDX/LFDX post
      RA based on the register pressure. To avoid ambiguity, we need to remove the
      select pattern for LXSDX, same as what was done for LXSD. STXSDX also have
      the same issue.
      
      Patch by Qing Shan Zhang (steven.zhang).
      
      Differential Revision: https://reviews.llvm.org/D47178
      
      llvm-svn: 333150
      f4ec6782
  2. May 23, 2018
  3. May 21, 2018
  4. May 18, 2018
  5. May 14, 2018
    • Zaara Syeda's avatar
      [NFC] [Power] Fix instruction format for xsrqpi · 421a5960
      Zaara Syeda authored
      xsrqpi is currently using Z23Form_1.
      The instruction format is xsrqpi R,VRT,VRB,RMC.
      Rathar than bits 11-15 being used for FRA, it should have
      bits 11-14 reserved and bit 15 for R. This patch adds a new
      class Z23Form_4 to fix the instruction format.
      
      Differential Revision: https://reviews.llvm.org/D46761
      
      llvm-svn: 332253
      421a5960
    • Nicola Zaghen's avatar
      Rename DEBUG macro to LLVM_DEBUG. · d34e60ca
      Nicola Zaghen authored
          
      The DEBUG() macro is very generic so it might clash with other projects.
      The renaming was done as follows:
      - git grep -l 'DEBUG' | xargs sed -i 's/\bDEBUG\s\?(/LLVM_DEBUG(/g'
      - git diff -U0 master | ../clang/tools/clang-format/clang-format-diff.py -i -p1 -style LLVM
      - Manual change to APInt
      - Manually chage DOCS as regex doesn't match it.
      
      In the transition period the DEBUG() macro is still present and aliased
      to the LLVM_DEBUG() one.
      
      Differential Revision: https://reviews.llvm.org/D43624
      
      llvm-svn: 332240
      d34e60ca
  6. May 11, 2018
  7. May 09, 2018
    • Shiva Chen's avatar
      [DebugInfo] Examine all uses of isDebugValue() for debug instructions. · 801bf7eb
      Shiva Chen authored
      Because we create a new kind of debug instruction, DBG_LABEL, we need to
      check all passes which use isDebugValue() to check MachineInstr is debug
      instruction or not. When expelling debug instructions, we should expel
      both DBG_VALUE and DBG_LABEL. So, I create a new function,
      isDebugInstr(), in MachineInstr to check whether the MachineInstr is
      debug instruction or not.
      
      This patch has no new test case. I have run regression test and there is
      no difference in regression test.
      
      Differential Revision: https://reviews.llvm.org/D45342
      
      Patch by Hsiangkai Wang.
      
      llvm-svn: 331844
      801bf7eb
  8. May 08, 2018
  9. May 03, 2018
  10. May 01, 2018
    • Adrian Prantl's avatar
      Remove \brief commands from doxygen comments. · 5f8f34e4
      Adrian Prantl authored
      We've been running doxygen with the autobrief option for a couple of
      years now. This makes the \brief markers into our comments
      redundant. Since they are a visual distraction and we don't want to
      encourage more \brief markers in new code either, this patch removes
      them all.
      
      Patch produced by
      
        for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
      
      Differential Revision: https://reviews.llvm.org/D46290
      
      llvm-svn: 331272
      5f8f34e4
  11. Apr 30, 2018
    • Nico Weber's avatar
      IWYU for llvm-config.h in llvm, additions. · 432a3883
      Nico Weber authored
      See r331124 for how I made a list of files missing the include.
      I then ran this Python script:
      
          for f in open('filelist.txt'):
              f = f.strip()
              fl = open(f).readlines()
      
              found = False
              for i in xrange(len(fl)):
                  p = '#include "llvm/'
                  if not fl[i].startswith(p):
                      continue
                  if fl[i][len(p):] > 'Config':
                      fl.insert(i, '#include "llvm/Config/llvm-config.h"\n')
                      found = True
                      break
              if not found:
                  print 'not found', f
              else:
                  open(f, 'w').write(''.join(fl))
      
      and then looked through everything with `svn diff | diffstat -l | xargs -n 1000 gvim -p`
      and tried to fix include ordering and whatnot.
      
      No intended behavior change.
      
      llvm-svn: 331184
      432a3883
  12. Apr 23, 2018
  13. Apr 21, 2018
    • Hiroshi Inoue's avatar
      [PowerPC] fix incorrect vectorization of abs() on POWER9 · 33486787
      Hiroshi Inoue authored
      Vectorized loops with abs() returns incorrect results on POWER9. This patch fixes it.
      For example the following code returns negative result if input values are negative though it sums up the absolute value of the inputs.
      
      int vpx_satd_c(const int16_t *coeff, int length) {
        int satd = 0;
        for (int i = 0; i < length; ++i) satd += abs(coeff[i]);
        return satd;
      }
      
      This problem causes test failures for libvpx.
      For vector absolute and vector absolute difference on POWER9, LLVM generates VABSDUW (Vector Absolute Difference Unsigned Word) instruction or variants.
      Since these instructions are for unsigned integers, we need adjustment for signed integers.
      For abs(sub(a, b)), we generate VABSDUW(a+0x80000000, b+0x80000000). Otherwise, abs(sub(-1, 0)) returns 0xFFFFFFFF(=-1) instead of 1. For abs(a), we generate VABSDUW(a+0x80000000, 0x80000000).
      
      Differential Revision: https://reviews.llvm.org/D45522
      
      llvm-svn: 330497
      33486787
  14. Apr 18, 2018
  15. Apr 16, 2018
  16. Apr 13, 2018
    • Stefan Pintilie's avatar
      [Power9] Add the TLS store instructions to the Power 9 model · 118b8675
      Stefan Pintilie authored
      The Power 9 scheduler model should now include the TLS instructions.
      We can now, once again, mark the model as complete.
      From now on, if instructions are added to Power 9 but are not
      added to the model the build should produce an error. Hopefully
      that will alert the developer who is adding new instructions
      that they should also be added to the scheulder model.
      
      llvm-svn: 330060
      118b8675
  17. Apr 12, 2018
  18. Apr 11, 2018
  19. Apr 08, 2018
    • Mandeep Singh Grang's avatar
      [PowerPC] Change std::sort to llvm::sort in response to r327219 · 327fd5e4
      Mandeep Singh Grang authored
      Summary:
      r327219 added wrappers to std::sort which randomly shuffle the container before sorting.
      This will help in uncovering non-determinism caused due to undefined sorting
      order of objects having the same key.
      
      To make use of that infrastructure we need to invoke llvm::sort instead of std::sort.
      
      Note: This patch is one of a series of patches to replace *all* std::sort to llvm::sort.
      Refer the comments section in D44363 for a list of all the required patches.
      
      Reviewers: hfinkel, RKSimon
      
      Reviewed By: RKSimon
      
      Subscribers: nemanjai, kbarton, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D44870
      
      llvm-svn: 329535
      327fd5e4
  20. Apr 06, 2018
    • Hiroshi Inoue's avatar
      [PowerPC] allow D-form VSX load/store when accessing FrameIndex without offset · a2eefb6d
      Hiroshi Inoue authored
      VSX D-form load/store instructions of POWER9 require the offset be a multiple of 16 and a helper`isOffsetMultipleOf` is used to check this.
      So far, the helper handles FrameIndex + offset case, but not handling FrameIndex without offset case. Due to this, we are missing opportunities to exploit D-form instructions when accessing an object or array allocated on stack.
      For example, x-form store (stxvx) is used for int a[4] = {0}; instead of d-form store (stxv). For larger arrays, D-form instruction is not used when accessing the first 16-byte. Using D-form instructions reduces register pressure as well as instructions.
      
      Differential Revision: https://reviews.llvm.org/D45079
      
      llvm-svn: 329377
      a2eefb6d
  21. Apr 05, 2018
  22. Apr 04, 2018
  23. Apr 03, 2018
  24. Apr 02, 2018
  25. Mar 29, 2018
  26. Mar 28, 2018
  27. Mar 27, 2018
Loading