Displaying 20 results from an estimated 1000 matches similar to: "Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring."
2020 Sep 02
2
[EXTERNAL] Re: Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.
Sorry to bring this thread from 3 months ago back, but I’m running into this issue too.
I do see that shouldIgnore is not called in the MachinePipeliner, however, James’ comment doesn’t really resolve the issue or make the story any clearer.
My summary of the comment is: “Hexagon and PPC9 do not need to ignore any instructions. However, in the case that you do, such as when the indvar update is
2020 Sep 03
1
[EXTERNAL] RE: Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.
Hi James,
Adding Hendrik, who has taken over ownership of the downstream code
involved.
I can also add background about the rationale, of that helps? It was added
to ignore induction variable update code (scalar code) that is rewritten
when we unroll / peel the prolog epilog anyway.
Targets like Hexagon or PPC with dedicated loop control instructions for
pipelined loops don't need this, but
2020 Sep 07
2
[EXTERNAL] RE: Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.
Hi James,
Having not worked on this for circa one year I've gone and refreshed my
memory.
We have a pretty capable implementation of swing modulo scheduling
downstream, distinct from the MachinePipeliner implementation.
Historically, MachinePipeliner had very tight coupling between the finding
of a suitable schedule and emitting the code that adheres to that schedule.
I spent quite a bit of
2020 Sep 09
2
[EXTERNAL] RE: Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.
Hi James,
One last thing - is your target upstream? or are you working on a
downstream target?
Cheers,
James
On Tue, 8 Sep 2020 at 23:02, Nagurne, James <j-nagurne at ti.com> wrote:
> I greatly appreciate you going back to gather that intel, James. It
> actually helps my understanding of the whole pipeliner puzzle quite a bit!
>
>
>
> I did identify, like you, that the
2019 Jul 15
2
MachinePipeliner refactoring
Hi Brendan (and friends of MachinePipeliner, +llvm-dev for openness),
Over the past week or so I've been attempting to extend the
MachinePipeliner to support different idioms of code generation. To make
this a bit more concrete, there are two areas where the currently generated
code could be improved depending on architecture:
1) The epilog blocks peel off the final iterations in reverse
2019 Jul 15
1
MachinePipeliner refactoring
Hi James:
Personally, I like the idea of refactoring and more abstraction,
But unfortunately, I don't know enough about the edges cases either.
BTW: the prototype is still causing quite some Asseertions in PowerPC -
some nodes are not generated in correct order.
Best,
Jinsong Ji (纪金松), PhD.
XL/LLVM on Power Compiler Development
E-mail: jji at us.ibm.com
From: James Molloy <james at
2019 Jul 16
2
MachinePipeliner refactoring
Hi James,
I also think that refactoring the code generation part is a great idea. That code is very complicated and difficult to maintain. I’ve wanted to rewrite that code for a long time, but just have never got to it. There are quite a few edge cases to handle (at least in the current code). I’ll take a deeper look at your patch. The abstractions that you mention, Stage and Block, are good
2018 Jun 08
4
[RFC] Porting MachinePipeliner to AArch64+SVE
Hi,
I am extending LLVM for HPC applications.
As one of them, I am trying to make MachinePipeliner available on
AArch64 + Scalable Vector Extension environment.
MachinePipeliner is currently used only by Hexagon CPU.
Since it is a very portable implementation, I think that it will
actually work just by adding a little code for many CPUs(See Code [2]).
The current MachinePipeliner is written on
2019 May 10
2
[Pipeliner] MachinePipeliner TargetInstrInfo hooks need more information?
Hello,
I'm working on integrating the MachinePipeliner.cpp pass into our VLIW
backend, and so far we've managed to get it working with some nice
speedups.
Unlike Hexagon however, our backend doesn't generate hardware loop
instructions and so all our loops are a combination of induction
variables, comparisons and branches. So when it came to implementing
reduceLoopCount for our
2019 Sep 02
2
PowerPC Compiler Crash
Hi Nicholas,
The admin of the buildbot is aware of this, will handle it after long
weekend. Thanks.
Best,
Jinsong Ji (纪金松), PhD.
XL/LLVM on Power Compiler Development
E-mail: jji at us.ibm.com
From: Nicholas Krause <xerofoify at gmail.com>
To: Jinsong Ji <jji at us.ibm.com>, "Finkel, Hal J." <hfinkel at anl.gov>
Cc: "llvm-dev at lists.llvm.org"
2019 Sep 01
2
PowerPC Compiler Crash
-- The C compiler identification is GNU 7.3.1
-- The CXX compiler identification is GNU 7.3.1
According to buildbot log here
http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/37730/steps/cmake%20stage%201/logs/stdio
for Simon's example ICE.
Best,
Jinsong Ji (纪金松), PhD.
XL/LLVM on Power Compiler Development
E-mail: jji at us.ibm.com
From: "Finkel, Hal J. via
2020 Apr 09
3
Applying patches from Phabricator?
Hello,
Is there a way for Phabricator to retain the patches as originally uploaded?
When using the "Download Raw Diff" button, it seems Phabricator reformats the patch, loosing the parent commit along the way, so often patches don't apply.
The following works, because I've got the latest checkout on master, and the patch was rebased recently:
F:\llvm-project>curl
2020 Jul 07
6
[RFC] C++20 ABI issue on several platforms
Hello,
as discussed here in more detail: https://reviews.llvm.org/D81583
the introduction of the C++20 [[no_unique_address]] attribute exposes an
ABI issue on platforms that require special handling for structs/classes
that are "equivalent" to a single floating-point member (or in some cases,
a "homogeneous" set of floating-point members). This is because we can now
for the
2019 Oct 24
2
Failed PPC64 compile when using Power7 loads and stores?
On Thu, Oct 24, 2019 at 2:22 PM Jinsong Ji <jji at us.ibm.com> wrote:
> Looks like to me that your clang is too old.
>
> clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
>
> clang 3.8.0 was released on 08 Mar 2016.
>
> While vec_xl was added in https://reviews.llvm.org/rL286455 onNov 11
> 2016, which is around half an year later then 3.8.0.
>
> Can you
2017 May 25
3
Some questions about software pipeline in LLVM 4.0.0
Hi,
I have some questions about the implementation of Software pipeline in MachinePipeliner.cpp.
First, in hexagon backend, between MachinePipeliner and regalloc pass, there're some other passes like phi eliminate, two-address, register coalescing, which may change or insert intructions like 'copy' in MBB, and swp kernel loop may be destroyed by these passes.
Why not put
2018 Jul 24
2
Software pipeline using LLVM
Hi all,
I want to generate assembly code using Swing Modulo Scheduling in LLVM for many ALU (May could be Adders, multilayer ......), I need some help how I can do that, which commend I run?
Also if possible more information about the scheduling and the register location ......, and which pass responsible about that, and which LLVM version support Swing Modulo Scheduling.
Thank you.
Regards
2019 Oct 24
2
Failed PPC64 compile when using Power7 loads and stores?
Hi Everyone,
I'm having trouble figuring out a compile failure on ppc64le. The
failure is at https://travis-ci.org/noloader/cryptopp-autotools/jobs/602187190
. The message is:
/bin/bash ./libtool --tag=CXX --mode=compile clang++
-DHAVE_CONFIG_H -I. -DCRYPTOPP_DISABLE_POWER8 -pipe -mcpu=power7
-mvsx -maltivec -g -O2 -MT libppc_power7_la-ppc_power7.lo -MD -MP -MF
2020 Apr 29
3
[RFC] [PowerPC] Removing PowerPC QPX Support
Hi, everyone,
I would like to know if anyone is still making use of the support in the PowerPC backend for the IBM BG/Q supercomputer, including the support for its QPX vector instruction set. If you are, please reply. I'm not aware of any still-running BG/Q machines, and if no one is making use of this functionality, I propose that we remove it.
Thanks again,
Hal
Hal Finkel
Lead, Compiler
2017 Jun 01
1
Some questions about software pipeline in LLVM 4.0.0
Hi - I replied to the original sender only by mistake. Sorry about that.
When we started working on the pipeliner, and added it before the scheduler,
we also were concerned that the scheduler or other passes would undo the
work of the pipeliner. The initial thought was that we would add information
(using metadata or some other way like you've suggested) to the basic block
to tell the
2017 Jan 05
3
LLVMTargetMachine with optimization level passed from clang.
I want the optimization to be turned on at -O1 and above.
In my case, it is a target independent back-end pass. (Eg:
MachinePipeliner)
On 2017-01-04 18:10, Mehdi Amini wrote:
>> On Jan 4, 2017, at 4:03 PM, Sumanth Gundapaneni via llvm-dev
>> <llvm-dev at lists.llvm.org> wrote:
>>
>> I see the BackendUtil.cpp of Clang creates the TargetMachine with
>> the