- ✔: Fixed.
- ⏳: Compiler timed out, possibly infinite recursion
- ❌: Compiler crashed due to a bug or assertion
- 🚧: Compiler crashed due to missing features
- ⚠: Compiler didn't crash, but misbehaved
| Issue # | Description | Fixing commit | Upstream | LLVM 15 | LLVM 14 |
|---|---|---|---|---|---|
| LLVM | |||||
| 57251 | DAGTypeLegalizer::RemapId infinite recursion on AArch64, X86, and AIE. |
- | ⏳ | ⏳ | ⏳ |
| 57452 | Codegen SExt index value of extractelement, translating i1 true into i32 -1. |
c2e7c9cb33ac | ✔ | ❌ | ❌ |
| 57658 | Infinite recursion in VectorLegalizer::LegalizeOp. |
545affbf79bf | ✔ | ⏳ | ⏳ |
| 58511 | Infinite recursion in foldBinOpIntoSelect. |
00816714f965 | ✔ | ⏳ | ⏳ |
| 58538 | CodeGenPrepare infinitely sinking cmp. |
670c92a415d0 | ✔ | ⏳ | ⏳ |
| 58580 | SimplifyCFG infinite recursion assertion failed | - | ❌ | ❌ | ❌ |
| 58583 | IR Verifier didn't check if switch case is constant | 348189880b7b | ✔ | ⚠ | ⚠ |
| 59055 | [AsmPrinter] Global Constant with Big Endian crashes backend with assertion ShiftAmt <= BitWidth && "Invalid shift amount" failed |
fc1ffb4c0ea8 | ✔ | ❌ | ❌ |
| 59316 | [Transforms] LowerSwitch tries to get sext on i128, causing an assertion error. | 1db51d8eb2d2 | ✔ | ❌ | ❌ |
| 59515 | [ADT] APSInt::getExtValue() - assumes signed bounds | 7859d6e79ca9 | ✔ | ❌ | ❌ |
| 61749 | Operand Index out of Range during Interleaved Access Pass (affecting X86 & ARM) | 7b6fae42f704 | ✔ | ❌ | ❌ |
| AArch64 | |||||
| 57282 | Double free given invalid index in insertelement |
3dd861818a68 | ✔ | ❌ | ❌ |
| 57326 | SelectionDAG uses uninitialized array and have OOB Write given long shuffelvector mask. |
2343ad755d60 | ✔ | ❌ | ❌ |
| 58050 | fcmp true / false used in and / or branching condition causes crash Unknown FP condition! |
- | ❌ | ❌ | ❌ |
| 58156 | GlobalIsel unable to legalize vectorized binaryop(G_ADD, G_SUB, ...) |
2343ad755d60 | ✔ | 🚧 | 🚧 |
| 58211 | GlobalIsel unable to translate ret with v1i8 / v1i16 |
10b1f58cba4f | ✔ | 🚧 | 🚧 |
| 58274 | GlobalIsel cannot select G_ZEXT / G_SEXT / G_ANYEXT with v2i16 |
0aaeb885326a | ✔ | 🚧 | 🚧 |
| 58350 | Storing a v1f32 along with a f32 causes assertion error "Extract subvector index must be a constant" |
c1909d73372e | ✔ | ❌ | ❌ |
| 58615 | Passing a v1f32 arg through memory crashes backend with "Invalid TRUNCATE!" assertion error | ef0d689e8be2 | ✔ | ❌ | ❌ |
| 59647 | [AArch64] srem with vector of -1's crashes backend when targeting Cortex A710 |
c9602e02fc16 | ✔ | ❌ | ❌ |
| 63813 | Cannot select AArch64ISD::SRAD_MERGE_OP1 for srem with vector of -1's |
- | ❌ | ❌ | ❌ |
| 64179 | Cannot select: i32 = setcc [...], ConstantFP:bf16<APFloat(0)>, setune:ch | After LLVM17 | ❌ | ❌ | ❌ |
| 64181 | Cannot select insertelement with bfloat constant | 778fa4edaf20 | ✔ | ✔ | ✔ |
| 65049 | GlobalIsel cannot select G_EXTRACT_VECTOR_ELT with non-constant index | a15144f2baed | ✔ | ❌ | ❌ |
| AMDGPU | |||||
| 57406 | GlobalIsel AMDGPUPreLegalizerCombiner double frees on negative index. |
8901f7cebc73 | ✔ | ❌ | ❌ |
| 57408 | GlobalIsel legalizeExtractVectorElt crashes on negative index. |
8901f7cebc73 | ✔ | ❌ | ❌ |
| 58171 | Allocating large mumber of bools on stack causes "Register number out of range" |
- | ❌ | ❌ | ❌ |
| 58210 | No registers from class available to allocate for R600 / Cannot select for AMDGCN | - | 🚧 | 🚧 | 🚧 |
| 58331 | mul v1i8 / v1i16 causes crash during IR optimizations due to type mismatch |
838fd611b79e | ✔ | ❌ | ❌ |
| 58861 | [AMDGPU] SI annotate control flow pass failed with error failed to annotate CFG |
4bbcbdaee5c9 | ✔ | ❌ | ❌ |
| 59313 | [AMDGCN] can't select fpow when the second arg is non-constant | - | 🚧 | 🚧 | 🚧 |
| 85717 | [AMDGPU] Uses SExt on indices in isInterestingPHIIncomingValue | 4a026b5092d7 | ✔ | ❌ | ❌ |
| ARM | |||||
| 59317 | [ARM] IselLowering unsigned overflow to crash using APInt in PerformSHLSimplify | ee31a4a7029f | ✔ | ❌ | ❌ |
| BPF | |||||
| 58884 | Vector used across basic block causes assertion LHS.getValueType().isVector() == VT.isVector() && "Cannot compare scalars to vectors" to fail |
fe05a0a3ddbf | ✔ | ❌ | ❌ |
| Hexagon | |||||
| 59009 | Cannot handle call operand v8i1 | - | 🚧 | 🚧 | 🚧 |
| 59042 | i1 vector crashes backend with error Not a vector MVT! |
534b26aa0767 | ✔ | ❌ | ❌ |
| 59044 | Cannot select mulhu for v4i8 and v2i16 |
ea6693d4c840 | ✔ | ❌ | ❌ |
| 59077 | Cannot select select for v2i32 |
4bb6e220a002 | ✔ | ❌ | ❌ |
| 59663 | Cannot select vselect for v8i1 |
5ad9adb9b0ac | ✔ | ❌ | ❌ |
| 59685 | Cannot select truncate for i1 vectors |
d1c3ec61d654 | ✔ | ❌ | ❌ |
| 64970 | cannot select v8i1 = PTRUE or PFALSE as fcmp result | - | ❌ | ❌ | ❌ |
| NVPTX | |||||
| 57398 | SelectionDAG Cannot select dynamic_stackalloc |
- | 🚧 | 🚧 | 🚧 |
| 57404 | SelectionDAG Cannot select mul i1 |
5e3ae4c4afc9 | ✔ | 🚧 | 🚧 |
| 57405 | SelectionDAG Cannot select setcc |
- | 🚧 | 🚧 | 🚧 |
| 58305 | Assertion CastInst::castIsValid(opc, C, Ty) && "Invalid constantexpr cast!" failed |
2be0abb7fe72 | ✔ | ❌ | ❌ |
| 58428 | icmp i1 used as branching condition crashes backend |
- | ❌ | ❌ | ❌ |
| 59179 | Global of non-standard type causes assertion error in debug build and memory corruption in release build | - | ❌ | ❌ | ❌ |
| 59742 | [NVPTX] Assembly printer didn't implement MCBinaryExpr::And |
- | ❌ | ❌ | ❌ |
| 64056 | v32i1 global causes "double free or corruption (out)" | - | ❌ | ❌ | ✔ |
| PowerPC | |||||
| 59074 | Backend crash due to index out of bound when lshr / shl i128 vector after sub |
292d9e869fcf | ✔ | ❌ | ❌ |
| RISCV | |||||
| 58025 | Copying a v1f32 vector between blocks causes assertion error "Invalid ANY_EXTEND" |
12357e88af66 | ✔ | ❌ | ❌ |
| 58027 | Cannot scavenge register without an emergency spill slot | 4554663bc0da | ✔ | ❌ | ❌ |
| 63816 | fpext crashes on half type |
45b172c838cb | ✔ | ❌ | ❌ |
| VE | |||||
| 58994 | udiv / urem crashes backend with assertion LHS.getValueType().isVector() == VT.isVector() && "Cannot compare scalars to vectors" failed |
fe05a0a3ddbf | ✔ | ❌ | ❌ |
| WASM | |||||
| 58904 | Assertion isReg() && "This is not a register operand!" failed during pass Machine Common Subexpression Elimination (Regression) |
629f17c51637 | ✔ | ✔ | ✔ |
| 59625 | v1i8 / v1i16 crashes backend with invalid Bitcast when targeting bleeding-edge |
00eef4f7c384 | ✔ | ❌ | ❌ |
| 59626 | Backend crash with "Unexpected all-undef build_vector" when targeting bleeding-edge |
f841ad30d77e | ✔ | ❌ | ❌ |
| 61780 | [WASM] Vector Multiplication Crash for SIMD128 | 51a93828d782 | ✔ | ❌ | ❌ |
| 61828 | [WASM] LowerAccessVectorElement tries to cast undef to ConstantSDNode and crashes during casting | 3b2476910ba3 | ✔ | ❌ | ❌ |
| 63817 | [WASM] Cannot select BUILD_VECTOR when enabling SIMD128 | 767e0c8bcef9 | ✔ | ❌ | ❌ |
| 85697 | [WebAssembly] Cannot select BUILD_VECTOR on bleeding-edge since LLVM 17 | 767e0c8bcef9 | ✔ | ❌ | ❌ |
| X86 | |||||
| 57283 | SelectionDAG assertion failure on shift | 5377abcde240 | ✔ | ✔ | ❌ |
| 57474 | SelectionDAG assertion failure on shift | eaede4b5b7cf | ✔ | ✔ | ❌ |
| 59318 | [CodeGen] Backend crash with machine code errors | - | ❌ | ❌ | ❌ |
| 58455 | Assertion "Can't handle this yet!" failed when scheduling | - | 🚧 | 🚧 | 🚧 |
| 58924 | Backend crash during pass X86 FP Stackifier |
After LLVM17 | ❌ | ❌ | ❌ |
| 58628 | Cannot select X86ISD::VZEXT_MOVL when targeting Intel Sapphire Rapids |
1cbcd8ad2071 | ✔ | ❌ | ❌ |
| 63790 | [x86_64] Backend Crash due to Scheduling Failure | - | ❌ | ❌ | ❌ |
| 64111 | [x86_64] Backend Hangs due to Infinite Looping during Scheduling | - | ❌ | ❌ | ❌ |
| 64322 | extractelement v1i1 crashes on icelake-server | 4d6f4c9c93c1 | ✔ | ❌ | ❌ |
| 64323 | Passing v1i1 as function argument crashes on icelake-server | f58fbfc74673 | ✔ | ❌ | ✔ |
| 64452 | [x86_64/GlobalISel] Crash on lshr due to error "Register class not set, wrong accessor" when targeting some CPUs |
cfd91199caed | ✔ | ❌ | ❌ |
| 64440 | [x86_64] Cannot select sint_to_fp for v8bf16 when targeting sapphirerapids / znver4 CPU |
6688701497ea | ✔ | ✔ | ✔ |
| 64439 | [x86_64] insertelement after extractelement for vxi1 crashes when targeting sapphirerapids / znver4 CPU |
ce2ec065165b | ✔ | ❌ | ❌ |
| 64435 | [x86_64/GlobalISel] Returning half type causes error "Cannot emit physreg copy instruction" |
- | ❌ | ❌ | ❌ |
| 85681 | [CodeGen] x86_64 unable to select X86ISD::VSHLV / X86ISD::VSRLV on v32i1 |
2377b9773d40 | ✔ | ❌ | ❌ |
| 86203 | [X86] GlobalIsel removed type info when legalizing ICMP, causing out of bound access on debug build | - | ❌ | ❌ | ❌ |
| XCore | |||||
| D137124 | Register null MCTargetStreamer to fix null dereference when printing globals | 3bb12d3005ff | ✔ | ✔ | ✔ |