Project Stage 1 Inspection

Following is the list of command I used to build the gcc compiler on my aarch64 and x86 machine

git clone https://gcc.gnu.org/git/gcc.git
cd gcc
./configure --target=aarch64-linux-gnu --prefix=/path/to/installation/directory
make -j

It took hours before my computer shutdown on its own because of inactivity.

Task 1: Apply FMV Cloning to Functions Automatically


 Source Files and Line Numbers:

- The relevant sections of the GCC code base can be found in the GCC source directory, particularly in the files related to function cloning and command-line option processing.


 Description of Work:

- Modify the GCC compiler to automatically clone all functions when specific command-line options are provided, simulating the behavior as if the `target_clone` attribute was specified.


 Tools and Techniques:

- C/C++ programming

- Familiarity with GCC internals


 Testing:

- Unit tests to ensure that function cloning is performed correctly for various scenarios.

- Integration tests with existing GCC test suite to verify that the compiler still functions correctly after the modification.


 Skills and Knowledge Required:

- Proficiency in C/C++

- Understanding of compiler internals, particularly in GCC


 Independence from Other Tasks:

- This task can be completed independently of other tasks as it primarily involves modifications within the GCC compiler codebase.


 Interface with Other Tasks:

- Once completed, this modification will tie in with the command-line option processing task, ensuring that the specified options trigger the desired behavior of function cloning.


 Work Estimate:

- Estimated at around 30-40 hours, considering the need to understand the relevant sections of the GCC codebase, implementing the necessary changes, and testing the functionality thoroughly.


 Task 2: Version List Processing


 Source Files and Line Numbers:

- Look into the GCC source files related to command-line option processing and architectural feature validation.


 Description of Work:

- Develop functionality to process the version list received from the command-line to validate the architectural features required for compilation.


 Tools and Techniques:

- C/C++ programming

- GCC compiler internals knowledge


 Testing:

- Unit tests to ensure that version list processing correctly validates architectural features.

- Integration tests to verify that the compiler behaves as expected when receiving version lists with different combinations of features.


 Skills and Knowledge Required:

- Proficiency in C/C++

- Understanding of GCC internals, especially regarding command-line option processing


 Independence from Other Tasks:

- This task can be completed independently, focusing on command-line option processing and feature validation within GCC.


 Interface with Other Tasks:

- Once implemented, this feature will integrate with the command-line interface of GCC, allowing users to specify version lists for architectural feature validation.


 Work Estimate:

- Estimated at around 40-50 hours, considering the need to understand existing command-line processing logic, implementing version list processing, and testing the functionality thoroughly.


 Priority and Confidence


I would prefer to own Task 1: Apply FMV Cloning to Functions Automatically. I am confident in completing this task given my experience with C/C++ programming and familiarity with compiler internals. I estimate completing this task within the provided time frame.

Comments

Popular posts from this blog

Project stage 2

AArch64 and x86_64 assembler code