Skip to content
  1. Nov 20, 2017
    • Tony Jiang's avatar
      [PPC] Heuristic to choose between a X-Form VSX ld/st vs a X-Form FP ld/st. · 438bf4a6
      Tony Jiang authored
      The VSX versions have the advantage of a full 64-register target whereas the FP
      ones have the advantage of lower latency and higher throughput. So what we’re
      after is using the faster instructions in low register pressure situations and
      using the larger register file in high register pressure situations.
      
      The heuristic chooses between the following 7 pairs of instructions.
      PPC::LXSSPX vs PPC::LFSX
      PPC::LXSDX vs PPC::LFDX
      PPC::STXSSPX vs PPC::STFSX
      PPC::STXSDX vs PPC::STFDX
      PPC::LXSIWAX vs PPC::LFIWAX
      PPC::LXSIWZX vs PPC::LFIWZX
      PPC::STXSIWX vs PPC::STFIWX
      
      Differential Revision: https://reviews.llvm.org/D38486
      
      llvm-svn: 318651
      438bf4a6
  2. Nov 17, 2017
  3. Nov 16, 2017
    • Guozhi Wei's avatar
      [PPC] Change i32 constant in store instruction to i64 · 433e8d3e
      Guozhi Wei authored
      This patch changes all i32 constant in store instruction to i64 with truncation, to increase the chance that the referenced constant can be shared with other i64 constant.
      
      Differential Revision: https://reviews.llvm.org/D39352
      
      llvm-svn: 318436
      433e8d3e
    • Daniel Sanders's avatar
      Add backend name to Target to enable runtime info to be fed back into TableGen · 725584e2
      Daniel Sanders authored
      Summary:
      Make it possible to feed runtime information back to tablegen to enable
      profile-guided tablegen-eration, detection of untested tablegen definitions, etc.
      
      Being a cross-compiler by nature, LLVM will potentially collect data for multiple
      architectures (e.g. when running 'ninja check'). We therefore need a way for
      TableGen to figure out what data applies to the backend it is generating at the
      time. This patch achieves that by including the name of the 'def X : Target ...'
      for the backend in the TargetRegistry.
      
      Reviewers: qcolombet
      
      Reviewed By: qcolombet
      
      Subscribers: jholewinski, arsenm, jyknight, aditya_nandakumar, sdardis, nemanjai, ab, nhaehnle, t.p.northover, javed.absar, qcolombet, llvm-commits, fedor.sergeev
      
      Differential Revision: https://reviews.llvm.org/D39742
      
      llvm-svn: 318352
      725584e2
  4. Nov 15, 2017
  5. Nov 08, 2017
  6. Nov 07, 2017
  7. Nov 06, 2017
  8. Nov 03, 2017
    • David Blaikie's avatar
      Move TargetFrameLowering.h to CodeGen where it's implemented · 1be62f03
      David Blaikie authored
      This header already includes a CodeGen header and is implemented in
      lib/CodeGen, so move the header there to match.
      
      This fixes a link error with modular codegeneration builds - where a
      header and its implementation are circularly dependent and so need to be
      in the same library, not split between two like this.
      
      llvm-svn: 317379
      1be62f03
  9. Nov 01, 2017
  10. Oct 30, 2017
  11. Oct 26, 2017
  12. Oct 24, 2017
  13. Oct 23, 2017
  14. Oct 21, 2017
  15. Oct 20, 2017
  16. Oct 19, 2017
  17. Oct 18, 2017
    • Hiroshi Inoue's avatar
      [PowerPC] Use helper functions to check sign-/zero-extended value · 5388e66d
      Hiroshi Inoue authored
      Helper functions to identify sign- and zero-extending machine instruction is introduced in rL315888.
      This patch makes PPCInstrInfo::optimizeCompareInstr use the helper functions. It simplifies the code and also makes possible more optimizations since the helper can do more analysis than the original check code; I observed about 5000 more compare instructions are eliminated while building LLVM.
      
      Also, this patch fixes a bug in helpers on ANDIo instruction handling due to the order of checks. This bug causes a failure in an existing test case for optimizeCompareInstr.
      
      Differential Revision: https://reviews.llvm.org/D38988
      
      llvm-svn: 316071
      5388e66d
  18. Oct 16, 2017
  19. Oct 15, 2017
    • Aaron Ballman's avatar
      Reverting r315590; it did not include changes for llvm-tblgen, which is... · 615eb470
      Aaron Ballman authored
      Reverting r315590; it did not include changes for llvm-tblgen, which is causing link errors for several people.
      
      Error LNK2019 unresolved external symbol "public: void __cdecl `anonymous namespace'::MatchableInfo::dump(void)const " (?dump@MatchableInfo@?A0xf4f1c304@@QEBAXXZ) referenced in function "public: void __cdecl `anonymous namespace'::AsmMatcherEmitter::run(class llvm::raw_ostream &)" (?run@AsmMatcherEmitter@?A0xf4f1c304@@QEAAXAEAVraw_ostream@llvm@@@Z) llvm-tblgen D:\llvm\2017\utils\TableGen\AsmMatcherEmitter.obj 1
      
      llvm-svn: 315854
      615eb470
  20. Oct 13, 2017
  21. Oct 12, 2017
    • Lei Huang's avatar
      [PowerPC] Add profitablilty check for conversion to mtctr loops · 0724fea2
      Lei Huang authored
      Add profitability checks for modifying counted loops to use the mtctr instruction.
      
      The latency of mtctr is only justified if there are more than 4 comparisons that
      will be removed as a result.  Usually counted loops are formed relatively early
      and before unrolling, so most low trip count loops often don't survive.  However
      we want to ensure that if they do, we do not mistakenly update them to mtctr loops.
      
      Use CodeMetrics to ensure we are only doing this for small loops with small trip counts.
      
      Differential Revision: https://reviews.llvm.org/D38212
      
      llvm-svn: 315592
      0724fea2
    • Don Hinton's avatar
      [dump] Remove NDEBUG from test to enable dump methods [NFC] · 3e0199f7
      Don Hinton authored
      Summary:
      Add LLVM_FORCE_ENABLE_DUMP cmake option, and use it along with
      LLVM_ENABLE_ASSERTIONS to set LLVM_ENABLE_DUMP.
      
      Remove NDEBUG and only use LLVM_ENABLE_DUMP to enable dump methods.
      
      Move definition of LLVM_ENABLE_DUMP from config.h to llvm-config.h so
      it'll be picked up by public headers.
      
      Differential Revision: https://reviews.llvm.org/D38406
      
      llvm-svn: 315590
      3e0199f7
  22. Oct 11, 2017
    • Lei Huang's avatar
      [PowerPC] Utilize DQ-Form instructions for spill/restore and fix FrameIndex... · 263dc4ef
      Lei Huang authored
      [PowerPC] Utilize DQ-Form instructions for spill/restore and fix FrameIndex elimination to only use `lis/addi` if necessary.
      
      Currently we produce a bunch of unnecessary code when emitting the
      prologue/epilogue for spills/restores.  Namely, if the load from stack
      slot/store to stack slot instruction is an X-Form instruction, we will
      always produce an LIS/ORI sequence for the stack offset.
      
      Furthermore, we have not exploited the P9 vector D-Form loads/stores for this
      purpose.
      
      This patch address both issues.
      
      Specifying the D-Form load as the instruction to use for stack spills/reloads
      should be safe because:
      
      1. The stack should be aligned according to the ABI
      2. If the stack isn't aligned, PPCRegisterInfo::eliminateFrameIndex() will
         check for the offset being a multiple of 16 and will convert it to an
         X-Form instruction if it isn't.
      
      Differential Revision : https://reviews.llvm.org/D38758
      
      llvm-svn: 315500
      263dc4ef
    • Oliver Stannard's avatar
      [Asm] Add debug tracing in table-generated assembly matcher · 4191b9ea
      Oliver Stannard authored
      This adds debug tracing to the table-generated assembly instruction matcher,
      enabled by the -debug-only=asm-matcher option.
      
      The changes in the target AsmParsers are to add an MCInstrInfo reference under
      a consistent name, so that we can use it from table-generated code. This was
      already being used this way for targets that use deprecation warnings, but 5
      targets did not have it, and Hexagon had it under a different name to the other
      backends.
      
      llvm-svn: 315445
      4191b9ea
  23. Oct 10, 2017
Loading