Do all memory op improvements in a single optimization pass.

Rather than having separate passes to do conversion, when possible, of:

- General gather/scatter of a vector of pointers to g/s of
  a base pointer and integer offsets
- Gather/scatter to masked load/store, load+broadcast
- Masked load/store to regular load/store

Now all are done in a single ImproveMemoryOps pass.  This change was in
particular to address some phase ordering issues that showed up with
multidimensional array access wherein after determining that an outer
dimension had the same index value, we previously weren't able to take
advantage of the uniformity of the resulting pointer.
This commit is contained in:
Matt Pharr
2012-06-12 13:56:17 -07:00
parent 40a295e951
commit 96450e17a3

1019
opt.cpp

File diff suppressed because it is too large Load Diff