search for: deleted_nod

Displaying 14 results from an estimated 14 matches for "deleted_nod".

Did you mean: deleted_node
2008 Nov 06
0
[LLVMdev] Multi-instruction patterns, tablegen and chains
On Nov 4, 2008, at 12:12 AM, Matthijs Kooijman wrote: > Hi Dan, > >> Having tblgen pretend that the MOVE isn't the root seems a bit >> counter-intuitive though. > I didn't really mean making RD the root, but rather telling tablegen > that RD > is the "primary" node, corresponding to the input pattern. This > would allow > the properties of
2016 May 05
2
SelectionDAGISel::Select's API considered harmful
...described in llvm.org/PR26808. As part of this, we need to stop looking into deleted SDNodes to check if they were, in fact, deleted. A big place that we do this is in SelectionDAGISel::DoInstructionSelection, where we can find this helpful comment that came with the commit that added the check for DELETED_NODE: SelectionDAGISel.cpp says: > // FIXME: This is pretty gross. 'Select' should be changed to not return > // anything at all and this code should be nuked with a tactical strike. I'm just gonna go ahead and take this advice. I'll phase this in a couple of steps: 1. Rename...
2008 Nov 04
2
[LLVMdev] Multi-instruction patterns, tablegen and chains
Hi Dan, > Having tblgen pretend that the MOVE isn't the root seems a bit > counter-intuitive though. I didn't really mean making RD the root, but rather telling tablegen that RD is the "primary" node, corresponding to the input pattern. This would allow the properties of the input rd SDNode be properly transferred to the output RD node instead of the MOVE node. I doubt
2010 Mar 01
0
[LLVMdev] Possible SelectionDAG Bug
...> >> Perhaps this can be fixed by making the code skip the ReplaceUses >> call in the case where there are no uses to replace. That's not trivial >> to detect though. > > Why not just check the same thing the added asserts check? You mean ->getOpcode() == ISD::DELETED_NODE? That's not fundamentally any better, because if your purpose is to make this code work even if nodes are actually deleted, that would still be a use of free'd memory. > > What I'm seeing is a problem in ReplaceAllUsesOf itself. It recurses > down and eventually replaces th...
2016 May 21
0
SelectionDAGISel::Select's API considered harmful
...g/PR26808. As part of this, we need to stop looking into deleted > SDNodes to check if they were, in fact, deleted. A big place that we do > this is in SelectionDAGISel::DoInstructionSelection, where we can find > this helpful comment that came with the commit that added the check for > DELETED_NODE: > > SelectionDAGISel.cpp says: >> // FIXME: This is pretty gross. 'Select' should be changed to not return >> // anything at all and this code should be nuked with a tactical strike. > > I'm just gonna go ahead and take this advice. > > I'll phase th...
2010 Mar 01
2
[LLVMdev] Possible SelectionDAG Bug
...can be fixed by making the code skip the ReplaceUses > >> call in the case where there are no uses to replace. That's not trivial > >> to detect though. > > > > Why not just check the same thing the added asserts check? > > You mean ->getOpcode() == ISD::DELETED_NODE? That's not fundamentally > any better, because if your purpose is to make this code work even > if nodes are actually deleted, that would still be a use of free'd > memory. Wait, I thought memory wasn't actually freed, just returned to a free list. > > UI goes bad and...
2016 May 23
2
SelectionDAGISel::Select's API considered harmful
...rt of this, we need to stop looking into deleted >> SDNodes to check if they were, in fact, deleted. A big place that we do >> this is in SelectionDAGISel::DoInstructionSelection, where we can find >> this helpful comment that came with the commit that added the check for >> DELETED_NODE: >> >> SelectionDAGISel.cpp says: >>> // FIXME: This is pretty gross. 'Select' should be changed to not return >>> // anything at all and this code should be nuked with a tactical strike. >> >> I'm just gonna go ahead and take this advice. &gt...
2013 Mar 04
1
[LLVMdev] Custom Lowering of ARM zero-extending loads
Hi, For my research, I need to reshape the current ARM backend to support armv2a. Zero-extend half word load (ldrh) is not supported by armv2a, so I need to make the code generation to not generate ldrh instructions. I want to replace all those instances with a 32-bit load (ldr) and then and the result with 0xffff to mask out the upper bits. These are the modifications that I have made to
2010 Mar 01
2
[LLVMdev] Possible SelectionDAG Bug
On Friday 26 February 2010 19:09:01 Dan Gohman wrote: > 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. Well, I'm definitely observing misbehavior. I know it has something to do with local changes here but I haven't isolated it yet. >
2016 Oct 24
2
Accessing the associated LLVM IR Instruction for an SDNode used in instruction selection (back end)
Hello. Quentin, retrieving the LLVM IR instruction from which an SDNode originates is useful during the instruction selection phase. For example, I need to recover the LLVM IR variable which is used to fill an entire vector with the ISD::BUILD_VECTOR target-independent SDNode . From the recovered LLVM IR variable I can walk on the use-def-chains in order to get the most complete
2010 Feb 26
2
[LLVMdev] Possible SelectionDAG Bug
...ocessing new uses that are introduced during the // replacement process. SmallVector<UseMemo, 4> Uses; for (unsigned i = 0; i != Num; ++i) { unsigned FromResNo = From[i].getResNo(); SDNode *FromNode = From[i].getNode(); #ifndef NDEBUG assert(FromNode->getOpcode() != ISD::DELETED_NODE && "FromNode deleted!"); #endif This triggers all over the place in the testbase. Is it expected that we could get a deleted node here? The following code appears to assume FromNode is a valid SDNode. -Dave
2010 Mar 02
0
[LLVMdev] Possible SelectionDAG Bug
...g the code skip the ReplaceUses >>>> call in the case where there are no uses to replace. That's not trivial >>>> to detect though. >>> >>> Why not just check the same thing the added asserts check? >> >> You mean ->getOpcode() == ISD::DELETED_NODE? That's not fundamentally >> any better, because if your purpose is to make this code work even >> if nodes are actually deleted, that would still be a use of free'd >> memory. > > Wait, I thought memory wasn't actually freed, just returned to a free list. >...
2016 May 23
0
SelectionDAGISel::Select's API considered harmful
...eed to stop looking into deleted >>> SDNodes to check if they were, in fact, deleted. A big place that we do >>> this is in SelectionDAGISel::DoInstructionSelection, where we can find >>> this helpful comment that came with the commit that added the check for >>> DELETED_NODE: >>> >>> SelectionDAGISel.cpp says: >>>> // FIXME: This is pretty gross. 'Select' should be changed to not return >>>> // anything at all and this code should be nuked with a tactical strike. >>> >>> I'm just gonna go ahead a...
2012 Jul 16
3
[LLVMdev] RFC: LLVM incubation, or requirements for committing new backends
...ve the same value type, so if > + // necessary we need to convert LHS and RHS to be the same type True and > + // False. True and False are guaranteed to have the same type as this > + // SELECT_CC node. > + > + if (CompareVT != VT) { > + ISD::NodeType ConversionOp = ISD::DELETED_NODE; > + if (VT == MVT::f32 && CompareVT == MVT::i32) { > + if (isUnsignedIntSetCC(CCOpcode)) { > + ConversionOp = ISD::UINT_TO_FP; > + } else { > + ConversionOp = ISD::SINT_TO_FP; > + } > + } else if (VT == MVT::i32 && CompareVT...