Displaying 20 results from an estimated 7000 matches similar to: "RFC: Remove inaccessiblememonly from 3.8 branch"
2016 Jan 04
3
Optimizing memory allocation for custom allocators and non C code
I had this on my TODO list for a while, but the recent introduction of
inaccessiblememonly makes it suddenly more urgent, as there is a risk to
waste effort in duplicated work and/or end up with suboptimal solutions. I
collected 2 use cases for inaccessiblememonly :
- Allocation like functions.
- Runtime functions for managed languages, that touch state that the
program itself can never touch
2020 Apr 30
3
Function attributes for memory side-effects
On 4/29/20 4:12 PM, Reid Kleckner via llvm-dev wrote:
> On Tue, Apr 28, 2020 at 12:58 PM Ejjeh, Adel via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Specifically, I want to be able to know when a called function does not
>> have any side effects (e.g. math library functions like sqrt)
>>
>
> Apologies for the pedantry, but I believe sqrt may
2016 Feb 23
3
RFC: Add guard intrinsics to LLVM
On Mon, Feb 22, 2016 at 9:40 PM, Andrew Trick <atrick at apple.com> wrote:
> I actually see fences as a proxy for potential inter-process
> communication and I/O. It's important that any opaque library call
> could contain a fence.
This makes perfect sense to me now, especially if you want to use
@trap_on for safety checks. Without re-ordering restrictions, a
failed @trap_on
2016 Jan 04
3
Can someone give me some pointer on alias analysis ?
> On Jan 4, 2016, at 9:55 AM, Amaury SECHET via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
>
>
> 2016-01-04 18:21 GMT+01:00 Philip Reames <listmail at philipreames.com <mailto:listmail at philipreames.com>>:
> On 01/04/2016 07:32 AM, Amaury SECHET wrote:
>> After a bit more investigation, it turns out that because %0 is stored into %1 (after
2020 Apr 28
2
Function attributes for memory side-effects
Hi All
I am writing a pass which requires checking dependences, and am having trouble dealing with function calls. Specifically, I want to be able to know when a called function does not have any side effects (e.g. math library functions like sqrt), and was wondering if there are attributes that specify this behavior (I know there is the ‘noread’ attribute but wasn’t sure if there’s something
2015 Dec 14
2
RFC: New function attribute HasInaccessibleState
Hi,
If these are the options, I'm also in favour of approach B. Approach A
redefines ReadNone, which I don't think is acceptable.
James
On Mon, 14 Dec 2015 at 08:15 Vaivaswatha Nagaraj via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> >I am in favor of approach B (although perhaps with different names).
> Just to clarify, this does not requires any propagation of
2017 Nov 17
2
Ensuring that dead allocations from a custom allocator are killed by LLVM
Hello all,
I have a custom allocator, and would like to teach LLVM about its
semantics. In particular, I would like LLVM to kill allocations that are
"dead", similar to dead new in C++.
Consider this example:
; ModuleID = '<stdin>'
source_filename = "Module"
; Function Attrs: inaccessiblememonly noinline norecurse nounwind
declare i8* @alloc(i64)
2016 Jan 04
3
Can someone give me some pointer on alias analysis ?
On 01/04/2016 07:32 AM, Amaury SECHET wrote:
> After a bit more investigation, it turns out that because %0 is stored
> into %1 (after bitcast) and so %3 may have access to it and clobber it.
Can you give a bit more context? I'm not sure which of the examples
you're talking about.
>
> After a bit of thought, it is correct in the general case, but
> definitively something
2015 Dec 03
3
GlobalsAA from GVN
Hi James,
Thanks for the help. From the log, I could infer that SLP vectorizer is not
preserving alias analysis, preventing GVN from getting the info. Although
the first function to get compiled has GlobalsAA available during GVN, rest
of them do not as SLP vectorizer run on that function invalidates GlobalsAA
which is a module pass. Is there a way to force re-computation of a
particular
2015 Dec 02
2
GlobalsAA from GVN
Hi,
I've noticed that alias analysis queries arising from GVN do not use the
results from GlobalsAA.
The last call to AAResultsWrapperPass::runOnFunction() before GVN does not
add GlobalsAAWrapperPass due to unavailability. This leads to the alias
queries from GVN not having any globals mod-ref info.
Is this a known issue? and is there any way to have globals mod-ref info
available for GVN?
2015 Dec 03
2
GlobalsAA from GVN
Hi Mehdi,
Thank you for the response.
I'm actually on an LTO setup and was referring to
PassManagerBuilder::addLTOOptimizationPasses. Here, GlobalsAA is scheduled
to run well ahead of SLPVectorizer. However since GlobalsAA is a module
pass, it runs once and a bunch of passes, including SLPVectorizer is run
for each function. When one of them invalidates the analysis, rest of the
functions do
2015 Dec 04
2
GlobalsAA from GVN
>You could, in the LTO pipeline, reinsert GlobalsAA after the SLPVectorizer
(not saying you should).
I didn't realise that adding GlobalsAA* after* SLPVectorizer could help.
Thanks for this tip.
>There is something fishy. Do you have a test case that reproduce with
llvm-lto?
I'm currently looking at a proprietary benchmark. I'll try to extract out a
simple test case and send it.
2015 Dec 03
2
GlobalsAA from GVN
Thank you both for the inputs. I've created a patch for the same, please
review:
http://reviews.llvm.org/D15185
>You can specifically insert it into the pass pipeline, but in this case,
we should just fix SLP to preserve the analysis.
@Hal, I tried doing this but it didn't seem to work. I added the GlobalsAA
pass right before GVN but it didn't seem to help. In retrospect, looking
2016 Jan 04
3
Can someone give me some pointer on alias analysis ?
2015-12-26 18:32 GMT+01:00 Philip Reames <listmail at philipreames.com>:
> On 12/26/2015 02:17 AM, Amaury SECHET via llvm-dev wrote:
>
> I'm trying to fix that bug: https://llvm.org/bugs/show_bug.cgi?id=20049
>
> It turns out this is the kind of optimization that I really need, as when
> it isn't done, all kind of other optimizations opportunities down the road
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
<<<
I may misunderstand, but it seems to me that this solves only query for aliasing with a pointer known to be pointing only to globals defined in the current compilation unit.
For any pointer which "may point somewhere else”, you won’t be able to resolve the non-aliasing with the “internal state” for malloc/free, right?
To take the original example in this thread:
int *x =
2015 Dec 02
2
Function attributes for LibFunc and its impact on GlobalsAA
Hi,
GlobalsAA, during propagation of mod-ref behavior in the call graph, looks
at library functions (in GlobalsAAResult::AnalyzeCallGraph:
F->isDeclaration() check), for attributes, and if the function does not
have the onlyReadsMemory attribute set, forgets it.
I noticed that library functions such as malloc/realloc do not have the
attributes doesNotAccessMemory or onlyReadsMemory
2015 Dec 03
2
Function attributes for LibFunc and its impact on GlobalsAA
Hi James,
Thank you for the response. I understand the concern about malloc/free
hooks. Could we detect that a program has setup malloc hooks (assuming
we're in a whole program compilation) and make assumptions (such as
onlyAccessesArgMem()) when the program hasn't setup malloc hooks? Using a
command line flag could be one option too.
I'm currently working on a program where having
2017 Jan 18
10
llvm is getting slower, January edition
Hi,
Continuing recent efforts in understanding compile time slowdowns, I looked at some historical data: I picked one test and tried to pin-point commits that affected its compile-time. The data I have is not 100% accurate, but hopefully it helps to provide an overview of what's going on with compile time in LLVM and give a better understanding of what changes usually impact compile time.
2015 Dec 11
3
RFC: New function attribute HasInaccessibleState
----- Original Message -----
> From: "Joseph Tremoulet" <jotrem at microsoft.com>
> To: "Hal Finkel" <hfinkel at anl.gov>, "Mehdi Amini" <mehdi.amini at apple.com>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Friday, December 11, 2015 3:35:38 PM
> Subject: RE: [llvm-dev] RFC: New function attribute
2015 Dec 11
2
RFC: New function attribute HasInaccessibleState
----- Original Message -----
> From: "Mehdi Amini" <mehdi.amini at apple.com>
> To: "Joseph Tremoulet" <jotrem at microsoft.com>
> Cc: "Hal Finkel" <hfinkel at anl.gov>, "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Friday, December 11, 2015 1:28:05 PM
> Subject: Re: [llvm-dev] RFC: New function attribute