swift
ce9013a3 - Fix IRGen to not use outlining for types with any kind of local archetype.

Commit
2 years ago
Fix IRGen to not use outlining for types with any kind of local archetype. Previously it was testing for opened existentials specifically. We should really teach outlining to handle local archetypes properly. We'd have to build a generic signature for the lowered type, and that probably means also adding requirements that are relevant to value operations, but it would mean outlining would benefit all types, and it would let us avoid bundling in unnecessary information from the enclosing generic environment. A minor side-effect of this is that we no longer bind names to opened element type values. The names were things like \tau_1_0, which is not very useful, especially in LLVM IR where \tau is printed with two UTF-8 escapes.
Author
Committer
Parents
  • include/swift/SIL
    • File
      SILType.h
  • lib/IRGen
    • File
      GenEnum.cpp
    • File
      GenProto.cpp
    • File
      GenRecord.h
    • File
      GenReflection.cpp
    • File
      IRGenDebugInfo.cpp
    • File
      Outlining.cpp
  • test/IRGen
    • variadic_generic_outlining.sil
    • variadic_generics.sil
Loading