Commit Graph

8 Commits

Author SHA1 Message Date
Roman Levenstein
1bbf62d57c Extend ClassHierarchyAnalysis to collect information about protocols and all their implementations.
This information can be used e.g. to implement a speculative devirtualization of protocols or by implementations of a different type-based analysis passes.

rdar://22808133

Swift SVN r32167
2015-09-22 23:09:42 +00:00
Mark Lacey
49ceee6c53 Remove duplicated word in comment.
Swift SVN r32003
2015-09-16 19:51:03 +00:00
Roman Levenstein
3c792e4648 Re-factor the computation of indirect sub-classes in ClassHierarchyAnalysis. NFC.
- Use a worklist based approach instead of the recursive one.
- Produce the set of indirect sub-classes in a breadth-first order.

Swift SVN r31955
2015-09-15 03:53:30 +00:00
Roman Levenstein
5e91fd3a62 Extend ClassHierarchyAnalysis to provide information about indirect subclasses. This is used e.g. by the upcoming devirtualizer changes.
Swift SVN r22521
2014-10-04 09:49:47 +00:00
Nadav Rotem
1b980052b1 Cache the class hierarchy construction.
Before this commit we scanned the vtables every time we wanted to know who are the subclasses of a class. Now we scan the vtables just once.



Swift SVN r20847
2014-07-31 21:07:11 +00:00
Nadav Rotem
8d3c54840d PIC: Fix a bug in the code that collects subclasses. We want to collect indirect subclasses as well as direct sub classes.
Swift SVN r20745
2014-07-30 08:45:38 +00:00
Nadav Rotem
0cb8bf0ab8 Implement polymorphic inline caches.
Swift SVN r20740
2014-07-30 07:43:47 +00:00
Nadav Rotem
7faa5883df Add a basic Class Hierarchy Analysis. At this point it only lists classes that are inherited from in this module.
Swift SVN r20710
2014-07-29 23:01:01 +00:00