Move most type metadata lookups into their own readnone

functions, and make those functions memoize the result.

This memoization can be both threadsafe and extremely
fast because of the memory ordering rules of the platforms
we're targeting: x86 is very permissive, and ARM has a
very convenient address-dependence rule which happens to
exactly match the semantics we need.

Swift SVN r20381
This commit is contained in:
John McCall
2014-07-23 07:38:26 +00:00
parent 81c1d084f7
commit 1ae1f750d0
22 changed files with 1558 additions and 35 deletions

View File

@@ -112,6 +112,8 @@ NODE(Type)
NODE(TypeAlias)
NODE(TypeList)
NODE(TypeMetadata)
NODE(TypeMetadataAccessFunction)
NODE(TypeMetadataLazyCache)
NODE(UncurriedFunctionType)
NODE(Unknown)
NODE(Unmanaged)