[MLIR][LLVMIR] Fix llvm.extractvalue folder (#201838)
Fix the llvm.extractvalue folder when trying to extract a value from a
multidimensional constant. Add lit tests that would crash without the
fix.
[reviews] Deduplicate DebugTypeFunction by operand ids
Add getOrEmitDebugTypeFunction() to reuse identical DebugTypeFunction
instructions when distinct DISubroutineType nodes lower to the same
operands (e.g. !{} vs !{null} void prototypes). Update the lit test to
assert a single emission.
[SPIRV] Extend NSDI debug handling for DebugTypeFunction.
Changes:
- Collect required types with DebugInfoFinder instead of walking DbgVariableRecords only. This allows processing types that might not be available in these records, and avoids code duplication for the traversals.
- Emit DebugTypeFunction for DISubroutineType when every signature slot maps to an
emitted debug type.
- Reset per-module state in beginModule().
- Replace parallel FileStringRegs/BasicTypeNameRegs with a StringMap OpString
cache, deduplicating identical strings.
- Add LLVM DINode flag lowering for NSDI.
- Cache DebugInfoNone, OpTypeVoid and OpTypeInt32 registers to avoid duplicate instructions.
[AMDGPU] Be more careful about using expandDivRem24 (#201186)
expandDivRem24 uses v_rcp_f32 which can have an error of one ulp. This
can cause an incorrect calculation of Y/X when abs(Y) > 0x800000. Thus,
do not use expandDivRem24 for unsigned 24-bit values.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
[CodeGen] Remove `--enable-no-signed-zeros-fp-math` flag support (#201819)
Now CodeGen part no longer depends on this flag, remove it, so we can
remove `Target::resetTargetOptions` later.