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
Post a Comment