Skip to content
  • Daniel Dunbar's avatar
    Don't convert interface types (to structs) as part of CodeGenTypes. · 7d4e1c5e
    Daniel Dunbar authored
     - This has pros and cons, but for now the pros seem to significantly
       outway the con.
    
    The con is that we will always need to cast in the runtime
    implementation to a struct type, if we wish to access an interface
    directly.
    
    The pros are:
     - Avoid the cost of generating types which are used. Most
       manipulation of Objective-C objects is done through messages, and
       only the implementation of a class will directly access
       memory. Previously, we would convert the type even if it only
       appear as a function parameter, for example.
    
     - We don't need to worry about incomplete types, and
       UpdateCompletedType for interfaces is gone.
    
     - It becomes easier to narrow the interface to the shadow struct for
       Objective-C interfaces (so it can be eliminated).
    
    Currently the runtimes still use the CodeGenTypes machinery to
    generate the LLVM structure they need via ConvertTagDecl, but this can
    eventually be replaced.
    
    llvm-svn: 69797
    7d4e1c5e
Loading