Commits

Arnold Schwaighofer committed a5e75311af7
stdlib: Implement Dictionary using a structs of arrays strategy Instead of Optional entries use a third bitmap array to mark whether an entry is valid. This representation saves space (because individual entries don't have a alignment padding slack) and simplifies ARC's job leading to better performance. Speedup measured (before/after) at -O: DictionaryHashableClass`````````3.1 DollarFilter````````````````````1.3 DollarMap```````````````````````1.3 DollarReduce````````````````````1.4 JSONHelperDeserialize```````````1.4 NSDictionaryImplicitConversion``1.4 NSXMLParser`````````````````````1.3 Speedup measured (before/after) at -Onone: DictOfArraysToArrayOfDicts``````1.3 Dictionary``````````````````````3.5 Dictionary2`````````````````````3.2 Dictionary3`````````````````````3.2 DictionaryHashableClass`````````1.9 DictionaryHashableStruct````````2.4 DictionaryRemove````````````````3.3 DictionarySwap``````````````````2.5 DollarFilter````````````````````1.2 DollarMap```````````````````````1.2 DollarReduce````````````````````1.3 Forest``````````````````````````1.8 Histogram```````````````````````1.6 JSONHelperDeserialize```````````1.6 NSDictionaryImplicitConversion``1.3 Prims```````````````````````````2.9 RGBHistogram````````````````````1.4 rdar://22173734 Swift SVN r32244