Displaying 20 results from an estimated 6000 matches similar to: "Question about the status of the IR extensions for OpenMP"
2018 Jun 07
2
[RFC] Abstract Parallel IR Optimizations
This is an RFC to add analyses and transformation passes into LLVM to
optimize programs based on an abstract notion of a parallel region.
== this is _not_ a proposal to add a new encoding of parallelism ==
We currently perform poorly when it comes to optimizations for parallel
codes. In fact, parallelizing your loops might actually prevent various
optimizations that would have been applied
2017 Mar 08
5
(no subject)
<mehdi.amini at apple.com>,
Bcc:
Subject: Re: [llvm-dev] [RFC][PIR] Parallel LLVM IR -- Stage 0 -- IR extension
Reply-To:
In-Reply-To: <20170224221713.GA931 at arch-linux-jd.home>
Ping.
PS.
Are there actually people interested in this?
We will continue working anyway but it might not make sense to put it
on reviews and announce it on the ML if nobody cares.
On 02/24,
2017 Mar 08
4
(no subject)
".... the problem Mehdi pointed out regarding the missed initializations of array elements, did you comment on that one yet?"
What is the initializations of array elements question? I don't remember this question. Please refresh my memory. Thanks.
I thought Mehdi's question is more about what are attributes needed for these IR-annotation for other LLVM pass to understand and
2017 Mar 08
3
(no subject)
A quick update, we have been looking through all LLVM passes to identify the impact of "IR-region annotation", and interaction issues with the rest of LoopOpt and scalarOpt, e.g. interaction with vectorization when you have schedule(simd:guided: 64). What are the common properties for optimizer to know on IR-region annotations. We have our implementation working from O0, O1, O2 to O3.
2017 Mar 08
3
(no subject)
> On Mar 8, 2017, at 10:55 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
>>
>> On Mar 8, 2017, at 5:36 AM, Johannes Doerfert <doerfert at cs.uni-saarland.de> wrote:
>>
>> <mehdi.amini at apple.com>,
>> Bcc:
>> Subject: Re: [llvm-dev] [RFC][PIR] Parallel LLVM IR -- Stage 0 -- IR extension
>> Reply-To:
>>
2017 Mar 08
3
[RFC][PIR] Parallel LLVM IR -- Stage 0 --
I assume the referring case is something like below, right?
#pragma omp parallel num_threads(n)
{
#pragma omp critical
{
x = x + 1;
}
}
If that is the case, the programmer is already writing the code that is not "serial equivalent".
Our representation for parallelizer is
%t = @llvm.region.entry()["omp.parallel"(),
2017 Mar 08
2
(no subject)
On 03/08/2017 12:44 PM, Johannes Doerfert wrote:
> I don't know who pointed it out first but Mehdi made me aware of it at
> CGO. I try to explain it shortly.
>
> Given the following situation (in pseudo code):
>
> alloc A[100];
> parallel_for(i = 0; i < 100; i++)
> A[i] = f(i);
>
> acc = 1;
> for(i = 0; i < 100; i++)
> acc = acc *
2017 Mar 08
2
(no subject)
The IR-region annotation we proposed is as below, there is no @llvm.parallel.for.iterator()..... There is no change to loop CFG.
alloc A[100];
%t = call token @llvm.region.entry()["parallel.for"()]
for(i = 0; i < 100; i++) {
a[i] = f(i);
}
@llvm.region.exit(%t)() ["end.parallel.for"()]
Xinmin
-----Original Message-----
From: Johannes Doerfert
2017 Jan 28
3
[RFC][PIR] Parallel LLVM IR -- Stage 0 -- IR extension
Dear all,
This RFC proposes three new LLVM IR instructions to express high-level
parallel constructs in a simple, low-level fashion. For this first stage
we prepared two commits that add the proposed instructions and a pass to
lower them to obtain sequential IR. Both patches have be uploaded for
review [1, 2]. The latter patch is very simple and the former consists
of almost only mechanical
2017 Mar 08
2
[RFC][PIR] Parallel LLVM IR -- Stage 0 --
> On Mar 8, 2017, at 11:50 AM, Hal Finkel <hfinkel at anl.gov> wrote:
>
>
> On 03/08/2017 01:24 PM, Tian, Xinmin wrote:
>> I assume the referring case is something like below, right?
>>
>> #pragma omp parallel num_threads(n)
>> {
>> #pragma omp critical
>> {
>> x = x + 1;
>> }
>> }
2018 Aug 28
2
(no subject)
Dear Alex, all,
I was looking for fcvt.d.{w,l}{,u} in RISCVInstrInfoD and I'm not sure to
understand the current definitions:
138 def FCVT_D_W : FPUnaryOp_r<0b1101001, 0b000, FPR64, GPR,
"fcvt.d.w"> {
139 let rs2 = 0b00000;
140 }
141
142 def FCVT_D_WU : FPUnaryOp_r<0b1101001, 0b000, FPR64, GPR,
"fcvt.d.wu"> {
143 let rs2 =
2014 Sep 08
2
[LLVMdev] Alias Analysis - ModRefBehaviour
Hello,
Is there a analysis pass which calculates the ModRefBehaviours
OnlyReadsPointerArguments and OnlyAccessesPointerArguments?
I tried to find one but so far I only saw that different AA's return
OnlyReadsMemory and DoesNotAccessMemory if the readonly and readnone
attributes are set.
Best regards and thanks in advance,
Johannes
--
Johannes Doerfert
Researcher / PhD Student
2018 Jul 10
6
[RISCV][PIC] Lowering pseudo instructions in MCCodeEmitter vs AsmPrinter
H all,
I'm looking at generating PIC code for RISC-V in the context of Linux. Not
sure if anyone is working on this already, any inputs are very welcome.
I'm now looking at function calls which in the RISCV backend are
represented via two pseudoinstructions RISCV::TAIL and RISCV::CALL.
Currently those pseudos are lowered in MCCodeEmitter. They are expanded
into AUIPC and JALR
2020 Mar 16
2
Redundant copies
Yep, exactly that. We see quite a lot of them, most of them get cleaned up, but not always...
Cheers.
________________________________
From: Roger Ferrer Ibáñez <rofirrim at gmail.com>
Sent: 16 March 2020 08:53
To: Sjoerd Meijer <Sjoerd.Meijer at arm.com>
Cc: LLVM-Dev <llvm-dev at lists.llvm.org>; Sam Parker <Sam.Parker at arm.com>
Subject: Re: [llvm-dev] Redundant copies
2018 Mar 20
2
HPC/Parallel/Polly BoF at EuroLLVM
On 03/20/2018 05:05 AM, Michael Kruse wrote:
> There's none yet according to http://llvm.org/devmtg/2018-04/#talks
>
> Unfortunately, I won't be present, but IMHO it would be nice to have one.
I agree. This seems like a good idea.
-Hal
>
> Michael
>
>
>
> 2018-03-20 7:50 GMT+01:00 Renato Golin <renato.golin at linaro.org>:
>> Hey folks,
>>
2020 May 05
2
"Earlyclobber" but for a subset of the inputs
Hi Quentin,
> It sounds like you only need the earlyclobber description for the N, N
> variant.
> In other words, as long as you use different opcodes for widen-op NN and
> widen-op WN, you model exactly what you want.
>
> What am I missing?
>
we are using different opcodes for widen-op NN and widen-op WN.
My understanding is that not setting earlyclobber to the W, N
2014 Sep 20
2
[LLVMdev] How to translate library functions into LLVM IR bitcode?
Hi Johannes,
Actually, I'm working in the same scenario, i.e. configure + make of a
benchmark/program/library like you said. I've got your point of using this
script as a replacement to generate .bc files instead of a executable.
That's truly helpful and has already answered my original question.
Now I'm actually moving a step further. Take the same example in your
reply, say, if
2017 Mar 13
2
[llvm-devmeeting] [EuroLLVM] Hacker's Lab - Topics and Volunteers needed!
Registered, thx!
On 03/13, Renato Golin wrote:
> On 13 March 2017 at 13:01, Tobias Grosser <tobias.grosser at inf.ethz.ch> wrote:
> > I am happy to merge these things.
>
> Ok. We'll need a big table. :)
--
Johannes Doerfert
Researcher / PhD Student
Compiler Design Lab (Prof. Hack)
Saarland Informatics Campus, Germany
Building E1.3, Room 4.31
Tel. +49 (0)681
2016 Apr 12
2
ScalarEvolution "add nsw" question
Hi Johannes,
Sanjoy has given you great information already.
On Sun, Apr 10, 2016 at 5:19 PM, Sanjoy Das <sanjoy at playingwithpointers.com>
wrote:
> Johannes Doerfert wrote:
> > Is there any plan to use e.g., post-dominance information to
> > propagate wrapping flags?
>
> None that I'm aware of.
>
> > If x +nsw y post-dominates the entry block
> >
2020 Mar 12
2
Redundant copies
Hi all,
we have encountered a case of redundant copies still left in the final code
and we would like to, at least, mitigate it. The original motivating case
comes from a context where we have large vector registers. In that context,
copies are expensive and we would like to avoid them as much as possible.
This small testcase in C, similar to the original vector case, exposes the
issue but using