SuccessChanges

Summary

  1. [AMDGPU] Unnecessary -amdgpu-scalarize-global-loads=false flag removed from min/max lit tests. Reviewers: arsenm Differential Revision: https://reviews.llvm.org/D67712
  2. [Float2Int] avoid crashing on unreachable code (PR38502) In the example from: https://bugs.llvm.org/show_bug.cgi?id=38502 ...we hit infinite looping/crashing because we have non-standard IR - an instruction operand is used before defined. This and other unusual constructs are allowed in unreachable blocks, so avoid the problem by using DominatorTree to step around landmines. Differential Revision: https://reviews.llvm.org/D67766
  3. Reapply r372285 "GlobalISel: Don't materialize immarg arguments to intrinsics" This reverts r372314, reapplying r372285 and the commits which depend on it (r372286-r372293, and r372296-r372297) This was missing one switch to getTargetConstant in an untested case.
  4. [MCA] Improved cost computation for loop carried dependencies in the bottleneck analysis. This patch introduces a cut-off threshold for dependency edge frequences with the goal of simplifying the critical sequence computation. This patch also removes the cost normalization for loop carried dependencies. We didn't really need to artificially amplify the cost of loop-carried dependencies since it is already computed as the integral over time of the delay (in cycle). In the absence of backend stalls there is no need for computing a critical sequence. With this patch we early exit from the critical sequence computation if no bottleneck was reported during the simulation.
  5. Make appendCallNB lambda mutable Lambdas are by deafult const so that they produce the same output every time they are run. This lambda needs to set the value on a captured promise which is a mutating operation, so it must be mutable.
  6. X86: Add missing test for vshli SimplifyDemandedBitsForTargetNode This would have caught this regression which triggered the revert of r372285: https://bugs.chromium.org/p/chromium/issues/detail?id=1005750
Revision 372340 by alex-t:
[AMDGPU] Unnecessary -amdgpu-scalarize-global-loads=false flag removed from min/max lit tests.

Reviewers: arsenm

Differential Revision: https://reviews.llvm.org/D67712
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/max.ll (diff)llvm.src/test/CodeGen/AMDGPU/max.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/sminmax.ll (diff)llvm.src/test/CodeGen/AMDGPU/sminmax.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/sminmax.v2i16.ll (diff)llvm.src/test/CodeGen/AMDGPU/sminmax.v2i16.ll
Revision 372339 by spatel:
[Float2Int] avoid crashing on unreachable code (PR38502)

In the example from:
https://bugs.llvm.org/show_bug.cgi?id=38502
...we hit infinite looping/crashing because we have non-standard IR -
an instruction operand is used before defined.
This and other unusual constructs are allowed in unreachable blocks,
so avoid the problem by using DominatorTree to step around landmines.

Differential Revision: https://reviews.llvm.org/D67766
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/Scalar/Float2Int.h (diff)llvm.src/include/llvm/Transforms/Scalar/Float2Int.h
The file was modified/llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp (diff)llvm.src/lib/Transforms/Scalar/Float2Int.cpp
The file was modified/llvm/trunk/test/Other/opt-O2-pipeline.ll (diff)llvm.src/test/Other/opt-O2-pipeline.ll
The file was modified/llvm/trunk/test/Other/opt-O3-pipeline.ll (diff)llvm.src/test/Other/opt-O3-pipeline.ll
The file was modified/llvm/trunk/test/Other/opt-Os-pipeline.ll (diff)llvm.src/test/Other/opt-Os-pipeline.ll
The file was modified/llvm/trunk/test/Transforms/Float2Int/basic.ll (diff)llvm.src/test/Transforms/Float2Int/basic.ll
Revision 372338 by arsenm:
Reapply r372285 "GlobalISel: Don't materialize immarg arguments to intrinsics"

This reverts r372314, reapplying r372285 and the commits which depend
on it (r372286-r372293, and r372296-r372297)

