1 / 15

Retargeting Open64 to A RISC processor -- A Student’s Perspective

Retargeting Open64 to A RISC processor -- A Student’s Perspective. Author: Huimin Cui Xiaobing Feng 2009.03. 1. Motivation. Retarget is of significance for Open64 Good retarget-ability brings more targets more targets support brings more user.

strom
Download Presentation

Retargeting Open64 to A RISC processor -- A Student’s Perspective

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Retargeting Open64 to A RISC processor -- A Student’s Perspective Author: Huimin Cui Xiaobing Feng 2009.03 1

  2. Motivation • Retarget is of significance for Open64 • Good retarget-ability brings more targets • more targets support brings more user. • But there is no detailed manual • To show how to retarget step by step, to let even a green-hand can do the porting. • To give an overview of the performance just after retarget done. 2

  3. Retarget Procedure • Summarized a detailed procedure for future retarget • File creation order • Building order • Listed all the files that require modification • How to fix up some critical files 3

  4. Retarget Procedure —our methodology(1) • 1st step • Verify basic compiler issues, • C Front-end • IR transformation • Code generation • Simple Library Function Call • Naïve HelloWorld 4

  5. Retarget Procedure —our methodology(2) • 2nd step • Verify ABI/CFlow • Variations of HelloWorld • Change Data types of parameters • Add control-flow: branch & loop • 3rd step • Verify optimization FRAMEWORK • -O0, -O2, -O3

  6. Retarget Procedure —our methodology(3) • 4th step • Further verify CG/optimizations/multiple procedures • Stanford benchmark, -O0 to –O3 • 5th step • Verify c++ FE/loop optimizations • Abstraction penalty benchmark, -O0 to –O3 6

  7. Retarget Procedure—some points • In most cases, it’s easier to tailor the files from existing ones • Make the compiler work, then make it perform • Use debugging tools of isolation/tracing/ dumping 7

  8. Discussion—Easy of Retarget • Took a student 2 months • Dealt with • ISA • ABI • Code Generation • Some machine-dependent functions • Passed the benchmarks, (-O0 to –O3) • Stanford Benchmark • Abstraction Penalty Benchmark • Some applications from CPU2000, bzip2 & mcf 8

  9. Discussion—Performance (1) • NO machine-dependent performance tuning after retarget. • competitive or better performance compared to a matured GCC-Mips compiler • obvious performance improvement from –O2 to –O3, especially for C++ programs with higher abstraction levels. 9

  10. Discussion—Performance(2) Performance of abstraction penalty, -O2 and –O3 The higher, the better 10

  11. Discussion—Performance(3) Performance of Stanford Benchmark The lower, the better 11

  12. Discussion—Performance(4) Performance of bzip2 & mcf 12

  13. Suggestions • Can the flags distributed in multiple files be merged into one file? • Eg. Endianness • Can some graphic tools be developed for view IR, flow, etc? 13

  14. Summary • A detailed retarget procedure (derived from Fred Chow’s document) • Shared our methodology • Discussed two retargeting issues • Ease of retarget • Performance • Some suggestions

  15. Questions & Comments? Thank you! • please mail to: huimin.cui@gmail.com 15

More Related