Displaying 5 results from an estimated 5 matches for "iteratechainsucc".
2015 Feb 11
2
[LLVMdev] [PATCH] Bugfix for missed dependency from store to load in buildSchedGraph().
...their underlying objects.
It is also very confusing to have two "stages" of dependency checking, first by mapping an SU to one or more Values, and then to still
"check everything" that may have been missed.
I would like to try to remove RejectMemNodes (and adjustChainDeps() and iterateChainSucc()) and then simply not clear the MemUses list (while handling a store). “If an SU gets a Value mapping, keep it”.
If that list grows bigger than a certain limit, intelligent alias querying could stop, just as it stops now in iterateChainSucc when *Depth > 200.
But it would then at least be done...
2014 Dec 14
2
[LLVMdev] ScheduleDAGInstrs.cpp
...ines down and does just what I wanted :-)
I would like to instead ask another question:
Why is I->isCtrl() used in code like
// Iterate over chain dependencies only.
for (SUnit::const_succ_iterator I = SUb->Succs.begin(), E = SUb->Succs.end();
I != E; ++I)
if (I->isCtrl())
iterateChainSucc (AA, MFI, SUa, I->getSUnit(), ExitSU, Depth, Visited);
?
I thought only chain edges are relevant, and would instead use
if (J->getKind() == SDep::Order)
I got strange edges, from memory accesses to normal operation instructions that do not touch memory, because also anti and output edges a...
2014 Dec 16
3
[LLVMdev] ScheduleDAGInstrs.cpp
...ainEdge() will be called also on non-memory instructions. This is not good, since such an instruction does not have a memory operand, and MIsNeedChainEdge() will return true conservatively.
My humble guess is then that only memory deps are relevant during DAG building when traversing successors in iterateChainSucc(), because there is only interest in memory deps and those edges have been added already going bottom-up. They are absolutely needed, at least because TII->areMemAccessesTriviallyDisjoint() does not guarantee to be consistent, as it was not in the example above.
Sergei?
Best regards,
Jonas Pa...
2014 Dec 08
3
[LLVMdev] ScheduleDAGInstrs.cpp
Hi,
Can anyone help me to understand the ScheduleDAGInstrs::buildSchedGraph() method?
I find the handling of AliasChain is disturbing since:
1. A new alias chain add deps to all possibly aliasing SUs, and then clears those lists.
2. When AliasChain is present, the addChainDependency() method is called,
but the target hook areMemAccessesTriviallyDisjoint() called inside
2015 Feb 10
2
[LLVMdev] [PATCH] Bugfix for missed dependency from store to load in buildSchedGraph().
Hi,
I have committed the patch now (svn id 228686).
Regarding the commenting you requested, I attach a patch. Feel free to make changes.
I found it difficult to explain what the code does in isolated places, and thus kept my
commenting quite short. This makes me feel like the code needs a bit of refactorization
to make it more simple and understandable.
Looking at the possibility of