User Tools

Site Tools


spo600:2024_sumer_project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
spo600:2024_sumer_project [2024/05/22 11:50] – created chrisspo600:2024_sumer_project [2024/06/05 19:31] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== SPO600 2024 Summer Project ====== +Wrong page! See [[2024 Summer Project]]
- +
-===== Goal ==== +
- +
-The goal of this project is to add a functioning proof-of-concept prototype of auto-function-multi-versioning capability to the Gnu Compiler Collection (GCC) for AArch64 systems, building on previous work. +
- +
-===== Project Stage 1: Preparation ===== +
- +
-1. **Become familiar with the GCC build process.** Build the current development version of GCC on AArch64 and x86 platforms. Get to know how long a full build takes, how to change the build options, and how to install a local (non-system, personal) copy of GCC. +
- +
-2. **Learn how to navigate the GCC codebase.** Specifically, find out what code implements these aspects of the compiler and how to add to or change the code: +
- +
- a. Find the code that controls the compilation passes, and how passes can be added. +
- +
- b. Find the code that controls the argument parsing. Add a dummy argument and experiment with messages for the user that describe how and when that argument can be used. +
- +
- c. Find out where argument information is stored and how it can be accessed in code. +
- +
- d. Find out how dumps are produced during the compilation passes (in particular, during the tree passes). Become familiar with producing and reviewing these dumps. Create a dummy pass that produces a useful diagnostic dump. +
- +
-==== Resources ==== +
- +
-  * [[https://gcc.gnu.org/onlinedocs/|GCC Documentation]] +
-  * See especially the [[https://gcc.gnu.org/onlinedocs/gcc-4.5.0/gccint/|GCC Internals Manual]] +
- +
-==== Due Date ==== +
- +
-  * May 31 for Stage 1 +
  
spo600/2024_sumer_project.1716378601.txt.gz · Last modified: 2024/05/22 15:50 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki