search for: _zn1ac1ev

Displaying 7 results from an estimated 7 matches for "_zn1ac1ev".

2017 Sep 22
0
Get function implementation for indirect CallInst.
...s.B** %this.addr, align 8 %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i32 0, i32 0)) ret void } define i32 @main() #0 { entry: %obj1 = alloca %class.A, align 8 %obj2 = alloca %class.B, align 8 %C = alloca %class.Base*, align 8 call void @_ZN1AC1Ev(%class.A* %obj1) #4 call void @_ZN1BC1Ev(%class.B* %obj2) #4 %0 = bitcast %class.A* %obj1 to %class.Base* store %class.Base* %0, %class.Base** %C, align 8 %1 = load %class.Base*, %class.Base** %C, align 8 %2 = bitcast %class.Base* %1 to void (%class.Base*)*** %vtable = load void (%class...
2018 Mar 29
0
[cfe-dev] RFC: Devirtualization v2
...t that function pointer > > I think we have already solved that problem with calls to llvm.assume intrinsic. After calling the constructor, we load virtual pointer (with invariant group) and compare it with the vtable it should point to and then pass it to the assume. > > call void @_ZN1AC1Ev(%struct.A* %a) ; call ctor > %3 = load {...} %a ; Load vptr > %4 = icmp eq %3, @_ZTV1A ; compare vptr with vtable > call void @llvm.assume(i1 %4) > > (from http://blog.llvm.org/2017/03/devirtualization-in-llvm-and-clang.html <http://blog.llvm.org/2017...
2018 Mar 30
2
[cfe-dev] RFC: Devirtualization v2
...er >> >> I think we have already solved that problem with calls to llvm.assume > intrinsic. After calling the constructor, we load virtual pointer (with > invariant group) and compare it with the vtable it should point to and then > pass it to the assume. > > call void @_ZN1AC1Ev(%struct.A* %a) ; call ctor > %3 = load {...} %a ; Load vptr > %4 = icmp eq %3, @_ZTV1A ; compare vptr with vtable > call void @llvm.assume(i1 %4) > > (from http://blog.llvm.org/2017/03/devirtualization-in-llvm-and-clang.html > ) > > If I understan...
2018 Mar 29
2
[cfe-dev] RFC: Devirtualization v2
...ything about that function pointer > > I think we have already solved that problem with calls to llvm.assume intrinsic. After calling the constructor, we load virtual pointer (with invariant group) and compare it with the vtable it should point to and then pass it to the assume. call void @_ZN1AC1Ev(%struct.A* %a) ; call ctor %3 = load {...} %a ; Load vptr %4 = icmp eq %3, @_ZTV1A ; compare vptr with vtable call void @llvm.assume(i1 %4) (from http://blog.llvm.org/2017/03/devirtualization-in-llvm-and-clang.html ) If I understand it correctly, you should be able to...
2018 Mar 30
0
[cfe-dev] RFC: Devirtualization v2
...pointer >> >> I think we have already solved that problem with calls to llvm.assume intrinsic. After calling the constructor, we load virtual pointer (with invariant group) and compare it with the vtable it should point to and then pass it to the assume. >> >> call void @_ZN1AC1Ev(%struct.A* %a) ; call ctor >> %3 = load {...} %a ; Load vptr >> %4 = icmp eq %3, @_ZTV1A ; compare vptr with vtable >> call void @llvm.assume(i1 %4) >> >> (from http://blog.llvm.org/2017/03/devirtualization-in-llvm-and-clang.html <http:...
2018 Mar 28
0
[cfe-dev] RFC: Devirtualization v2
> On Mar 19, 2018, at 7:27 PM, Piotr Padlewski via cfe-dev <cfe-dev at lists.llvm.org> wrote: > > Hi folks, > > here is a link to the proposal that we've been working on lately: > https://docs.google.com/document/d/16GVtCpzK8sIHNc2qZz6RN8amICNBtvjWUod2SujZVEo/edit?usp=sharing
2018 Mar 19
4
RFC: Devirtualization v2
Hi folks, here is a link to the proposal that we've been working on lately: https://docs.google.com/document/d/16GVtCpzK8sIHNc2qZz6RN8amICNBt vjWUod2SujZVEo/edit?usp=sharing But for the record, I also paste it here. Feedback will be really appreciated!