This is a good idea and I started thinking in that direction already.
But what I don't quite understand the TFs, how TFs are formed and which rules they should obey to.
For example now:
PendingLoads created by the SelectionDAGLowering::getLoadFrom and then copied into the
TokenFactor node by SelectionDAGLowering::getRoot called from the
So, if I now detect in the getRoot that there are more than let's say 64 nodes in the PendingLoads queue, what should I do?
- Can I take only 64 of them and forget about the rest by ignoring them?
- Or should I produces a series of TFs connected to each other, each with max 64 operands? If so, how do I do it?
Basically, I need a better understanding of TFs and how they relate to each other.
Another question: My small experiments give me the impression that TF nodes in my use-cases are never found in the SelectionDAG's CSE map by FindOrInsert, even though they are inserted into it. That is, every time a new node is inserted into the map. If this is true, may be their insertion into CSE maps can be avoided alltogether? But may be I'm wrong...
----- Ursprüngliche Mail ----