Commits

Andrew Trick committed 6200a76db3d
Add initial support for eliminating nontrivial dead objects. This currently handles fixed size dead arrays, which speeds up Richards (and DeadArray) by 100x: Fixes <rdar://problem/20980377> Add dead array elimination to DeadObjectElimination To handle arrays, I added a run of DeadObjectElimination before high level semantic inlining. This is necessary to recognize array initialization. Recognizing low-level operations on the array would require more extensive analysis with interprocedural escape information. Arrays are actually the hard case. To handle the general (easy) case, I just need to add a simple destructor analysis. This also makes the order that instructions are removed deterministic. Swift SVN r29168