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