search for: ptr_b

Displaying 15 results from an estimated 15 matches for "ptr_b".

Did you mean: ptr_0
2006 May 14
2
[LLVMdev] __main() function and AliasSet
...int 6, int* %data_f switch int %argc, label %switchexit [ int 3, label %label.3 int 2, label %then.2 int 1, label %label.1 int 0, label %endif.2 ] label.1: ; preds = %entry br label %switchexit label.3: ; preds = %entry br label %then.2 switchexit: ; preds = %label.1, %entry %ptr_b.0 = phi int* [ %data_d, %label.1 ], [ null, %entry ] ; <int*> [#uses=1] br label %endif.2 then.2: ; preds = %label.3, %entry %ptr_a.1.0 = phi int* [ %data_f, %label.3 ], [ %data_e, %entry ] ; <int*> [#uses=1] store int 0, int* %ptr_a.1.0 br label %then.3 endif.2: ; preds = %sw...
2006 May 14
0
[LLVMdev] Re: __main() function and AliasSet
...label.1 > int 0, label %endif.2 > ] > > label.1: ; preds = %entry > br label %switchexit > > label.3: ; preds = %entry > br label %then.2 > > switchexit: ; preds = %label.1, %entry > %ptr_b.0 = phi int* [ %data_d, %label.1 ], [ null, %entry ] ; > <int*> [#uses=1] > br label %endif.2 > > then.2: ; preds = %label.3, %entry > %ptr_a.1.0 = phi int* [ %data_f, %label.3 ], [ %data_e, %entry > ] ; <int*> [#uses=1] >...
2006 May 15
2
[LLVMdev] Re: __main() function and AliasSet
...>>> br label %switchexit > >>>> > >>>> label.3: ; preds = %entry > >>>> br label %then.2 > >>>> > >>>> switchexit: ; preds = %label.1, %entry > >>>> %ptr_b.0 = phi int* [ %data_d, %label.1 ], [ null, %entry ] ; > >>>> <int*> [#uses=1] > >>>> br label %endif.2 > >>>> > >>>> then.2: ; preds = %label.3, %entry > >>>> %ptr_a.1.0 = phi int* [ %data...
2006 May 17
2
[LLVMdev] Re: __main() function and AliasSet
...gt;>>>>> > >>>>>> label.3: ; preds = %entry > >>>>>> br label %then.2 > >>>>>> > >>>>>> switchexit: ; preds = %label.1, %entry > >>>>>> %ptr_b.0 = phi int* [ %data_d, %label.1 ], [ null, %entry ] ; > >>>>>> <int*> [#uses=1] > >>>>>> br label %endif.2 > >>>>>> > >>>>>> then.2: ; preds = %label.3, %entry > >>>>>&g...
2006 May 17
0
[LLVMdev] Re: __main() function and AliasSet
...>> >>>>>>>> label.3: ; preds = %entry >>>>>>>> br label %then.2 >>>>>>>> >>>>>>>> switchexit: ; preds = %label.1, %entry >>>>>>>> %ptr_b.0 = phi int* [ %data_d, %label.1 ], [ null, %entry ] ; >>>>>>>> <int*> [#uses=1] >>>>>>>> br label %endif.2 >>>>>>>> >>>>>>>> then.2: ; preds = %label.3, %entry >>>&gt...
2006 May 15
0
[LLVMdev] Re: __main() function and AliasSet
...br label %switchexit >>>>>> >>>>>> label.3: ; preds = %entry >>>>>> br label %then.2 >>>>>> >>>>>> switchexit: ; preds = %label.1, %entry >>>>>> %ptr_b.0 = phi int* [ %data_d, %label.1 ], [ null, %entry ] ; >>>>>> <int*> [#uses=1] >>>>>> br label %endif.2 >>>>>> >>>>>> then.2: ; preds = %label.3, %entry >>>>>> %ptr_a.1.0 = p...
2015 Oct 19
3
Managed Languages BOF @ Dev Meeting
...ailed is not always a good thing to do) so I agree that it’s a good idea to avoid depending on it. > So we'd > have to do repeat the null checks in the unwind block, like > > superblock: # unwinds to unwind_block > null_check(ptr_a) > do_something > null_check(ptr_b) > do_something_again > > unwind_block: > ;; either ptr_a is null or ptr_b is null > if (ptr_a == null) > throw_nullptrexception(bci = 42) > else ;; if (ptr_b == null) > throw_nullptrexception(bci = 43) > > So the code explosion problem still e...
2015 Oct 18
3
Managed Languages BOF @ Dev Meeting
I won’t be able to attend, but I’d be interested in hearing if any conclusions are reached on several of these topics: > On 16 Oct 2015, at 21:27, Joe Ranieri via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > - Dealing with the explosion of basic blocks that come up with > languages where almost every function call, implicit and explicit, can > raise exceptions. This
2016 Mar 23
0
UBSan, StringRef and Allocator.h
...rns nullptr > from Allocate, but that method is marked with LLVM_ATTRIBUTE_RETURNS_NONNULL > and LLVM_ATTRIBUTE_RETURNS_NOALIAS, both of which aren’t true in this case. Why is noalias not valid here? I thought LLVM's notion of noalias was based on data dependence -- ptr_a does not alias ptr_b if a store to ptr_a does not have a data dependence with a load from ptr_b and vice versa (and for a zero-sized allocation there can be no data dependence since there cannot legally be such a load/store). Is the C++ notion of noalias different? > > To put this in code, if I have > > B...
2016 Jul 15
2
RFC: Strong GC References in LLVM
On Fri, Jul 15, 2016 at 2:30 PM, Sanjoy Das <sanjoy at playingwithpointers.com> wrote: > Hi Daniel, > > Daniel Berlin wrote: > > However, I didn't quite understand your point about may-throw -- how > > is may-throw different from a generic side-effect (volatile store, > > syscall etc.)? All of those can't be hoisted or sunk -- we have to >
2016 Dec 30
3
Avoiding during my pass the optimization (copy propagation) of my LLVM IR code (at generation)
Hello. I'm writing an LLVM pass that is working on LLVM IR. To my surprise the following LLVM pass code generates optimized code - it does copy propagation on it. Value *vecShuffleOnePtr = Builder.CreateGEP(ptr_B, vecShuffleOne, "VectorGep"); ... packed_gather_params.push_back(vecShuffleOnePtr); CallInst *callGather = Builder.CreateCall(func_llvm_masked_gather_v128i16, packed_gather_params); callGather->addAttribute(At...
2016 Jul 15
3
RFC: Strong GC References in LLVM
...EH/abnormal edges), volatile inline assembly in the bitmap of blocks specified by BLOCKS or to the whole CFG if BLOCKS is zero. ... The goal is to expose cases in which entering a basic block does not imply that all subsequent instructions must be executed. */ > // ptr_a and ptr_b are NoAlias, ptr_a holds 0 to begin with. > > ThreadA: > while(true) { store volatile i32 42, i32* %ptr_b } > store atomic i32 42, i32* %ptr_a > > ThreadB: > %val = load atomic i32, i32* %ptr_a > assert(%val is not 42) // The store is "guarded" by an inf l...
2016 Mar 23
4
UBSan, StringRef and Allocator.h
Hi all (No idea if I have the correct audience. Please CC more people as needed). I have an UBSan failure in BumpPtrAllocatorImpl.Allocate. The problem is that lld requests that we StringRef::copy an empty string. This passes a length of 0 to a BumpPtrAllocator. The BumpPtrAllocator happened to not have anything allocated yet so the CurPtr is nullptr, but given that we need 0 space we think
2016 Mar 23
1
UBSan, StringRef and Allocator.h
...e, but that method is marked with LLVM_ATTRIBUTE_RETURNS_NONNULL >> and LLVM_ATTRIBUTE_RETURNS_NOALIAS, both of which aren’t true in this case. > > Why is noalias not valid here? > > I thought LLVM's notion of noalias was based on data dependence -- > ptr_a does not alias ptr_b if a store to ptr_a does not have a data > dependence with a load from ptr_b and vice versa (and for a zero-sized > allocation there can be no data dependence since there cannot legally > be such a load/store). Is the C++ notion of noalias different? That was an assumption on my part that...
2016 Dec 31
0
Avoiding during my pass the optimization (copy propagation) of my LLVM IR code (at generation)
...ote: > > Hello. > I'm writing an LLVM pass that is working on LLVM IR. > To my surprise the following LLVM pass code generates optimized code - it does copy propagation on it. It does *constant* propagation to be exact. > Value *vecShuffleOnePtr = Builder.CreateGEP(ptr_B, vecShuffleOne, "VectorGep"); > ... > packed_gather_params.push_back(vecShuffleOnePtr); > CallInst *callGather = Builder.CreateCall(func_llvm_masked_gather_v128i16, > packed_gather_params); > callGather->...