search for: resnod

Displaying 10 results from an estimated 10 matches for "resnod".

Did you mean: resno
2008 Oct 07
2
[LLVMdev] Making Sense of ISel DAG Output
...uffle node. and the Tmp variables are the two MOVSD2PD instructions and the shuffle mask. SelectNodeTo does an in-place replacement of the machine-independent SDNode (vector_shuffle)with a machine-dependent one (the SHUFPD). When we pop back out to SelectRoot we run into this code: if (ResNode != Node) { if (ResNode) { ReplaceUses(Node, ResNode); } if (Node->use_empty()) { // Don't delete EntryToken, etc. ISelQueueUpdater ISQU(ISelQueue); CurDAG->RemoveDeadNode(Node, &ISQU); UpdateQueue(ISQU); }...
2009 Jul 02
1
[LLVMdev] [Help Needed] tblgen code get a compile error
...o user-defined-conversion operator available that can perform this conv ersion, or the operator cannot be called I checked the generated the code: SDNode *Emit_2(const SDValue &N, unsigned Opc0, MVT VT0) DISABLE_INLINE { SDValue N0 = N.getOperand(0); SDValue N1 = N.getOperand(1); SDNode *ResNode = CurDAG->SelectNodeTo(N.getNode(), Opc0, VT0, MVT::i8, MVT::Flag, N0, N1); <==== error here. SDValue InFlag(ResNode, 2); ReplaceUses(SDValue(N.getNode(), 1), InFlag); return ResNode; } SDNode *Select_ISD_ADDC_i8(const SDValue &N) { SDNode *Result = Emit_2(N, AVR::ADC, MVT::i8);...
2010 Feb 27
0
[LLVMdev] Possible SelectionDAG Bug
...rised to see no discussion. I've now looked at your latest patch. In summary, it does expose a subtle problem. I haven't seen anything that here would lead to observable misbehavior yet though. X86GenDAGISel.inc has code like this: SDValue N1 = N->getOperand(1); ... SDNode *ResNode = CurDAG->SelectNodeTo(N, ...); ... ReplaceUses(SDValue(N1.getNode(), 1), SDValue(ResNode, 2)); If N was the only user of N1, and N1 isn't in the new operand list, then the SelectNodeTo call will make N1 dead. SelectNodeTo will automatically delete nodes that are made dead by the tra...
2010 Feb 26
2
[LLVMdev] Possible SelectionDAG Bug
On Friday 26 February 2010 10:34:41 David Greene wrote: > On Friday 26 February 2010 09:55:32 David Greene wrote: > > In the continuing quest to try to track down problems we're seeing in > > SelectionDAG, I added the following assert > > toSelectionDAG::ReplaceAllUsesOfValuesWith: > > Here's a patch to add more of these deleted node asserts. They fire > tons
2008 Oct 07
0
[LLVMdev] Making Sense of ISel DAG Output
...re the two > MOVSD2PD instructions and the shuffle mask. SelectNodeTo does an in- > place > replacement of the machine-independent SDNode (vector_shuffle)with a > machine-dependent one (the SHUFPD). > > When we pop back out to SelectRoot we run into this code: > > if (ResNode != Node) { > if (ResNode) { > ReplaceUses(Node, ResNode); > } > if (Node->use_empty()) { // Don't delete EntryToken, etc. > ISelQueueUpdater ISQU(ISelQueue); > CurDAG->RemoveDeadNode(Node, &ISQU); > UpdateQ...
2008 Oct 03
0
[LLVMdev] Making Sense of ISel DAG Output
On Fri, October 3, 2008 9:10 am, David Greene wrote: > On Thursday 02 October 2008 19:32, Dan Gohman wrote: > >> Looking at your dump() output above, it looks like the pre-selection >> loads have multiple uses, so even though you've managed to match a >> larger pattern that incorporates them, they still need to exist to >> satisfy some other users. > > Yes,
2008 Oct 03
3
[LLVMdev] Making Sense of ISel DAG Output
On Thursday 02 October 2008 19:32, Dan Gohman wrote: > Looking at your dump() output above, it looks like the pre-selection > loads have multiple uses, so even though you've managed to match a > larger pattern that incorporates them, they still need to exist to > satisfy some other users. Yes, I looked at that too. It looks like these other uses end up being chains to
2009 Dec 18
2
[LLVMdev] [PATCH] dbgs() Use
...dbgs() << '\n'; }); #endif } @@ -2151,12 +2151,12 @@ #ifndef NDEBUG DEBUG({ - errs() << std::string(Indent-2, ' ') << "=> "; + dbgs() << std::string(Indent-2, ' ') << "=> "; if (ResNode == NULL || ResNode == N.getNode()) N.getNode()->dump(CurDAG); else ResNode->dump(CurDAG); - errs() << '\n'; + dbgs() << '\n'; }); Indent -= 2; #endif
2010 Mar 01
2
[LLVMdev] Possible SelectionDAG Bug
...o > observable misbehavior yet though. Well, I'm definitely observing misbehavior. I know it has something to do with local changes here but I haven't isolated it yet. > X86GenDAGISel.inc has code like this: > > SDValue N1 = N->getOperand(1); > ... > SDNode *ResNode = CurDAG->SelectNodeTo(N, ...); > ... > ReplaceUses(SDValue(N1.getNode(), 1), SDValue(ResNode, 2)); > > If N was the only user of N1, and N1 isn't in the new operand list, then > the SelectNodeTo call will make N1 dead. SelectNodeTo will automatically > delete nodes...
2010 Feb 22
4
[LLVMdev] SelectionDAG legality: isel creating cycles
...] 0x213ad70: i64 = Register #1024 [0] 0x213b610: i64 = undef I added the brackets on output to show which result is being linked to, so the prefetch takes the chain output from its controlling load. When llvm.x86.sse2.min.sd gets selected, the TableGen-generated code does this: SDNode *ResNode = CurDAG->SelectNodeTo(N.getNode(), Opc0, VT0, MVT::Other, Ops0, 6); 0x215f140: v2f64,ch = <<Unknown Machine Node>> 0x21606d0, 0x213ac00, 0x215ffa0, 0x215ea10, 0x215ee60, 0x213a720 [0] 0x21606d0: v2f64 = scalar_to_vector 0x213b8f0 [0] 0x213b8f0: f64,ch = load 0x213b780, 0x213aa...