mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
It's used to implement `InstructionSet` and `ValueSet`: sets of SILValues and SILInstructions. Just like `BasicBlockSet` for basic blocks, the set is implemented by setting bits directly in SILNode. This is super efficient because insertion and deletion to/from the set are basic bit operations. The cost is an additional word in SILNode. But this is basically negligible: it just adds ~0.7% of memory used for SILInstructions. In my experiments, I didn't see any relevant changes in memory consumption or compile time.