llvm/llvm-project

GlobalISel should have G_POISON

Open

#127.486 aperta il 17 feb 2025

Vedi su GitHub
 (6 commenti) (0 reazioni) (1 assegnatario)C++ (10.782 fork)batch import
good first issuellvm:globalisel

Metriche repository

Star
 (26.378 star)
Metriche merge PR
 (Merge medio 1g 2h) (1000 PR mergiate in 30 g)

Descrizione

Currently GlobalISel has G_IMPLICIT_DEF, which acts like undef. This is used to lower both poison and undef from the IR. To mirror the semantics of the IR, we need a separate representation of poison. We should introduce G_POISON to enable better optimizations, particularly when legalization introduces padding vector elements.

This change would mostly be finding all the places G_IMPLICIT_DEF is handled, and equivalently handling G_POISON. We should then migrate vector widening and other transforms to introduce poison instead of undef.

Guida contributor