Displaying 6 results from an estimated 6 matches for "loadvalue".
2015 Apr 16
3
[LLVMdev] double* to <2 x double>*
...ign 4, !tbaa !0
to:
%arrayidx1 = getelementptr inbounds [100 x double]* @main.B, i32 0, i32
%i.021
%1 = bitcast double* %arrayidx1 to <2 x double>*
%2 = load <2 x double>* %1, align 4
what I right now doing is:
*Assume pInst is *%1 = load double* %arrayidx1, align 4, !tbaa !0
Value *loadValue = pInst->getOperand(0);
Type *vecTy = VectorType::get(Type::getDoublePtrTy(currF->getContext()), 2);
Value *emptyVec = UndefValue::get(vecTy);
Type* u32Ty = Type::getInt32Ty(currF->getContext());
Value *index0 = ConstantInt::get(u32Ty, 0);
Value *index1 = ConstantInt::get(u32Ty, 1);
Ins...
2016 Mar 15
2
RFC: DenseMap grow() slowness
...structure.
>>
>> Any thoughts on this, or other less ugly alternatives? I estimate that, at least in our pass pipeline, we’re losing at least ~1% of total time to avoidable DenseMap::grow() operations, which feels a little bit… unnecessary.
>
> Slightly OT, but it looks like the LoadValue (value type of the AvailableLoads structure) is relatively memory inefficient. At minimum, we could get rid of the IsAtomic space by using a tagged pointer. That would at least bring us down to a 128 bits (a nice power of two). That might help speed up some of the copying.
Just to note, it lo...
2015 Apr 15
1
[LLVMdev] How to do bitcast for double to <2 x double>
...from : 2%= load double* %1, align 8
> to 2% = load < 2 x double>* %1, align 16, where <2 x double> should be two
> double identical double values that is same as the one in the previous
> instruction
>
> Instruction* ScalarToVectorLoad(Instruction* pInst) {
> Value *loadValue = pInst->getOperand(0);
> Instruction *newLoad; //this one should be 2% = load < 2 x double>* %1
>
> BitCastInst *scalarToVector = new BitCastInst(loadValue,
> VectorType::get(Type::getDoubleTy(currF->getContext()), 2),
> "vectorizedLoad", pInst);
> n...
2016 Mar 16
2
RFC: DenseMap grow() slowness
> On Mar 15, 2016, at 4:56 PM, Philip Reames via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Er, LoadValue's been around for a while (6 months). How far back are you testing? I'd strongly suggest switching to something more recent.
Some of us have to support internal release branches for non-trivial amounts of time.
—Owen
-------------- next part --------------
An HTML attachment was scrubbe...
2015 Apr 15
2
[LLVMdev] How to do bitcast for double to <2 x double>
How can I write code to generate IR for:
%2 = bitcast double* %1 to <2 x double>*.
%3 = load <2 x double>* %2, align 16
Basically, it is similar to x86 _mm_load_pd1 intrinsics.
Thanks,
Zhi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150415/66489860/attachment.html>
2016 Mar 15
7
RFC: DenseMap grow() slowness
There’s a few passes in LLVM that make heavy use of a big DenseMap, one that potentially gets filled with up to 1 entry for each instruction in the function. EarlyCSE is the best example, but Reassociate and MachineCSE have this to some degree as well (there might be others?). To put it simply: at least in my profile, EarlyCSE spends ~1/5 of its time growing DenseMaps. This is kind of… bad.