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.
> >...
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, "");
>