SuccessChanges

Summary

  1. [AMDGPU][GlobalISel] Eliminate barrier if workgroup size is not greater than wavefront size (details)
  2. GlobalISel: Combine G_ADD of G_PTRTOINT to G_PTR_ADD (details)
  3. AMDGPU/GlobalISel: Tolerate negated control flow intrinsic outputs (details)
  4. Add clang-cl "vctoolsdir" option to specify the location of the msvc toolchain (details)
  5. AMDGPU: Use Subtarget reference in SIInstrInfo (details)
  6. [Support] Allow printing the stack trace only for a given depth (details)
Commit 831457c6d59edb0e381917b35ca6099f9b86c6e8 by jay.foad
[AMDGPU][GlobalISel] Eliminate barrier if workgroup size is not greater than wavefront size

If a workgroup size is known to be not greater than wavefront size
the s_barrier instruction is not needed since all threads are guaranteed
to come to the same point at the same time.

This is the same optimization that was implemented for SelectionDAG in
D31731.

Differential Revision: https://reviews.llvm.org/D86609
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/barrier-elimination.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (diff)
Commit eb074088c983ce6f255e0e83babdd32a4f2dd457 by Matthew.Arsenault
GlobalISel: Combine G_ADD of G_PTRTOINT to G_PTR_ADD

This produces less work for addressing mode matching. I think this is
safe since I don't think machine IR is supposed to give the same
aliasing properties as getelementptr in the IR.
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-add-to-ptradd.mir
Commit 21ccedc24fc49b43e84095b4773f8aa86c366dac by Matthew.Arsenault
AMDGPU/GlobalISel: Tolerate negated control flow intrinsic outputs

If the condition output is negated, swap the branch targets. This is
similar to what SelectionDAG does for when SelectionDAGBuilder
decides to invert the condition and swap the branches.

This is leaving behind a dead constant def for some reason.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-brcond.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-amdgcn.if-invalid.mir (diff)
Commit 08704714421086e775a297339fc60963cc07eec9 by hans
Add clang-cl "vctoolsdir" option to specify the location of the msvc toolchain

Add an option to directly specify where the msvc toolchain lives for
clang-cl and avoid unwanted file and registry probes.

Differential revision: https://reviews.llvm.org/D85998
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/test/Driver/cl-options.c (diff)
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp (diff)
Commit ff34116cf022ca010d60b972dae55016cd5f7478 by Matthew.Arsenault
AMDGPU: Use Subtarget reference in SIInstrInfo
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp (diff)
Commit a7da7e421c54e0053628f18f3750d4a8588cd627 by alexandre.ganea
[Support] Allow printing the stack trace only for a given depth

Differential Revision: https://reviews.llvm.org/D85458
The file was modifiedllvm/unittests/Support/CrashRecoveryTest.cpp (diff)
The file was modifiedllvm/include/llvm/Support/Signals.h (diff)
The file was modifiedllvm/lib/Support/Windows/Signals.inc (diff)
The file was modifiedllvm/lib/Support/Unix/Signals.inc (diff)