search for: nodeupdated

Displaying 7 results from an estimated 7 matches for "nodeupdated".

2018 Feb 06
0
ConstantFP and Use
Hi all, I've run into an assert in LegalizeTypes that is puzzling. It is in NodeUpdateListener::NodeUpdated: void NodeUpdated(SDNode *N) override { // Node updates can mean pretty much anything. It is possible that an // operand was set to something already processed (f.e.) in which case // this node could become ready. Recompute its flags. assert(N->getNodeId() != DAGTy...
2011 Aug 26
0
[LLVMdev] Dead node removal in DAGCombiner
...00978 continue; > 00979 } I suspect they could be removed. Probably a helper function should be added for this and used all over the place. Also, the RAUW earlier can cause nodes to be unified (due to CSE). Probably the WorkListRemover class should add nodes to the worklist in the NodeUpdated method. > > Or is it one of the corner cases mentioned in SelectionDAGISel.cpp:644? > > 00644 // Skip dead nodes. DAGCombiner is expected to eliminate > all dead nodes, > 00645 // but there are currently some corner cases that it > misses. Also, this > 00646...
2011 Aug 26
2
[LLVMdev] Dead node removal in DAGCombiner
Is this piece of code in DAGCombiner::visitLOAD removing a dead node? 06155 if (N->use_empty()) { 06156 removeFromWorkList(N); 06157 DAG.DeleteNode(N); 06158 } If it is, is there a reason it doesn't push its operands to the work list as done in line 974-975? 00970 // If N has no uses, it is dead. Make sure to revisit all N's operands once
2008 Apr 23
1
[LLVMdev] FoldingSetNodeID operations inefficiency
...istener if it exists and delete it. if (UpdateListener) UpdateListener->NodeDeleted(U); DeleteNodeNotInCSEMaps(U); } else { // If the node doesn't already exist, we updated it. // Inform a listener if it exists. if (UpdateListener) UpdateListener->NodeUpdated(U); } So, basically CSE map should be updated. To achieve that, a hash of the updated node N is computed (and its internal FoldingSetNodeID::Bits array contains about 6400 elements!) and the node is replaced. My observation shows that amount of FoldingSetNodeID operations on this node N is a...
2008 Apr 24
0
[LLVMdev] FoldingSetNodeID operations inefficiency
.... > if (UpdateListener) > UpdateListener->NodeDeleted(U); > DeleteNodeNotInCSEMaps(U); > } else { > // If the node doesn't already exist, we updated it. > // Inform a listener if it exists. > if (UpdateListener) > UpdateListener->NodeUpdated(U); > } > > So, basically CSE map should be updated. To achieve that, a hash of the > updated node N is computed (and its internal FoldingSetNodeID::Bits > array contains about 6400 elements!) and the node is replaced. > > My observation shows that amount of FoldingSetNodeID o...
2008 Apr 28
1
[LLVMdev] FoldingSetNodeID operations inefficiency
.... > if (UpdateListener) > UpdateListener->NodeDeleted(U); > DeleteNodeNotInCSEMaps(U); > } else { > // If the node doesn't already exist, we updated it. > // Inform a listener if it exists. > if (UpdateListener) > UpdateListener->NodeUpdated(U); > } > > So, basically CSE map should be updated. To achieve that, a hash of the > updated node N is computed (and its internal FoldingSetNodeID::Bits > array contains about 6400 elements!) and the node is replaced. > > My observation shows that amount of FoldingSetNodeID o...
2011 Aug 27
3
[LLVMdev] OpenCL Backend
...> > I suspect they could be removed. ?Probably a helper function should be added > > for this and used all over the place. ?Also, the RAUW earlier can cause nodes > > to be unified (due to CSE). ?Probably the WorkListRemover class should add nodes > > to the worklist in the NodeUpdated method. > > > >> > >> Or is it one of the corner cases mentioned in SelectionDAGISel.cpp:644? > >> > >> 00644 ? ? ? // Skip dead nodes. DAGCombiner is expected to eliminate > >> all dead nodes, > >> 00645 ? ? ? // but there are currently s...