search for: getpointerinfo

Displaying 12 results from an estimated 12 matches for "getpointerinfo".

2013 Mar 04
1
[LLVMdev] Custom Lowering of ARM zero-extending loads
...DEBUG(errs() << "ZEXTLOAD\n"); SDValue Chain = LD->getChain(); SDValue Ptr = LD->getBasePtr(); DebugLoc dl = Op.getNode()->getDebugLoc(); SDValue LdResult = DAG.getExtLoad(ISD::EXTLOAD, dl, MVT::i32, Chain, Ptr, LD->getPointerInfo(), MVT::i32, LD->isVolatile(), LD->isNonTemporal(), LD->getAlignment()); Chain = LdResult.getValue(1); SDValue Mask = DAG.getConstant(0x1, MVT::i32); DAG.ReplaceAllUsesOfValueWith(SDValue(LD, 0), LdR...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...gt;getOperand(OpNo); > LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); > > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), dupVal.getDebugLoc(), > dupVal.getOperand(0), dupVal.getOperand(1), > dupNode->getPointerInfo(), > dupNode->isVolatile(), dupNode->isNonTemporal(), > dupNode->isInvariant(), dupNode->getAlignment(), > dupNode->getTBAAInfo(), dupNode->getRanges()); > However, my problem...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...lue dupVal = consumer->getOperand(OpNo); LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), dupVal.getDebugLoc(), dupVal.getOperand(0), dupVal.getOperand(1), dupNode->getPointerInfo(), dupNode->isVolatile(), dupNode->isNonTemporal(), dupNode->isInvariant(), dupNode->getAlignment(), dupNode->getTBAAInfo(), dupNode->getRanges()); However, my problem now is that it will...
2012 Dec 01
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
Hi, I am writing an llvm target and I need both loads for isel reasons, but I am struggling to find the right way. I have been trying to use DAG.getLoad() to make a copy, then just change the operand in the consumers, but I cannot seem to get all of the arguments needed for that function in order to make the copy. Any help would be great, thanks! -Joe -------------- next part -------------- An
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...SDNode *dupNode = (LoadSDNode*) dupVal.getNode(); > > > > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), > dupVal.getDebugLoc(), > > dupVal.getOperand(0), > dupVal.getOperand(1), > > dupNode->getPointerInfo(), > > dupNode->isVolatile(), > dupNode->isNonTemporal(), > > dupNode->isInvariant(), > dupNode->getAlignment(), > > dupNode->getTBAAInfo(), > dupNode->getRanges...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...pVal.getNode(); >> > >> > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), >> > dupVal.getDebugLoc(), >> > dupVal.getOperand(0), >> > dupVal.getOperand(1), >> > dupNode->getPointerInfo(), >> > dupNode->isVolatile(), >> > dupNode->isNonTemporal(), >> > dupNode->isInvariant(), >> > dupNode->getAlignment(), >> > dupNode->getTBAAInfo...
2012 Feb 10
1
[LLVMdev] Prevent DAG combiner from changing "store ConstFP, addr" to integer store
...TLI.isOperationLegalOrCustom(ISD::STORE, MVT::i32)) { Tmp = DAG.getConstant((uint32_t)CFP->getValueAPF(). bitcastToAPInt().getZExtValue(), MVT::i32); return DAG.getStore(Chain, N->getDebugLoc(), Tmp, Ptr, ST->getPointerInfo(), ST->isVolatile(), ST->isNonTemporal(), ST->getAlignment()); } break; ------------- What would be the proper way to inhibit this change? In my target (a custom b/e) MVT::i32 is a legal type, and I have a "store MVT::i32" instructio...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...t; > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), >> >> > dupVal.getDebugLoc(), >> >> > dupVal.getOperand(0), >> >> > dupVal.getOperand(1), >> >> > dupNode->getPointerInfo(), >> >> > dupNode->isVolatile(), >> >> > dupNode->isNonTemporal(), >> >> > dupNode->isInvariant(), >> >> > dupNode->getAlignment(), >> >> >...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...> > >> > SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), > >> > dupVal.getDebugLoc(), > >> > dupVal.getOperand(0), > >> > dupVal.getOperand(1), > >> > dupNode->getPointerInfo(), > >> > dupNode->isVolatile(), > >> > dupNode->isNonTemporal(), > >> > dupNode->isInvariant(), > >> > dupNode->getAlignment(), > >> >...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...oad = CurDAG->getLoad(dupVal.getValueType(), > >> >> > dupVal.getDebugLoc(), > >> >> > dupVal.getOperand(0), > >> >> > dupVal.getOperand(1), > >> >> > dupNode->getPointerInfo(), > >> >> > dupNode->isVolatile(), > >> >> > dupNode->isNonTemporal(), > >> >> > dupNode->isInvariant(), > >> >> > dupNode->getAlignment(), > >&gt...
2012 Nov 06
0
[LLVMdev] Compiling for several operand memories
Have not gotten much further on this, I can so far only use one memory with (for example) def LDr1 : F1< (outs GenRegs:$dst), (ins GenRegs:$addr), "ld*0* $dst, ($addr)", [(set GenRegs:$dst, (load GenRegs:$addr))],IIGenLoad>; and def LDrr : F1< (outs GenRegs:$dst), (ins MEMrr:$addr), "ld*0* $dst, ($addr)",
2012 Oct 05
2
[LLVMdev] Compiling for several operand memories
Hello, My target has two data memories, each with its own load/store instructions but also has some instructions using both memories. I want to be able to access both memories in C-programs through the address space attribute. I have two ideas so far: Either: use two sets of addressing modes in InstrInfo.td: def ADDRrr_A : ComplexPattern<i16, 2, “SelectADDRrr_A", [], []>; def ADDRri :