similar to: [LLVMdev] AliasSetTracker and UnknownInst's (callsites mostly) problem

Displaying 20 results from an estimated 120 matches similar to: "[LLVMdev] AliasSetTracker and UnknownInst's (callsites mostly) problem"

2016 Jan 27
2
Skip redundant checks in AliasSet::aliasesUnknownInst
On 01/27/2016 07:53 AM, Daniel Berlin wrote: > > > On Wed, Jan 27, 2016 at 1:27 AM, Roman Gareev <gareevroman at gmail.com > <mailto:gareevroman at gmail.com>> wrote: > > Thank you for the idea! Could you please explain it? > > > Which part are you having trouble with, so i know where to concetrate? > > If I’m not > mistaken, you advise
2016 Jan 27
2
Skip redundant checks in AliasSet::aliasesUnknownInst
Thank you for the idea! Could you please explain it? If I’m not mistaken, you advise to insert the unknown insts of an every AS from AliasSetTracker::add(const AliasSetTracker &AST) into a smallptrset and consequently append it to merged alias sets from AliasSetTracker::findAliasSetForUnknownInst. I think that Philip proposed something similar to your approach in
2016 Jan 24
4
Skip redundant checks in AliasSet::aliasesUnknownInst
Dear llvm contributors, Could you please advise me how to skip checks, which are performed in AliasSet::aliasesUnknownInst, of unknown instructions from different alias sets of an alias set tracker that is a parameter of ‘AliasSetTracker::add(const AliasSetTracker &AST)’? If this wasn’t available at the moment and someone could review me, I would try to implement it. A temporary patch can be
2017 Oct 09
3
Expose aliasing information in getModRefInfo (or viceversa?)
Hi, This came up in https://reviews.llvm.org/D38569, and I'd like some input on what's the best way to get alias and mod-ref info without having two alias calls. A couple of ideas: (a) Extend the getModRefInfo interface (+getModRefBehavior, +gerArgModRefInfo) to return a pair {ModRefInfo, AliasResult}. The AliasResult can be optional based on an argument e.g.: struct MRI_AR {
2015 Dec 06
2
Objects of MemoryLocation class are created for ‘llvm.memset.*‘ intrinsics
Dear llvm contributors, Could you please advise me where objects of MemoryLocation class are created for ‘llvm.memset.*‘ intrinsics? In the Bug 23077 (https://llvm.org/bugs/show_bug.cgi?id=23077) the AliasSetTracker constructs 128 alias sets for 0 pointer values, which contain only unknown instructions. In this case, all unknown instructions, which are added to new alias sets in the
2017 Oct 09
2
Expose aliasing information in getModRefInfo (or viceversa?)
On Mon, Oct 9, 2017 at 1:57 PM, Daniel Berlin <dberlin at dberlin.org> wrote: > FWIW: Bootstrap is probably not a good test of this, there are bugs filed > where we end up with tons of loads and stores to test against each other. > That's actually fairly rare in bootstrap, as you can see. > Let me get you some test cases. > SG, thanks! > > My guess is that we
2010 Jul 27
0
[LLVMdev] inline callsites whose function definitions are in different file?
On Tue, Jul 27, 2010 at 9:46 AM, Chuck Zhao <czhao at eecg.toronto.edu> wrote: > I don't, and the compiler doesn't neither, that is the problem, unless I do > hacking at compile time. > E.g.: > - put all such function's definitions into file1.c > - force to compile file1.c 1st. > - when compiling file2.c: >  . read file1.bc >  . attach to file2's
2017 Oct 09
1
Expose aliasing information in getModRefInfo (or viceversa?)
On 10/09/2017 03:57 PM, Daniel Berlin wrote: > FWIW: Bootstrap is probably not a good test of this, there are bugs > filed where we end up with tons of loads and stores to test against > each other. That's actually fairly rare in bootstrap, as you can see. > Let me get you some test cases. > > My guess is that we should go with mustmod. I agree. -Hal > > >
2010 Jul 27
0
[LLVMdev] inline callsites whose function definitions are in different file?
On Tue, Jul 27, 2010 at 7:46 AM, Chuck Zhao <czhao at eecg.toronto.edu> wrote: >  LLVM (2.7 release version) provides 2 implementations for inlining > function callsites: > > - InlineSimple.cpp (-inline):               inline simple callsites > according to its cost analysis > - InlineAlways.cpp (-always-inline):  inline all callsites that are > marked with
2010 Jul 27
2
[LLVMdev] inline callsites whose function definitions are in different file?
On 7/27/2010 12:40 PM, Devang Patel wrote: > On Tue, Jul 27, 2010 at 7:46 AM, Chuck Zhao<czhao at eecg.toronto.edu> wrote: >> LLVM (2.7 release version) provides 2 implementations for inlining >> function callsites: >> >> - InlineSimple.cpp (-inline): inline simple callsites >> according to its cost analysis >> - InlineAlways.cpp
2009 May 08
0
[LLVMdev] Some questions on the output formats of AliasSetTracker
Dear Staff, Here are some questions on the output formats of AliasSetTracker. The code is as below: int G1 = 9; int G2 = 5; int main() { int * XX; int * YY; XX = &G1; YY = XX; YY = &G2; XX = &G2; } The output for -anders-aa is (the command is: opt -anders-aa test.bc -disable-output -print-alias-sets &>
2009 May 08
0
[LLVMdev] Some questions on the output formats of AliasSetTracker
On Thu, May 7, 2009 at 5:07 PM, <hc2428 at columbia.edu> wrote: > However, I am a little confused with these output. In Both anders-aa > and steens-aa, XX and YY should stay in the same AliasSet, and their > alias relationship should be May Alias, right? %XX and %YY are the results of alloca instructions (i.e. equivalent to the C expressions "&XX" and
2009 Aug 18
0
[LLVMdev] AliasSetTracker
On Aug 17, 2009, at 4:16 PM, Marcus Hicks wrote: > I started using the AliasSetTracker, but I have a problem. Hi Marcus, At best, anders-aa is beta-quality. It probably has several bugs and is not really ready to be widely used. -Chris > > I am using -basicaa -anders-aa and optimizations are enabled for > llvm-gcc and llvm-ld. > I use an instruction visitor to populate the
2012 Jan 19
1
[LLVMdev] AliasSetTracker
In the implementation of the AliasSetTracker, I see LoadInst, StoreInst, and VAArgInst are treated specially. Why aren't AtomicCmpXchgInst and AtomicRMWInst treated with similar care? Lumping together with other unknown instructions seems unnecessarily expensive in compile time. Preston -------------- next part -------------- An HTML attachment was scrubbed... URL:
2010 Jul 27
2
[LLVMdev] inline callsites whose function definitions are in different file?
LLVM (2.7 release version) provides 2 implementations for inlining function callsites: - InlineSimple.cpp (-inline): inline simple callsites according to its cost analysis - InlineAlways.cpp (-always-inline): inline all callsites that are marked with "always_inline" attribute. They are both subclasses of Inline.cpp that assumes the function's definition (body) is
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
Yes, this is odd. On my clang.bc Without: 2.2967 ( 53.8%) 0.0242 ( 26.4%) 2.3210 ( 53.2%) 2.3227 ( 53.2%) Memory SSA 2.3364 ( 53.7%) 0.0246 ( 25.7%) 2.3610 ( 53.1%) 2.3636 ( 53.1%) Memory SSA 2.3353 ( 54.0%) 0.0258 ( 27.0%) 2.3611 ( 53.4%) 2.3632 ( 53.3%) Memory SSA With two getModRefInfo calls: 3.0302 ( 58.8%) 0.0328 ( 29.9%) 3.0630 ( 58.2%) 3.0858 ( 58.2%)
2009 Aug 17
2
[LLVMdev] AliasSetTracker
I started using the AliasSetTracker, but I have a problem. I am using -basicaa -anders-aa and optimizations are enabled for llvm-gcc and llvm-ld. I use an instruction visitor to populate the alias set tracker, but two pointers end up in different alias sets. While investigating this I notice at one point that if I call: bool New = false; AliasSet &X = AST->getAliasSetForPointer(Pointer,
2009 May 08
1
[LLVMdev] Some questions on the output formats of AliasSetTracker
Quoting Eli Friedman <eli.friedman at gmail.com>: Dear Eli, Thanks very much for your reply. I have modified the XX and YY to be global variables, but the output of AliasSetTracker are still MUST alias: Alias Set Tracker: 5 alias sets for 4 pointer values. AliasSet[0xea55d0,0] may alias, Mod/Ref 8 Call Sites: void ({ }*)* @llvm.dbg.func.start, void (i32, i32, { }*)*
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
> > Sigh > I should have taken the time to give a better example. > The must-alias part is irrelevant to an example (it only requires > read-onlyness) > > You said "LICM doesn't move calls, so we'd never really care about > must-alias for promotion". I was just pointing out other things move calls > any may want to know. > > If you want an example
2012 Mar 06
2
[LLVMdev] Work with CallSites
Hi. I have a test program: class A { int A; public: virtual void test ( int x ) = 0; }; class B : public A { int B; public: void test ( int x ) {}; }; int main() { A *a = new B(); a->test(1); } We have call site CS: "a->test(1);". CS.getCalledFunction() - return NULL, so we can say that this call site is virtual. My optimization determines, that in this call site