This was missing one switch to getTargetConstant in an untested case.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelector.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
The file was modified/llvm/trunk/include/llvm/CodeGen/ScheduleDAGInstrs.h (diff)llvm.src/include/llvm/CodeGen/ScheduleDAGInstrs.h
The file was modified/llvm/trunk/include/llvm/Target/TargetSelectionDAG.td (diff)llvm.src/include/llvm/Target/TargetSelectionDAG.td
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modified/llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp (diff)llvm.src/lib/CodeGen/ScheduleDAGInstrs.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUSubtarget.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/BUFInstructions.td (diff)llvm.src/lib/Target/AMDGPU/BUFInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/DSInstructions.td (diff)llvm.src/lib/Target/AMDGPU/DSInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (diff)llvm.src/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SIInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SOPInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SOPInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP1Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP1Instructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP3Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP3Instructions.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (diff)llvm.src/lib/Target/ARM/ARMISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrInfo.td (diff)llvm.src/lib/Target/ARM/ARMInstrInfo.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrThumb2.td (diff)llvm.src/lib/Target/ARM/ARMInstrThumb2.td
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td (diff)llvm.src/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonDepOperands.td (diff)llvm.src/lib/Target/Hexagon/HexagonDepOperands.td
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonIntrinsics.td (diff)llvm.src/lib/Target/Hexagon/HexagonIntrinsics.td
The file was modified/llvm/trunk/lib/Target/Mips/MicroMipsDSPInstrInfo.td (diff)llvm.src/lib/Target/Mips/MicroMipsDSPInstrInfo.td
The file was modified/llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td (diff)llvm.src/lib/Target/Mips/Mips64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/Mips/MipsDSPInstrInfo.td (diff)llvm.src/lib/Target/Mips/MipsDSPInstrInfo.td
The file was modified/llvm/trunk/lib/Target/Mips/MipsInstrInfo.td (diff)llvm.src/lib/Target/Mips/MipsInstrInfo.td
The file was modified/llvm/trunk/lib/Target/Mips/MipsMSAInstrInfo.td (diff)llvm.src/lib/Target/Mips/MipsMSAInstrInfo.td
The file was modified/llvm/trunk/lib/Target/Mips/MipsSEISelLowering.cpp (diff)llvm.src/lib/Target/Mips/MipsSEISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrAltivec.td (diff)llvm.src/lib/Target/PowerPC/PPCInstrAltivec.td
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrVSX.td (diff)llvm.src/lib/Target/PowerPC/PPCInstrVSX.td
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVInstrInfoA.td (diff)llvm.src/lib/Target/RISCV/RISCVInstrInfoA.td
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td (diff)llvm.src/lib/Target/SystemZ/SystemZInstrFormats.td
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZInstrVector.td (diff)llvm.src/lib/Target/SystemZ/SystemZInstrVector.td
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZOperands.td (diff)llvm.src/lib/Target/SystemZ/SystemZOperands.td
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZOperators.td (diff)llvm.src/lib/Target/SystemZ/SystemZOperators.td
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZPatterns.td (diff)llvm.src/lib/Target/SystemZ/SystemZPatterns.td
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td
The file was modified/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (diff)llvm.src/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.td (diff)llvm.src/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrMMX.td (diff)llvm.src/lib/Target/X86/X86InstrMMX.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSSE.td (diff)llvm.src/lib/Target/X86/X86InstrSSE.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrSystem.td (diff)llvm.src/lib/Target/X86/X86InstrSystem.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrTSX.td (diff)llvm.src/lib/Target/X86/X86InstrTSX.td
The file was modified/llvm/trunk/lib/Target/X86/X86InstrXOP.td (diff)llvm.src/lib/Target/X86/X86InstrXOP.td
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.exp.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.exp.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.s.sendmsg.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.s.sendmsg.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgcn-sendmsg.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgcn-sendmsg.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_ps.ll (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_ps.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_vs.ll (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/irtranslator-amdgpu_vs.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/irtranslator-struct-return-intrinsics.ll (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/irtranslator-struct-return-intrinsics.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f16.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f16.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f32.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f32.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.sleep.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.sleep.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn-exp.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn-exp.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.swizzle.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ds.swizzle.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.load.1d.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.load.1d.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.sample.1d.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.sample.1d.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.raw.buffer.load.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.raw.buffer.load.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.load.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.load.ll
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.store.llllvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.store.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-smulh.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-smulh.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-umulh.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/regbankselect-umulh.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/sched-assert-dead-def-subreg-use-other-subreg.mirllvm.src/test/CodeGen/AMDGPU/sched-assert-dead-def-subreg-use-other-subreg.mir
The file was added/llvm/trunk/test/TableGen/immarg.tdllvm.src/test/TableGen/immarg.td
The file was modified/llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp (diff)llvm.src/utils/TableGen/GlobalISelEmitter.cpp
Revision 372337 by adibiagio:
[MCA] Improved cost computation for loop carried dependencies in the bottleneck analysis.

This patch introduces a cut-off threshold for dependency edge frequences with
the goal of simplifying the critical sequence computation.  This patch also
removes the cost normalization for loop carried dependencies.  We didn't really
need to artificially amplify the cost of loop-carried dependencies since it is
already computed as the integral over time of the delay (in cycle).

In the absence of backend stalls there is no need for computing a critical
sequence. With this patch we early exit from the critical sequence computation
if no bottleneck was reported during the simulation.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/bottleneck-analysis.s (diff)llvm.src/test/tools/llvm-mca/X86/SkylakeClient/bottleneck-analysis.s
The file was modified/llvm/trunk/tools/llvm-mca/Views/BottleneckAnalysis.cpp (diff)llvm.src/tools/llvm-mca/Views/BottleneckAnalysis.cpp
The file was modified/llvm/trunk/tools/llvm-mca/Views/BottleneckAnalysis.h (diff)llvm.src/tools/llvm-mca/Views/BottleneckAnalysis.h
Revision 372336 by cbieneman:
Make appendCallNB lambda mutable

Lambdas are by deafult const so that they produce the same output every time they are run. This lambda needs to set the value on a captured promise which is a mutating operation, so it must be mutable.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/RPCUtils.h
Revision 372335 by arsenm:
X86: Add missing test for vshli SimplifyDemandedBitsForTargetNode

This would have caught this regression which triggered the revert of
r372285: https://bugs.chromium.org/p/chromium/issues/detail?id=1005750
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/X86/vshli-simplify-demanded-bits.llllvm.src/test/CodeGen/X86/vshli-simplify-demanded-bits.ll