Skip to content
  1. Jun 03, 2019
    • David Zarzycki's avatar
      Unbreak non-PIC builds after r362390 / D62720 · 082d99f5
      David Zarzycki authored
      llvm-svn: 362399
      082d99f5
    • Simon Pilgrim's avatar
      [SelectionDAG] Add [us]itofp(undef) --> 0 constant fold (PR39205) · cb7e4e81
      Simon Pilgrim authored
      We were missing this fold in the DAG, which I've copied directly from llvm::ConstantFoldCastInstruction
      
      Differential Revision: https://reviews.llvm.org/D62807
      
      llvm-svn: 362397
      cb7e4e81
    • Simon Pilgrim's avatar
      [SystemZ] Remove sitofp(undef) from reduced test case. · 74467814
      Simon Pilgrim authored
      Pre-commit for D62807 - which adds DAG [us]itofp(undef) --> 0 constant fold
      
      llvm-svn: 362396
      74467814
    • Dmitri Gribenko's avatar
      Include what you use in LanaiInstPrinter.cpp · 7a3e4ab2
      Dmitri Gribenko authored
      llvm-svn: 362395
      7a3e4ab2
    • Dmitri Gribenko's avatar
      Include what you use in LanaiMCCodeEmitter.cpp · 2f66316c
      Dmitri Gribenko authored
      LanaiMCCodeEmitter.cpp was not using any APIs from Lanai.h, and was only
      including it for transitive dependencies.  Doing so is problematic from
      include-what-you-use perspective, but it is also a layering issue (it
      creates a dependency cycle between the primary Lanai target library and
      the MCTargetDesc library).
      
      llvm-svn: 362394
      2f66316c
    • Dmitri Gribenko's avatar
      Include what you use in LanaiDisassembler.cpp · c69ee63c
      Dmitri Gribenko authored
      llvm-svn: 362392
      c69ee63c
    • Nicolai Haehnle's avatar
      AMDGPU/GFX10: V_CMPX_xxx instructions still have an omod operand · edfa756f
      Nicolai Haehnle authored
      Summary: Change-Id: If6ee98e4a723b643bc37254fc6ef8b3812db16da
      
      Reviewers: rampitec
      
      Subscribers: arsenm, kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D62720
      
      Change-Id: Id547ef152b2f92b24dc1c0efbf7e4467c4fb4b6e
      llvm-svn: 362390
      edfa756f
    • Dmitri Gribenko's avatar
      Include what you use in HexagonInstPrinter.cpp · 8668fc01
      Dmitri Gribenko authored
      HexagonInstPrinter.cpp was not using any APIs from HexagonAsmPrinter.h.
      Doing so is problematic from include-what-you-use perspective, but it is
      also a layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362389
      8668fc01
    • Dmitri Gribenko's avatar
      Include what you use in HexagonAsmPrinter.h · 61b49ccb
      Dmitri Gribenko authored
      llvm-svn: 362388
      61b49ccb
    • Dmitri Gribenko's avatar
      Include what you use in HexagonMCInstrInfo.cpp · 03d1b330
      Dmitri Gribenko authored
      HexagonMCInstrInfo.cpp was not using any APIs from Hexagon.h.  Doing so
      is problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362387
      03d1b330
    • Dmitri Gribenko's avatar
      Include what you use in HexagonMCCodeEmitter.cpp · 970b9f96
      Dmitri Gribenko authored
      HexagonMCCodeEmitter.cpp was not using any APIs from Hexagon.h.  Doing
      so is problematic from include-what-you-use perspective, but it is also
      a layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362386
      970b9f96
    • Dmitri Gribenko's avatar
      Include what you use in HexagonMCCompound.cpp · ebe360ed
      Dmitri Gribenko authored
      HexagonMCCompound.cpp was not using any APIs from Hexagon.h.  Doing so
      is problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362385
      ebe360ed
    • Dmitri Gribenko's avatar
      Include what you use in HexagonShuffler.cpp · 6e076a08
      Dmitri Gribenko authored
      HexagonShuffler.cpp was not using any APIs from Hexagon.h, and was only
      including it for transitive dependencies.  Doing so is problematic from
      include-what-you-use perspective, but it is also a layering issue (it
      creates a dependency cycle between the primary Hexagon target library
      and the MCTargetDesc library).
      
      llvm-svn: 362384
      6e076a08
    • Dmitri Gribenko's avatar
      Include what you use in HexagonMCChecker.cpp · 6214b577
      Dmitri Gribenko authored
      HexagonMCChecker.cpp was not using any APIs from Hexagon.h.  Doing so is
      problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362383
      6214b577
    • Dmitri Gribenko's avatar
      Include what you use in HexagonMCTargetDesc.cpp · bf2a356e
      Dmitri Gribenko authored
      HexagonMCTargetDesc.cpp was not using any APIs from Hexagon.h.  Doing so
      is problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362382
      bf2a356e
    • Dmitri Gribenko's avatar
      Include what you use in HexagonMCShuffler.cpp · beb7f48a
      Dmitri Gribenko authored
      HexagonMCShuffler.cpp was not using any APIs from Hexagon.h.  Doing so
      is problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362381
      beb7f48a
    • Simon Tatham's avatar
      [ARM] Fix recent breakage of -mfpu=none. · dc83a3c4
      Simon Tatham authored
      The recent change D60691 introduced a bug in clang when handling
      option combinations such as `-mcpu=cortex-m4 -mfpu=none`. Those
      options together should select Cortex-M4 but disable all use of
      hardware FP, but in fact, now hardware FP instructions can still be
      generated in that mode.
      
      The reason is because the handling of FPUVersion::NONE disables all
      the same feature names it used to, of which the base one is `vfp2`.
      But now there are further features below that, like `vfp2d16fp` and
      (following D60694) `fpregs`, which also need to be turned off to
      disable hardware FP completely.
      
      Added a tiny test which double-checks that compiling a simple FP
      function doesn't access the FP registers.
      
      Reviewers: SjoerdMeijer, dmgreen
      
      Reviewed By: dmgreen
      
      Subscribers: lebedev.ri, javed.absar, kristof.beyls, hiraditya, cfe-commits, llvm-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D62729
      
      llvm-svn: 362380
      dc83a3c4
    • Cullen Rhodes's avatar
      [AArch64][SVE2] Add CPU and arch directive tests · 3901dd3e
      Cullen Rhodes authored
      Summary:
      This patch adds tests for directives .arch, .arch_extension and .cpu for
      all features defined in Arm SVE2 architecture extension.
      
      Reviewed By: chill
      
      Differential Revision: https://reviews.llvm.org/D62602
      
      llvm-svn: 362378
      3901dd3e
    • George Rimar's avatar
      [llvm-readobj] - Convert gnu-sections.test to use YAML. · ab93e6e0
      George Rimar authored
      gnu-sections.test currently use relocs.obj.elf-x86_64 and
      relocs.obj.elf-i386 precompiled objects as an inputs.
      
      These inputs actually initially were introduced to test the
      dump of relocations and have almost nothing common with dumping
      sections.
      
      Patch converts the test to use yaml2obj. That allows to remove
      relocs.obj.elf-i386 binary.
      (relocs.obj.elf-x86_64 is still used by another test and can't be removed atm).
      
      Differential revision: https://reviews.llvm.org/D62659
      
      llvm-svn: 362377
      ab93e6e0
    • Dmitri Gribenko's avatar
      Include what you use in HexagonELFObjectWriter.cpp · 7ebfbebf
      Dmitri Gribenko authored
      HexagonELFObjectWriter.cpp was not using any APIs from Hexagon.h, and
      was only including it for transitive dependencies.  Doing so is
      problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362376
      7ebfbebf
    • George Rimar's avatar
      [llvm-readobj/llvm-readelf] - Remove gnu-relocations.test completely. · 1115a199
      George Rimar authored
      rL362089 introduced a set of yaml based reloc-types-*.test test cases
      (instead of huge reloc-types.test that used a lot of precompiled binaries)
      These test cases checks LLVM-styled dumping of the relocations.
      
      gnu-relocations.test was a test case to check GNU styled relocations dumping.
      It did that only for elf-x86 and elf-x86_64 targets. It did not test all of the
      relocations though.
      
      Now, after rL362089, it does not make sence to keep it.
      This patch updates reloc-types-elf-i386.test and reloc-types-elf-x64.test tests
      with llvm-readelf calls to check GNU styled output in one place.
      It removes gnu-relocations.test completely.
      
      One of intentions of doing this is also to get rid of relocs.obj.elf-i386 and
      relocs.obj.elf-x86_64 precompiled objects completely (they are used in other tests still).
      
      Differential revision: https://reviews.llvm.org/D62655
      
      llvm-svn: 362374
      1115a199
    • Nikola Prica's avatar
      [LiveDebugValues] Close range for previous variable's location when adding newly deduced location · 2d0106a1
      Nikola Prica authored
      When LiveDebugValues deduces new variable's location from spill, restore or
      register copy instruction it should close old variable's location. Otherwise
      we can have multiple block output locations for same variable. That could lead
      to inserting two DBG_VALUEs for same variable to the beginning of the successor
      block which results to ignoring of first DBG_VALUE.
      
      Reviewers: aprantl, jmorse, wolfgangp, dstenb
      
      Reviewed By: aprantl
      
      Subscribers: probinson, asowda, ivanbaev, petarj, djtodoro
      
      Tags: #debug-info
      
      Differential Revision: https://reviews.llvm.org/D62196
      
      llvm-svn: 362373
      2d0106a1
    • Dmitri Gribenko's avatar
      Include what you use in HexagonAsmBackend.cpp · 0aa374a3
      Dmitri Gribenko authored
      HexagonAsmBackend.cpp was not using any APIs from Hexagon.h.  Doing so
      is problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the MCTargetDesc library).
      
      llvm-svn: 362372
      0aa374a3
    • Dmitri Gribenko's avatar
      Include what you use in HexagonAsmParser.cpp · 301f8fd6
      Dmitri Gribenko authored
      HexagonAsmParser.cpp was not using any APIs from Hexagon.h.  Doing so is
      problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      Hexagon target library and the AsmParser library).
      
      llvm-svn: 362370
      301f8fd6
    • Dmitri Gribenko's avatar
      Include what you use in HexagonShuffler.h · c5327ab7
      Dmitri Gribenko authored
      HexagonShuffler.h was not using any APIs from Hexagon.h, and was only
      including it for transitive dependencies.  Doing so is problematic from
      include-what-you-use perspective, but it is also a layering issue (it
      creates a dependency cycle between the primary Hexagon target library
      and the MCTargetDesc library).
      
      llvm-svn: 362369
      c5327ab7
    • Dmitri Gribenko's avatar
      Include what you use in BPFMCTargetDesc.cpp · 3c837201
      Dmitri Gribenko authored
      BPFMCTargetDesc.cpp was not using any APIs from BPF.h.  Doing so is
      problematic from include-what-you-use perspective, but it is also a
      layering issue (it creates a dependency cycle between the primary
      BPF target library and the MCTargetDesc library).
      
      llvm-svn: 362368
      3c837201
    • Diogo N. Sampaio's avatar
      [ARM][FIX] Ran out of registers due tail recursion · df92f841
      Diogo N. Sampaio authored
      Summary:
      - pr42062
      When compiling for MinSize,
      ARMTargetLowering::LowerCall decides to indirect
      multiple calls to a same function. However,
      it disconsiders the limitation that thumb1
      indirect calls require the callee to be in a
      register from r0 to r3 (llvm limiation).
      If all those registers are used by arguments, the
      compiler dies with "error: run out of registers
      during register allocation".
      This patch tells the function
      IsEligibleForTailCallOptimization if we intend to
      perform indirect calls, as to avoid tail call
      optimization.
      
      Reviewers: dmgreen, efriedma
      
      Reviewed By: efriedma
      
      Subscribers: javed.absar, kristof.beyls, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D62683
      
      llvm-svn: 362366
      df92f841
    • Sam Parker's avatar
      [AArch64] Check for simple type in FPToUInt · a0bd6f8a
      Sam Parker authored
      DAGCombiner was hitting a SimpleType assertion when trying to combine
      a v3f32 before type legalization.
      
      bugzilla: https://bugs.llvm.org/show_bug.cgi?id=41916
      
      Differential Revision: https://reviews.llvm.org/D62734
      
      llvm-svn: 362365
      a0bd6f8a
    • Roman Lebedev's avatar
      [NFC][X86] extract-{low,}bits.ll: one more pattern c with truncation · bcd54288
      Roman Lebedev authored
      llvm-svn: 362364
      bcd54288
    • Mikael Holmen's avatar
      [TableGen] Fix std::array initializer to avoid warnings with older tool chains. NFC · 404a679e
      Mikael Holmen authored
      A std::array is implemented as a template with an array inside a struct.
      Older versions of clang, like 3.6, require an extra set of curly braces
      around std::array initializations to avoid warnings.
      
      The C++ language was changed regarding this by CWG 1270. So more modern
      tool chains does not complain even if leaving out one level of braces.
      
      llvm-svn: 362360
      404a679e
    • Jim Lin's avatar
      [AVR] Fix incorrect source regclass of LDWRdPtr · 20b14dac
      Jim Lin authored
      Summary:
      LDWRdPtr would be expanded to ld+ldd. ldd only accepts the pointer register is Y or Z.
      So the register class of pointer of LDWRdPtr should be PTRDISPREGS instead of PTRREGS.
      
      Reviewers: dylanmckay
      
      Reviewed By: dylanmckay
      
      Subscribers: dylanmckay, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D62300
      
      llvm-svn: 362351
      20b14dac
    • Florian Hahn's avatar
      Recommit r360171: [DAGCombiner] Avoid creating large tokenfactors in visitTokenFactor. · e71963c8
      Florian Hahn authored
      If we hit the limit, we do expand the outstanding tokenfactors.
      Otherwise, we might drop nodes with users in the unexpanded
      tokenfactors. This fixes the crashes reported by Jordan Rupprecht.
      
      Reviewers: niravd, spatel, craig.topper, rupprecht
      
      Reviewed By: niravd
      
      Differential Revision: https://reviews.llvm.org/D62633
      
      llvm-svn: 362350
      e71963c8
    • Nico Weber's avatar
      llvm-undname: Add coverage for some error paths · 3cbb8b83
      Nico Weber authored
      llvm-svn: 362346
      3cbb8b83
    • Mike Spertus's avatar
      Update MSVC Visualizer to reflect new variadic PointerUnion · 2d59bab5
      Mike Spertus authored
      This changed updates the MSVC Visualizer to work with the recent change
      of PointerUnion into a variadic template. As an extra bonus, we
      fix some bit rot in the SmallPtrSet visualizer as well
      
      llvm-svn: 362345
      2d59bab5
    • Nico Weber's avatar
      llvm-undname; Add more test coverage for demangleFunctionClass() · 54362477
      Nico Weber authored
      Also add two FC_Far that seem to be missing, by symmetry from
      the public and protected cases. (But FC_Far isn't really a thing
      anymore, so this doesn't really have an observable effect.)
      
      llvm-svn: 362344
      54362477
    • Craig Topper's avatar
      [DAGCombiner][X86] Fold away masked store and scatter with all zeroes mask. · 50b35caf
      Craig Topper authored
      Similar to what was done for masked load and gather.
      
      llvm-svn: 362342
      50b35caf
    • Craig Topper's avatar
      [X86] Add test cases for masked store and masked scatter with an all zeroes... · 5f79d749
      Craig Topper authored
      [X86] Add test cases for masked store and masked scatter with an all zeroes mask. Fix bug in ScalarizeMaskedMemIntrin
      
      Need to cast only to Constant instead of ConstantVector to allow
      ConstantAggregateZero.
      
      llvm-svn: 362341
      5f79d749
  2. Jun 02, 2019
    • Simon Pilgrim's avatar
      [CostModel][X86] Improve masked load/store AVX1/AVX2 costs · 8a32ca38
      Simon Pilgrim authored
      A mixture of internal tests and review of the scheduler models indicates we're overestimating the cost of a masked load, which we're estimating at 4x regular memory ops - more realistic values indicates that its closer to 2x. Masked stores costs are a lot more diverse but 8x is roughly in the middle of the range.
      
      e.g. SandyBridge
      defm : X86WriteRes<WriteFMaskedLoad, [SBPort23,SBPort05], 8, [1,2], 3>;
      defm : X86WriteRes<WriteFMaskedLoadY, [SBPort23,SBPort05], 9, [1,2], 3>;
      defm : X86WriteRes<WriteFMaskedStore, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>;
      defm : X86WriteRes<WriteFMaskedStoreY, [SBPort4,SBPort01,SBPort23], 5, [1,1,1], 3>;
      
      e.g. Btver2
      defm : X86WriteRes<WriteFMaskedLoad, [JLAGU, JFPU01, JFPX], 6, [1, 2, 2], 1>;
      defm : X86WriteRes<WriteFMaskedLoadY, [JLAGU, JFPU01, JFPX], 6, [2, 4, 4], 2>;
      defm : X86WriteRes<WriteFMaskedStore, [JSAGU, JFPU01, JFPX], 6, [1, 1, 4], 1>;
      defm : X86WriteRes<WriteFMaskedStoreY, [JSAGU, JFPU01, JFPX], 6, [2, 2, 4], 2>;
      
      Differential Revision: https://reviews.llvm.org/D61257
      
      llvm-svn: 362338
      8a32ca38
    • Craig Topper's avatar
      [DAGCombiner] Replace masked loads with a zero mask with the passthru value · a7bc31eb
      Craig Topper authored
      Similar to what was recently done for gathers in r362015.
      
      llvm-svn: 362337
      a7bc31eb
    • Simon Pilgrim's avatar
      [TTI][X86] Cleanup getMaskedMemoryOpCost. NFCI. · 59a8db62
      Simon Pilgrim authored
      Prep work before resurrecting D61257.
      
      llvm-svn: 362335
      59a8db62
Loading