swift
7f454776 - More work on storing `SILDifferentiabilityWitness *` in `DifferentiabilityWitnessFunctionInst`

Commit
6 years ago
More work on storing `SILDifferentiabilityWitness *` in `DifferentiabilityWitnessFunctionInst` 1. DenseMapInfo for LinkEntity was incorrect, causing failures. 2. SILDifferentiabilityWitness are getting deserialized into the compiled module and then emitted into the IR. This is bad because the witnesses refer to things that are not visible in the current module, producing errors. The proper fix is to not deserialize SILDifferentiabilityWitnesses. Fixed (1) by writing a correct (but currently hacky) DenseMapInfo. Patched over (2) by: A. Not serializing hidden/private SILDifferentiabilityWitnesses. B. Setting linkage for public SILDifferentiabilityWitnesses to "external" upon deserialization, which causes the linker to be okay with the fact that there are duplicate symbols.
Author
Marc Rasi
Committer
Marc Rasi
Parents
Loading