similar to: [LLVMdev] Intrinsic support

Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] Intrinsic support"

2010 Oct 13
0
[LLVMdev] Missed devirtualization opportunities
Kenneth Uildriks wrote: >> You're right, I hadn't thought this through. The whole point of making them >> local is to say that "I'm sure these callees won't modify that memory" >> regardless of what functions actually get called, even indirectly. We can't >> know that they won't modify the vptr in advance, so invariant doesn't work
2010 Oct 13
3
[LLVMdev] Missed devirtualization opportunities
> You're right, I hadn't thought this through. The whole point of making them > local is to say that "I'm sure these callees won't modify that memory" > regardless of what functions actually get called, even indirectly. We can't > know that they won't modify the vptr in advance, so invariant doesn't work > here. Making it non-local just means
2010 Oct 13
4
[LLVMdev] Missed devirtualization opportunities
On Wed, Oct 13, 2010 at 12:45 AM, Nick Lewycky <nicholas at mxc.ca> wrote: > Kenneth Uildriks wrote: >>> >>> You're right, I hadn't thought this through. The whole point of making >>> them >>> local is to say that "I'm sure these callees won't modify that memory" >>> regardless of what functions actually get called,
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!
2018 Dec 02
4
RFC: Supported Optimizations attribute
Hi folks, please check out our RFC: Supported Optimizations attribute https://docs.google.com/document/d/1s0n-JVaSNML1Z9SCZVg2bgisxswIJAK2Tp9DahucW10/edit?usp=sharing Pasting it here for the record: RFC: supported_optimizations attribute Piotr Padlewski - piotr.padlewski at gmail.com Krzysztof Pszeniczny - kpszeniczny at google.com December 2018 Introduction Sometimes a possible class of
2010 Oct 14
0
[LLVMdev] Missed devirtualization opportunities
Kenneth Uildriks wrote: > On Wed, Oct 13, 2010 at 12:45 AM, Nick Lewycky<nicholas at mxc.ca> wrote: >> Kenneth Uildriks wrote: >>>> >>>> You're right, I hadn't thought this through. The whole point of making >>>> them >>>> local is to say that "I'm sure these callees won't modify that memory" >>>>
2010 Oct 13
0
[LLVMdev] Missed devirtualization opportunities
On Oct 13, 2010, at 4:35 AM, Kenneth Uildriks wrote: > On Wed, Oct 13, 2010 at 12:45 AM, Nick Lewycky <nicholas at mxc.ca> wrote: >> Kenneth Uildriks wrote: >>>> >>>> You're right, I hadn't thought this through. The whole point of making >>>> them >>>> local is to say that "I'm sure these callees won't modify
2018 Mar 29
2
[cfe-dev] RFC: Devirtualization v2
Hi John, 2018-03-28 23:23 GMT+02:00 John McCall <rjmccall at apple.com>: > > > 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/16GVtCpzK8sIHNc2qZz6RN8am >
2010 Oct 14
2
[LLVMdev] Missed devirtualization opportunities
On Wed, Oct 13, 2010 at 11:16 PM, Nick Lewycky <nicholas at mxc.ca> wrote: > Kenneth Uildriks wrote: >> >> On Wed, Oct 13, 2010 at 12:45 AM, Nick Lewycky<nicholas at mxc.ca>  wrote: >>> >>> Kenneth Uildriks wrote: >>>>> >>>>> You're right, I hadn't thought this through. The whole point of making >>>>>
2017 Jan 20
4
RFC: Emitting empty invariant group for vtable loads
Hi all, I would like to propose a new way clang would decorate vtable loads in order to handle devirtualization better. I've added *llvm-dev* also, because this can start a discussion about changing invariant.group to just invariant. PDF version of this RFC can be found here: https://drive.google.com/file/d/0B72TmzNsY6Z8ZmpOUnB5dDZfSFU/view?usp=sharing Background: Initial old design:
2017 Apr 03
4
Dereferenceable load semantics & LICM
2017-04-01 15:59 GMT+02:00 Piotr Padlewski <piotr.padlewski at gmail.com>: > > > 2017-03-31 23:20 GMT+02:00 Sanjoy Das <sanjoy at playingwithpointers.com>: > >> Hi Piotr, >> >> On March 31, 2017 at 1:07:12 PM, Piotr Padlewski >> (piotr.padlewski at gmail.com) wrote: >> > [snip] >> > Do I understand it correctly, that it is legal to
2017 Jan 28
2
[cfe-dev] RFC: Emitting empty invariant group for vtable loads
2017-01-26 15:41 GMT+01:00 Hal Finkel <hfinkel at anl.gov>: > > On 01/26/2017 06:44 AM, Piotr Padlewski wrote: > > > > 2017-01-26 3:28 GMT+01:00 Richard Smith <richard at metafoo.co.uk>: > >> On 25 January 2017 at 15:03, Hal Finkel via cfe-dev < >> cfe-dev at lists.llvm.org> wrote: >> >>> Hi Piotr, >>> >>> I think
2017 Jan 31
0
[cfe-dev] RFC: Emitting empty invariant group for vtable loads
On 01/28/2017 10:36 AM, Piotr Padlewski wrote: > > > 2017-01-26 15:41 GMT+01:00 Hal Finkel <hfinkel at anl.gov > <mailto:hfinkel at anl.gov>>: > > > On 01/26/2017 06:44 AM, Piotr Padlewski wrote: >> >> >> 2017-01-26 3:28 GMT+01:00 Richard Smith <richard at metafoo.co.uk >> <mailto:richard at metafoo.co.uk>>: >>
2018 Mar 20
0
[cfe-dev] RFC: Devirtualization v2
Sounds like it works! Basically, adding these extra strip.invariant.group calls before pointer comparisons breaks the transform that was problematic. Presumably, clang would only strip invariant groups from pointers to dynamic types before casting them or using them in a comparison, so that the value equivalence optimization still works in the general case. The proposal trades value equivalence
2010 Nov 14
0
[LLVMdev] noalias locals
On Sun, Nov 14, 2010 at 2:37 PM, Kenneth Uildriks <kennethuil at gmail.com> wrote: > On Sun, Nov 14, 2010 at 11:45 AM, Reid Kleckner <reid.kleckner at gmail.com> wrote: >> On Sun, Nov 14, 2010 at 11:17 AM, Kenneth Uildriks <kennethuil at gmail.com> wrote: >>> To fix that and compile C++ correctly while aggressively >>> devirtualizing it, we would need
2010 Oct 12
1
[LLVMdev] Missed devirtualization opportunities
John McCall wrote: > > On Oct 11, 2010, at 10:06 PM, Nick Lewycky wrote: > >> John McCall wrote: >>> On Oct 11, 2010, at 2:01 PM, Kenneth Uildriks wrote: >>>> A better way for a front-end to declare that vtbl-ptr-hacking is not >>>> expected and not supported is for it to emit llvm.invariant.start and >>>> llvm.invariant.end calls for it.
2017 Jan 25
4
RFC: Emitting empty invariant group for vtable loads
Hi Piotr, I think makes sense. Modulo bitcasts, the invariant is identified by a particular pointer SSA value. Given that you can't sensibly have two nonequivalent invariants associated with the same pointer SSA value simultaneously, there's no need to also identify the invariant with a metadata string as well. When we need a new "identifier" for the pointed-to value, we
2017 May 04
2
Handling invariant.groups with equality + marking it as experimental
Hi folks, I would like to ask for some help with handling invariant.group metadata for pointer comparison. Currently, we have a problem with devirtualization of this code: void compare() { A* a = new A; a->foo(); A* b = new(a) B; if (a == b) { b->foo(); } } Now because it is legal to replace b with an in the branch the vtable load will use old pointer operand
2017 Jan 26
2
[cfe-dev] RFC: Emitting empty invariant group for vtable loads
2017-01-26 3:28 GMT+01:00 Richard Smith <richard at metafoo.co.uk>: > On 25 January 2017 at 15:03, Hal Finkel via cfe-dev < > cfe-dev at lists.llvm.org> wrote: > >> Hi Piotr, >> >> I think makes sense. Modulo bitcasts, the invariant is identified by a >> particular pointer SSA value. Given that you can't sensibly have two >> nonequivalent