SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. TableGen/GlobalISel: Don't reconstruct CodeGenRegBank (details)
  2. TableGen/GlobalISel: Don't take reference to temporary values (details)
  3. TableGen: Delete some copy constuctors (details)
  4. GlobalISel: Fix narrowScalar for G_ANYEXT results (details)
  5. AMDGPU: Partially directly select llvm.amdgcn.interp.p1.f16 (details)
  6. GlobalISel: Implement lower for G_BITCAST (details)
  7. [mlir] LLVM import: handle function-typed constants (details)
  8. [FPEnv] Address post-commit review comment for D71467 (details)
Commit 3ab7b7f53552a0969bd89db3317eb5a3ddf31d8f by arsenm2
TableGen/GlobalISel: Don't reconstruct CodeGenRegBank
The maps for dealing with the relationships between different register
classes and subregister indexes rely on unique pointers for every
class/index. By constructing a second copy of CodeGenRegBank, two
different pointer values existed for a given subregister depending on
where you were querying.
Use the existing CodeGenRegBank owned by the CodeGenTarget instead of
constructing a second copy. This avoids incorrectly failing map lookups
in a future change.
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp
Commit eafa8dbefe30c85e58efc5309793f2d7c2109e35 by arsenm2
TableGen/GlobalISel: Don't take reference to temporary values
These return temporary Optional<> values which are immediately
destroyed. I'm not sure why no sanitizers seem to have caught this, but
I encountered crashes on these in a future patch.
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp
Commit 8931fde869c2787886a5f84c03f70cd32e2e8b1f by arsenm2
TableGen: Delete some copy constuctors
Some register related machinery relies on uniqued, static pointers for
register classes and subregisters, so try to make sure these are never
copied.
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.h
The file was modifiedllvm/utils/TableGen/RISCVCompressInstEmitter.cpp
Commit 91715617ad601c6bd953e1c47ecaaf3610de233f by arsenm2
GlobalISel: Fix narrowScalar for G_ANYEXT results
This is nearly the same as G_ZEXT.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-anyext.mir
Commit bd7658a212ebc27a8f7d69666820df33bc8d61f5 by arsenm2
AMDGPU: Partially directly select llvm.amdgcn.interp.p1.f16
The 16 bank LDS case is complicated due to using multiple instructions.
If I attempt to write a pattern for it, the generated selector
incorrectly places the copy to m0 after the first instruction, so that
needs to be separately addressed.
Also fix not gluing the copy to m0 to the second operation in the second
half of the 16 bank lowering.
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/VOP3Instructions.td
The file was modifiedllvm/test/MC/AMDGPU/vop3.s
Commit 936483fb7dd2c8c6b014516ff3b3cd13740e0518 by arsenm2
GlobalISel: Implement lower for G_BITCAST
Bitcast only really applies between scalars and vectors. Implement as an
unmerge and remerge. The test needs to tolerate failure since one of the
unmerges currently fails to legalize.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Commit dc553ce646cdbab32d72d263d3f289952648b920 by zinenko
[mlir] LLVM import: handle function-typed constants
The current implementation of the LLVM-to-MLIR translation could not
handle functions used as constant values in instructions. The handling
is added trivially as `llvm.mlir.constant` can define constants of
function type using SymbolRef attributes, which works even for functions
that have not been declared yet.
The file was modifiedmlir/test/Target/import.ll
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
Commit 870137d207f7a5596206e2210183d911a9b06f9d by ulrich.weigand
[FPEnv] Address post-commit review comment for D71467
Remove a bit of code duplication between CreateFCmp and CreateFCmpS by
creating a shared helper function.
The file was modifiedllvm/include/llvm/IR/IRBuilder.h