Skip to content

Commit a06cacb

Browse files
committed
[projection] Introduce two new types NewProjection and NewProjectionPath.
NewProjection is a re-architecting of Projection that supports all of the same functionality as Projection but in 1/3 of the original size (in the common case). It is able to accomplish this by removing the base type out of NewProjection itself and into users such as NewProjectionPath. Thus NewProjection is now strictly an index from some parent type rather than being a parent type and an index. NewProjectionPath also has all of the same functionality as ProjectionPath, but due to NewProjection being smaller than Projection is smaller than ProjectionPath. Used together NewProjection/NewProjectionPath yields the same output as Projection/ProjectionPath when evaluating the LSLocation dumping tests. Additionally, NewProjection is more flexible than Projection and will for free give us the ability to perform AA on index_addr/index_raw_addr as well as be able to integrate casts into the projection paradigm. rdar://22484381
1 parent 9fa6e31 commit a06cacb

File tree

5 files changed

+1304
-29
lines changed

5 files changed

+1304
-29
lines changed

0 commit comments

Comments
 (0)