Displaying 20 results from an estimated 10000 matches similar to: "A thought to improve IPRA"
2016 Jul 08
2
A thought to improve IPRA
On Fri, Jul 8, 2016 at 11:46 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
> On Jul 8, 2016, at 11:12 AM, vivek pandya <vivekvpandya at gmail.com> wrote:
>
> Hello LLVM Developers,
>
> I have a thought to improve IPRA and I would like summaries discussion on
> IRC regarding that so we can develop an idea out of that if it really helps.
>
> So idea is
2016 Jul 08
3
A thought to improve IPRA
On Sat, Jul 9, 2016 at 12:18 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
> On Jul 8, 2016, at 11:41 AM, vivek pandya <vivekvpandya at gmail.com> wrote:
>
>
>
> On Fri, Jul 8, 2016 at 11:46 PM, Mehdi Amini <mehdi.amini at apple.com>
> wrote:
>
>>
>> On Jul 8, 2016, at 11:12 AM, vivek pandya <vivekvpandya at gmail.com> wrote:
2016 Jul 28
0
A thought to improve IPRA
I have been working on PGO driven IPRA and I want to measure if this help
to reduce execution time. So as mentioned earlier the idea is to make cold
function register usage free i.e saving and restoring all used register by
such cold function so caller of that function will have more free
registers. So here I am changing standard callee saved registers set to a
set which will be decided
2016 Jul 28
1
A thought to improve IPRA
> On Jul 28, 2016, at 12:59 PM, vivek pandya <vivekvpandya at gmail.com> wrote:
>
> I have been working on PGO driven IPRA and I want to measure if this help to reduce execution time. So as mentioned earlier the idea is to make cold function register usage free i.e saving and restoring all used register by such cold function so caller of that function will have more free registers.
2016 Jul 29
2
A thought to improve IPRA
----- Original Message -----
> From: "vivek pandya" <vivekvpandya at gmail.com>
> To: "Mehdi Amini" <mehdi.amini at apple.com>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>, "Hal Finkel" <hfinkel at anl.gov>, "Quentin Colombet" <qcolombet at apple.com>
> Sent: Thursday, July 28, 2016 2:59:02 PM
>
2016 Jul 29
0
A thought to improve IPRA
On Fri, Jul 29, 2016 at 9:01 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original Message -----
> > From: "vivek pandya" <vivekvpandya at gmail.com>
> > To: "Mehdi Amini" <mehdi.amini at apple.com>
> > Cc: "llvm-dev" <llvm-dev at lists.llvm.org>, "Hal Finkel" <hfinkel at anl.gov>,
> "Quentin
2016 Jul 29
2
A thought to improve IPRA
----- Original Message -----
> From: "vivek pandya" <vivekvpandya at gmail.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>, "Quentin Colombet"
> <qcolombet at apple.com>, "Mehdi Amini" <mehdi.amini at apple.com>
> Sent: Friday, July 29, 2016 5:02:44 AM
>
2016 Aug 05
2
A thought to improve IPRA
The code in X86TargetLowering::IsEligibleForTailCallOptimization() has this part:
// The callee has to preserve all registers the caller needs to preserve.
const X86RegisterInfo *TRI = Subtarget.getRegisterInfo();
const uint32_t *CallerPreserved = TRI->getCallPreservedMask(MF, CallerCC);
if (!CCMatch) {
const uint32_t *CalleePreserved = TRI->getCallPreservedMask(MF, CalleeCC);
2016 Aug 16
2
A thought to improve IPRA
Hello Mentors,
I did analyze assembly files generated for IPRA + PGO. (1) I observed that
I did not considered the scope of the optimization so changing callee saved
register set for non local function is bad because IPRA can not pass this
information to other modules.
(2) applying this change to indirect function also has no effect because
for such case IPRA is currently not able to propagate
2016 Jul 06
3
IPRA, interprocedural register allocation, question
Hello Peter,
Thanks to pointing out this interesting case.
> Vivek,
> I have an application where many of the leaf functions are
> Hand-coded assembly language, because they use special IO instructions
> That only the assembler knows about. These functions typically don't
> Use any registers besides the incoming argument registers, IE they don't
> Need to
2016 Jul 08
2
IPRA, interprocedural register allocation, question
On Fri, Jul 8, 2016 at 9:47 AM, Lawrence, Peter <c_plawre at qca.qualcomm.com>
wrote:
> Vivek,
>
> I am looking into these function attributes in the clang docs
>
> Preserve_most
>
> Preserve_all
>
> They are not available in the 3.6.2 that I am currently using, but I hope
> they exist in 3.8
>
>
>
>
2016 Jun 02
2
What kind of testcases should be required to test IPRA?
Dear Mentors,
I will be writing test cases for IPRA for lit infrastructure.
Following 2 basic test cases I have identified :
Program that does not have recursive function call.
Program that does have recursive calls.
Please suggest some other test cases or provide some hints.
Sincerely,
Vivek
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2016 Jul 09
3
IPRA, interprocedural register allocation, question
Vivek,
IIUC it seems that we need two pieces of information to do IPRA,
1. what registers the callee clobbers
2. what the callee does to the call-graph
And it is #2 that we are missing when we define an external function,
Even when we declare it with a preserves or a regmask attribute,
So what I / we need is another attribute that says this is a leaf function,
At least in my case all
2016 Jul 12
2
IPRA, interprocedural register allocation, question
Vivek,
Here’s the way I see it, let me know if you agree or disagree,
You cannot optimize a function’s calling convention (register-usage) unless
You can see and change every caller, and you only know this for non-static functions
if you know that all calls to external functions cannot call back into the current
compilation unit.
#1 gives you the info necessary to change the call-site
2016 Jul 12
3
IPRA, interprocedural register allocation, question
Mehdi,
I’m compiling embedded applications which are small enough to do
whole-program-compilation. There’s no advantage in breaking them up into
separate compilation pieces and linking them, even though in source form
they are composed of a couple of separate source files.
So for me the compilation unit is always the entire program (and includes main())
Except for some
2016 Jul 12
3
IPRA, interprocedural register allocation, question
Mehdi,
I am looking for an understanding of 1) IPRA in general, 2) IPRA in LLVM.
Whether I want to use LTO or not is a separate issue.
1) I currently believe it is a true statement that:
If all external functions are known to not call back into the “whole-program”
Being compiled, then IPRA is free to do anything at all to the functions being
2016 Jun 30
4
Help required regarding IPRA and Local Function optimization
Hello Mentors,
I am currently finding bug in Local Function related optimization due to
which runtime failures are observed in some test cases, as those test cases
are containing very large function with recursion and object oriented code
so I am not able to find a pattern which is causing failure. So I tried
following simple case to understand expected behavior from this
optimization.
Consider
2016 Jun 05
2
What kind of testcases should be required to test IPRA?
Hello Mehdi Amini,
Sorry for slow progress this week but it was due to interesting mistake of
mine. I had build llvm with ipra enable by default and that build files
were on my path ! Due to that next time I tried to build llvm it was
terribly slow (almost 1 hour for 10% build ). I spend to much time on
fixing this by playing around with environment variables, cmake options etc.
But I think this
2016 Jun 05
2
What kind of testcases should be required to test IPRA?
On Sun, Jun 5, 2016 at 8:56 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
> > On Jun 4, 2016, at 7:56 PM, vivek pandya <vivekvpandya at gmail.com> wrote:
> >
> > Hello Mehdi Amini,
> >
> > Sorry for slow progress this week but it was due to interesting mistake
> of mine. I had build llvm with ipra enable by default and that build files
>
2016 Jun 05
2
What kind of testcases should be required to test IPRA?
On Sun, Jun 5, 2016 at 9:15 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
> On Jun 4, 2016, at 8:32 PM, vivek pandya <vivekvpandya at gmail.com> wrote:
>
>
>
> On Sun, Jun 5, 2016 at 8:56 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
>>
>> > On Jun 4, 2016, at 7:56 PM, vivek pandya <vivekvpandya at gmail.com>
>> wrote: