Subzero: Implement InstList in terms of llvm::ilist<> .
Use LLVM's intrusive list ADT template to implement instruction lists. This embeds prev/next pointers into the instruction, and as such, iterators essentially double as instruction pointers. This means stripping off one level of indirection when dereferencing, and also the range-based for loop can't be used.
The performance difference in translation time seems to be 1-2%.
I tried to also do this for the much less used PhiList and AssignList, but ran into SFINAE problems.
BUG= none
R=jvoung@chromium.org
Review URL: https://codereview.chromium.org/709533002
9 files changed