[llvm-commits] [PATCH][Review Please] Optimize ARM Position Independent Code Generation

Yin Ma yinma at codeaurora.org
Thu Aug 23 17:33:18 PDT 2012


Hi Evan,

 

This patch addressed the problem I submitted before.  The default

Option has been set to off. A segment of redundant elimination code

has been removed. I will commit the new redundant elimination later

after it becomes available. 

 

Thanks,

 

                             Yin 

 

 

 

From: Evan Cheng [mailto:evan.cheng at apple.com] 
Sent: Wednesday, August 01, 2012 11:12 AM
To: Yin Ma
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [PATCH][Review Please] Optimize ARM Position
Independent Code Generation

 

Thanks. This looks like a good change to ELF codegen. I am ok with the isel
change.

 

However, I'm not ok with pre-ra load / store optimizer change. It's the
wrong place to do it. MachineCSE should be eliminating the unnecessary PIC
instructions. You might want to look at Darwin codegen and how it plays with
MachineCSE.

 

Evan

 

On Aug 1, 2012, at 10:24 AM, Yin Ma <yinma at codeaurora.org> wrote:





Hi Evan,

 

The attached pdf contains an example of this change. It can result

In code size reduction for most of PIC enabled programs.

 

Thanks,

 

                              Yin

 

From: Evan Cheng [mailto:evan.cheng@ <http://apple.com> apple.com] 
Sent: Tuesday, July 31, 2012 5:48 PM
To: Yin Ma
Cc:  <mailto:llvm-commits at cs.uiuc.edu> llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [PATCH][Review Please] Optimize ARM Position
Independent Code Generation

 

Hi Yin,

 

Can you provide some assembly code so we can understand what you are trying
to do?

 

Thanks,

 

Evan

 

On Jul 30, 2012, at 10:55 AM, Yin Ma < <mailto:yinma at codeaurora.org>
yinma at codeaurora.org> wrote:






Hi

Currently LLVM ARM backend is still using the x86 way to generate position
independent code. The algorithm retrieves the pointer of global offset table
at first. However, GCC has been using the label relative offset to computer
position independent code. The GCC way results smaller code size in ARM
architecture. This patch is to implement GCC way to generate position
independent code.

In the attachment.
pic.diff is the code patch
the rest of four files are the test validation results before and after code
changed

Please give a review

 

Thanks,

 

                    Yin

<report.simple.new.txt><report.simple.org.txt><cross.new><
<http://cross.org>
cross.org><pic.diff>_______________________________________________
llvm-commits mailing list
 <mailto:llvm-commits at cs.uiuc.edu> llvm-commits at cs.uiuc.edu
 <http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits>
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

 

<pic.pdf>

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120823/2b7dcd41/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: report.simple.new.txt
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120823/2b7dcd41/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: report.simple.org.txt
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120823/2b7dcd41/attachment-0001.txt>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cross.new
Type: application/octet-stream
Size: 3081 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120823/2b7dcd41/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cross.org
Type: application/octet-stream
Size: 3049 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120823/2b7dcd41/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic2.diff
Type: application/octet-stream
Size: 13879 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120823/2b7dcd41/attachment-0002.obj>


More information about the llvm-commits mailing list