Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Replace llvm::iplist<Instruction> with TaggedList<Instruction> in IRFunction #1766
I want to introduce a new linked list data structure,
I have implemented a prototype of
We already have
The online instruction ordering is needed to implement advanced memory allocation and scheduling in backends.
Preemptively Answered Questions:
The average time to insert an element in a list as measured on my MacBook Pro:
The constant factor steps up around 256 K nodes which corresponds to the size of my last level cache. Each list node is 24 bytes in my benchmark program.
For comparison, I've measured untagged list insertions at ~7 ns. Note that this is a very difficult operation to time, though. The time taken is usually dominated by what else is going on in the program.
Yes for a Glow beginner, no for a C++ beginner ;-)
I already have a prototype where I worked out a lot of the implementation details of the retagging algorithm. Maybe I should get that in shape so I can submit it as a WIP PR.