Skip to content
  1. Apr 18, 2018
  2. Apr 16, 2018
  3. 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
  4. Apr 12, 2018
  5. Apr 11, 2018
  6. 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
  7. 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
  8. Apr 05, 2018
  9. Apr 04, 2018
  10. Apr 03, 2018
  11. Apr 02, 2018
  12. Mar 29, 2018
  13. Mar 28, 2018
  14. Mar 27, 2018
  15. Mar 26, 2018
  16. Mar 24, 2018
  17. Mar 23, 2018
    • Zaara Syeda's avatar
      Re-commit: [MachineLICM] Add functions to MachineLICM to hoist invariant stores · 65359936
      Zaara Syeda authored
      This patch adds functions to allow MachineLICM to hoist invariant stores.
      Currently, MachineLICM does not hoist any store instructions, however
      when storing the same value to a constant spot on the stack, the store
      instruction should be considered invariant and be hoisted. The function
      isInvariantStore iterates each operand of the store instruction and checks
      that each register operand satisfies isCallerPreservedPhysReg. The store
      may be fed by a copy, which is hoisted by isCopyFeedingInvariantStore.
      This patch also adds the PowerPC changes needed to consider the stack
      register as caller preserved.
      
      Differential Revision: https://reviews.llvm.org/D40196
      
      llvm-svn: 328326
      65359936
  18. Mar 21, 2018
    • David Blaikie's avatar
      Fix a couple of layering violations in Transforms · 2be39228
      David Blaikie authored
      Remove #include of Transforms/Scalar.h from Transform/Utils to fix layering.
      
      Transforms depends on Transforms/Utils, not the other way around. So
      remove the header and the "createStripGCRelocatesPass" function
      declaration (& definition) that is unused and motivated this dependency.
      
      Move Transforms/Utils/Local.h into Analysis because it's used by
      Analysis/MemoryBuiltins.cpp.
      
      llvm-svn: 328165
      2be39228
  19. Mar 20, 2018
    • Craig Topper's avatar
      [PowerPC][LegalizeFloatTypes] Move the PPC hacks for (i32... · c2dbd677
      Craig Topper authored
      [PowerPC][LegalizeFloatTypes] Move the PPC hacks for (i32 fp_to_sint/fp_to_uint (ppcf128 X)) out of LegalizeFloatTypes and into PPC specific code
      
      I'm not entirely sure these hacks are still needed. If you remove the hacks completely, the name of the library call that gets generated doesn't match the grep the test previously had. So the test wasn't really checking anything.
      
      If the hack is still needed it belongs in PPC specific code. I believe the FP_TO_SINT code here is the only place in the tree where a FP_ROUND_INREG node is created today. And I don't think its even being used correctly because the legalization returned a BUILD_PAIR with the same value twice. That doesn't seem right to me. By moving the code entirely to PPC we can avoid creating the FP_ROUND_INREG at all.
      
      I replaced the grep in the existing test with full checks generated by hacking update_llc_test_check.py to support ppc32 just long enough to generate it.
      
      Differential Revision: https://reviews.llvm.org/D44061
      
      llvm-svn: 328017
      c2dbd677
  20. Mar 19, 2018
  21. Mar 15, 2018
  22. Mar 13, 2018
  23. Mar 12, 2018
  24. Mar 09, 2018
Loading