[PATCH] Improve performance of vector code on A15

Silviu Baranga silbar01 at arm.com
Fri Mar 15 09:33:53 PDT 2013


Hi Jakob,

 

Yes, having to run DCE after the pass is a bit ugly.

 

The pass can replace the producer of a DPR with a VDUP, making

the original producer of that DPR dead and potentially some other

instructions that were used by that producer (for example copy

instructions).

 

I've modified the pass to remove any dead instructions that it

creates, so now we don't run DCE anymore after the pass.

 

I've also removed the constant load widening code, since using

extra adr instruction made it equivalent with what is generated

by default.

 

Again, I've ran it through LNT and everything seems OK.

 

-Silviu

 

 

From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk] 
Sent: 14 March 2013 16:35
To: Silviu Baranga
Cc: Tim Northover; James Molloy; Commit Messages and Patches for LLVM
Subject: Re: [PATCH] Improve performance of vector code on A15

 

 

On Mar 14, 2013, at 5:24 AM, "Silviu Baranga" <silbar01 at arm.com> wrote:





I'm attaching a new version of the A15 neon optimization patch
with the following improvements:

- we now always check if a register is virtual before
calling getVRegDef.

- the elideCopiesAndPHIs method previously had a chance to
enter in an infinite recursion since it also looks past PHI nodes.
I've fixed that by using a DFS instead.

- disabled VMOVS widening on A15 since it was not working well with
the optimization pass.

I've also tested the patch using the LNT testsuite and didn't get
any failures (except the ones that we already know about and were
already failing without the patch).

Would this be close to a state where it can get committed?

 

Looks good, except you should have to run DCE again. This doesn't seem like
something that needs to create dead code.

 

/jakob

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130315/c9edc0cb/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: a15-sd-preregalloc.diff
Type: application/octet-stream
Size: 30948 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130315/c9edc0cb/attachment.obj>


More information about the llvm-commits mailing list