search for: dupval

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

2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
Hi, Joseph, I guess getLoad() will either search an existed SDValue *OR* create a new one for a non-existed one depending on real parameters. Since you use exactly the same attributes dupVal/dupNode have, no doubt getLoad() return the old one. I am not sure it's *volatile* that let you get a new result, you might want to try change some other parameters and check what it turns out. Regards. 2012/12/2 Joseph Pusdesris <joe at pusdesris.com> > > So I think I have made...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
So I think I have made some progress. SDValue dupVal = consumer->getOperand(OpNo); LoadSDNode *dupNode = (LoadSDNode*) dupVal.getNode(); SDValue newLoad = CurDAG->getLoad(dupVal.getValueType(), dupVal.getDebugLoc(), dupVal.getOperand(0), dupVal.getOperand(1), dupNode->getPointer...
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.
...oe On Sat, Dec 1, 2012 at 10:57 PM, Triple Yang <triple.yang at gmail.com> wrote: > Hi, Joseph, I guess getLoad() will either search an existed SDValue > *OR* create a new one for a non-existed one depending on real > parameters. > > Since you use exactly the same attributes dupVal/dupNode have, no > doubt getLoad() return the old one. > > I am not sure it's *volatile* that let you get a new result, you might > want to try change some other parameters and check what it turns out. > > Regards. > > 2012/12/2 Joseph Pusdesris <joe at pusdesris.com&...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...10:57 PM, Triple Yang <triple.yang at gmail.com> wrote: >> >> Hi, Joseph, I guess getLoad() will either search an existed SDValue >> *OR* create a new one for a non-existed one depending on real >> parameters. >> >> Since you use exactly the same attributes dupVal/dupNode have, no >> doubt getLoad() return the old one. >> >> I am not sure it's *volatile* that let you get a new result, you might >> want to try change some other parameters and check what it turns out. >> >> Regards. >> >> 2012/12/2 Joseph Pus...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...wrote: >> >> >> >> Hi, Joseph, I guess getLoad() will either search an existed SDValue >> >> *OR* create a new one for a non-existed one depending on real >> >> parameters. >> >> >> >> Since you use exactly the same attributes dupVal/dupNode have, no >> >> doubt getLoad() return the old one. >> >> >> >> I am not sure it's *volatile* that let you get a new result, you might >> >> want to try change some other parameters and check what it turns out. >> >> >> &g...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...ng at gmail.com> > wrote: > >> > >> Hi, Joseph, I guess getLoad() will either search an existed SDValue > >> *OR* create a new one for a non-existed one depending on real > >> parameters. > >> > >> Since you use exactly the same attributes dupVal/dupNode have, no > >> doubt getLoad() return the old one. > >> > >> I am not sure it's *volatile* that let you get a new result, you might > >> want to try change some other parameters and check what it turns out. > >> > >> Regards. > &gt...
2015 Apr 17
2
[LLVMdev] how to use "new instruction()"
...undef, <2 x double> undef. *The following is the way I used to create the vectorized FADD instruction: //pInst is a double type instruction Type *vecTy = VectorType::get(pInst->getType(), 2); Value *emptyVec = UndefValue::get(vecTy); IRBuilder<> builder(&*pInst); Value *dupVal = builder.CreateFAdd(emptyVec, emptyVec, instName); std::cout << " dupVal " << *dupVal << "\n"; It outputs: dupVal <2 x double> <double fadd (double undef, double undef), double fadd (double undef, double undef)> If I dyn_cast the dupVal to in...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...> >> >> Hi, Joseph, I guess getLoad() will either search an existed SDValue > >> >> *OR* create a new one for a non-existed one depending on real > >> >> parameters. > >> >> > >> >> Since you use exactly the same attributes dupVal/dupNode have, no > >> >> doubt getLoad() return the old one. > >> >> > >> >> I am not sure it's *volatile* that let you get a new result, you > might > >> >> want to try change some other parameters and check what it turns out. >...
2015 Apr 17
2
[LLVMdev] how to use "new instruction()"
...sed to create the vectorized FADD instruction: >> >> //pInst is a double type instruction >> >> Type *vecTy = VectorType::get(pInst->getType(), 2); >> Value *emptyVec = UndefValue::get(vecTy); >> IRBuilder<> builder(&*pInst); >> Value *dupVal = builder.CreateFAdd(emptyVec, emptyVec, instName); >> std::cout << " dupVal " << *dupVal << "\n"; >> >> It outputs: dupVal <2 x double> <double fadd (double undef, double >> undef), double fadd (double undef, double undef)&...
2015 Apr 17
2
[LLVMdev] how to use "new instruction()"
...on: >> >> //pInst is a double type instruction >> >> Type *vecTy = VectorType::get(pInst->getType(), 2); >> Value *emptyVec = UndefValue::get(vecTy); >> IRBuilder<> builder(&*pInst); >> Value *dupVal = builder.CreateFAdd(emptyVec, emptyVec, >> instName); >> std::cout << " dupVal " << *dupVal << "\n"; >> >> It outputs: dupVal <2 x double> <double fadd (double undef, >> double >>...
2015 Apr 17
2
[LLVMdev] how to use "new instruction()"
Value * is the instruction. use dyn_cast<Instruction> to get to it. On Thu, Apr 16, 2015 at 11:39 PM zhi chen <zchenhn at gmail.com> wrote: > But IRBuilder.CreateXYZ only returns a "VALUE" type. Can I get the > instruction created by it? For example, > > IRBuilder<> builder(&*pinst); > Value *val = builder.CreateFAdd(LV, RV, ""); >