Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] where should volatileness really live in the AA API?"
2011 Jul 21
1
[LLVMdev] AA bug?
I was reading the code in AliasAnalysis.cpp and happened to notice what looks like a bug. See the line marked by '*' below:
AliasAnalysis::ModRefResult
AliasAnalysis::getModRefInfo(const VAArgInst *V, const Location &Loc) {
// If the va_arg address cannot alias the pointer in question, then the
// specified memory cannot be accessed by the va_arg.
if (!alias(getLocation(V),
2015 Apr 28
2
[LLVMdev] alias set collapse and LICM
On Mon, Apr 27, 2015 at 4:21 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> You can't win here (believe me, i've tried, and better people than me have
> tried, for years :P).
> No matter what you do, the partitioning will never be 100% precise. The
> only way to solve that in general is to pairwise query over the
> partitioning.
>
> Your basic problem is
2015 Feb 16
2
[LLVMdev] alias result
Oh, got it. Thanks for your explain. I misunderstand what getLocation does.
If I would like to get the result of alias analysis referring to the
stored value, what should I do in llvm?
On 2/16/15 1:42 PM, Hal Finkel wrote:
> ----- Original Message -----
>> From: "Haopeng Liu" <hyliuhp at gmail.com>
>> To: "Hal Finkel" <hfinkel at anl.gov>
>>
2020 Sep 27
3
How to add a new clang-tidy module
Hi, all,
I am planning to add clang-tidy checkers for my company. How to add a new module for my company? Please help, thanks in advance.
I try to copy files from cert module, and rename cert to Misra, then add a rule named "m-0-1-1" by ./add_new_checker.py.
then I run ninja check-clang-tool, but my case is failed due to below error
Running ['clang-tidy',
2015 Feb 16
2
[LLVMdev] alias result
Yes, in my example, %1 and %2 point to t. %3 points to t2.
But t and t2 point to the same var, is it? That's where I'm confused.
On 2/16/15 12:37 PM, Hal Finkel wrote:
> ----- Original Message -----
>> From: "Haopeng Liu" <hyliuhp at gmail.com>
>> To: "Hal Finkel" <hfinkel at anl.gov>
>> Cc: llvmdev at cs.uiuc.edu
>> Sent:
2015 Nov 11
2
SROA and volatile memcpy/memset
On 11/11/2015 9:36 AM, Hal Finkel wrote:
> ----- Original Message -----
>> From: "Krzysztof Parzyszek" <kparzysz at codeaurora.org>
>>
>> Yeah, the remark about devices I made in my post was a result of a
>> "last-minute" thought to add some rationale. It doesn't actually
>> apply
>> to SROA, since there are no devices that are
2009 Oct 09
1
[LLVMdev] DS-AA reports erroneous NoModRef
Hi,
I am using DataStructureAA.cpp (poolalloc project) for alias analysis
purposes and have noticed an error in getModRefInfo(). The situation
is that Mod/Ref info is called with a CallSite and GlobalVariable
argument, where the global is passed as an argument to the call.
Furthermore, the callee function does *nothing* with this global but
to pass it on to another callee function. In
2015 Jul 16
4
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
----- Original Message -----
> From: "Hal Finkel" <hfinkel at anl.gov>
> To: "Chandler Carruth" <chandlerc at google.com>
> Cc: llvmdev at cs.uiuc.edu
> Sent: Thursday, July 16, 2015 1:58:02 AM
> Subject: Re: [LLVMdev] Improving loop vectorizer support for loops
> with a volatile iteration variable
> ----- Original Message -----
> >
2016 May 10
2
How to extend alias analysis to enable further optimisations?
Hello,
We have developed a compiler analysis for multi-threaded codes that
identifies functions which do not modify global variables. Furthermore, the
analysis checks that accesses performed before the function call, do not
target the same location as accesses performed after the call (hence, the
variables accessed before and after the call do not alias).
We want to integrate this analysis
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%)
2015 Aug 13
2
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
Hi Gerolf,
I think we have several (perhaps separable) issues here:
1. Do we have a canonical form for loops, preserved through the optimizer, that allows naturally-constructed loop nests to remain separable?
2. Do we forbid non-lowering transformations that turn vectorizable loops into non-vectorizable loops?
3. How do we detect cases where transformations cause a negative answer to either
2005 Apr 25
0
[LLVMdev] "Best" alias analysis algorithm
On Monday 25 April 2005 14:43, Vladimir Prus wrote:
> The 'i' variable is never modified in the program, however, all analyses
> except for -globalsmodref-aa report that the
>
> %tmp.3 = call int %_Z3bari( int %p ) ; <int> [#uses=1]
>
> instruction can modify 'i'. I'm somewhat surprised, because it looks like
> -globalsmodref-aa is the simplest
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 {
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
2017 Oct 10
2
Expose aliasing information in getModRefInfo (or viceversa?)
I'm trying to understand what is the result we'd seek in the example
in D38569 (pasting here for quick access)
double f(double a)
{
double b;
double c,d;
double (*fp) (double) __attribute__ ((const));
/* Partially redundant call */
if (a < 2.0)
{
fp = sin;
c = fp (a);
}
else
{
c = 1.0;
fp = cos;
}
d = fp (a);
2008 Apr 03
3
[LLVMdev] problem with using DSA for a side-effect analysis
Thanks guys!
I was looking into ModRef before, but I don't think that's exactly
what I need. ModRef API call getModRefInfo requires a Value to be
passed to it. However, some memory location M (which is a <DSNode,
offset> pair) visible to the caller can be modified in the callee
without any Value in the caller actually pointing to that location. I
also need to capture those...
I
2017 Nov 28
1
Expose aliasing information in getModRefInfo (or viceversa?)
> In your new proposal, doing & on the result of getModRef() may yield
unexpected results.
Agreed. I made the change I proposed locally, and, while it simplifies some
cases, it makes other bit-wise operations look unintuitive.
> Maybe we should just hide all that in inline functions or something and
make it an enum class
Noted, and looking into this option. Hoping a couple of static
2007 Feb 22
2
[LLVMdev] Unused malloc/free don't get optimized
Vikram S. Adve wrote:
> On Feb 22, 2007, at 10:21 AM, Robert L. Bocchino Jr. wrote:
>
>
>>I glanced at the code again, and it looks like I use DSA to (1)
>>construct the call graph and (2) identify things that would be
>>unsafe to put on the stack, such as arrays, cyclic data structures,
>>and allocations with escaping references. Right now these parts
2009 Jan 13
2
[LLVMdev] llvm-gcc doesnt honor volatile quantifier of the array type?
Hi,
I encountered a problem about volatile quantifier when using llvm-gcc, here
is the example:
#define N 10
int sum(volatile int a[N]) {
int sum = 0;
unsigned i = 0;
for (i = 0; i < N; ++i)
sum += a[i];
return sum;
}
If I compile it as C code, then llvm-gcc will dump:
define i32 @sum(i32* nocapture %a) nounwind {
bb1.thread:
%0 = volatile load i32* %a, align 4
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
>
>
>