SuccessChanges

Summary

  1. Revert "Fix swig python package path" (details)
  2. [X86] Remove the special isBuildVectorOfConstantSDNodes handling from (details)
  3. Use getTargetConstant for BLENDI, and add a test to catch it. (details)
  4. llvm-undname: Delete an empty, unused method. (details)
  5. Finish building the full-expression for a static_assert expression (details)
  6. [Object] Uncapitalize an error message (details)
  7. [llvm-ar] Removes repetition in the error message (details)
  8. [X86] Use timm in MMX pinsrw/pextrw isel patterns. Add missing test (details)
  9. [llvm-readobj] flush output before crash (details)
  10. [X86] Convert tbm_bextri_u32/tbm_bextri_u64 intrinsics TargetConstant (details)
  11. Reapply [llvm-ar] Include a line number when failing to parse an MRI (details)
  12. [CallSiteSplitting] Remove unused includes (NFC). (details)
  13. [MachinePipeliner] Improve the TargetInstrInfo API (details)
  14. [yaml2obj/obj2yaml] - Do not trigger llvm_unreachable when (details)
  15. [llvm-dwarfdump] Adjust Windows path to be acceptable by JSON (details)
  16. [NFC] Test commit, deleting some whitespace (details)
  17. [IntrinsicEmitter] Add overloaded types for SVE intrinsics (Subdivide2 & (details)
  18. [lldb][NFC] Remove unused include in TestLineEntry.cpp (details)
  19. Revert r372366 "Use getTargetConstant for BLENDI, and add a test to (details)
  20. [AMDGPU] Use std::make_tuple to make some toolchains happy again (details)
Commit 627868ab7c3d42313634b0305ce498645f6c851c by hhb
Revert "Fix swig python package path"
Summary: This reverts commit 5a115e81cdd40c758b10c382aeffc0c8de6930e2.
Reviewers: JDevlieghere, ZeGentzy
Subscribers: mgorny, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D67781
llvm-svn: 372364
The file was modifiedlldb/scripts/CMakeLists.txt
Commit 081cb7ef2370b42e4eeac086f472eec123174452 by craig.topper
[X86] Remove the special isBuildVectorOfConstantSDNodes handling from
LowerBUILD_VECTORvXi1.
The later code that generates a constant when there are some non-const
elements works basically the same and doesn't require there to be any
non-const elements.
llvm-svn: 372365
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 52621307bcab2013e8833f3317cebd63a6db3885 by saugustine
Use getTargetConstant for BLENDI, and add a test to catch it.
Summary: This fixes a crasher introduced by r372338.
Reviewers: echristo, arsenm
Subscribers: jvesely, wdng, nhaehnle, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67785
Tighten up the test case.
llvm-svn: 372366
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/isel-blendi-gettargetconstant.ll
Commit 8c77674e0f4b8a1d64740088eaa0776197b9e350 by nicolasweber
llvm-undname: Delete an empty, unused method.
llvm-svn: 372367
The file was modifiedllvm/lib/Demangle/MicrosoftDemangleNodes.cpp
The file was modifiedllvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
Commit 4aef105b43076e18e2d272a77491adc9533f5f3f by richard-llvm
Finish building the full-expression for a static_assert expression
before evaluating it rather than afterwards.
This is groundwork for C++20's P0784R7, where non-trivial destructors
can be constexpr, so we need ExprWithCleanups markers in constant
expressions.
No significant functionality change intended (though this fixes a bug
only visible through libclang / -ast-dump / tooling: we now store the
converted condition on the StaticAssertDecl rather than the original).
llvm-svn: 372368
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/test/Index/Core/index-source.cpp
Commit a5db9ee71f81310f89204cde1dfb54fea9bd92f1 by maskray
[Object] Uncapitalize an error message
Test case will be added by my next commit.
llvm-svn: 372369
The file was modifiedllvm/lib/Object/Archive.cpp
Commit c768ad94b7f0be9feb86dd5cfcdb4158a5a28dd7 by maskray
[llvm-ar] Removes repetition in the error message
As per bug 40244, fixed an error where the error message was repeated.
Differential Revision: https://reviews.llvm.org/D67038 Patch by Yu Jian
(wyjw)
llvm-svn: 372370
The file was addedllvm/test/tools/llvm-ar/invalid-object-file.test
The file was modifiedllvm/tools/llvm-ar/llvm-ar.cpp
Commit a34f13f2bab3bb3a25ce999defb616558cbc3f4f by craig.topper
[X86] Use timm in MMX pinsrw/pextrw isel patterns. Add missing test
cases.
This fixes an isel failure after r372338.
llvm-svn: 372371
The file was modifiedllvm/test/CodeGen/X86/mmx-intrinsics.ll
The file was modifiedllvm/lib/Target/X86/X86InstrMMX.td
Commit e03663fbb8469e54e18666efcc3c0b691cc8fb1f by Yuanfang Chen
[llvm-readobj] flush output before crash
Otherwise the output could be lost.
llvm-svn: 372372
The file was modifiedllvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
Commit 621c93ec1fd804f736cbcb58282ef037fa1a9c48 by craig.topper
[X86] Convert tbm_bextri_u32/tbm_bextri_u64 intrinsics TargetConstant
argument to a regular Constant during lowering.
We reuse an ISD opcode here that can be reached from BMI that doesn't
require it to be an immediate. Our isel patterns to match the TBM
immediate form require a Constant and not a TargetConstant.
We were accidentally getting the Constant due to a quirk of combineBEXTR
calling SimplifyDemandedBits. The call to SimplifyDemandedBits ended up
constant folding the TargetConstant to a regular Constant. But we should
probably instead be asserting if SimplifyDemandedBits on a
TargetConstant so we shouldn't rely on this behavior.
llvm-svn: 372373
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86IntrinsicsInfo.h
Commit 25040f8dec2e2dda5b0951744f9a32fb7aab3755 by gbreynoo
Reapply [llvm-ar] Include a line number when failing to parse an MRI
script
Reapply r372309
Errors that occur when reading an MRI script now include a corresponding
line number.
Differential Revision: https://reviews.llvm.org/D67449
llvm-svn: 372374
The file was modifiedllvm/test/Object/mri4.test
The file was modifiedllvm/test/Object/mri2.test
The file was addedllvm/test/tools/llvm-ar/mri-errors.test
The file was modifiedllvm/tools/llvm-ar/llvm-ar.cpp
The file was modifiedllvm/test/Object/mri3.test
The file was modifiedllvm/test/tools/llvm-ar/mri-addlib.test
Commit 8f21b5354729e2eead64411ece91e455cc527d7f by flo
[CallSiteSplitting] Remove unused includes (NFC).
llvm-svn: 372375
The file was modifiedllvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
Commit 15e27b0b6d9d51362fad85dbe95ac5b3fadf0a06 by jmolloy
[MachinePipeliner] Improve the TargetInstrInfo API
analyzeLoop/reduceLoopCount
The way MachinePipeliner uses these target hooks is stateful - we reduce
trip count by one per call to reduceLoopCount. It's a little overfit for
hardware loops, where we don't have to worry about stitching a loop
induction variable across prologs and epilogs (the induction variable is
implicit).
This patch introduces a new API:
  /// Analyze loop L, which must be a single-basic-block loop, and if
the
/// conditions can be understood enough produce a PipelinerLoopInfo
object.
virtual std::unique_ptr<PipelinerLoopInfo>
analyzeLoopForPipelining(MachineBasicBlock *LoopBB) const;
The return value is expected to be an implementation of the abstract
class:
  /// Object returned by analyzeLoopForPipelining. Allows software
pipelining
/// implementations to query attributes of the loop being pipelined.
class PipelinerLoopInfo {
public:
   virtual ~PipelinerLoopInfo();
   /// Return true if the given instruction should not be pipelined and
should
   /// be ignored. An example could be a loop comparison, or induction
variable
   /// update with no users being pipelined.
   virtual bool shouldIgnoreForPipelining(const MachineInstr *MI) const
= 0;
    /// Create a condition to determine if the trip count of the loop is
greater
   /// than TC.
   ///
   /// If the trip count is statically known to be greater than TC,
return
   /// true. If the trip count is statically known to be not greater
than TC,
   /// return false. Otherwise return nullopt and fill out Cond with the
test
   /// condition.
   virtual Optional<bool>
   createTripCountGreaterCondition(int TC, MachineBasicBlock &MBB,
                                SmallVectorImpl<MachineOperand> &Cond) =
0;
    /// Modify the loop such that the trip count is
   /// OriginalTC + TripCountAdjust.
   virtual void adjustTripCount(int TripCountAdjust) = 0;
    /// Called when the loop's preheader has been modified to
NewPreheader.
   virtual void setPreheader(MachineBasicBlock *NewPreheader) = 0;
    /// Called when the loop is being removed.
   virtual void disposed() = 0;
};
The Pipeliner (ModuloSchedule.cpp) can use this object to modify the
loop while allowing the target to hold its own state across all calls.
This API, in particular the disjunction of creating a trip count check
condition and adjusting the loop, improves the code quality in
ModuloSchedule.cpp.
llvm-svn: 372376
The file was modifiedllvm/lib/CodeGen/MachinePipeliner.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h
The file was modifiedllvm/include/llvm/CodeGen/ModuloSchedule.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/ModuloSchedule.cpp
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.h
The file was modifiedllvm/test/CodeGen/Hexagon/swp-epilog-phi7.ll
Commit 4d69967f44116b4ad4b2810633045ffed119f7c3 by grimar
[yaml2obj/obj2yaml] - Do not trigger llvm_unreachable when
dumping/parsing relocations and e_machine is unsupported.
Currently when e_machine is set to something that is not supported by
YAML lib, then tools fail with llvm_unreachable.
In this patch I allow them to handle relocations in this case. It can be
used to dump and create objects for broken or unsupported targets.
Differential revision: https://reviews.llvm.org/D67657
llvm-svn: 372377
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was addedllvm/test/tools/yaml2obj/relocation-unsupported-machine.yaml
The file was addedllvm/test/tools/obj2yaml/relocation-unsupported-machine.yaml
Commit 9120829063de1885b88a1e274e17026552bbab68 by djordje.todorovic
[llvm-dwarfdump] Adjust Windows path to be acceptable by JSON
Backslash is a special character according to JSON specification, so we
should avoid that when printing a file path with the
--statistics option.
Differential Revision: https://reviews.llvm.org/D67699
llvm-svn: 372378
The file was modifiedllvm/tools/llvm-dwarfdump/Statistics.cpp
Commit 0ecf34dde3904079dc0f7b0569494c7118d9f08d by david.tellenbach
[NFC] Test commit, deleting some whitespace
llvm-svn: 372379
The file was modifiedllvm/docs/Atomics.rst
Commit 22a8f35ce0ed2b47934df458966a90509fd7f25a by kerry.mclaughlin
[IntrinsicEmitter] Add overloaded types for SVE intrinsics (Subdivide2 &
Subdivide4)
Summary: Both match the type of another intrinsic parameter of a vector
type, but where each element is subdivided to form a vector with more
elements of a smaller type.
Subdivide2Argument allows intrinsics such as the following to be
defined:
- declare <vscale x 4 x i32> @llvm.something.nxv4i32(<vscale x 8 x i16>)
Subdivide4Argument allows intrinsics such as:
- declare <vscale x 4 x i32> @llvm.something.nxv4i32(<vscale x 16 x i8>)
Tests are included in follow up patches which add intrinsics using these
types.
Reviewers: sdesmalen, SjoerdMeijer, greened, rovka
Reviewed By: sdesmalen
Subscribers: rovka, tschuett, jdoerfert, cfe-commits, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67549
llvm-svn: 372380
The file was modifiedllvm/lib/IR/Function.cpp
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/utils/TableGen/IntrinsicEmitter.cpp
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
The file was modifiedllvm/include/llvm/IR/Intrinsics.h
Commit 7335197147924b15163ded2177ddc3b7ae118712 by Raphael Isemann
[lldb][NFC] Remove unused include in TestLineEntry.cpp
llvm-svn: 372381
The file was modifiedlldb/unittests/Symbol/TestLineEntry.cpp
Commit 03475adcf720cdecf50cae7ef17c9b70883115df by nicolasweber
Revert r372366 "Use getTargetConstant for BLENDI, and add a test to
catch it."
This reverts commit 52621307bcab2013e8833f3317cebd63a6db3885.
Tests have been failing all night with
    [0/2] ACTION
//llvm/test:check-llvm(//llvm/utils/gn/build/toolchain:unix)
   -- Testing: 33647 tests, 64 threads --
   Testing: 0 .. 10..
   UNRESOLVED: LLVM ::
CodeGen/AMDGPU/GlobalISel/isel-blendi-gettargetconstant.ll (6943 of
33647)
   ******************** TEST 'LLVM ::
CodeGen/AMDGPU/GlobalISel/isel-blendi-gettargetconstant.ll' FAILED
********************
   Test has no run line!
   ********************
Since there were other concerns on https://reviews.llvm.org/D67785, I'm
just reverting for now.
llvm-svn: 372383
The file was removedllvm/test/CodeGen/AMDGPU/GlobalISel/isel-blendi-gettargetconstant.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 169cb63478aa047451786d8ccf6af4b721e3b271 by bjorn.a.pettersson
[AMDGPU] Use std::make_tuple to make some toolchains happy again
My toolchain stopped working (LLVM 8.0 , libstdc++ 5.4.0) after r372338.
The same problem was seen in clang-cuda-build buildbots:
clang-cuda-build/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp:763:12:
error: chosen constructor is explicit in copy-initialization
   return {Reg, 0, nullptr};
          ^~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:479:19:
note: explicit constructor declared here
       constexpr tuple(_UElements&&... __elements)
                 ^
This commit adds explicit calls to std::make_tuple to work around the
problem.
llvm-svn: 372384
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp